Java有8中基本数据类型:byte\char \short \int\float\double\long\boolean
在说明每种类型大小前须要明确下面两个概念:html
字节=byte,是由8位带符号的二进制数表示的。java
字符=char,是由Unicode编码表示this
下面是每种类型的大小编码
byte 1字节 取值范围 -128至127code
char 2字节htm
short 2字节对象
int 4字节blog
float 4字节继承
double 8字节内存
long 8字节
boolean 2字节
关于byte取值范围补充下面文章:
详解java中的byte类型 - 进击的石头—GO! - 博客园
总结来讲就是Java采用的是有符号数即区别正负数,每一个类型的二级制表示的首位是符号位0表示整数,1表示负数。负数转换为正常的十进制数是由二进制数取反再加一获得。
所以咱们在进行类型转换(特别是高精度转低精度)要注意由于精度变化致使的截断。
this
表示当前对象,须要注意的是静态变量和方法并不适用
super
表示父类对象 不能与this同时使用
instanceof
判断某个对象是不是某个特定类的对象
transient
被该关键字修饰的变量在进行序列化的时候不会被序列化
static
修饰属性则该属性是类共享的,即被该类全部对象共享,在内存中只有一个副本,当且仅当类初次加载时被初始化。
修饰方法则该方法是类共享的。要注意的是类的静态方法不能调用非静态方法,可是本类的非静态方法能够访问类的静态方法。
静态代码块在类初次被加载的时候,会按照static块的顺序来执行每一个static块,而且只会执行一次。
类加载的过程,类自己也是保存在文件中(字节码文件保存着类的信息)的,java会经过I/O流把类的文件读入JVM(java虚拟机),这个过程称为类的加载。JVM会经过类路径(CLASSPATH)来找字节码文件。须要的时候才会进行类加载,生成对象时是先加载后构造。类变量,会在加载时自动初始化,初始化规则和实例变量相同。类中的实例变量是在建立对象时被初始化的。
Static修饰的属性,是在类加载时被建立并进行初始化,类加载的过程只进行一次,也就是类变量只会被建立一次。
初始代码块就叫作静态初始代码块,这个代码块只在类加载时被执行一次。
动态初始代码块,写在类体中的“{}”,这个代码块是在生成对象时运行,这种代码块叫动态初始代码