入口
所有的 Java 程序由 public static void main(String []args) 方法开始执行。
- 一个源文件中只能有一个public类
- 一个源文件可以有多个非public类
变量
- 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
- 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
- 类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。
某个内容是被所有对象所共享,那么该内容就应该用静态修饰;没有被静态修饰的内容,其实是属于对象的特殊描述。
内存描述:
不同的对象的实例变量将被分配不同的内存空间, 如果类中的成员变量有类变量,那么所有对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其他对象的这个类变量,也就是说对象共享类变量。 成员变量存在于堆内存中。静态变量存在于方法区中。
- 想要实现对象中的共性数据的对象共享。可以将这个数据进行静态修饰。
- 被静态修饰的成员,可以直接被类名所调用。也就是说,静态的成员多了一种调用方式。类名.静态方式。
- 静态(方法,成员) 随着类的加载而加载。而且优先于对象存在 (所以静态方法只能访问静态成员,不可以访问非静态成员,静态方法中不能使用this,super关键字。因为this代表对象)
类型
计算机内存的最小存储单元是字节(byte)一个字节就是一个8位二进制数(8个bit)0~255
- 整数类型:byte,short,int,long 考虑正负
- 浮点数类型:float,double
- 字符类型:char
- 布尔类型:boolean
1 |
|
修饰符
访问修饰符
protected 需要从以下两个点来分析说明:
- 子类与基类在同一包中:被声明为 protected 的变量、方法和构造器能被同一个包中的任何其他类访问;
- 同一个包的类可以访问,其他的包的该类的子类也可以访问。
- protected 可以修饰数据成员,构造方法,方法成员,不能修饰类(内部类除外)。
如果一个抽象类没有字段,所有方法全部都是抽象方法抽象类改写为接口
非访问修饰符
- static 修饰符,用来修饰类方法和类变量。
- final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
- abstract 修饰符,用来创建抽象类和抽象方法。
- synchronized 关键字声明的方法同一时间只能被一个线程访问
- volatile 变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。
结构
1 |
|