[每日一练] Java 2020.7.28
1.关于以下application,说法正确是什么?
public class Test {
static int x=10;
static {x+=5;}
public static void main(String[] args) //4
{
System.out.println("x="+x);
}
static{x/=3;};
}//9
A.4行与9行不能通过编译,因为缺少方法名和返回类型
B.编译通过,执行结果是:x=5
C.编译通过,执行结果是:x=3
D.9行不能通过编译,因为只能有一个静态初始化器
答案:B
解析:执行顺序:静态代码块先于主方法执行,静态代码块之间遵从代码顺序执行。
所以:先初始化静态变量x=10;//x=10
执行第一个静态代码块,x=x+5; //x=15
执行第二静态代码块 x=x/3; //x=5
执行主方法: 输出x=5
衍生:
static 特点:
1、 随着类的加载而加载 / 类的资源
2、 只加载一次,就会一直存在,直到类消失就一起消失了
3、 优先于对象加载
4、 被所有对象所共享
5、 可以直接被类名调用
各种代码块:
1、 静态代码块:在类加载时就加载,并且只被加载一次,一般用于项目的初始化
2、 构造代码块:在创建对象时会自动调用,每次创建对象都会被调用
3、 局部代码块:方法里的代码块
Java初始化顺序:
1 继承体系的所有静态成员初始化(先父类,后子类)
2 父类初始化完成(普通成员的初始化–>构造函数的调用)
3 子类初始化(普通成员–>构造函数)
eg:
package cn.tedu.zy;
public class B extends A{
static{ System.out.println("子类静态代码块");
}
public B(){
System.out.println("子类构造方法");
}
{
System.out.println("子类初始化块");
}
public static void main(String[] args){
new B();
}
}
class A{
static {
System.out.println("父类静态代码块");
}
public A(){
System.out.println("父类构造方法");
}
{
System.out.println("父类初始化块");
}
}
输出结果为:
父类静态代码块 ->子类静态代码块 ->父类初始化块 ->父类构造方法 ->子类初始化块
->子类构造方法
2.下面关于Spring的说法中错误的是( )
A.Spring是一系列轻量级Java EE框架的集合
B.Spring中包含一个“依赖注入”模式的实现
C.使用Spring可以实现声明式事务
D.Spring提供了AOP方式的日志系统
错解:A 答案:D
解析:Spring并没有为我们提供日志系统,我们需要使用AOP(面向方面编程)的方式,借助Spring与日志系统log4j实现我们自己的日志系统
*衍生: AOP即面向切面编程,通过预编译方式和运行期动态实现程序功能的统一维护的一种技术
3.关于Java语言描述正确的是? ( )
A.java和C++都保留了指针
B.java和C++都有三个特征:封装、继承和多态
C.java的垃圾回收机制是指程序结束时系统自动回收内存
D.以上说法都不正确
错解:C 答案: B
解析:1.java没有指针
2.在程序运行的过程中,当发现有对象不再被使用或被赋值null,JVM则会将其清出内存
4.下面关于volatile的功能说法正确的是哪个 ()
A.原子性
B.有序性
C.可见性
D.持久性
错解:B C D 正解: B C
衍生:
1.volatile用与修饰实例变量和类变量,是一种维护线程安全的手段,作用是实现共享资源的可见性;
2.synchronized保证三大性,原子性,有序性,可见性
3.volatile保证有序性,可见性,不能保证原子性
本文地址:https://blog.csdn.net/XCNXYP/article/details/107628210
上一篇: 荣耀Magic V折叠屏来自京东方:屏占比95%、弯折半径2.5mm
下一篇: 请问你想当一把手吗
推荐阅读
-
Java入门每日小练04
-
【每日一道算法题】Leetcode之longest-increasing-path-in-a-matrix矩阵中的最长递增路径问题 Java dfs+记忆化
-
整数反转Java版,每日一题系列(此题来自力扣网)
-
【JAVA】判断二分图——力扣每日一题(四)(2020.07.16)
-
739. 每日温度(Java)
-
【Java】力扣_每日一题_8.字符串转换整数(atoi)_中等
-
leetcode【每日一题】32. 最长有效括号 Java
-
leetcode【每日一题】109. 有序链表转换二叉搜索树 Java
-
寒假每日一题_AcWing1113.红与黑--Java代码
-
每日一练