黑马项目一完结后阶段面试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中动态获取类及类的成员、方法的技术。
框架的底层都用了大量的反射。
相关文章:
黑马项目一完结后阶段面试45题 JavaSE基础部分20题(二)
十一、集合体系结构和特点 Collection └ List 有索引,存取一致,有序,元素允许重复 ┃ └ ArrayLIst ┃ └ LinkedList ┃ └ Vector └ Set 无索引,无序,元素不允许重复 └ HashSet └ TreeSet └ Linke…...
防御第九次作业
一、根据以下问题总结当天内容 1. SSL工作过程是什么? 当客户端向一个 https 网站发起请求时,服务器会将 SSL 证书发送给客户端进行校验,SSL 证书中包含一个公钥。校验成功后,客户端会生成一个随机串,并使用受访网站的…...
Java刷题——代码随想录Day1
代码随想录Day1 数组 二分查找 力扣704.二分查找 二分查找有几个最重要的特点: 对于需要用到”二分查找“的数组来说(即用二分查找来找到确切的某一个元素),这个数组中的元素不能重复; 被操作的数组一定要是有序的…...
android,Compose,消息列表和动画(点击item的时候,就会删除)
Compose,消息列表和动画(点击item的时候,就会删除) package com.example.mycompose08import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundat…...
go-admin 使用开发
在项目中使用redis 作为数据缓存:首先引入该包 “github.com/go-redis/redis/v8” client : redis.NewClient(&redis.Options{Addr: config.QueueConfig.Redis.Addr, // Redis 服务器地址Password: config.QueueConfig.Redis.Password, // Redis 密码&…...
力扣的板子
板子 线性筛法求质因子的板子快速幂 线性筛法求质因子的板子 int limit 100000; //修改为题目中的数字的上限 bool isprime[100005] {0}; //保存所有1~limit中的数字是不是质数 int myprime[100005] {0}; //保存2~limit中所有数字的最小质因子 int primes[100000] {0}; …...
基于Matlab实现路径规划算法(附上15个完整仿真源码)
路径规划是机器人技术中非常重要的一项任务,它涉及到机器人在复杂环境中的自主移动和避障能力。在本文中,我们将介绍利用多种算法实现路径规划的Matlab程序,包括模拟退火算法、RRT算法、PRM算法、聚类算法、potential算法、GA算法、fuzzy算法…...
纯跟踪(Pure Pursuit)路径跟踪算法研究(2)
纯跟踪(Pure Pursuit)路径跟踪算法研究(2) 下午进行了简单的公式推导,理论推导部分是没有问题的 下面的博客提供了在实车上用 GPS 实现纯跟踪控制的一些思路和注意点 Pure Pursuit(纯追踪算法)ROS实践 并不急于在实车…...
前后端分离------后端创建笔记(02)
本文章转载于【SpringBootVue】全网最简单但实用的前后端分离项目实战笔记 - 前端_大菜007的博客-CSDN博客 仅用于学习和讨论,如有侵权请联系 源码:https://gitee.com/green_vegetables/x-admin-project.git 素材:https://pan.baidu.com/s/…...
Webpack5 Preload/Prefetch技术
文章目录 什么是Preload/Prefetch技术一、Preload:确保必需资源的快速获取二、Prefetch:预加载未来可能使用的资源三、使用注意事项四、Prefetch:总结 什么是Preload/Prefetch技术 在现代Web开发中,页面加载速度对于用户体验至关…...
PHP原生类
什么是php原生类 原生类就是php内置类,不用定义php自带的类,即不需要在当前脚本写出,但也可以实例化的类 我们可以通过脚本找一下php原生类 <?php $classes get_declared_classes(); foreach ($classes as $class) {$methods get_clas…...
QGIS3.28的二次开发八:显示shp的属性表
这里实现两个基本的 GIS 软件需求:矢量图层的属性表显示,以及根据属性筛选要素。 具体需求如下: 加载一个矢量图层并打开其属性表;输入筛选条件确认无误后,画布上和属性表中均只显示筛选后的要素。 QGIS 提供了若干…...
虚拟机安装 Ubuntu桌面版,宿主机无法访问虚拟机 ufw 防火墙简单使用
虚拟机安装 Ubuntu桌面版,宿主机无法访问虚拟机 问题处理安装ssh服务ufw防火墙 放行ssh服务ufw 常用命令 问题 本次安装使用的 ubuntu-22.04.2-desktop-amd64 ,网络连接使用的是桥接,查看ubuntu的ip是正常的,与宿主机在同一个网段…...
jquery发送ajax练习
jquery发送ajax练习 工具代码运行结果 工具 HBuilder X 代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>通过ajax进行图片的提取和显示</title><style>div{background-color: beige;color: red;font-s…...
adb用法,安卓的用户CA证书放到系统CA证书下
设备需root!!设备需root!!设备需root!! 测试环境:redmi 5 plus、miui10 9.9.2dev(安卓8.1)、已root win下安装手机USB驱动(过程略,…...
【LVS-NAT配置】
配置 node1:128(客户端) node2:135(调度器) RS: node3:130 node4:132 node2添加网络适配器(仅主机模式) [rootnode2 ~]# nmtui[rootnode2 ~]#…...
时序预测 | MATLAB实现BO-GRU贝叶斯优化门控循环单元时间序列预测
时序预测 | MATLAB实现BO-GRU贝叶斯优化门控循环单元时间序列预测 目录 时序预测 | MATLAB实现BO-GRU贝叶斯优化门控循环单元时间序列预测效果一览基本介绍模型搭建程序设计参考资料 效果一览 基本介绍 MATLAB实现BO-GRU贝叶斯优化门控循环单元时间序列预测。基于贝叶斯(bayes)…...
注意:阿里云服务器随机分配可用区说明
阿里云服务器如有ICP备案需求请勿选择随机可用区,因为当前地域下的可用区可能不支持备案,阿里云百科分享提醒大家,如果你的购买的云服务器搭建网站应用,网站域名需要使用这台云服务器备案的话,不要随机分配可用区&…...
【Vue】使用print.js插件实现打印预览功能,超简单
目录 一、实现效果 二、实现步骤 【1】安装插件 【2】在需要打印的页面导入 【3】在vue文件中需要打印的部分外层套一层div,给div设置id。作为打印的区域 【4】在打印按钮上添加打印事件 【5】在methods中添加点击事件 三、完整代码 一、实现效果 二、实现步…...
3.5 Spring MVC参数传递
Spring MVC的Controller接收请求参数的方式有多种,本节主要介绍Spring MVC下的HttpServletRequest、基本数据类型、Java Bean、数组、List、Map、JSON参数传递方式,同时解决POST请求中文乱码问题。 1. HttpServletRequest参数传递 Controller RequestM…...
Arcade Learning Environment多智能体环境:打造竞争与合作AI系统
Arcade Learning Environment多智能体环境:打造竞争与合作AI系统 【免费下载链接】Arcade-Learning-Environment The Arcade Learning Environment (ALE) -- a platform for AI research. 项目地址: https://gitcode.com/gh_mirrors/ar/Arcade-Learning-Environme…...
别再乱用self了!深入理解Python中@staticmethod和@classmethod的正确使用场景
别再乱用self了!深入理解Python中staticmethod和classmethod的正确使用场景 在Python开发中,我们经常会遇到各种关于方法调用的困惑。特别是当看到"missing 1 required positional argument"这样的错误时,很多开发者会感到一头雾水…...
OpenClaw部署与调用本地部署的大模型
记录一下这个部署过程:不想调云端API,毕竟花钱买Token还是有点肉疼,所以打算在本地部一个大模型。有一台放在内网机房的服务器,用来做大模型的宿主机。有了大模型之后,需要找个终端来运行 OpenClaw 框架,所…...
告别图片重复困扰:AntiDupl.NET 图片去重工具完整使用指南
告别图片重复困扰:AntiDupl.NET 图片去重工具完整使用指南 【免费下载链接】AntiDupl A program to search similar and defect pictures on the disk 项目地址: https://gitcode.com/gh_mirrors/an/AntiDupl 你是否曾为电脑中大量重复图片占用宝贵存储空间而…...
SMUDebugTool终极指南:4步掌握AMD Ryzen处理器深度调试与优化
SMUDebugTool终极指南:4步掌握AMD Ryzen处理器深度调试与优化 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: htt…...
从‘删库跑路’到安全操作:详解SQL中DROP SCHEMA/TABLE的CASCADE和RESTRICT到底怎么选
从‘删库跑路’到安全操作:详解SQL中DROP SCHEMA/TABLE的CASCADE和RESTRICT到底怎么选 在数据库管理的日常工作中,DROP命令就像一把双刃剑——它既能快速清理无用数据,也可能因误操作导致灾难性后果。想象一下这样的场景:你在生产…...
从大模型到自主决策:AI Agent的核心进化路径
从大模型到自主决策:AI Agent的核心进化路径 1. 引入与连接:从"提问-回答工具"到"能干活的伙伴"的认知跃迁 核心概念 本节的核心概念包括通用人工智能(GAI)认知误区、工具AI(TAI)与自主AI(AAI)的本质分野、AI Agent的直观锚点&#…...
微软旧版Exchange与Skype for Business延长安全更新服务
微软宣布将继续为旧版Exchange Server和Skype for Business Server提供安全更新,原因是部分客户尚未准备好迁移至新产品。此前,微软曾宣布,客户可在2025年10月上述产品支持到期后,申请为期六个月的Exchange Server 2016/2019及Sky…...
群晖NAS影视库美化:借助tinyMediaManager在Windows端实现精准元数据刮削
1. 为什么需要专业的元数据刮削工具 作为一个影音爱好者,我最头疼的就是整理影视库。从各种渠道下载的电影和剧集,文件名乱七八糟不说,还经常缺少关键信息。记得有一次想在朋友面前炫耀自己精心搭建的家庭影院,结果打开Plex一看&a…...
CentOS 7.6离线安装Perl全攻略:27个核心依赖包清单与一键安装命令
CentOS 7.6离线安装Perl全流程实战指南 在金融、军工等对网络安全要求极高的行业场景中,服务器通常运行在完全隔离的内网环境。上周为某银行数据中心部署日志分析系统时,就遇到了必须在无外网连接的CentOS 7.6服务器上安装Perl运行环境的挑战。与在线安…...
