当前位置: 移动技术网 > IT编程>开发语言>Java > [每日一练] Java 2020.7.28

[每日一练] Java 2020.7.28

2020年07月29日  | 移动技术网IT编程  | 我要评论

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网