zoukankan      html  css  js  c++  java
  • 面试题及心得

    今天参加了一家大公司的面试,进去先做了一套笔试题,分享给大家:

    1、写出public,protected,private以及默认的(default)的作用范围

      

    2、写出&和&&的区别

      &:是按位运算符,没有短路效应,结果是0或1

      &&:是逻辑运算符,有短路效应,结果是true或者false

    3、

    4、

    5、轻易效率最高的方法得出2乘以8的答案

    6、抽象类和接口的异同点

    7、问下列程序的输出结果是:

    public class A {
        static{
            System.out.println(1);
        }
        public A(){
            System.out.println(2);
        }
    }
    
    class B extends A{
        static{
            System.out.println("a");
      }

       public B(){
        System.out.println(
    "b");
      }
    }
    //测试
        public static void main(String[] args) {
            A ab = new B();
            ab = new B();
        }
    
    
    
     

    我记得我的答案是:1a2b,结果回来问了一下朋友他说是1a2b2b

    解析:(1)初始化父类的静态成员变量和静态代码块

       (2)初始化子类的静态成员变量和静态代码块

       (3)初始化父类的普通成员变量和构造代码块(按次序),再执行父类的构造方法

       (4)初始化子类的普通成员变量和构造代码块(按次序),再执行父类的构造方法

     所以在类加载时,执行父类的静态代码块,输出1,接下来执行子类的静态代码块,输出a,

      ①执行main函数中的第一句话:new B(); 此时需要注意在new子类之前先要去new父类,所以先执行父类的的构造代码块,输出2,再执行子类的构造代码块输出b

       第一句话执行完输出1a2b

      ②执行main函数中第二句话,值有new B();, 此时同第一步,先执行父类的构造器再执行子类的构造器,输出2b

      所以最终结果是1a2b2b

    8、把编码为GB2312的字符串转成编码为ISO8859-1

     

     String name = "lala"

    String str = new String(name.getBytes("GB2312"),"ISO8859-1");

    9、怎么实现对象的克隆

      ①反射

      ②Object提供了clone()方法

    10、写一个线程安全高效的单例模式

      懒汉式:

    public class Test {
        public static void main(String[] args) {
            A.getA();
        }
    }
    
    
    class A{
        private static A a = null;
        static Object o = new Object();
        //私有化方法
        private A(){
            
        }
        //得到实例化对象的方法(此方法必须是静态的,因为不能new对象所以需要直接点方法出来)
        public static A getA(){
            //先判断对象是否为空
            if(a==null){
                synchronized(o){
                    //二次判断是否为空,为了避免有漏网之鱼
                    if(a==null){
                        a = new A();
                    }
                }
            }
            return a;
        }
        
        
    }

    答案是懒汉式,补充一下饿汉式:

      

    public class Test {
        public static void main(String[] args) {
            A.getA();
        }
    }
    
    class A{
        //先实例化唯一的对象,之后他的值就不能再变了,所以定义成final
        private final static A a = new A();
        private A(){
            
        }
        public static A getA(){
            return a;
        }
    }

    11、怎么优化sql

      ①创建必要索引

      ②使用PLSQL(可一次性执行多条sql语句)

      ③使用预编译查询

      ④

    12、String和StringBuilder,StringBuffer的区别

      

  • 相关阅读:
    百度文库:网站镜像站点解决方案
    百度文库:WEB网站架构分析HTML静态化
    61条面向对象设计的经验原则
    oracle 定时任务例子【项目例子】
    javascript的事件机制(百度文库)
    【转】Oracle回收站(recyclebin)
    java十大低级错误和常见注意点
    JAVA UUID 生成
    Oracle in和exists效率问题分析
    http的长连接和短连接(数据库也一样)
  • 原文地址:https://www.cnblogs.com/rgever/p/8545732.html
Copyright © 2011-2022 走看看