Java学习语言基础02
什么是变量?
1.变量是一个代词,指代内存中的数据。
变量必须有特定的数据类型,不同的数据类型表示不同的数据存储结构。
2.变量的关键词-----类型
Java是强类型语言,变量在使用前必须声明,指明其数据类型、编译器会根据变量的类型检测对变量的操作是否合法
int a=100;
System.out.println(a);
System.out.println(b);//变量没有被声明
a=123.456;//对变量的赋值与变量的类型不匹配
可以一条语句声明多个同类型变量
int a,b,c;
int a1=1,b1,c1=2;
3.变量的命名
规定:
3.1 只能包含字母,数字,_,$,并且不能以数字开头
3.2 严格区分大小写
3.3 不能使用关键字(Java已经用了的)
建议:不建议中文命名变量
最好“见名知义”
驼峰命名法----第一个单词首字母小写,其余单词首字母大写
4.变量的关键词----初始化
Java变量在使用前必须初始化,及赋确定的初值,这点和C语言不同
int a;//第一次使用前必须赋以确定值
a=100;
System.out.println(a)
int a=100;//通常声明和赋初值结合在一起
int b;
System.out.println(b);//编译错误,未赋初值
int c;
if(m>0){
c=100;
}
System.out.println(c);//编译错误,if语句块可能不会执行,不能确定变量c一定会被初始化
5.变量的使用
必须与数据类型相匹配
int a=2.5;//错误,类型不匹配
6.变量的关键词----作用域
Java变量有其存在范围,程序运行超出这个范围后,这个变量所占用的空间将被收回
同名变量,作用域不能重叠
//编译错误!同名变量作用域重叠
int a=100;
for(int i=0;i<=100;i++){
int a=100;
//正确编译!三个变量b的作用域没有重叠
for(int i=0;i<=100;i++){
int b=100;
}
for(int j=0;j<=100;j++){
int b=200;
}
int b=300;
}
7.八种基本数据类型
7.1整数类型----int
- int(32位)的最大表示范围为:-231~231 -1,即-2147483648 ~ 2147483647 。如果更大的整数可以使用long。
- 直接量(literal),即直接写出的常量。整数的直接量类型默认是int类型,整数直接量也经常写16进制的形式(以0x或0X开头)。
int a=100000;
int b=0x186a0;
int c=0303240;
int d=10000000000;//直接量超过整数的整数表达范围。
7.2整数类型----long
- long ( 64位)的最大表示范围为: -263 ~263-1( 9223372036854775807 )。
- 如果要表示long直接量,需要以或结尾。
long timeMillis = System.currentTimeMillis();
System.out.printIn(timeMillis);
//System.currentTimeMillis();方法返回1970年1月1日零点到此时此刻所经历的毫秒数,该方法经常用于计时操作。
long d1=100000000;//直接 写出的即为int类型,但超过的整数的表达范围。
long d2=100000000l;
7.3浮点类型
- 浮点数,就是小数,包括: float和 double
- double的精度要大于float ,因此,一般只使用double计算浮点数。默认的浮点数字面量是double类型。
- 由于舍入误差的原因,浮点数不能精确运算。
double money= 3.0;
System.out.printIn(money- 2.9);//01.10000000000000009
//注意舍入误差的问题,如果需要精确计算,可以使用BigDecimal
7.4字符类型
- 字符类型事实上是一个16位无符号整数,这个值是对应字符的编码
- Java字符类型采用Unicode字符集编码。Unicode是世界通用的定长字符集, 所有的字符都是16位
- 字符直接量可以采用诸‘中’的形式,也可以采用16进制的表示形式,例如:’ \u4e2d’
char c1 ='中';
char c2 = '\u4e2d';
//'4e2d' 为'中' 所对应的16位Unicode编码的16进制表示形式。
- 对于不方便输入的字符采用转义字符表示,如’\n’ ‘\t’ ‘\’ ‘\b’ ‘\r’
- 数字编码:‘0’–48,‘1’–19,…
- 英文编码:‘A’–65,‘B’–66,…
- 字符是整数,可以参与运算
char c='A'+1;
int n='6'-'0';
- 整数字面量(不超范围)可以给char变量赋值控制字符是没有显示效果
- 只有本地字符集中存在的字符才能显示
7.5基本类型的转换
- 自动类型转换(隐式类型转换) : 从小类型到大类型可以自动完成:
- 强制类型转换:从大类型到小类型需要强制转换符,会造成精度损失或者溢出。
longl= 1024L * 1024 * 1024 * 4;inti= (int) I;//会造成溢出!
double pi= 3.1415926535897932384;
float f = (float) pi;//会造成精度损失
- java规定两点规则:
整数直接量可以直接赋值给byte,char,short。
byte,char,short只要参与运算,则一律转为int。