面试的几个问题

1.HashMap出现死锁的场景
2.JAVA对象头结构
3.int和integer的区别
4.java中String s = new String("hello")创建了几个对象


1.hashmap是线程不安全的,多线程时候容易造成死锁

HashMap是Java中的一个线程不安全的集合类,因此并不会出现真正意义上的死锁场景。然而,如果多个线程同时对HashMap进行读写操作,可能会出现一些并发问题,比如数据丢失、数据不一致等。

以下是一个可能导致并发问题的场景:

1. 假设有两个线程A和B同时对HashMap进行写操作。

2. 线程A执行put操作,向HashMap中添加一个元素。

3. 线程B同时执行put操作,也尝试向HashMap中添加一个元素。

4. 由于HashMap是线程不安全的,线程A和线程B可能同时修改HashMap的内部结构,导致数据覆盖或数据丢失。

为了避免这种并发问题,可以使用线程安全的HashMap实现类,比如ConcurrentHashMap。ConcurrentHashMap使用了锁分段技术,在不同的段上进行加锁,从而实现更好的线程安全性能。

2.JAVA对象头结构

java对象头结构,是指一个Java对象在内存中的形式。一个Java对象的头结构由三部分组成:Mark Word、Klass Pointer和Array Length。对象头中存储了对象是很多java内部的信息,如hash码,对象所属的年代,对象锁,锁状态标志,偏向锁(线程)ID,偏向时间等

3.int和Integer的区别

        1、Integer是int的包装类,int则是java的一种基本数据类型 

        2、Integer变量必须实例化后才能使用,而int变量不需要 

        3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 

        4、Integer的默认值是null,int的默认值是0

4.在Java中,使用​​String s = new String()​​创建了两个对象。

第一个对象是字符串常量池中的空字符串对象,它是在Java虚拟机启动时就被创建并放入常量池中的。
第二个对象是通过构造函数​​new String()​​在堆内存中创建的新字符串对象。由于没有传入参数,所以该对象的内容也是空字符串。内容与常量池中的空字符串一致。 因此,使用​​String s = new String()​​创建了两个对象,一个位于常量池中,另一个位于堆内存中。内容一致,地址值不同,是不同的对象。

相关推荐

  1. 面试问题

    2024-01-07 19:52:02       46 阅读
  2. 面试问题总结

    2024-01-07 19:52:02       18 阅读
  3. 关于vue开发问题

    2024-01-07 19:52:02       9 阅读
  4. MySQL常问面试

    2024-01-07 19:52:02       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-07 19:52:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-07 19:52:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-07 19:52:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-07 19:52:02       20 阅读

热门阅读

  1. Linux socket: udp server and client demo

    2024-01-07 19:52:02       32 阅读
  2. JVM常用参数

    2024-01-07 19:52:02       26 阅读
  3. Spring WebSocket通信应用二[基于Redis实现Ws分布式]

    2024-01-07 19:52:02       33 阅读
  4. 力扣(leetcode)第482题密钥格式化(Python)

    2024-01-07 19:52:02       38 阅读
  5. C++入门

    C++入门

    2024-01-07 19:52:02      27 阅读
  6. 郑州大学算法设计与分析实验5

    2024-01-07 19:52:02       35 阅读
  7. uniapp存储讲解

    2024-01-07 19:52:02       28 阅读
  8. Opencv实时获取摄像头数据(附带解析)

    2024-01-07 19:52:02       38 阅读