黑马项目一完结后阶段面试45题 JavaSE基础部分20题(二)

这篇具有很好参考价值的文章主要介绍了黑马项目一完结后阶段面试45题 JavaSE基础部分20题(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

十一、集合体系结构和特点

Collection

   └ List 有索引,存取一致,有序,元素允许重复

  ┃     └ ArrayLIst

  ┃     └ LinkedList

  ┃     └ Vector

  └ Set 无索引,无序,元素不允许重复

          └ HashSet

          └ TreeSet

          └ LinkedHashSet

十二、ArrayList特点,扩容

特点

1.增删慢

每次删除元素,都需要更改数组长度、拷贝以及移动元素位置。当然,增删最后一个元素快

2.查询快

连续空间存储数组,根据地址+索引能快速访问到数据。

3.可扩容/动态性

ArrayList使用动态数组作为底层的数据结构,能够自动扩容、缩容

4.非线程安全

多个线程同时访问和修改同一个ArrayList实例,可能会导致不可预测的结果

扩容

无参、传参为0、传列表为0时,创建ArrayList容量为0,添加第一个元素后容量为10,下次正常扩容。

正常扩容,列表满时,扩容1.5倍。

十三、HashMap的原理

对于底层数据结构,采用的是哈希表。

哈希表在jdk1.8之前,哈希表是数组+链表;jdk1.8及之后,哈希表是数组+链表+红黑树。

存取原理:

首先根据键,计算哈希值。

根据哈希值,计算下标,存入数组。

数组中,如果该下标下链表为空,则直接存入;

如果链表不为空,则产生了哈希冲突,进一步判断哈希值是否相等。相等,则重复了,替代掉;

如果不相等,则存入链表后面。

取时,首先计算被取元素的哈希值,然后计算其在数组中的下标,在下标中的链表中找到相同哈希值的元素,即可取出。

在jdk1.8之前,解决哈希冲突时采用的是拉链法,即直接使用链表。

1.8之后,解决哈希冲突,用红黑树。如果链表长度大于8,则扩容为红黑树;如果长度小于了6,则又退化为链表。

十四、什么是递归,有什么优缺点

递归:方法自己调用自己

优点:代码简介。

缺点:1.性能开销大;2.栈溢出;3.调试困难。

十五、IO流的分类

字符流、字节流

输入流、输出流

节点流、处理流

其中,文本用字符流,非文本数据、文件拷贝用字节流。

十六、多线程的实现方式

4种方式:

1.继承Thread

2.实现Runnable

3.实现Callable

4.线程池

十七、线程安全问题产生的原因、解决方案

产生原因

1.有多线程要并发

2.要操作同一组数据

解决方案

加同步锁synchronized

加锁Lock(jdk5之后)

十八、线程池的7个参数

1.corePoolSize 核心线程数

2.maxinumPoolSize 最大线程数

3.keepAliveTime 空闲线程的存活时间。

4.unit 存活时间的单位

5.workQueue 任务队列,存放被提交但是尚未被执行的任务。

6.threadFactory 生成线程池中工作线程的线程工厂。

7.handler:拒绝策略,队列、线程都满了时如何处理线程。

十九、UDP和TCP协议的区别

1.UDP无连接,速度快,安全性低,适合高速传输、实时广播通信等。

2.TCP面向连接,速度慢,安全性高,适合传输质量要求高、大文件等的传输,比如邮件发送等。

(还有:TCP只能是一对一的,UDP支持一对一、一对多、多对一)

(还有:TCP首部开销有20个字节;UDP分组首部开销小,只有8个字节)

二十、什么是反射

Java中动态获取类及类的成员、方法的技术。

框架的底层都用了大量的反射。文章来源地址https://www.toymoban.com/news/detail-644741.html

到了这里,关于黑马项目一完结后阶段面试45题 JavaSE基础部分20题(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 面试项目-黑马头条-项目介绍

    B站视频黑马头条视频学习总结,侵权请联系删除 1.1 项目背景 随着智能手机的普及,人们更加习惯于通过手机来看新闻。由于生活节奏的加快,很多人只能利用碎片时间来获取信息,因此,对于移动资讯客户端的需求也越来越高。黑马头条项目正是在这样背景下开发出来。黑

    2024年02月09日
    浏览(42)
  • 如何运行黑马程序员redis项目黑马点评(hm-dianping)、常见报错解决与部分接口的测试方法

    hm-dianping项目仓库地址:https://gitee.com/huyi612/hm-dianping 项目对应教学视频:https://www.bilibili.com/video/BV1cr4y1671t?p=24(p24-p95) hm-dianping项目仓库地址:https://gitee.com/huyi612/hm-dianping 以Navicat为例 1、先新建数据库hmdp 2、导入项目中的hmdp.sql文件 配置Mysql 要注意配置文件中默认的mysql配

    2024年01月17日
    浏览(46)
  • 【C51】10-基础51单片机的小车项目(51完结)

    10.1小车的安装 10.2电机模块的开发(L9110S) 接通 VCC , GND 模块电源指示灯亮, 以下资料来源官方,但是不对,根据下节课实际调试 IA1 输入高电平, IA1 输入低电平,【 OA1 OB1 】电机正转; IA1 输入低电平, IA1 输入高电平,【 OA1 OB1 】电机反转; IA2 输入高电平, IA2 输入低

    2024年02月08日
    浏览(56)
  • Java基础部分面试题(2023最新)

    1. 谈谈你对 Java 平台的理解? ① 平台无关性 (一次编译到处运行) ② GC (垃圾自动回收机制,不像C++那样需要手动去释放堆内存) ③ 语言特性 (泛型、反射、Lambda 表达式) ④ 面向对象 (封装、继承、多态) ⑤ 类库 (集合、并发库、网络库等、IO、NIO) ⑥ 异常处理

    2024年02月01日
    浏览(63)
  • Java面试知识点(全)- Java面试基础部分一

    Java面试知识点(全)https://nanxiang.blog.csdn.net/article/details/130640392 语法基础 封装 利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联

    2024年02月05日
    浏览(46)
  • 黑马程序员——javase进阶——day01——匿名对象 , 继承 , 抽象类

    目录: 面向对象回顾 面向对象的核心思想是什么? 现有的类还是先有的对象? Java类的创建? 类中的组成成分? 创建对象所使用的? 创建对象的格式? 调用对象的成员? 定义构造方法的格式? 定义构造方法的特点? 构造方法的作用? 面向对象三大特征是什么? 封装的思想及其作

    2024年01月24日
    浏览(41)
  • 云计算第1阶段_Linxu基础知识_day03,Linux运维面试题选择题

    ├── boot ├── dev ├── etc ├── home ├── lib - usr/lib ├── lib64 - usr/lib64 ├── media ├── mnt ├── opt ├── proc ├── root ├── run ├── sbin - usr/sbin ├── srv ├── sys ├── tmp ├── usr └── var 目录介绍(了解): /root #root用户的家目录 /home #存储

    2024年04月13日
    浏览(47)
  • Java基础阶段项目 ---- 拼图游戏(含讲解以及源代码)

    此项目为java基础的阶段项目,此项目涉及了基础语法,面向对象等知识,具体像语法基础如判断,循环,数组,字符串,集合等…; 面向对象如封装,继承,多态,抽象类,接口,内部类等等…都有涉及。此项目涉及的内容比较多,作为初学者可以很好的将前面的知识串起来。此项目拿来练手以

    2024年02月09日
    浏览(41)
  • 【地铁上的面试题】--基础部分--操作系统--内存管理

    内存管理是指操作系统或编程语言运行时环境对计算机系统中的内存资源进行分配、使用和回收的过程。其主要目标是有效地管理内存资源,以提供给程序足够的内存空间来存储和执行程序所需的数据和指令。内存管理的作用包括: 内存分配:将可用的内存空间分配给程序和

    2024年02月11日
    浏览(90)
  • 云计算第1阶段_Linxu基础知识_day03,字节跳动8年老Linux运维面试官经验谈

    5 远程连接sshd服务 ps:sshd默认端口号:22 5.1 手动修改默认端口号 6 文件拷贝、移动、删除 6.1 拷贝文件或目录 6.2 移动文件或目录 **ps:**判断上一条命令是否执行成功 命令:echo $? 如果返回值为0,证明我们上一条命令执行是成功的, 如果返回值非0,证明我们上一条命令执行

    2024年04月12日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包