java专题(四)

1丶假设 A 类有如下定义,设 a 是 A 类的一个实例,下列语句调用哪个是错误的?( )
class  A{
static  int  i;
String  s;
static  void  method1() {   }
void  method2()  {   }

}

A. System.out.println(a.i);
B. a.method1();
C. A.method1();

D. A.method2()

解析:类中静态属性和方法,可以通过类名或者对象访问;非静态方法必须通过对象访问

2丶面向对象程序设计语言的三个基本特征是?(    )

A. 封装、接口和多态
B. 继承、接口和动态
C. 跨平台、接口和动态

D. 封装、继承和多态

3丶哪个关键字可以对对象加互斥锁?()

A. synchronized
B. volatile
C. serialize

D. static

解析
synchronized 关键字 : 用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这个段代码。
volatile:用来确保将变量的跟新操作通知到其他线程,当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,因此不会将该变量上的操作与其他内存操作一起重排序。然而,在访问volatile变量时不会执行加锁操作,因此也就不会使执行线程阻塞,因此volatile变量是一种比 synchronized关键字更轻量级的同步机制。
serialize:Java 对象序列化为二进制文件。
static关键字: static关键字可以修饰变量,方法,静态代码块。
                          静态变量:
                                          由static修饰的变量称为静态变量
                                          静态变量属于类,而不属于某个对象
                                          静态变量它的副本只有一个(静态变量在类中只加载一)
                         静态方法:
                                          在静态方法中只能调用静态变量和静态方法
                                          在非静态方法中,可以调用静态方法或者变量。
                                          在静态方法中不能使用this和super关键字。
                        静态代码块
                                          作用:用来给静态成员变量初始化

4丶java语言中,按照一定格式生成程序的文档的工具是?

A. javac
B. javah
C. javadoc

D. jar

 

解析

jar         将许多文件组合成一个jar文件
javac    编译
javadoc 它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。

javah 把java代码声明的JNI方法转化成C\C++头文件。 JNI可参考java核心技术卷二第12章

5丶When is the text “Hi there”displayed?

public class StaticTest
{
    static
    {
        System.out.println(“Hi there”);
    }
 
    public void print()
    {
        System.out.println(“Hello”);
    }
 
    public static void main(String args[])
    {
        StaticTest st1 = new StaticTest();
        st1.print();
        StaticTest st2 = new StaticTest();
        st2.print();
    }

}

A. Never.
B. Each time a new object of type StaticTest is created.
C. Once when the class is loaded into the Java virtual machine.

D. Only when the main() method is executed.

解析:静态代码块随着类的加载而加载且只执行一次

6丶下面有关java内存模型的描述,说法错误的是?

A. JMM通过控制主内存与每个线程的本地内存之间的交互,来为java程序员提供内存可见性保证
B.“synchronized” — 保证在块开始时都同步主内存的值到工作内存,而块结束时将变量同步回主内存
C.“volatile” — 保证修饰后在对变量读写前都会与主内存更新。

D. 如果在一个线程构造了一个不可变对象之后(对象仅包含final字段),就可以保证了这个对象被其他线程正确的查看

解析:对于volatile修饰的变量,jvm虚拟机只是保证从主内存加载到线程工作内存的值是最新的

7丶下面有关SPRING的事务传播特性,说法错误的是?

A. PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行
B. PROPAGATION_REQUIRED:支持当前事务,如果当前没有事务,就抛出异常
C. PROPAGATION_REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起

D. PROPAGATION_NESTED:支持当前事务,新增Savepoint点,与当前事务同步提交或回滚

解析

8丶下列哪种情况可以终止当前线程的运行?

A. 当一个优先级高的线程进入就绪状态时
B. 当该线程调用sleep()方法时
C. 当创建一个新线程时

D. 抛出一个异常时

解析:程序出现异常时,捕获就不会出现终止;出现异常不捕获或者throw一个异常则会终止

9丶下面有关JAVA swing的描述,说法错误的是?

A. Swing是一个基于Java的跨平台MVC框架。使用单线程模式。
B. Swing 是为了解决 AWT 存在的问题而新开发的包,它以 AWT 为基础的
C. Swing优化了AWT,运行速度比AWT快

D. Swing是一个基于组件的框架,所有的组件都是从javax.swing.JComponent类继承来的

解析:Swing 是在AWT的基础上构建的一套新的图形界面系统,它提供了AWT 所能够提供的所有功能,并且用纯粹的Java代码对AWT 的功能进行了大幅度的扩充。AWT 是基于本地方法的C/C++程序,其运行速度比较快;Swing是基于AWT 的Java程序,其运行速度比较慢。

10丶下面不属于java包装类的是?

A. String
B. Long
C. Character

D. Short

解析:java是面向对象的,但是java语言中的基本数据类型不是面向对象的,为了解决这个不足,就设计了相应的包装类。包装类针对的就是基本类型。

注:以上题均来自于牛客网中的java专项练习:  https://www.nowcoder.com/6418438

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值