java面试题

JAVA基础部分

1、java的基本数据类型以及所占用的内存大小

       byte        1个字节

       short       2个字节

       int           4个字节

       long         8个字节

       char         2个字节   (char能够存储一个汉字)

       float         4个字节

       double      8个字节

       boolean      jvm并没有规范指定boolean的大小

2、String、StringBuffer、StringBuilder的区别及使用

      String为不可变字符串;StringBuffer、StringBuilder为可变字符串,StringBuffer是线程安全的、StringBuilder是线程不安全的。

3、java中传值和传引用的区别

      传值:传递的相当于是传递对象的副本,就算改变副本,也不会影响源对象。

      传引用:传递的是对象的引用,外部对引用所做的改变会反映到源对象上。

4、HashMap和HashTable的区别

     主要有两点区别

     (1)HashMap允许null的key和value,而HashTable不允许有null值的key或value;

     (2)HashTable是线程安全的,HashMap是线程不安全的。

5、HashMap的实现原理

      HashMap的底层实现是 “数组”+“链表”,HashMap的put方法:根据key的hashcode以及table.length来寻找存储地址,若是该地址没有存放值,则接进行存放;若是已经存放其他值,则以链表的形式存放;新加入的总是放在链头,最先插入的在链尾。

6、Array和ArrayList的区别

    (1)Array可以包含基本类型和对象类型,ArrayList只能包含对象类型。

    (2)Array大小是固定的,ArrayList的大小是动态变化的。

7、ArrayList和LinkedList的区别

       ArrayList是基于动态数组实现的,LinkedList是基于链表实现的;对于随机访问的get和set,ArrayList的效率一般高于LinkedList,因为LinkedList要移动数组;对于删除和插入,LinkedList效率要高于ArrayList,因为ArrayList要移动数据。

8、Error和Exception的区别

      error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
  exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

9、throw和throws的区别

       throw是使用在方法体内,表示抛出异常。

       throws语句用在方法声明后面,表示再抛出异常,由该方法的调用者来处理。

posted @ 2017-09-13 15:44  新手攻城狮  阅读(169)  评论(0)    收藏  举报