今天,又是基础的一天。不知道为什么突然就有点后悔之前学过C的经历,真细碎
今天,初接触Java变量,发现跟C语言还是有相通之处,学起来还是比较容易的。
一、变量:就是程序中用于存数据的。
1.每个变量都是需要先声明,例如“int a;”就相当于在银行里面开户;
2.然后初始化,例如“a=1;”就是给a赋一个值,就相当于往银行账户里面存一笔钱,每个变量都是可以重复赋值;
3.之后就是使用,例如“System.out.println(a);”,就相当于使用银行账户里面的钱,每个变量在使用之前是必须要声明并初始化的;
4.最后是命名,命名可以使用数字、字母、$和下划线,且严格区分大小写,不能使用关键字,建议使用英文的“见名知意”来命名,潜规则:可以使用中文,但是不建议使用。
二、八种基本数据类型:byte、short、char、int、long、float、double、boolean
byte:字节型,用于存储整数,占用1个字节,范围-128到127
short:短整型,用于存储整数,占用2个字节,范围-32768到32767
char:字符型,采用Unicode编码格式,用于存储单个字符,占用2个字节
ASCII码:'a'-----97 'A'------65 '0'----48
int:整型,用于存储整数,占用4个字节,范围-2^31到2^31-1
long:长整型,用于存储整数,占用8个字节,范围-2^63到2^63-1
float:单精度浮点型,用于存储小数,占用4个字节,不能表示精确的值
double:双精度浮点型,用于存储小数,占用8个字节,不能表示精确的值
boolean:布尔型,用于存储true或false,占用1个字节
整型直接量将默认为int类型,加L或l为long类型,小数直接量默认值为double类型,加f或F为float类型
三、类型间的转换
类型从小到大:byte、short(char)、int、long、float、double
两种方式:
1.自动/隐式类型转换:小类型到大类型
2.强制类型转换:大类型到小类型
语法:(要转换的数据类型)变量
注意:强转可能会溢出或丢失精度
两点规则:
整数直接量可以直接给byte、short、char类型赋值,但不能超出范围
byte、short、char参与运算时,系统将自动将其统一转换为int类型进行运算
今日代码:
/* - 声明一个变量,一次声明多个变量。 - 声明变量直接初始化,先声明变量,而后再给变量初始化。 - 声明整型变量g,声明另一个整型变量h并赋值为g+10,输出变量h的值。 - 声明整型变量i,在i本身基础之上增10,输出变量i的值。 - 声明一些正确的和错误的变量名。 */ int a1; int b12,c1,d1; int a2=1; int a3; a3=2; int g=2; int h=g+10; System.out.println(h); int i=1; i=i+10; System.out.println(i); int ab$,a_1,$_0,$as_1,_$dd1; //int 1a; //编译错误,变量名不能以数字开头 /* - 声明初始化两个以上整数变量,并且输出两个整数变量的除法结果 - 声明两个很大的变量,然后相加,输出运算结果,测试运算溢出现象 */ int a4=2,a5=4; System.out.println(a5/a4); int a6=2,a7=3; System.out.println(a7/a6); int a8=5,a9=2; System.out.println(a9/a8); int a10=1000000000; int a11=2000000000; System.out.println(a10+a11); /* - 声明初始化两个以上的长整型变量 - 声明变量存储几个较大数据的运算,演示:若有可能溢出建议将L设计在第1个数字后。 */ long a12=123341L,a14=123414L; long a13=353657L,a15=124546788L; long a16=1243254356*2*10L; long a17=1243254356L*2*10; System.out.println(a17); /* - 声明初始化两个以上的浮点型变量 - 声明几个浮点型变量并将它们做数学操作,演示double运算的舍入误差问题 */ double d=3.0,d2=5.1,d3=8.222; System.out.println(d2-d);//2.0999999999999996 System.out.println(d3-d);//5.2219999999999995 /* 声明初始化两个以上的布尔型变量 */ boolean b=true,b21=false; boolean b3=false,b4=true; /* - 声明初始化五个以上的字符型变量 - 声明字符型变量,演示转义符 */ char c='1',c2='2',c3='4',c4=',',c5='a',c6='A',c7='*'; char c8='\''; System.out.println(c8); /* - 声明几个变量,演示自动类型转换和强制类型转换的语法 - 声明一个较大类型的长整型变量,演示强转可能会发生的溢出问题 - 声明一个较大精度的浮点型变量,演示强转可能会发生的丢失精度问题 */ int a=5; double d4=a; int a22=10; long l=a22; long l1=100L; int a19=(int)l1; long l2=10000000000L; int a20=(int)l2; System.out.println(a20); double d5=5.22; int a21=(int)d5; System.out.println(a21); /* - 声明两个byte型变量b1和b2,并赋值为直接量 - 声明一个byte型变量,并赋值为b1与b2的和 */ byte b1=5,b2=6; byte b31=(byte)(b1+b2); System.out.println(b31);