Java8 实战

牛客网的面试题

题目

解析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/**
* @author wqh
* @date 18-9-21
*/
public class Son extends Father {
public Son() {
System.out.println("子类构造器");
}

static {
System.out.println("子类静态代码块");
}
{
System.out.println("子类代码块");
}
int c = 10 ;
static int d = getB() ;

public static void main(String[] args) {
Son son = new Son();
}
public static int getB(){
System.out.println("子类静态变量初始化");
return 0;
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/**
* @author wqh
* @date 18-9-21
*/
public class Father {
public Father() {
System.out.println("父类构造器");
}
static {
System.out.println("父类静态代码块");
}
{
System.out.println("父类代码块");
}
static int a = getA() ;
int b = 9 ;
public static int getA(){
System.out.println("父类静态变量初始化");
return 0;
}
}

运行main,结果

执行顺序

  • 首先静态的肯定是先于非静态的,这个毋庸置疑,然后就是静态代码块和静态变量,这个的执行顺序是会根据你的代码位置来决定是谁先执行的
  • 然后就是代码块和成员变量的执行顺序,这个也是根据位置来执行
  • 其次就是构造器

待解决的问题

java中io流的问题

java中集合框架问题

java中泛型问题

本质是参数化类型的应用

官网教程

java中注解问题

java中反射问题

Java中异常

java中枚举

java中内部类问题

java中线程问题

java8书中第三章关于Lambda表达式

基本语法

  1. (parameters) -> expression
  2. (parameters) -> {statements;}
0%