当前位置: 首页 > article >正文

Java面试题分享

1、hashmap的底层设计原理以及扩容规则,是否线程安全,如何线程安全。

jdk1.7以前采用数组加链表结构通过键哈希确定数组下标存键值对。jdk1.8及以后采用数组加链表加红黑树,链表超阈值且数组满足条件会转红黑树,哈希函数先取键 hashCode 值再运算使分布均匀,键值对以含键、值等信息的内部类存储,当元素数量达到负载因子与容量的乘积会扩容2倍。hashmap线程不安全,可以通过Collections.synchronizedMap 加同步锁也可以使用 ConcurrentHashMap来实现线程安全。

2、八大基本数据类型以及长度

整数类型的有byte 1字节,short 2字节,int 4字节,long 8字节
浮点类型有:float 4字节,double 8字节
字符类型:char 2字节
布尔类型:一般1字节储存false和true

3、多线程创建四种方式,以及callable和runnable的区别,如何获取返回值

继承Thread类、实现Runnable接口、使用Callable和Future接口、使用线程池创建多线程。
runnable中的run方法没有返回值,callable中的call方法有返回值可以通过Future的get方法获取。


http://www.kler.cn/a/404439.html

相关文章:

  • 大语言模型中ReLU函数的计算过程及其函数介绍
  • pytorch torch.sign() 方法介绍
  • 开源模型应用落地-Qwen2.5-7B-Instruct与vllm实现离线推理-性能分析(四)
  • Qlik Sense QVD 文件
  • 实验室管理现代化:Spring Boot技术方案
  • 网络安全等级测评师
  • html兼容性问题处理
  • 小白怎样入门网络安全?
  • [Redis#1] 前言 | 再谈服务端高并发分布式结构的演进
  • solr 迁移数据-使用solr-import-export
  • Web 网络安全
  • ESP8266 STA模式TCP客户端 电脑手机网络调试助手
  • 【愚公系列】《微信小程序与云开发从入门到实践》002-如何设计一款小程序
  • 解决CondaError: Run ‘conda init‘ before ‘conda activate‘
  • 【SpringBoot】【log】 自定义logback日志配置
  • 使用可视化工具kafkatool连接docker的kafka集群,查看消息内容和offset
  • 字符串学习篇-java
  • Vue通用组件设计原则
  • 14. 【.NET 8 实战--孢子记账--从单体到微服务】--简易权限--章节总结
  • 十大网络安全事件
  • 打开串口程序卡死,关闭串口程序正常运行
  • MFC 实现动态调整对话框控件与字体大小
  • 什么是 C++ 中的移动语义?它的作用是什么?右值引用是什么?如何使用右值引用实现移动语义?
  • 学习threejs,导入FBX格式骨骼绑定模型
  • 萤石设备视频接入平台EasyCVR私有化视频平台视频监控系统的需求及不同场景摄像机的选择
  • 无人机无刷电机核心算法!