1.数据类型
- 数据类型
- 基本数据类型
- 数值型:byte,short,int,long,double,float
- 字符型:char
- 布尔型:boolean
- 引用数据类型
- 数组、类、接口
- 基本数据类型
1.1整型变量
基本语法格式:
int 变量名 = 初始值;
代码示例:
int a = 20;
System.out.println(a);
注意事项:
在java中,一个int变量占4个字节,与操纵系统无直接关系。
4个字节表示的数据范围是-2^31 ~ 2^31-1。如果运算的结果超出了int的最大范围,就会出现溢出情况。
1.2长整型变量
基本语法格式:
long 变量名 = 初始值;
代码示例:
long a = 25L;
System.out.println(a);
注意事项:
使用25初始化也可以,25的类型是int,而25L的类型是long,建议使用25L会好一些。
Java中long类型占8个字节,表示的数据范围-2^63 ~ 2^63-1。
1.3双精度浮点型变量
基本语法格式:
double 变量名 = 初始值;
代码示例:
double a = 1.0;
System.out.println(a);
注意事项:
Java中的double虽然也是8个字节,但浮点数的内存布局和整数差别很大,不能用2^n的形式表示数据范围。
1.4单精度浮点型变量
基本语法格式:
float 变量名 = 初始值;
代码示例:
float a = 1.0f;
System.out.println(a);
注意事项:
Java中的float占4个字节,但浮点数的内存布局和整数差别很大,不能用2^n的形式表示数据范围。
1.5字符类型变量
基本语法格式:
char 变量名 = 初始值;
代码示例:
char c = 'a';
System.out.println(a);
注意事项:
计算机中的字符本质上是一个整数,在Java中使用Unicode表示字符。一个字符占用两个字节。
1.6字节类型变量
基本语法格式:
byte 变量名 = 初始值;
代码示例:
byte a = 1;
System.out.println(a);
注意事项:
字节类型表示的也是整数,只占一个字节,表示范围-128 ~ 127。
1.7短整型变量
基本语法格式:
short 变量名 = 初始值;
代码示例:
short a = 1;
System.out.println(a);
注意事项:
short占用两个字节,表示的数据范围-2^15 ~ 2^15 - 1。
1.8布尔类型变量
基本语法格式:
boolean 变量名 = 初始值;
代码示例:
boolean a = true;
System.out.println(a);
注意事项:
boolean类型的变量只有两种取值,true表示真,false表示假。
boolean类型有些JVM实现是占一个字节,有些是占一个比特位,没有明确的规定。
1.9字符串类型变量
基本语法格式:
String 变量名 = 初始值;
代码示例:
String str = "abcd";
System.out.println(str);
注意事项:
字符串中一些字符需要转义
转义字符 | 解释 |
---|---|
\n | 换行 |
\t | 水平制表符 |
\’ | 单引号 |
\" | 双引号 |
\\ | 反斜杠 |
1.10变量的命名规则
1.一个变量名只能包含数字,字母,下划线,中文/$(不推荐) 。
2.数字不能开头。
1.11类型转换和类型提升
类型转换
1.不同数字类型的变量之间赋值,表示范围小的类型能隐式的转换为范围较大的类型。
2.如果需要把范围大的类型赋值给小的类型,需要强制类型转换,但可能会精度丢失。
3.将一个字面值常量进行赋值的时候,Java会自动针对数字范围进行检查。
类型提升
1.不同类型的数据混合运算,范围小的会提升为范围大的。
2.对于short,byte这些比4个字节小的会先提升为4个字节的int,再进行运算。
2.运算符
2.1算数运算符
基本四则运算 + ,-,*,/,%(取余)
2.2关系运算符
关系运算符==(等于), !=(不等于),<,>,<=(小于等于),>=(大于等于)
2.3逻辑运算符
&& ,||,!
逻辑与&&
两个操作数都为true,结果为true,否则结果为false。
int a = 1;
int b = 5;
int c = 10;
System.out.println(a < b && b < c);
逻辑或||
两个操作数都为false,结果为false,否则为true
int a = 1;
int b = 5;
int c = 10;
System.out.println(a < b || b < c);
逻辑非!
操作数为true,结果为false,操作数为false,结果为true
注意事项:
对于&&,如果左侧表达式值为false,则表达式的整体一定是false,右边的语句不执行
对于||,如果左侧的表达式为true,则表达式的整体一定是true,右边的语句不执行
2.4位运算
按位与 &:如果两个二进制位都是1,则为1,否则为0
按位或 |:如果两个二进制位都是0,则为0,否则为1
按位取反 ~:如果该位为1,则为0,如果该位为.,则为1
按位异或 ^:如果两个二进制位相同,则结果为0,结果不同则为1
注意事项:
对于&,|,即使已经得出表达式的整体结果,右边的表达式也要执行
2.5移位运算
左移<<:最左侧位不要,最右侧补0
右移>>:最右侧位不要,最左侧补符号位(正数补0负数补1)
无符号右移>>>:最右侧位不要,最左侧补0
2.6条件运算符
表达式1 ? 表达式2 : 表达式3;
当表达式1的值为true,整个表达式的值为表达式2,否则整个表达式的值为表达式3