Java基本数据类型、关键字
一、Java基本数据类型
Java有8中基本数据类型:bytechar short intfloatdoublelongoolean
在说明每种类型大小前需要明确下面两个概念:
-
字节=byte,是由8位带符号的二进制数表示的。
-
字符=char,是由Unicode编码表示
下面是每种类型的大小
-
byte 1字节 取值范围 -128至127
-
char 2字节
-
short 2字节
-
int 4字节
-
float 4字节
-
double 8字节
-
long 8字节
-
boolean 2字节
关于byte取值范围补充下面文章:
详解java中的byte类型 - 进击的石头—GO! - 博客园总结来说就是Java采用的是有符号数即区别正负数,每个类型的二级制表示的首位是符号位0表示整数,1表示负数。负数转换为正常的十进制数是由二进制数取反再加一得到。
因此我们在进行类型转换(特别是高精度转低精度)要注意因为精度变化导致的截断。
二、Java常用关键字
-
this
表示当前对象,需要注意的是静态变量和方法并不适用 -
super
表示父类对象 不能与this同时使用 -
instanceof
判断某个对象是否是某个特定类的对象 -
transient
被该关键字修饰的变量在进行序列化的时候不会被序列化 -
static
修饰属性则该属性是类共享的,即被该类所有对象共享,在内存中只有一个副本,当且仅当类初次加载时被初始化。
修饰方法则该方法是类共享的。要注意的是类的静态方法不能调用非静态方法,但是本类的非静态方法可以访问类的静态方法。静态代码块在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。
类加载的过程,类本身也是保存在文件中(字节码文件保存着类的信息)的,java会通过I/O流把类的文件读入JVM(java虚拟机),这个过程称为类的加载。JVM会通过类路径(CLASSPATH)来找字节码文件。需要的时候才会进行类加载,生成对象时是先加载后构造。类变量,会在加载时自动初始化,初始化规则和实例变量相同。类中的实例变量是在创建对象时被初始化的。
Static修饰的属性,是在类加载时被创建并进行初始化,类加载的过程只进行一次,也就是类变量只会被创建一次。
初始代码块就叫做静态初始代码块,这个代码块只在类加载时被执行一次。
动态初始代码块,写在类体中的“{}”,这个代码块是在生成对象时运行,这种代码块叫动态初始代码
- final
修饰变量,变量赋值后不可再改变此时即为常量,常量可以在初始化时直接赋值,也可以在构造方法里赋值,只能在这两种方法里二选一,不能不为常量赋值。静态常量只能在初始化时直接赋值
修饰方法将不能被其子类覆盖,保持方法的稳定不被覆盖
Final修饰的类将不能被继承,final类中的方法也都是final的 - abstract
修饰变量即编译时类型。
修饰类即抽象类不可实例化
抽象类就相当于一个类的半成品,需要子类继承并覆盖其中的抽象方法,这时子类才又创建实例的能力,如果子类没有实现父类的抽象方法,那么子类也要为抽象类。
修饰方法变成抽象方法,也就是只有声明而没有实现,实现部分以”;”代替,需要子类继承实现。
有抽象方法的类一定是抽象类。但是抽象类中不一定都是抽象方法,也可以全是具体方法。