变量与类型
1、java中常用的基本数据类型
总结的较为重要的知识点:
- 数据类型的大小和操作系统是多少位没有关系
- 基本数据类型对应的包装类型:两个特殊的 char—Charcater,int—Integer,别的首字母大写
- 在字符变量中:计算机中的字符本质上是一个整数. 在 C 语言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符. 因此一个字符占用两个字节, 表示的字符种类更多, 包括中文
- 变量用小驼峰的命名规则
- boolean 类型的变量只有两种取值, true 表示真, false 表示假.,Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法(与C语言区别)
- boolean 类型有些 JVM 的实现是占 1 个字节, 有些是占 1 个比特位, 这个没有明确规定
- String 不是基本类型, 而是引用类型
- 当一个 + 表达式中存在字符串的时候, 都是执行字符串拼接行为,因此我们可以很方便的使用 System.out.println 同时打印多个字符串或数字
2、final关键字
- 用final修饰过的表示为常量,表示在程序运行过程中不能改变的量,相当于C语言的const
- 被final修饰的变量,只能初始化一次
3、类型转换
- 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型.
- 如果需要把范围大的类型赋值给范围小的, 需要强制类型转换, 但是可能精度丢失.
- 将一个字面值常量进行赋值的时候, Java 会自动针对数字范围进行检查
4、类型提升
- 小于4个字节的:会先提升为4个字节然后运算:由于计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据. 为了硬件上实现方便, 诸如 byte 和 short 这种低于4 个字节的类型, 会先提升成 int, 再参与计算
byte a = 10;
byte b = 20;
byte c = (byte)(a + b);
System.out.println(c);
- 大于4个字节的:当 int 和 long 混合运算的时候, int 会提升成 long, 得到的结果仍然是 long 类型, 需要使用 long 类型的变量来接收结果. 如果非要用 int 来接收结果, 就需要使用强制类型转换
int a = 10;
long b = 20;
int c = a + b; // 编译出错, 提示将 long 转成 int 会丢失精度
long d = a + b; // 编译通过
5、异常
异常分为两类
- 受查异常(编译时期的异常):一定要由程序员进行异常处理,程序才能运行
- 非受查异常(运行时期的异常):在程序运行过程中,所发生的异常
运算符
6、逻辑运算符
表达式必须为布尔类型表达式
7、位运算符
8、移位运算符
8、条件运算符
表达式1 ? 表达式2 :表达式3
判断1真假,若为真,则执行2,若为假,则执行3
// 求两个整数的最大值
int a = 10;
int b = 20;
int max = a > b ? a : b;