JAVA数剧类型
注释
单行注释//
多行注释/*
*/
文本注释/**
*
*/
强类型语言
要求变量的使用要严格符合规定,所有变量都必须先定义后使用
弱类型语言
java的数剧类型分为两大类
-
基本类型
整数类型
-
byte占一个字节
-
short占2个字节
-
int占4个字节(最常用)
-
long占8个字节
2.浮点类型
-
float占4个字节
-
double占8个字节
3.字符类型
-
char占2个字节
4.boolean类型
boolean占1位数值只有true和false
2.引用数剧类型
-
类
-
接口
-
数组
拓展问题
-
整数拓展进制问题
二进制用0b 十进制 八进制0 十六进制0x (0~9 a~f)
2.浮点数拓展
//使用BigDecimal 数学工具类 //==================== //float 有限 离散 舍入误差 大约 接近但不等于 //double //最好完全避免使用浮点数进行比较 float f = 0.1f;//0.1 double d = 1.0/10;//0.1 System.out.println(f==d); System.out.println(f); System.out.println(d); //f=0.1 d=0.1 false
float d1 = 23213123123213f; float d2 = d1+1; System.out.println(d1==d2); //true
3.字符类拓展
//字符拓展 //======================================== System.out.println("==========================="); char c1 = 'a'; char c2 = '中'; System.out.println(c1); System.out.println((int)c1);//强制转换 System.out.println(c2); System.out.println((int)c2);//强制转换 //a //97 //中 //20013 //所有的字符本质还是数字 //编码 Unicode 表 (97=a 65=A) 2字节 65536 Excel 2 16 = 65536 //U0000 UFFFF char c3='\u0061'; System.out.println(c3);//a //转义字符 //\t 制表符 //\n 换行 //........ System.out.println("Hello\nWorld"); /*Hello World */
System.out.println("==========================="); String sa =new String("hello world"); String sb =new String("hello world"); System.out.println(sa==sb); String sc ="hello world"; String sd = "hello world"; System.out.println(sc==sd); //false //true
new开辟了一个新的空间,这里创建String的方式是新建一个内存堆,比较的是指向内存堆的位置是否相同
4.布尔值扩展
//布尔值扩展 Boolean flag =true; if(flag==true){} if (flag) {}
面试问题==与equals区别
==比较基本数剧类型比较的是数据值,比较引用数剧类型比较的是内存地址
equals是Object类中的方法,其本质上与==相同,但有些类重写了equals方法,实现了该类自己的equals方法比较逻辑,例如string中的equals比较的就是其字符值,另外重写了equals后,也必须重写hashcode()方法