变量声明和定义
int a = 10;//(一)
int a;//(二)
a = 10//(三)
在上述代码中,第(一)行代码可以拆分成第(二)和第(三)行代码。
其中第二行代码表示我们声明了一个整数类型(int)变量a;
第三行代码,表示我们对这个a变量进行了赋值(初始化),即完成了定义。
需要注意:
1.变量在使用前一定要声明和定义,所以建议使用第一行的代码,在声明的同时初始化
2.变量不可以重复声明,但可重复赋值,覆盖。
3.变量使用时不能修改类型。如已经声明为int型的变量,不能直接附一个double类型的值。
8种基本数据类型
整型:byte(8位)、short(16位)、int(32位)、long(64位)
浮点型:float (32位)、double(64位)
字符型:char(16位)
布尔型:boolean
byte x=127;
short a=30000;
a=(short)x;//强制类型转换
int b=2100000000;
long c = 21000000000l;//数后面加L/l
//long 通常表示时间-ms
//long =0 时,格林威治时间 1970年1月1日 00:00:00
//小数的字面量默认double类型,整型字面量默认int
float f=3.14f;
double d=5.0-4.9; // 1/10除不尽,无限接近0.1
//浮点类型精度缺失,不能判断浮点型相等
//1.9元 用1900厘表示,通过变换单位完成实际项目中的比较
char t='a';
t=65535;//输出“?”符号
System.out.println(t);
t='\u4e2d'; //unicode-16进制,"中"
boolean flag = true;
flag = false;
需注意:
1.char类型跟int类型进行计算的时候会自动转换为int类型
2.浮点类型精度缺失。
3.char底层采用unicode编码保存
4.在使用char t = 65535;类型代码时,注意是否越界。
5.自动类型转换 小范围可以转化为大范围,不然要强制类型转换,比如short可以自动变int。
包装类
包装类(为了满足一切皆对象,包装基本数据类型)
基本数据类型 | 包装类 |
---|---|
int | Integer |
char | Character |
byte | Byte |
short | Short |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
public void Test01() {
Integer i = new Integer(10); //
i = new Integer(“10”);
i = 10; //类似于字符串赋值
@Test
public void Test01() {
Integer i = new Integer(10); //
i = new Integer("10");
i = 10; //类似于字符串赋值
Integer i2 = Integer.valueOf(5);
System.out.println(i2);
i2 = Integer.parseInt("5"); //将字符串数转换成整数
i2 = Integer.parseInt("15", 16); //16进制
//Integer、String才有常量池 :前者数据范围:-128~127,超过范围相当于new了一个新对象
//Byte 、 Double之类没有
}
@Test
public void Test0() {
Integer i = 20;
int a =30;
Class c1 = i.getClass();
Class c2 = int.class;
// i = integer.valueOf(a);编译器自动调用
i = a; //自动装箱
// a = i.intValue;
a = i; //自动拆箱
}
intValue()是把Integer对象类型变成int的基础数据类型;
parseInt()是把String 变成int的基础数据类型;
valueOf()是把String 转化成Integer对象类型;