UM2L2——变量与常量
UM2L2——变量与常量
本章代码关键字
1 | System.out.println() // Java的输出字符串到终端的方法 |
Java的变量和常量
Java的变量类型和C#非常的类似,其中需要注意的是
- Java中没有专门的无符号类型
- Java中的常量关键字和C#不一样
- 一些关键字和方法写法不同
其它的变量相关操作表现和C#中很相似
有符号整型
-
byte
1个字节,8位,范围:
-2^7 ~ 2^7 - 1
,-128 ~ 127
1
2
3System.out.println("byte位数" + Byte.SIZE);
System.out.println("byte最大值" + Byte.MAX_VALUE);
System.out.println("byte最小值" + Byte.MIN_VALUE);输出:
1
2
3byte位数8
byte最大值127
byte最小值-128 -
short
2个字节,16位,范围:
-2^15 ~ 2^15 - 1
,-32768 ~ 32767
1
2
3System.out.println("short位数" + Short.SIZE);
System.out.println("short最大值" + Short.MAX_VALUE);
System.out.println("short最小值" + Short.MIN_VALUE);输出:
1
2
3short位数16
short最大值32767
short最小值-32768 -
int
4个字节,32位,范围:
-2^31 ~ 2^31 - 1
,-2,147,483,648 ~ 2,147,483,647
1
2
3System.out.println("int位数" + Integer.SIZE);
System.out.println("int最大值" + Integer.MAX_VALUE);
System.out.println("int最小值" + Integer.MIN_VALUE);输出:
1
2
3int位数32
int最大值2147483647
int最小值-2147483648 -
long
8个字节,64位,范围:
-2^63 ~ 2^63 - 1
,9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
1
2
3System.out.println("long位数" + Long.SIZE);
System.out.println("long最大值" + Long.MAX_VALUE);
System.out.println("long最小值" + Long.MIN_VALUE);输出:
1
2
3long位数64
long最大值9223372036854775807
long最小值-9223372036854775808
有符号整型的默认值都是0
1 | public class Lesson2 { |
输出:
1 | 0 |
无符号整型
注意:Java最初设计中没有无符号类型
Java 8 中添加了一些和无符号类型有关的一些方法(但是一般使用较少)
浮点型
-
float
4个字节,32位,如果要声明一个
float
类型的数字,需要在最后加上一个f
当小数点后面的值为0时,小数点后的内容可以省略,当小数点前面的值为0时,小数点前面的内容可以省略1
2
3
4
5
6
7
8
9System.out.println("float位数" + Float.SIZE);
System.out.println("float最大值" + Float.MAX_VALUE);
System.out.println("float最小值" + Float.MIN_VALUE);
float f = .5f;
System.out.println(f);
f = 1.f; //等于1.0f
System.out.println(f);
f = .5f; //等于0.5f
System.out.println(f);输出:
1
2
3
4
5
6float位数32
float最大值3.4028235E38
float最小值1.4E-45
0.5
1.0
0.5 -
double
8个字节,64位,声明一个
double
类型的数字,最后加不加d
都一样1
2
3
4System.out.println("double位数" + Double.SIZE);
System.out.println("double最大值" + Double.MAX_VALUE);
System.out.println("double最小值" + Double.MIN_VALUE);
double d = 1.5;输出:
1
2
3
4double位数64
double最大值1.7976931348623157E308
double最小值4.9E-324
1.5
其它类型
-
boolean
单个
boolean
在编译时使用int
类型,这时4个字节;boolean
数组时,编译时用字节数组,所以占1个字节,默认是false
1
2boolean b0 = true;
boolean[] bs; -
char
2个字节,16位,注意,声明一个
char
的字符需要使用''
而不是""
1
2System.out.println("char位数" + Character.SIZE);
char c = 'A';输出:
1
char位数16
-
String
根据字符串长度而定,注意!Java的
String
关键字首字母大写!1
2String str = "123";
System.out.println(str);输出:
1
123
常量
关键字:final
特点:必须初始化,不能被修改
和C#不同,Java的常量不是静态的,因此如果想让常量在静态代码块内使用就必须要加上static
1 | static final int iii = 19; |
类型转换
-
隐式转换
低级(字节少的)到高级(字节多的)
记住一句话 大容器 可以装 小容器 不需要我们去处理
byte
——>short
——>char
——>int
——>long
——>float
——>double
1
2
3byte b2 = 111;
short s2 = b2;
System.out.println(s2);输出:
1
111
-
显式转换
括号强转,高级到低级可能会溢出,丢失精度或者报错
1
2
3
4
5short s3 = (short) i3;
System.out.println(s3); //溢出
float f2 = 2.5f;
i3 = (int) f2;
System.out.println(i3); //丢失精度输出:
1
2-25536
2 -
字符串转数值
包装类中的
parse
相关方法1
2
3
4
5
6int i4 = Integer.parseInt("123");
System.out.println(i4);
i4 = Integer.parseInt("101", 2); //二进制字符串转数字
System.out.println(i4);
Short s4 = Short.parseShort("1234");
System.out.println(s4);输出:
1
2
3123
5
1234