1. 重载和重写的区别

1)重载:

  • 发生在同一个类中,要求方法名相同、参数类型不同(个数不同、顺序不同、类型不同)

  • 和方法的返回值和访问修饰符没关系(在只有返回值和访问修饰符不同的这种情况下,编译时会报错)

2)重写: 子类重写父类的方法

  • 方法名、参数列表都相同
  • 子类的返回值范围小于父类
  • 抛出的异常范围小于父类
  • 访问修饰符的范围大于等于父类
  • 如果父类方法访问修饰符为 private 则子类就不能重写该方法

2. List 和 Set 的区别

  • List 有序、可重复、允许多个 null 元素对象,可以使用迭代器取出所有元素,再逐一遍历,还可以使用 get(index) 下标的形式获取指定下标的元素,也就是说支持随机访问
  • Set 无序,不可重复,最多容许一个 null 元素对象,取元素时,只可以使用迭代器接口取得所有元素,再逐一遍历各个元素 (很好理解鸭,它无序,所有肯定不能用 get(index) 这种方式取,下标对它来说无意义)

3. ArrayList 和 LinkedList 的区别

  • 在底层实现上,ArrayList 底层是数组,LinkedList 底层是链表
  • 这样的结构导致了他们的使用场景的区别,ArrayList 更适合随机查找比较多的场景,LinkedList 更适合删除和添加场景比较多的场景
  • ArrayList 和 LinkedList 都实现了 List 接口,但是 LinkedList 还实现了 Deque 接口,也就是说LinkedList 可以当作双端队列的来使用

4. ConcurrentHashMap 的扩容机制

  • jdk 1.7

1.7 中的 ConcurrentHashMap 基于 Segment 实现,每个 Segment 相当于一个小型的 HashMap。当需要进行扩容时,Segment 对象内部进行扩容。和 HashMap 扩容机制类似,先生成新数组,然后将元素转移到新数组中,再修改指针指向新的数组。其对扩容阈值的判断,是基于每个 Segment 内部进行判断的

  • jdk 1.8

1.8中的 ConcurrentHashMap 不再基于 Segment 实现,其扩容是可以多线程的。扩容之前也生成一个新数组,然后将需要转移的元素分组,每组交给不同线程转移,每个线程负责一组或多组的转移工作。若是出现扩容时,一线程想 put 的情况,则该线程帮忙一起扩容


【Java基础】Java基础题相关推荐

  1. java 初级编程题_java基础经典编程题

    java基础经典编程题 Monkey_peach代码 package com.sailor.game; /** * 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第 ...

  2. java填空题_Java语言基础知识填空题

    Java语言基础知识填空题 想学java语言的人,要多做题才能巩固知识,下面小编为大家带来了Java语言基础知识的填空题,欢迎大家阅读! Java语言基础知识填空题. 1.浮点型数据根据数据存储长度和 ...

  3. 好程序员Java培训分享20个Java程序员基础题

    好程序员Java培训分享20个Java程序员基础题1.谈谈final.finally.finalize的区别 final用于声明属性,方法和类,分别标识属性不可变,方法不可覆盖,类不可继承. fina ...

  4. 50道JAVA基础算法编程题【内含分析、程序答案】【建议收藏】【建议收藏】【建议收藏】

    非常基础的题目,但是想学好Java它真的是基础,基础有多重要我就不再废话,重要的事情说三遍[建议收藏][建议收藏][建议收藏]. [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一 ...

  5. 博学谷java题库判断_博学谷Java开发面试基础笔试题及答案分享

    博学谷Java开发面试基础笔试题分享:char 型变量中能不能存贮一个中文汉字?为什么?"=="和 equals 方法究竟有什么区别?静态变量和实例变量的区别?是否可以从一个 st ...

  6. java学习总结——通过题来学习Java(Java基础语法)

    java学习总结--通过题来学习Java(Java基础语法篇之一) 一.概述 大二痛苦的前十个周后,我终于得到了喘息之机,有时间来回顾一下之前所学到的东西,总结一下之前的所得,尝试获取一下新的东西,同 ...

  7. 【Java】Java学习笔记(2)——Java面向对象基础作业函数题

    本人私人博客:Megalomania,大部分文章会现在博客上传,有不足之处欢迎指正. 学校小学期Java课程的练习题,留个档便于以后需要时候有例子可以回忆,写的烂的地方请多多包含 1.求两个数值之和 ...

  8. Java基础面试50题

    1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象 ...

  9. 【2022】Java基础面试真题

    文章目录 1. Java基础 1.1 为什么Java代码可以实现一次编写.到处运行? 1.2 一个Java文件里可以有多个类吗(不含内部类)? 1.3 说一说你对Java访问权限的了解 1.4 介绍一 ...

  10. JAVA基础入门编程题练习(一)

    JAVA基础入门编程题练习(一) 1.设计一个学生类Student和它的一个子类Undergraduate.要求如下: (1) Student类有name和age属性,一个包含两个参数的构造方法,用于 ...

最新文章

  1. keras.utils.to_categorical用法
  2. spring中事件发布设计与实现
  3. 通讯录排序 (20分)_算法入门篇:简单的排序算法
  4. CentOS6.5 搭建Open***服务器
  5. du 查看使用 linux命令,如何正确使用Linux命令–du
  6. 深入理解Scala的隐式转换系统
  7. m1 MBA配置TeX+Sublime+Skim环境
  8. linux 卸载、安装mysql
  9. 联想System x服务器主要硬件Windows Server驱动下载
  10. i78750h和i58300h对比哪个好
  11. 皮卡丘(pikachu)暴力破解
  12. 微云同步盘 linux,微云同步盘pc版下载
  13. 720yun全景图+vue
  14. 模数转换 A/D 与数模转换 D/A介绍
  15. kafka最全面试题汇总
  16. windows server 2016 活动目录部署系列(十一)AD域控上安装证书服务器
  17. 物联网产业前景看涨然5大挑战在眼前
  18. 贝叶斯公式推导及意义
  19. execvp函数详解_如何在C / C ++中使用execvp()函数
  20. 【ClearCase 学习笔记 】之(4/4)CC基本操作介绍

热门文章

  1. 罗振宇为何说什么都错?
  2. 咕咚运动数据存储实践
  3. layui upload 上传大小限制
  4. dubbo源码分析25 -- 序列化与反序列化
  5. VGG16全卷积网络 以VGG代码为例
  6. 罗马音平假名中文可复制_如何快速有效地学习日语五十音?
  7. cod16显示服务器队列,使命召唤16战区
  8. linux挂载03磁盘,Linux_常用命令_03_磁盘/挂载_信息查看(示例代码)
  9. 分享一个可以下载网页上视频软件(IDM 6.33.2)下载器
  10. v-if判断字符串是否相等