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面试题附答案相关推荐

  1. Java容器--2021面试题系列教程(附答案解析)--大白话解读--JavaPub版本

    Java容器–2021面试题系列教程(附答案解析)–大白话解读–JavaPub版本 前言 序言 再高大上的框架,也需要扎实的基础才能玩转,高频面试问题更是基础中的高频实战要点. 适合阅读人群 Java ...

  2. 在python中、下列代码的输出是什么-python面试题详细总结(附答案)

    本篇文章给大家带来的内容是关于python面试题总结(附答案),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. CPS少儿编程网-Scratch_Python_教程_免费儿童编程学习平 ...

  3. 北师大计算机试题六答案,2019年度全国计算机二级考试-试题资料题库(附答案解析).doc...

    2019年度全国计算机二级考试-试题资料题库(附答案解析).doc 2019年全国计算机二级考试试题题库(附答案)一.选择题1-40每小题1分,41-50每小题2分,共60分下列各题 A .B.C.D ...

  4. 100道Java基础面试题收集整理(附答案)

    不积跬步无以至千里,这里会不断收集和更新Java基础相关的面试题,目前已收集100题. 1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Cl ...

  5. java web试题_Java web开发经典面试题汇总(内附答案详解)

    原标题:Java web开发经典面试题汇总(内附答案详解) 1.说出Servlet 的生命周期,并说出Servlet 和CGI 的区别? 答:Web 容器加载Servlet 并将其实例化后,Servl ...

  6. 《Python语言程序设计》考试试题(A卷)【附答案】

    <Python语言程序设计>考试试题(A卷) [末尾-附答案] 一.选择题(每题2分,计15题,共30分) 1.执行下列语句后,最终的显示结果是( ). >>> valu ...

  7. python算法面试题及答案,python面试题详细总结(附答案)

    本篇文章给大家带来的内容是关于python面试题总结(附答案),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.下面这段代码的输出结果是什么?请解释.def extendList( ...

  8. java中必检异常有哪些_Java面试题经典面试题220道(附答案)

    Java基础: 1.JDK 和 JRE 有什么区别? 2. == 和 equals 的区别是什么?== 解读 3. 两个对象的 hashCode() 相同, 那么 equals() 也一定为 true ...

  9. 阿里巴巴整理的python_阿里P8大佬整理的2020年最全99道python面试题,文末附答案...

    前言: 学习python的优点是什么?python语法非常优雅,简单易学 免费开源 跨平台,可以自由移植 可扩展,可嵌入性强 第三方库丰富 python的应用领域在系统编程中应用广泛,比如说shell ...

最新文章

  1. js中let和var定义变量的区别
  2. java中volatile关键字的含义
  3. POJ 3750 小孩报数问题
  4. 聚类算法(part1)--DBSCAN
  5. nginx优化之请求直接返回json数据
  6. yum命令 启用仓库_yum仓库详细解读
  7. 一个单片机搞定USB电阻式触摸屏,完美解决飞点问题。
  8. cnn 回归 坐标 特征图_RCNN, Fast R-CNN 与 Faster RCNN理解及改进方法
  9. 【转】拉勾网 - 《2016互联网职场生态白皮书》
  10. pytorch实现股票预测
  11. 研究开源的C++的RTB广告系统,通过centos7镜像,解决各种环境问题,使用boost库
  12. 在xsl中插入有大于、小于符号JavaScript,CSS代码的方法
  13. 扇贝python离线_扇贝自动打卡Python脚本(Python3)
  14. 物联网毕业设计-选题推荐
  15. 【网络协议】TCP/IP 协议
  16. 大学生个人网页模板 简单网页制作作业成品 极简风格个人介绍HTML(个人博客 4页)
  17. [Windows]批处理变更用户文件夹到其他位置
  18. 2022年8月国内外数据库排名
  19. 【测试开发】自动化测试在美团外卖的实践与落地
  20. 大学毕业设计答辩PPT模板

热门文章

  1. 【指标统计】统计装置总招遥信
  2. docker远程访问TLS证书认证shell
  3. Oracle 中对表空间使用情况进行查询
  4. MySQL中show语法使用总结
  5. Java LinkedList特有方法程序小解 使用LinkedList 模拟一个堆栈或者队列数据结构。...
  6. twitter bbs
  7. 怎么能方便的进行数据库存储过程的版本管理?
  8. 周华健,歌声伴我长大(一)
  9. CreateThread创建线程函数详细讲解
  10. 计算1至1000间的合数c语言,输出1000以内的素数的算法(实例代码)