1.Java的数据类型
Java是一门强类型的语言,在定义一个变量时必须声明变量的类型,在为变量赋值时必须赋予和变量同一类型或者它的子类型的值,否则程序报错。
Java的数据类型主要分为两种:基本数据类型和引用数据类型
- 整数类型
整数类型主要分4类,字节型(byte
)、短整型(short
)、整型(int
)、长整型(long
)。
类型名 | 占用空间 | 取值范围 |
---|---|---|
byte | 8位(1个字节) | -2^6~2^7-1 |
short | 16位(2个字节) | −2^15~2^15−1 |
int | 32位(4个字节) | −2^31~2^31−1 |
long | 64位(8个字节) | −2^63~2^63−1 |
浮点数据类型
浮点数据类型主要用于存储小数数值。在Java中,浮点数据类型分成两种,单精度(
float
)和双精度(double
)。
类型名 | 占用空间 | 取值范围 |
---|---|---|
float | 32位(4个字节) | 1.4E-45~3.4E+38,-1.4E-45~-3.4E+38 |
double | 64位(8个字节) | 4.9E-324~1.7E+308,-4.9E-324~-1.7E+308 |
E表示以10为底的指数,E后面的+号和-号代表正指数和负指数,例如1.4E−45表示1.4∗10−45。
- 布尔类型
布尔类型(boolean
),只有两个值,true
和false
,表示逻辑真、假。
- 引用数据类型
主要包括接口(interface)、类(class)、枚举(enum)、注解(ennocation)
区别:
1、基本数据类型在创建时,直接在栈划分一块区内存,将数值存储在栈上。
2、引用数据类型在被创建时,首先在栈上分配一块内存,而对象的内容都存储在堆上,由栈上面的引用指向堆中对象的地址。
2. 实体类、抽象类、接口类
- 实体类:通过class定义,不能被抽象类的类就是实体类,实体类是对一项事物的描述,进行特征行为解释,声明字段函数和方法。然后可以通过被实例化创建对象。例如`Person
person=new Person();` 人:具有名字、年龄、性别特征。有吃饭、睡觉等行为。
public class Person {
// 声明Person类的name
private String name;
// 声明Person类的age
private int age;
// 声明Person类的sex
private String sex;
// 声明Person类的sleep方法
public void sleep() {
System.out.println("睡觉");
}
// 声明Person类的eat方法
public void eat() {
System.out.println("吃饭");
}
}
- 抽象类:通过abstract class定义,抽象类是用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但本质相同的具体概念的抽象。
- 抽象类可以有成员函数、可以是变量也可以是常量
- 抽象类中可以有抽象方法,也可以有普通方法,还可以有静态方法
- 有抽象类方法类必须声明位抽象类,抽象类中不一定有抽象方法。
- 抽象类可以有构造函数,但是不能实例化对象,构造函数用于子类调用。
- 具体类继承抽象类时,必须重写里面的抽象方法。
- 抽象类的方法必须使用public或者protected修饰,缺省情况下默认为public。
- 抽象方法没有方法体,需要被子类继承重写方法。
public abstract class A {
public abstract void B();
}
- 接口类:通过interface修饰,接口是指供别人调用的方法或者函数,它是行为的抽象。
- 接口中可以有成员变量,但是会被默认指定为public static final变量,也就是常量。
- 接口中的方法只能是抽象方法,全部会默认的指定为public abstract。
- 接口没有构造函数。
public interface MyInterfaceOfTest {
public abstract void A();
void B();// 默认指定为public abstract void B();
}
- 实体类、接口类、抽象类的关系
实体类 | 接口类 | 抽象类 | |
---|---|---|---|
实体类 | 继承(extends) | 实现(implements) | 继承(extends) |
接口类 | 实现(implements) | 继承(extends) | 实现(implements) |
抽象类 | 继承(extends) | 实现(implements) | 继承(extends) |
注意:Java中,继承只能有一个,实现可以多个