自学内容网 自学内容网

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方法获取。


原文地址:https://blog.csdn.net/qq_68076599/article/details/143953460

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!