——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
本章内容包括:
环境变量的介绍和配置;
Java关键字、标识符、常量;
进制转换;
数据类型及其转换。
path环境变量
(1)path环境变量的作用
保证可执行文件如javac.exe可以在任意目录下运行。
(2)path配置方案:
找到环境变量的位置,在系统变量里面
新建:
变量名:JAVA_HOME
变量值:D:\develop\Java\jdk1.7.0_60
修改:
变量名:Path
变量值:%JAVA_HOME%\bin;以前的内容
classpath环境变量
(1)classpath环境变量的作用
保证class文件可以在任意目录下运行。
(2)classpath环境变量的配置
找到环境变量的位置,在系统变量里面
新建:
变量名:classpath
变量值:E:\JavaSE\day01\code\HelloWorld案例 此目录下储存class文件
Java关键字
(1)被Java语言赋予特定含义的单词
(2)特点:全部小写。
(3)注意事项:goto和const也是关键字,作为保留字存在,无法使用。
标识符
(1)就是给类,接口,方法,变量等命名的字符序列
(2)组成规则:
英文大小写字母,数字,$和_
不能以数字开头,不能是java中的关键字,区分大小写
(3)常见的命名规则(见名知意)
A:包名 :全部小写,多级包用.隔开
B:类或者接口:驼峰法,每个单词首字母大写
C:方法或者变量:首字母小写,从第二个单词开始,每个单词首字母大写
D:常量:全部大写,多个单词用_隔开
常量
在Java中针对整数常量提供了四种表现形式
A:二进制 由0,1组成。以0b开头。
B:八进制 由0,1,...7组成。以0开头。
C:十进制 由0,1,...9组成。整数默认是十进制。
D:十六进制 由0,1,...9,a,b,c,d,e,f(大小写均可)组成。以0x开头。
进制转换
(1)其他进制到十进制
系数:就是每一个位上的数值
基数:x进制的基数就是x
权:对每一个位上的数据,从右,并且从0开始编号,对应的编号就是该数据的权。
结果:系数*基数^权次幂之和。如二进制110转换十进制: 1*2^2+1*2^1+0*2^0
(2)十进制到其他进制
除基取余,直到商为0,余数反转。如52转八进制:
52/8 = 6……4
6/8 = 0……6
所以结果为064
(3)进制转换的快速转换法
二进制到八进制,十六进制的转换:三个一位、 四个一位换成十进制组合起来。如110100转八进制:110=6 100=4 即64 064
转十六进制:0011=3 0100=4 即34 0x34
(4)正数 原码反码补码都相同
负数 原码首位为1 反码除首位相同 后面都相反 补码为反码最后一位+1
数据类型
A:基本数据类型:4类8种
B:引用数据类型:类,接口,数组。
基本数据类型
A:整数 占用字节数 1字节=8bit
byte 1
short 2
int 4
long 8
B:浮点数
float 4
double 8
C:字符
char 2
D:布尔
boolean 1
注意:整数默认是int类型,浮点数默认是double。
char可以存储一个汉字 因为char占用2字节。Java采用Unicode编码
数据类型转换
(1)boolean类型不参与转换
(2)默认转换
A:从小到大byte,short,char -- int -- long -- float -- double
long8自己 float4字节 能自动转换是因为
1 底层结构不同
2 float表示的数据范围比long的范围更大
B:byte,short,char之间不相互转换,直接转成int类型参与运算。
(3)强制转换
从大到小
格式:目标数据类型 变量名 = (目标数据类型) (被转换的数据);
(4)思考题和面试题:
A:下面两种方式有区别吗?
float f1 = 12.345f; 直接是float类型
float f2 = (float)12.345; 将double转为float 会有精度损失 截取时操作的是补码
B:下面的程序有问题吗,如果有,在哪里呢?
byte b1 = 3;
byte b2 = 4;
byte b3 = b1 + b2; 报错 变量 类型提升为int 不能直接赋值给byte b3
byte b4 = 3 + 4; 不报错 常量,计算出来 在byte范围内,不报错
C:下面的操作结果是什么呢?
byte b = (byte)130; 结果为-126
130的二进制原反补码为 00000000 00000000 00000000 10000010
截取操作后为 10000010 依然是补码 转为反码10000001
转为原码为 11111110 即结果为-126
byte b = (byte)128; -128
byte b = (byte)129; -127
byte b = (byte)131; -125
byte为-128~127
规律:超过上限127后强转类型,赋值就重新从下限开始。
D:字符参与运算
是查找ASCII里面的值 背过以下三个
'a' 97
'A' 65
'0' 48
System.out.println('a'); //a
System.out.println('a' + 1); //98
E:字符串参与运算
这里其实是字符串的连接
字符串数据和其他数据做+后结果为字符串类型 此处的+为字符串连接 而不是加法运算
System.out.println("hello"+'a'+1); //helloa1
System.out.println('a'+1+"hello"); //98hello
System.out.println("5+5="+5+5); //5+5=55 not10