数据类型
当创建变量时,需要在内存中申请空间,内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来村粗该类型的数据。
PS:
(类似于将内存空间分为N多个小房间,这个小房间代表着存储空间,每个小房间只允许一种类型的数据通过,这个“通行证”,或者叫“身份证”就是数据类型)
根据数据类型的不同,Java可以分为两大数据类型:
1. 基本数据类型
2. 引用数据类型
基本数据类型
1.byte 字节型
内存占用1个字节
取值范围:-128~127(2的7次方)
默认值为:0
(0占一位所以正数范围只到127,其他类型相同,后略)
2.short 短整型
内存占用2个字节
取值范围:-32768~32767(2的15次方)
默认值为:0
3.int 整数型
内存占用4个字节
取值范围:-2147483648~2147483648(2的31次方)
默认值为:0
4.long 长整型
内存占用8个字节
取值范围:-2的63次方~2的63次方-1(2的63次方)
默认值为:0l
5.float 单精度浮点型
内存占用4个字节
取值范围:1.4013E-45~3.4028E+38(科学计数法,E代表10的次幂)
默认值为:0.0f
6.double 双精度浮点型
内存占用8个字节
取值范围:4.9E-324~1.7977E+308
默认值为:0.0d
7.char 字符型
内存占用2个字节
取值范围:0-65535
默认值为:’\u0000’
8.boolean 布尔型
内存占用1个字节
取值范围:true,false
默认值为:false
引用数据类型
引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型。变量一旦声明后,类型就不能被改变了。
1.class 类
2.interface 接口
3.数组
JAVA常量
常量:在程序运行时是不能被修改的。在 Java 中使用 final 关键字来修饰常量。
JAVA中常量的分类
代码演示空常量、nul、空格量区别l:
// final 常量修饰
// 字符串
String name="uzi";
// 字符
char sex='m';
// st1没有赋值,但是不为null(空常量)
String st1 ="";
// st2是空常量,指没有存储空间
String st2 =null;
// st3里有值,为空格量
String st3 =" ";
JAVA变量
变量简单的来讲就是在运行过程中,值会改变的量。
命名规则:
数据类型 变量名 = 数据值
变量分类:
- 类变量:独立于方法之外的变量,用 static 修饰。
- 实例变量:独立于方法之外的变量,不过没有 static 修饰。
- 局部变量:类的方法中的变量,使用前必须先初始化
public class TestDay01 {
// 类变量(在类里)
public static final int age=18;
// 实例变量
public int userNum=2;
// 声明类名时需要大驼峰,声明变量时需要小驼峰
public void play(){
// 在方法里的变量,叫做局部变量,只可以在方法中选用
int a=1;
System.out.println(userNum);
System.out.println("玩");
this.eat();
}
自动类型转换
在运算过程中,会出现多种数据类型混合运算,那么此时就需要将多种数据类型变为同一种数据类型才可以进行运算。
由小的数据类型转换到大的数据类型会自动进行类型转换。
低—————————————————————>高
byte,short,char—> int —> long—> float —> double
注意:
- 不能对boolean类型进行基本类型转换。
- 不能把对象类型转换成不相关类的对象。
- 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
- 转换过程中可能导致溢出或损失精度。
- 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入。
转换规则
-
整数 int 转换成字串 String
有三种方法 :
String s = String.valueOf(i);
String s = Integer.toString(i);
String s = “” + i;
-
String 转 int
int i = Integer.parseInt([String]);
i =Integer.parseInt([String],[int radix]);
int i =Integer.valueOf(my_str).intValue();
-
布尔类型 转 String
第一种方法:
boolean bool = true;
String s = new Boolean(bool).toString();//将bool利用对象封装器转化为对象
第二种方法:
boolean bool = true;
String s = String.valueOf( bool);
-
数字类型间的类型转换
格式:(type)value type
//强制类型转换,将int变为byte。(小转大自动转换,不用强制转换)
//字符转INT安装ASCALL码转
int a1=10;
byte a=(byte) a1;
//数字字符串转数字类型,字母字符串不能转数字类型
String u1="100";
int u2=Integer.parseInt(u1);
// 数字类型转换字符串,在后面加连接符+“”,
//如果是2+3+""结果为5(先加减后转换),
//如果是“”+2+3结果为23(先转换后运算)
int z1=2;
int z2=3;
String z3=""+z1+z2;
String z4=z1+z2+"";
System.out.println(u2);
System.out.println(z3);
System.out.println(z4);
代码运行结果: