2.3 变量
2.3.1概念
①内存中的一个存储区域
②该区域的数据可以在同一类型范围内不断变化
③变量是程序中最基本的存储单元,包含变量类型,变量名和存储的值
2.3.2变量的意义
用于在内存中保存数据
2.3.3变量的使用
/* 变量的使用 1.java定义变量的格式:数据类型 变量名=变量值; 2.说明: ①变量必须先声明后使用 ②变量都定义在其作用域内,在作用域内,它是有效的,换句话说,出了作用域,就失效了。 ③同一个作用域内不可以声明两个同名的变量 */ class VariableTest{ public static void main(String[] args){ //变量的定义 int myAge=12; //变量的使用 System.out.println(myAge); //变量的声明 int myNumber; //变量的赋值 myNumber = 1001; } } public void method(){ int myClass=0; }
2.3.4数据类型说明
/* Java定义的数据类型 一、变量按照数据类型来分: 基本数据类型: 整型:byte\ short\ int \long 浮点型:float\double 字符型:char 布尔型:boolean 引用数据类型: 类:(class) 接口:(interface) 数组:(array) 二、变量在类中声明的位置 成员变量 VS 局部变量 */ class VariableTest1{ public static void main(String[] args){ //1.整型:byte(1字节=8bit)short(2字节)\int(4字节)\long(8字节) //①byte范围:-128~127 byte b1=12; byte b2=-128; //b2=129;编译不通过 //②long型变量必须以小写l或大写L结尾 //③常用int short s1=128; int i1=1234; long l1=34124L;//加L //2.浮点型 //float(单精度,四个字节) //double(双精度,8字节) //①浮点型:表示带小数点的数值 //②float表示数值的范围比long还大 double d1 = 123.3; System.out.println(d1+1); //③定义float变量时,末尾要以f或F结尾 float f1 = 12.3F; System.out.println(f1); //④通常使用double //3.字符型:char(1字符=2字节) //①定义char型变量,通常用一对'',内部只能写一个字符 char c1 ='a'; System.out.println(c1); //②表示方式:1.声明一个字符2.转义字3.直接用Unicode值来表示字符型常量 char c5 = '\n';//换行符 c5='\t';//制表符 System.out.print("hello"+c5); System.out.println("world"); char c6 = '\u0123'; System.out.println(c6); //4.布尔型:boolean //① 只能取两个值之一:True False //②常常在条件判断,循环结构中使用 boolean bb1 = true; System.out.println(bb1); boolean isMarried = true; if(isMarried){ System.out.println("你不能参加单身party了"); } else{ System.out.println("你可以参加"); } } }
2.3.5 基本数据类型之间的运算规则
/* 基本数据类型之间的运算规则: 前提:这里讨论的只是7种数据类型变量间的运算,不包含boolean类型的。 1.自动类型提升: 结论:当容量小的数据类型的变量与容量大的数据类型做运算时,结果自动提升为容量大的数据类型 byte --> short --> int --> long --> float --> double 特别的,当byte,char,short三种类型的变量做运算时,结果为int类型 2.强制类型转换:见VariableTest3.java 说明:此时的容量大小指的是,表示数的范围的大和小,比如:float容量要大于long的容量 */ class VariableTest2 { public static void main(String[] args) { byte b1=2; int i1=129; int b2=b1 + i1; System.out.println(b2); } }
2.4不同进制的表示方式
二进制首位为符号位,0则该数为正数,1则该数为负数
负数源码:符号位为1,其他正常
反码:除符号位外,各个位取反
补码:反码+1
十进制-->二进制:除2取余的逆 逆(反过来看)
二进制-->八进制 由低往高三个一位
二进制-->十六进制 四个一位
/* 计算机中不同进制的使用说明 对于整数,有四种表示方式: 二进制(binary):0,1,满2进1,以0b或0B开头 十进制(decimal):0-9,满十进一 八进制(octal):0-7,满8进1,以数字0开头表示 十六进制(hex):0-9及A-F,满16进1,以0x或0X开头表示,此处的A-F不区分大小写 */ class BinaryTest { public static void main(String[] args) { int num1 = 0b110; int num2 = 110; int num3 = 0127; int num4 = 0x110A; System.out.println("num1 = " +num1); System.out.println("num2 = " +num2); System.out.println("num3 = " +num3); System.out.println("num4 = " +num4); } }
2