目录
常量--程序运行时不能改变的量,在程序编译时就确定其值是几了
变量--程序运行时可以改变的量,在程序运行时才知道里面的值
数据类型
整型变量int
int a=10;//4字节 //java中的int没有所谓的无符号类型,统一都是有符号类型 System.out.println(a); System.out.println(Integer.MAX_VALUE); System.out.println(Integer.MIN_VALUE); //变量的命名:小驼峰-数字,字母,下划线。数字不能打头 //java使用变量前要初始化,不初始化会报错
长整型变量long
long b=20L;//10+大写L表明数据类型为long 10的类型是int //java中不存在long long类型 System.out.println(b); System.out.println(Long.MAX_VALUE); System.out.println(Long.MIN_VALUE);
双精度浮点型变量double
double d=2.0; double e=5.0; System.out.println(d); System.out.println(Double.MAX_VALUE); System.out.println(Double.MIN_VALUE);
单精度浮点型变量float
Java本身是一个强类型语言,数据类型之间不匹配就会报错,应写成 12.5f
字符类型变量char
char ch='A';
1、Java 中使用“单引号 + 单个字母”的形式表示字符字面值;
2、计算机中的字符本质上是一个整数, C使用 ASCII 表示字符,Java 使用 Unicode 表示字符。因此一个字符占用两个字节,表示的字符种类更多,包括中文g
字节类型变量byte
表示整数,占一个字节,表示范围 -128~+127
短整型变量short
short c=10;//2字节16位,取值范围 -2^15~2^15-1
布尔类型变量boolean
1. boolean 类型的变量只有两种取值,true 表示真,false 表示假;
2. Java的 boolean 类型和 int 不能相互转换,不存在 1 表示 true,0 表示 false 这样的用法;
3. boolean 类型有些 JVM 的实现是占 1 个字节,有些是占 1 个比特位,这个没有明确规定
字符串类型变量string
String str="hello"; System.out.println(str); System.out.println("hello"+"world");//+是拼接的意思 System.out.println("hello"+10+20);//其他数据类型和字符串使用+拼接,结果就是一个字符串 System.out.println(10+20+"hello"); System.out.println(10+""+20+"hello");
//输出a=10,b=20 System.out.println("a="+10+",b="+20);
转义字符 解释说明 \n 换行 \t 水平制表符 \' 单引号 \" 双引号 \\ 反斜杠
常量--程序运行时不能改变的量,在程序编译时就确定其值是几了
字面值常量
10 int 字面值常量(十进制)
010 int 字面值常量(八进制) 由数字 0 开头. 010 也就是十进制的 8
0x10 int 字面值常量(十六进制) 由数字 0x 开头. 0x10 也就是十进制的 16
10L long 字面值常量. 也可以写作 10l (小写的L)
1.0 double 字面值常量. 也可以写作 1.0d 或者 1.0D
1.5e2 double 字面值常量. 科学计数法表示. 相当于 1.5 * 10^2
1.0f float 字面值常量, 也可以写作 1.0F
true boolen 字面值常量, 同样的还有 false
'a' char 字面值常量, 单引号中只能有一个字符
"abc" String 字面值常量, 双引号中可以有多个字符
final关键字修饰的常量 常用大写来进行标识
final int a=10;
类型转换
Java作为强类型编程,不同类型之间相互赋值时,会有严格的校验
int和long/double相互赋值
int a=10; long b=20; a=b;//编译出错,提示可能会损失精度 b=a;//编译通过 int a=10; double b=1.0; a=b;//编译出错,提示可能会损失精度 b=a;//编译通过
int与boolean相互赋值
两种类型不相干,不能相互赋值
类型提升
byte & int
byte c=1+2; System.out.println(c);
1和2是整型的字面值常量,在编译时当成是3
int & long
进行类型提升后就不会报错
不同类型的数据混合运算, 范围小的会提升成范围大的.
对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算int & string
如有错误,请多指教!