频率较高的Java面试题

频率较高的Java面试题
  1. 面向对象的三大特性:
    封装:把数据和操作数据的方法绑定起来,暴露出想要暴露的方法,供其他类调用。
    继承:是从已有类中获得信息创建新类的过程,提供信息的类叫做父类(超类,基类),继承的类为子类(派生类), 继承具有传递性。
    多态(最精髓的东西):不同类型的对象对同一消息做出的不同的响应,条件:方法重写,父类引用指向子类对象
  2. java中多态的机制:运行时绑定,只有到需要的时候才会决定具体使用哪个类的哪个方法,并不是声明该类的方法
  3. java异常:
    编译时异常:运行前的异常,都必须要显示处理;处理方式有两种(1)利用trycatch语句(2)定义方法时抛出异常
    运行时异常:数组下标越界异常,类型转换异常,空指针异常,除数是0异常,IO异常,FilenotExist异常
  4. 下面的语句执行的结果是:3。  因为异常机制有一个原则,当try或者catch语句中有返回语句,会先执行finally语句,然后继续执行返回语句(防止一些流打开了没有关闭就返回,导致程序异常),可是当执行到第八行的时候语句已经返回,所以不会在执行catch中的语句
  5.  java基础类型所占字节数:
    byte:1    short:2    char:2    int:4    float:4    double:8      long:8     boolean:1(有时多个boolean也只占一个字节)
  6. linkedhashmap有序
  7. ArrayList 、HashSet、 HashMap都不是线程安全的,都没有加锁,使用下列方法可以变成线程安全的
  8. java创建多线程的三种方式:(1)new thread对象(无参),重写run方法  ,并调用start方法;(2) new thread对象(参数为new runnable) (3)实现runnable接口,重写run方法;
  9. java中wait()和sleep()的不同之处在于:wait会释放锁,而sleep会持有锁,wait通常用于线程间交互,sleep用于暂停执行
  10. synchronized 和volatile:
    volatile:(1)保证了不同线程对这个变量操作的可见性,即一个线程修改这个变量的值,其他线程立即可见
                   (2)只能作用于变量
                   (3)不会造成线程阻塞
                   (4)不能被编译器优化
    synchronized :(1)锁定当前变量,只有当前线程可以修改
                              (2)可作用于变量,方法,类
                              (3)可能造成线程阻塞
                              (4)可以被编译器优化
  11. 下面的代码的输入结果是:

    输出结果一定小于1000,每一个线程运行时都有一个线程栈,线程栈中保存了线程运行时的变量的信息,但线程运行时,首先通过变量的引用找到变量在堆内存中的值,然后复制到线程栈中,当线程运行时修改的是线程栈中的值,线程运行完毕,会将线程栈中的值在传回到堆内存中,所以在图中的程序中就会出现线程安全问题,因此结果一般小于1000;
  12.  线程池:事先将多个线程放到一个容器中,当使用的时候就不是去new线程,而是直接去线程池中拿线程即可,节省了开辟子线程的时间,提高代码执行效率
    有点:(1)通过重复使用已创建的线程降低线程创建和销毁带来的消耗
               (2)提高响应速度,当任务到达时,不需要等待线程创建就能立即执行
               (3)提高线程的可管理性,线程是稀缺资源,如果无限制的创建,不仅消耗系统资源,还会降低系统的稳                     定性,使用线程池可以进行统一分配,调优和监控。






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值