一些想入行IT的小伙伴,对一些IT基础方面的知识总是不了解,在接下来的一段时间里,L君会慢慢的跟大家分享一些关于Java方面的基础,有兴趣的小伙伴可以随手点个关注!】
01
知识框图
02
1.代码块儿
普通代码块:创建方法时。{}里面的内容,不能单独执行,需要通过调用方法名来执行。
静态代码块:使用static修饰的代码块,用于静态变量的初始化和对象创建前环境的初始化。
同步代码块:使用synchron’ize关键字修饰,在{}中的代码片段,表示在同一时间只能有一个线程进入到该方法中,是一种多线程保护机制。
构造代码块:在类中没有任何的前缀和后缀,使用{}括起来的代码片段。
上代码:
public class A1 {
static int i=2;
static{
i++;
System.out.println("我是父类静态代码块一");
System.out.println(i);
}
{
System.out.println("我是父类构造代码块一");
}
public A1(){
System.out.println("我是父类无参构造");
}
public A1(String name)
{
System.out.println("我是父类有参构造");
}
static{
i++;
System.out.println("我是父类静态代码块二");
System.out.println(i);
}
public static void main(String[] args) {
A2 b2=new A2();
System.out.println("---------------------");
A1 b1=new A1();
System.out.println("---------------------");
A1 b3=new A2();
/*System.out.println("---------------------");
A1 b4=new A1();
A2 b5=(A2)(b4);*/
System.out.println("---------------------");
System.out.println("---------------------");
String str="asd";
A2 c2=new A2(str);
System.out.println("---------------------");
A1 c1=new A1(str);
System.out.println("---------------------");
A1 c3=new A2(str);
}
}
class A2 extends A1{
static int i;
static{
i++;
System.out.println("我是子类静态代码块一");
System.out.println(i);
}
public A2(){
super();
System.out.println("我是子类午无参构造函数");
}
public A2(String name){
System.out.println("我是子类有参构造函数");
}
static{
i++;
System.out.println("我是子类静态代码块二");
System.out.println(i);
}
}
运行结果:
由上面得出的结论是:
静态代码块:
1.不论创建多少个对象,静态代码块只执行一次。
2.创建对象前,静态代码块会先执行。
3.不创建对象,静态代码块不会执行。
构造代码块:
1.在静态代码块后执行,插入到构造函数之前执行。
2.构造函数
public class Demo1 {
public static void main(String[] args) {
aa1 z = new aa1();
}
}
class aa {
public aa() {
System.out.println("我是父类无参构造");
}
public aa(int num) {
System.out.println("我是父类有参构造");
}
}
class aa1 extends aa {
public aa1() {
this(1);
System.out.println("我是子类无参构造");
}
public aa1(int num) {
System.out.println("我是子类有参构造");
}
}
1.在执行子类的构造函数之前,如果没有显示的调用父类的构造函数,会默认调用父类无参构造,如果显示的调用了父类的有参构造函数,会先执行父类的有参构造函数。
2.在子类无参构造函数中调用子类的有参构造函数,在创建对象,使用无参构造方法时,只调用一次父类无参构造。
3.子类无参构造只能调用父类无参构造或者父类有参构造或者子类有参构造之一