zoukankan      html  css  js  c++  java
  • 面试题4

    JAVA笔试题(40分钟)

    选择题(每题5分,共40分)

    1. 下面的程序运行结果是(false

    String str1 = “zhongan”;

    String str2 = “zhong” + new String(“an”);

    System.err.println(str1 == str2);

    2. 下列说法正确的是(C

    A. class中的constructor不可省略

    B. constructor必须与class同名,但方法不能与class同名

    C. constructor在一个对象被new时执行

    D. 一个class只能定义一个constructor

    3. 下列程序的运行结果:(C

    public static void main(String args[]){

    Thread t = new Thread(){

    Public void run(){

    Show();

    }

    };

    t.run();

    System.out.pint(“abc”);

    }

    static void show(){

    System.out.println(“xyz”);

    }

    A. abcxyz    B.xyzabc    C.abcxyzxyzabc    D.都不输出

    4.下面哪个流类属于面向字符的输入流(D   

    A.BufferedWriter    B.FileInputStream  

    C.ObjectInputStream  D.InputStreamReader

    5.不通过构造函数也能创建对象吗(A

    A.              B.]

    解析:Java创建对象的几种方式(重要):
    (1) new语句创建对象,这是最常见的创建对象的方法。
    (2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。
    (3) 调用对象的clone()方法。
    (4) 运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。
    (1)(2)都会明确的显式的调用构造函数 ;(3)是在内存上对已有对象的影印,所以不会调用构造函数 ;(4)是从文件中还原类的对象,也不会调用构造函数。

    6.下面程序的运行结果是()

     image.png

    结果:

    static A

    static B

    T'm A class

    HelloA

    T'm B class

    HelloB

     

    7. System.out.println(5+2):的输出结果应该是(A).

    A52    B.7    C.2    D.5

    8. 下面的方法,当输入为2的时候的返回值是多少?( D)

    Public  static  int  getValue(int  i){
        int  result = 0;
        switch (i) {
        case 1:
            Result = result +i;
        case 2:
           result = result +i *2;
        case 3:
           result = result + i *3;
        }
        return  result;
    }

     

    A 0     B 2        C 4      D 10

     

    , 基础部分

    1. 请在下面的表格中,使用√勾选不同可见性关键字对应的作用域

     image.png

    2.什么叫线程安全,什么叫线程不安全? ThreadLocal为什么能避免线程安全问题?

    线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。

    TreadLocal实现线程安全的原理:

    ThreadLocalMapThreadLocal类的一个静态内部类,它实现了键值对的设置和获取(对比Map对象来理解),每个线程中都有一个独立的ThreadLocalMap副本,它所存储的值,只能被当前线程读取和修改。ThreadLocal类通过操作每一个线程特有的ThreadLocalMap副本,从而实现了变量访问在不同线程中的隔离。因为每个线程的变量都是自己特有的,完全不会有并发错误。还有一点就是,ThreadLocalMap存储的键值对中的键是this对象指向的ThreadLocal对象,而值就是你所设置的对象了。

     

    2. try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?

    finally中的内容会被执行,在return后执行。

    下面代码输出什么?

    public static void main(String[] args) {
        System.out.println(a());
    }
    
    public static String a() {
        String s = null;
        try {
            s = "b";
            return s;
        }catch (Exception e) {
            return "e";
        }finally {
            return "f";
        }
    }




    查看原文:http://www.coder306.cn/?p=157
  • 相关阅读:
    minikube国内在线部署体验
    分表与分库使用场景以及设计方式
    epool与select有什么区别
    使用ssh-keygen生成私钥和公钥
    mysql关键字冲突
    MySQL 获取当前时间戳
    平时常说的ThreadLocal,今天就彻底解决它
    mysql和mssql最大连接数
    Spring Boot实战:拦截器与过滤器
    Mysql 索引问题-日期索引使用
  • 原文地址:https://www.cnblogs.com/coder306/p/13087692.html
Copyright © 2011-2022 走看看