2018java多线程面试题_2018JAVA面试题附答案
JAVA基础
1.JAVA中的几种基本类型,各占用多少字节?
2.String能被继承吗?为什么?
不可以,因为String类有final修饰符,而final不能被继承的,实现细节不允许改变。平常我们定义的String str = " a ";其实和String str = new String("a");还是有差异的。
前者默认调用的String.valueof来返回String的实例对象,至于调用哪个则取决于你的赋值,比如String num = 1;调用的是public static String valueOf(int i){
return Integer.toString(i);
}
后者则是调用如下部分:
public String(String original) {
this.value = original.value;
this.hash = original.hash;
}
最后我们的变量都存储在一个char数组中。
private final char value[];
3.String, Stringbuffer, StringBuilder 的区别。
String 字符串常量(final修饰,不可被继承),String是常量,当创建之后即不能更改。(可以通过StringBuffer和StringBuilder创建String对象(常用的两个字符串操作类)。)
StringBuffer 字符串变量(线程安全),其也是final类别的,不允许被继承,其中的绝大多数方法都进行了同步处理,包括常用的Append方法也做了同步处理。其自jdk1.0起就已经出现。其toString方法会进行对象缓存,以减少元素的复制开销。
public synchronized String toString() {
if (toStringCache == null) {
toStringCache = Arrays.copyOfRange(value, 0, count);
}
return new String(toStringCache, true);
}
StringBuilder 字符串变量,(非线程安全)其自jdk1.5起开始出现。与StringBuffer一样都继承和实现同一个接口和类,方法除了没有使用synch修饰以外基本一致,不同之处在于最后toString的时候,会直接返回一个新对象。
public String toString() {
// Create a copy, don’t share the array
return new String(value, 0, count);
}
4.ArrayList 和 LinkedList 有什么区别。
ArrayList和LinkedList都实现了List接口,有以下的不同点:
1.ArrayList是基于索引的数据接口。它的底层是数组。它可以以O(1)时间复杂度对元素进行随机访问。以此对应,LinkedList是以元素列表的形式存储的数据,每一个元素都和它的前一个后一个元素链接在一起,在这种情况下,查找某个元素的时间复杂度是O(n)。
2.相对于ArrayList,LinkedList的插入,添加,删除操作速度更快,因为当元素被添加到集合任意位置的时候,不需要像数组那样重新计算大小或者是更新索引。
3.LinkedList比ArrayList更占内存,因为LinkedList为每一个节点存储了两个引用,一个指向前一个元素,一个指向下一个元素。
5.讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,当 new 的时候, 他们的执行顺序。
父类静态代变量、
父类静态代码块、
子类静态变量、
子类静态代码块、
父类非静态变量(父类实例成员变量)、
父类构造函数、
子类非静态变量(子类实例成员变量)、
子类构造函数。
6.用过哪些 Map 类,都有什么区别,HashMap 是线程安全的吗,并发下使用的 Map 是什么,他们内部原理分别是什么,比如存储方式, hashcode,扩容, 默认容量等。
hashMap是线程不安全的,HashMap是数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的,采用哈希表来存储的,
JAVA8 的 ConcurrentHashMap 为什么放弃了分段锁,有什么问题吗,如果你来设计,你如何设计。
有没有顺序的Map实现类,如果有,他们是怎么保证有序的。
TreeMap和LinkedHashMap是有序的(TreeMap默认升序,LinkedHashMap则记录了插入顺序)。
7.抽象类和接口的区别,类可以继承多个类么,接口可以继承多个接口么,类可以实现多个接口么。
1、抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。
2、抽象类要被子类继承,接口要被类实现。
3、接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现
4、接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。
5、抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类。同样,一个实现接口的时候,如不能全部实现接口方法,那么该 类也只能为抽象类。
6、抽象方法只能申明,不能实现。abstract void abc();不能写成abstract void abc(){}。
7、抽象类里可以没有抽象方法 。
8、如果一个类里有抽象方法,那么这个类只能是抽象类 。
9、抽象方法要被实现,所以不能是静态的,也不能是私有的。
10、接口可继承接口,并可多继承接口,但类只能单根继承。
8.继承和聚合的区别在哪。
继承指的是一个类(称为子类、子类接口)继承另外一个类(称为父类、父接口)的功能,并可以增加它自己的新功能,继承是类与类或者接口之间最常见的关系。在java中此类关系通过关键字exetents明确标识,在设计时候一般没有争议性。
2018java多线程面试题_2018JAVA面试题附答案相关推荐
- Java容器--2021面试题系列教程(附答案解析)--大白话解读--JavaPub版本
Java容器–2021面试题系列教程(附答案解析)–大白话解读–JavaPub版本 前言 序言 再高大上的框架,也需要扎实的基础才能玩转,高频面试问题更是基础中的高频实战要点. 适合阅读人群 Java ...
- 在python中、下列代码的输出是什么-python面试题详细总结(附答案)
本篇文章给大家带来的内容是关于python面试题总结(附答案),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. CPS少儿编程网-Scratch_Python_教程_免费儿童编程学习平 ...
- 北师大计算机试题六答案,2019年度全国计算机二级考试-试题资料题库(附答案解析).doc...
2019年度全国计算机二级考试-试题资料题库(附答案解析).doc 2019年全国计算机二级考试试题题库(附答案)一.选择题1-40每小题1分,41-50每小题2分,共60分下列各题 A .B.C.D ...
- 100道Java基础面试题收集整理(附答案)
不积跬步无以至千里,这里会不断收集和更新Java基础相关的面试题,目前已收集100题. 1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Cl ...
- java web试题_Java web开发经典面试题汇总(内附答案详解)
原标题:Java web开发经典面试题汇总(内附答案详解) 1.说出Servlet 的生命周期,并说出Servlet 和CGI 的区别? 答:Web 容器加载Servlet 并将其实例化后,Servl ...
- 《Python语言程序设计》考试试题(A卷)【附答案】
<Python语言程序设计>考试试题(A卷) [末尾-附答案] 一.选择题(每题2分,计15题,共30分) 1.执行下列语句后,最终的显示结果是( ). >>> valu ...
- python算法面试题及答案,python面试题详细总结(附答案)
本篇文章给大家带来的内容是关于python面试题总结(附答案),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.下面这段代码的输出结果是什么?请解释.def extendList( ...
- java中必检异常有哪些_Java面试题经典面试题220道(附答案)
Java基础: 1.JDK 和 JRE 有什么区别? 2. == 和 equals 的区别是什么?== 解读 3. 两个对象的 hashCode() 相同, 那么 equals() 也一定为 true ...
- 阿里巴巴整理的python_阿里P8大佬整理的2020年最全99道python面试题,文末附答案...
前言: 学习python的优点是什么?python语法非常优雅,简单易学 免费开源 跨平台,可以自由移植 可扩展,可嵌入性强 第三方库丰富 python的应用领域在系统编程中应用广泛,比如说shell ...
最新文章
- js中let和var定义变量的区别
- java中volatile关键字的含义
- POJ 3750 小孩报数问题
- 聚类算法(part1)--DBSCAN
- nginx优化之请求直接返回json数据
- yum命令 启用仓库_yum仓库详细解读
- 一个单片机搞定USB电阻式触摸屏,完美解决飞点问题。
- cnn 回归 坐标 特征图_RCNN, Fast R-CNN 与 Faster RCNN理解及改进方法
- 【转】拉勾网 - 《2016互联网职场生态白皮书》
- pytorch实现股票预测
- 研究开源的C++的RTB广告系统,通过centos7镜像,解决各种环境问题,使用boost库
- 在xsl中插入有大于、小于符号JavaScript,CSS代码的方法
- 扇贝python离线_扇贝自动打卡Python脚本(Python3)
- 物联网毕业设计-选题推荐
- 【网络协议】TCP/IP 协议
- 大学生个人网页模板 简单网页制作作业成品 极简风格个人介绍HTML(个人博客 4页)
- [Windows]批处理变更用户文件夹到其他位置
- 2022年8月国内外数据库排名
- 【测试开发】自动化测试在美团外卖的实践与落地
- 大学毕业设计答辩PPT模板