Java 根底
1 数据类型
1. 标识符
1. 有字母. 数字, 下划线,& 组成
2. 不能以数字结尾
3. 做到见名知意, 严格辨别大小写
2. 变量
概述: 程序中想要记录一些始终在变的量, 就须要定义变量.
变量的三要素: 变量类型 变量名 = 变量值
3. 数据类型的品种
根本类型: 8 种
byte、short、int、long、float、double、char、boolean
援用类型:只有不是 8 种的根本类型,其余的都是援用类型。
4 练习 1:根本类型的取值范畴
- char 类型 – 字符型 – 面试题:char 类型能够存一个中文汉字吗?
package cy.pj.basic;
public class Test_Scope {public static void main(String[] args) {
char c1 = '0' ;
char c2 = 'a' ;
char c3 = '中' ;
char c4 = '?' ;
char c5 = 128 ;
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
System.out.println(c4);
System.out.println(c5);
}
}
char 类型,能够间接存储一个数字自身,然而实质上,c5 还是一个 char 类型。底层会拿着你存入的数字,去 ascii 码表里查问对应的字符,而后应用字符自身。
4.2 变量替换
// 测试 变量值的替换
public class Test4_Exchange {public static void main(String[] args) {
//1, 定义变量 a 和 b
int a = new Scanner(System.in).nextInt() ;
int b = new Scanner(System.in).nextInt() ;
System.out.println("替换前:a="+a+",b="+b);
//2, 开始替换
int c = a ;// 创立 c 保留 a 的值
a = b ;// a 没值了, 找 b 要
b = c ;// b 没值了, 找 c 要
System.out.println("替换后:a="+a+",b="+b);
}
5 根本类型的字面值
1. 整数字面值是 int 类型
2. 浮点数的字面值是 double 类型
3.byte,short,char 三种比 int 知道整数能够用范畴内的值间接赋值
4.char 类型的取值范畴是 0~65535, 不能超出, 超出就报错
5.byte 的取值范畴是 -128~127, 不能超出, 超出就报错
6.short 的取值范畴是 -32768~32767, 不能超出, 超出就报错
7.5.5 默认是 double 类型, 然而加了后缀 f(F) 就会变成 float 类型
8.10000000000 默认是 int 类型, 然而曾经超出了 int 范畴, 间接赋值会报错, 加后缀 L(l), 把右侧的 int 类型的值转成 long
进制前缀
二进制的数据 0b 开始 — 0b0011
八进制的数据 0 开始 — 0567
十六进制的数据 0x 开始 — 0x0987C char 类型是 \u 开始 — u0000
2 根本类型的类型转换
1. 小转大 – 隐式转化
把右侧的小类型 byte 类型的 a, 转成左侧的大类型 long 类型的 b – 能够间接转
2. 大转小 – 显示转化
右侧的大类型 double 类型的 m, 转成左侧的下类型 int 类型的 n – 不能够间接转
解决方案是: 强转 / 显示转化 – 加代码 –(小类型)
3 运算规定
1. 计算结果的数据类型,与最大类型统一
2.byte,short,char 三种比 int 小的整数,运算时会先主动转换成 int
3. 右侧曾经变成大类型 int 了, 给左侧的小类型, 不能够间接赋值 — 须要强转
4.java 对于小数运算时会产生不准确的景象
5. 小数运算时的非凡值 –Infinity NaN(not a number)
3.1 运算符
1. 算术运算符
+ - * / %(取余数) ++ --
2. 比拟逻辑符:后果是 boolean 值
==!=
3. 逻辑运算符: 后果是 boolean 值
+ !(取反, 非真即假, 非假即真)
&(逻辑与)-- 示意并且关系
1 & 2, 想得到最终的后果是 true, 要求是:1 是 true 并且 2 是 true
&&(双与 / 短路与)-- 示意并且关系(高效)
1 && 2 , 当 1 为 false 时, 后果早都注定了是 false,2 的代码就会被短路不必执行了, 提高效率
|(逻辑与)-- 示意或者关系
1 | 2 , 想得到最终的后果是 true, 要求是:1 是 true 或者 2 是 true
||(双或 / 短路或) -- 示意或者关系(高效)
1 || 2 , 当 1 为 true 时, 后果早都注定了是 true,2 的代码就会被短路不必执行了, 提高效率
4. 三元运算符
a ? b : c – 运算后果可能是 b, 也可能是 c, 具体是谁由 a 决定
当 a 判断成立时, 后果就是 b
当 a 判断不成立时, 后果就是 c
5. 赋值运算符
+= -= *= /= 复合赋值运算符
6. 自增自减
a++;// 符号在后, 先应用再加 1
++a;// 符号在前, 先加 1 再应用
a--;// 符号在后, 先应用再减 1
--a;// 符号在前, 先减 1 再应用