标识符
关键字
Java所有部分都需要名字。类名,变量名和方法名都属于标识符
注意点
-
标识符首位只能是字母,”$“符号,下划线
-
除首位外,其它标识符部分可以使用数字,字母,“$”符号,下划线
-
标识符不能使用关键字命名
-
Java标识符是严格区分大小写的
-
建议使用英文单词对标识符进行命名
基本数据类型
-
类型语言
- 强类型语言(Java、C++等)
变量的使用要严格符合规定,先定义后使用
安全性高,但速度慢
- 弱类型语言(VBScript、JavaScript)
-
数据类型
-
基本类型
-
数值类型
(1)整数
① byte(占1个字节)
② short(占2个字节)
③ int(占4个字节)
④ long(占8个字节):要在结尾处加L
(2) 浮点数
① float(占4个字节):要在结尾处加f
② double(占8个字节)
(3) 字符
char(占2个字节)
-
布尔类型
boolean(占一位):True 和 False
-
-
引用类型
类,接口,数组
-
-
面试题的扩展
-
整数
- 二进制(0b),八进制(0),十进制,十六进制(0x)(0-9,A-F)
//表示八进制数,结果为8 int i = 010;
-
字符(char)
char c = "中"; System.out.print((int)c); //进行强制转化
所有的字符本质依旧是数字
unicode编码(U0000-UFFFF)占两个字节,unicode有一个编码表,eg 97:“a”,\u进行转义
//使用\u进行转化,必须在编码的范围内且必须使用字符的单引号 char i = '\u0061'; //结果为a
-
转义字符(eg:\n :tab键;\t:换行)
System.out.println("Hello\nWorld"); 输出结果为: Hello World
-
浮点数
float与double:有限的,离散的,舍入误差,接近但不等于
因此最好完全避免使用浮点数进行比较
如需进行比较,不能有误差(银行业务),可使用数学工具类:BigDecimal
-
布尔类型
boolean flag = true; if (flag){} //相当于 if (flag==true){}
less is more:代码应精简易读
-
字节
-
位(bit):计算机内部数据存储的最小单位,10010100是一个八位二进制数
-
字节(byte):计算机数据处理的基本单位,一般用大写字母B表示
-
位与字节的关系
1B=8b
1024B=1KB
1024KB=1M
1024M=1G
1024G=1TB
类型转化
由于Java属于强类型语言,因此在进行有些运算时,需先进行类型的转化(不同类型转化为同一类型)。
转化类型
-
强制类型转化(高 —> 低)
-
格式:(类型)变量名
注意:当变量范围超过转化类型的范围时,会造成内存溢出;转化时也可能存在精度问题
int i = 128; byte a = (byte)i; //a的结果为-128(随便的数),因为byte的取值范围为-128-127
计算过程出现溢出问题时,先转化类型再继续运算
int money = 10_000_000; int year = 20; long total = money * ((long)year);
-
-
自动类型转化(低 —> 高)
int i = 278; double a = i; //可自动转化
-
例子
char i = 'a'; int j = i + 1; System.out.println(j); System.out.println((int)j); /* *结果为: *98 *b */
JDK7新特性
数字可以使用_进行分割(下划线不会作为输出结果)
int money=10_000_000;
System.out.println(money);
//结果为:10000000