基本数据类型
一、数值型
1、整型
类型 | 占存储空间 | 范围 |
byte | 1字节 | -(2^8)~(2^8)-1 |
short | 2字节 | -(2^15)~(2^15)-1 |
int | 4字节 | -(2^31)~(2^31)-1 |
long | 8字节 | -(2^63)~(2^63)-1 |
注:
1、Java的整型常量(具体值)默认为int型,声明long型常量须后加'T'’或‘L’
2、java程序中变量常声明为int型,除非不足以表示大数,才使用long
3、bit:计算机中的最小存储单位。byte:计算机中基本存储单元,1byte =8 bit。
2、浮点型
类型 | 占存储空间 | 范围 |
float | 4字节 | -(2^31)~(2^31)-1 |
double | 8字节 | -(2^63)~(2^63)-1 |
说明
1) 关于浮点数在机器中存放形式的简单说明,浮点数=符号位+指数位+尾数位
2) 尾数部分可能丢失,造成精度损失(小数都是近似值)。
注:
1、Java的浮点型常量(具体值)默认为double型,声明float型常量,须后加'f'或'F'
2、通常情况下,应该使用double型,因为它比float型更精确。
3、浮点数使用陷阱:2.7和8.1/3比较
二、字符型
字符类型可以表示单个字符,字符类型是 char,char 是两个字节(可以存放汉字);
多个字符用字符串 String
String,StringBuilder,StringBuffer的常用方法https://blog.csdn.net/Good_Starry/article/details/139574068?spm=1001.2014.3001.5502String,StringBuilder,StringBuffer的比较和选择https://blog.csdn.net/Good_Starry/article/details/139531620?spm=1001.2014.3001.5502
1、字符类型使用细节
1)字符常量是用单引号('')括起来的单个字符。
2)Java中还允许使用转义字符'\'来将其后的字符转变为特殊字符型常量。
3)在java中,char的本质是一个整数,在输出时,是unicode码对应的字符。
http://tool.chinaz.com/Tools/Unicode.aspx
4)可以直接给char赋一个整数,然后输出时,会按照对应的unicode字符输出[97->a]
5)char类型是可以进行运算的,相当于一个整数,因为它都对应有Unicode码。
2、字符型在计算机中存储
1)字符型存储到计算机中,需要将字符对应的码值(整数)找出来,比如'a'
存储:'a'==>码值97==>二进制(1100001)==>存储
读取:二进制(1100001)=>97===>'a'=>显示
2)字符和码值的对应关系是通过字符编码表决定的(是规定好)
三、布尔型boolean
1.布尔类型也叫boolean类型,booolean类型数据只允许取值true和false,无null
2.boolean类型占1个字节。
3.boolean 类型适于逻辑运算,一般用于程序流程控制
四、基本数据类型转换
基本数据类型转换https://blog.csdn.net/Good_Starry/article/details/139439756?spm=1001.2014.3001.5502
引用数据类型
一、类
后续补充
二、接口
后续补充
三、数组
数组的使用和注意事项https://blog.csdn.net/Good_Starry/article/details/139394856?spm=1001.2014.3001.5502
枚举类型
枚举的二种实现方式
一、自定义类实现枚举
1、不需要提供setXxx方法,因为枚举对象值通常为只读
2、对枚举对象/属性使用final + static共同修饰,实现底层优化
3、枚举对象名通常使用全部大写,常量的命名规范
4、枚举对象根据需要,也可以有多个属性
特点:
1) 构造器私有化
2) 本类内部创建一组对象
3) 对外暴露对象(通过为对象添加 public final static 修饰符)
4) 可以提供 get 方法,但是不要提供set
二、enum 关键字实现枚举
1、实现
1、使用关键字 enum 替代 class
2、public static final Season SPRING = new Season("春天", "温暖") 直接使用SPRING("春天", "温暖")
3、如果有多个常量(对象), 使用“,”逗号间隔即可
4、如果使用 enum 来实现枚举,要求将定义常量对象,写在最前面
5、如果我们使用的是无参构造器,创建常量对象,则可以省略()
public class Main {
public static void main(String[] args) throws ParseException {
System.out.println(Season2.AUTUMN);
System.out.println(Season2.SUMMER);
}
}
enum Season2 {//类
SPRING("春天", "温暖"), WINTER("冬天", "寒冷"), AUTUMN("秋天", "凉爽"),
SUMMER("夏天", "炎热")/*,What()*/;
private String name;
private String desc;//描述
private Season2() {
}
private Season2(String name, String desc) {
this.name = name;
this.desc = desc;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
@Override
public String toString() {
return "Season2{" +
"name='" + name + '\'' +
", desc='" + desc + '\'' +
'}';
}
}
2、enum 关键字实现枚举注意事项
1、当我们使用 enum 关键字开发一个枚举类时,默认会继承 Enum 类, 而且是一个 final 类
2、传统的 public static final Season2 SPRING = new Season2("春天", "温暖"); 简化成 SPRING("春天", "温暖"), 这里必须知道,它调用的是哪个构造器
3、如果使用无参构造器创建枚举对象,则实参列表和小括号都可以省略
4、当有多个枚举对象时,使用“逗号”间隔,最后有一个分号结尾
5、枚举对象必须放在枚举类的行首(枚举对象为静态变量地址相同)
3、enum 常用方法
1) toString:Enum 类已经重写过了,返回的是当前对象名,子类可以重写该方法,用于返回对象的属性信息
2、name:返回当前对象名(常量名),子类中不能重写
3、ordinal:返回当前对象的位置号,默认从 0 开始
4、values:返回当前枚举类中所有的常量
5、valueOf:将字符串转换成枚举对象,要求字符串必须为已有的常量名,否则报异常!
6、compareTo:比较两个枚举常量,比较的就是编号
4、enum 实现接口
1、使用 enum 关键字后,就不能再继承其它类了,因为 enum 会隐式继承 Enum,而 Java 是单继承机制。
2、枚举类和普通类一样,可以实现接口,如下形式。enum 类名 implements 接口 1,接口 2{}