Java常见面试问题

原文传送门:Java Interview Questions 

Java Interview Question

通常面试对于纯语言知识性的东西问的不算太多,但是很多算法或者设计模式里恰恰需要用到一些经典的语言特征。因此往往这类问题会作为面试开始时一个入门菜。因此,准确的掌握一些基础知识便尤为重要了。

1. Java String 类的基础知识

Q1: String 类到底创建几个对象?

String str = "Hello, World";

String str2 = "Hello, World";

String str3 = new String("Hello,World");

String str4 = new String("Hello, World");

A1: String 构造时,如果是常量赋值的话,首先会去常量Pool中查找是否已经存在常量,如存在则直接把常量字符串的引用赋值便可,如果不存在则需要在常量池中创建新的常量引用在赋值给变量的引用;而如果是new操作的化,则是在堆中创建,且每次都会新创建一个常量池中的对象,然后在把这个对象用过new构造函数赋值给其在堆中的新对象。所以答案为:

1

1

2

2

Q2: String 中的== 和 equals操作符含义?

str == str2 ?

str equals str2 ?

str3 == str4 ?

str3 equals str4 ?

A2: 通常对于字符串内容的比较我们通过equals()函数来进行,而==运算符则是比较两个字符串引用是否指向同一个对象。两者的区别用下面stackoverflow上的回答:

因此

答案

为:

true

true

false

true

2. Synchronized 类线程安全和效率的比较Q1: ArrayList, Vector and LinkedList 三者之间的区别? A1: 可以从两方面来比较,首先对于ArrayList和Vector其底层都是通过Array的连续存储空间实现,可以按位快速存取,但是当出入值时需要顺序后移,因此效率较低,而LinkedList则是用过链表的方式因此其插入效率很高,但查找效率降低。 然后,如果单从线程安全的角度来看,Vector是实现synchronized,因此是线程安全,但是却会因此降低了其效率。引用JavaRanch上的一个回答:

Q2: HashMap 和 HashTable的区别? A2: 可以从两方面来回答。首先是线程安全的角度;其次是是否允许空值的角度。而HashTable都可以看作是对HashMap的限制和提高。因此HashMap是非线程安全的,且是允许一个null键和多个null值的,而HashTable是线程安全的,且是不允许null值和键的。最后可以从扩展性上来看,如果想要默认插入顺序的,可以选择LinkedHashMap,如果想要线程安全的可以使用ConcurrentHashMap,更详细的解答,仍旧是看stackoverflow上的解答:

3. Overloading vs override in JavaQ1: Overloading 和 Override之间有什么区别? A1: Overloading称之为重载,通常是同一个功能的函数,为了实现不同的输入参数个数和类型等需要,在一个对象中定义的多个函数。而Override则通常是存在与父类和子类中的,同一个函数,其参数类型和个数都相等,在子类中对其重新实现,且覆盖了原先的方法。而Overriding通常有两种,一种是vitual函数的overriding,另一种是非virtual函数的overriding。前者是一种动态的绑定,而后者是一种静态的。 具体区别如下:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,105评论 18 399
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,494评论 11 349
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 11,948评论 0 62
  • 1、面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标...
    michaelgong阅读 4,296评论 0 1
  • 学了麻将,老三星 只胡一家,只有赖子,没有痞子,先胡为上 摸了赖子,边章不要 定将为先,再整门子
    木方方阅读 1,454评论 0 0

友情链接更多精彩内容