一、Java基础
1. 1 Java 关键字、标识符
1.1.1 关键字
常见的关键字就是这些
基本数据类型: byte short int long float double boolean char
流程控制中的:if else switch case
循环中使用的:for foreach while break continue do goto
异常处理中的:try catch throw throws finally
1.1.2 标识符
所谓标识符就是 名字,Java中变量的命名规则
-
所有标识符都应该的是 以 字母、美元符$、下划线_ 开头的
-
首字母之后,可以是任意字符
-
不能把关键字 作为变量名 或者 方法名
-
标识符是 大小写敏感的
-
合法的标识符:age、$abc、_123
-
不合法的标识符:123、#abc、-abc
-
也可以使用中文作为标识符 但一般不建议
1.1.3 Java 数据类型
1.1.3.1 基本数据类型
整数类型:
byte byte b = 1;
short short s = 1;
int int i = 1;
long long l = 1L; // 注意 long类型 直接赋值需要在 数字后面接L 来表示他是long类型,因为Java整数类型的数字默认是 int
boolean boolean flag = true 注意 boolean 只是占了 1 位 也就是 1 bit
1.1.3.2 引用数据类型
什么是引用数据类型,所有非基本数据类型的 类型 就是 引用数据类型如 String 等
1.1.3.3 拓展
-
整数拓展
进制 二进制0b 八进制0 十六进制0x
int i = 10;
int i = 010; //八进制0
int i = 0x10; //十六进制0x -
浮点型拓展
银行业务怎么表示 钱?
用 BigDecimal 数学工具类
float 有限 离散 舍入误差 大约 接近但不等于
double
float f = 0.1f //注意 float 直接数值赋值 得在后面结上 标识 f 因为 Java 中默认是 double 类型
double d = 0.1
f == d 吗? 答案是 false
float f1 = 111111111112222222222222233333333f;
float f2 = f1 + 1;
f1 == f2 吗? 答案是 true 因为 float 他是有限得 如果超出了那么 他的值就是他的 最大值所以两者相等了。 -
字符拓展
char c1 = 'a';
char c2 = '中';
System.out.println((int)c2); // 强制类型转换
//所有的 字符本质还是数字 他们都是和 一个 Unicode 表 一一对应得
97 = a
65 = A
一共有 0 - 65536
Excel 大小 也是 0 - 65536 的大小 2的 16 次方
字符串
String s1 = new String("abc");
String s2 = new String("abc");
s1 == s2 吗? 答案是 false
String s3 = "abc";
String s4 = "abc";
s3 == s4 吗? 答案是 true
两个答案为什么是不同的,因为 String 它 new 一个对象 是在 堆内存中 开辟一个空间单独存 他的值,而 == 符号 引用类型判断的是 地址,因为s1和s2 都是在堆内存中开辟的一个空间,他们的 地址不同,因此比较的 结果不同。
那为啥 s3 == s4呢? String 对象 直接把字符串赋值的操作,它首先存在是会在 String 的一个常量池中,下次这样赋值,他会首先去常量池中找是否有相同的值,如果有 那么直接 把这个值的对象给 它,而不会再去开辟一个空间,因此 s3 == s4
原创文章,作者:dweifng,如若转载,请注明出处:https://blog.ytso.com/278116.html