数组的动态初始化:
int[] a = new int[10];
数据内容为数据类型的默认值。
数组的静态初始化:
int[] a = {1, 2, 3};
int[] a = new int[] {1, 2, 3};
数组数据的使用:
x = a[1];
数组从0开始;
数组长度 a.length
数组的动态初始化:
int[] a = new int[10];
数据内容为数据类型的默认值。
数组的静态初始化:
int[] a = {1, 2, 3};
int[] a = new int[] {1, 2, 3};
数组数据的使用:
x = a[1];
数组从0开始;
数组长度 a.length
构造代码块:写在类中
构造快优先于构造方法,在每一次实例化时调用
静态代码块:static{ }
实例化时最先执行
只执行一次
为初始化静态域
在主类中:
静态代码块优先于主方法执行。
sattic:
属性:公共类属性
方法:
构造方法:this();
普通方法:this.method();
构造方法重载:
public Person(String name){
this.name=name;
}
public Person(String name;int age){
this(name);
this.age=age;
}
构造器不能递归调用
构造方法:如果在构造方法上使用了void,那么此结构就与普通方法结构完全相同,编译器会认为它是一个普通方法。
普通方法与构造方法最大的区别:构造方法在类对象实例化的时候调用,普通方法在实例化后调用的。
构造方法和setter的区别:构造方法在对象实例化的时候为属性设置内容(初始化),而setter不仅可以以设置属性内容,也可以修改属性内容。
匿名对象:该对象没有任何的引用;即没有栈内存,在使用一次后变为垃圾。
没有任何栈内存所指向的堆内存空间称之为垃圾空间,所有的垃圾将被GC(Garbage Collestor,垃圾收集器)定期进行回收并释放无用内存空间,但是如果垃圾过多,一定将影响到GC的处理性能,从而影响到程序的整体性能。
一个栈内存只能保存一个堆内存的地址
字符串直接赋值,会先在字符串常量池里面进行判断。是否已存在该字符串对象,有则用,无则建。
利用构造方式创建字符串,会生成两个实例化对象,并且不会自动入池。可以利用intern()函数入池。
抽象类:模板结构设计。
1对子类方法统一管理;
2可以自身提供普通方法可以调用抽象方法(必须在子类提供实现的时候才会生效)
对象向上转型优势:【接收或返回参数统一性】
可以对参数进行统一设计,不同子类可以传递同一父类参数
fun (new DataBaseMessage());
fun (new WebServerMessage());
public static void fun (Message msg){
masg.print();
}
Annotation:减少配置代码,结构化定义,注解
@Override
@Deprecated
@SuppressWarnings
final :终结器
1不能被继承的类
2不能被覆写的方法、常量。
3定义常量
全局常量:
public static final int ON = 1;
public > default (不写)> private
父类方法权限必须小于子类方法权限;
重载(Overloading):1方法名称相同,参数类型个数不同2没有权限限制3范围:发生在一个类中
覆写(Override):1方法名称相同,参数类型个数相同2被覆写方法不能拥有更严格的权限3发生在继承关系类之中
子类中覆写方法优先调用,如果必须使用父类方法,则用super.connect()方法。
100课时有亮点
static修饰的属性和方法属于类,用了它相当于升权了。
string类两种实例化对象你叫:
1.直接赋值:只会产生一个对象,并且自动保存在对象池中,以实现对象的重复利用
2,构造方法赋值:会产生两个实例化对象,并且不会自动入池,可以使用intern()方法入池。