• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Foreordination
酒后高歌磨剑,梦中快意恩仇,名利脚下踩,情义两肩挑
博客园    首页    新随笔    联系   管理    订阅  订阅
面试中遇到的问题

1.说说自己开发中遇到哪些问题?怎么解决的?

  1. 项目中总会报空指针异常,优化代码。

  2. 数据库的维护,出现数据丢失,闪回了。

  3. jsp页面上的内容只有在某一个浏览器上好用。

  4. 身份证读取到页面。

  5. 数据库结构混乱,字段冗余。

  6. 页面不能跳转。

  7. hibernate保存失败

  8. 说说数据库索引的底层实现原理?什么情况下会导致数据库索引失效?首先数据库索引底层有两种实现方式,Hash和B+树。导致索引失效的情况:1、组合索引(A,B,C)没有遵循最左匹配规则。2、like查询以%开头的。3、一些关键字会导致索引失效,比如not in,or,!=,not null,is not null。4、隐式转换会导致索引失效。5、对索引应用内部函数,索引字段进行了运算。
  9. 请你说一说MySQL数据库的两种引擎?InnoDB是聚集索引,支持事务,支持行级锁。MyISAM是非聚集索引,不支持事务,只支持表级锁。如果一些数据库,经常用来查询而不做修改的话,用MyISAM效率高。
  10. 1. HashMap,TreeMap 未进行同步考虑,是线程不安全的。
    2. HashTable 和 ConcurrentHashMap 都是线程安全的。区别在于他们对加锁的范围不同,HashTable
    对整张Hash表进行加锁,而ConcurrentHashMap将Hash表分为16桶(segment),每次只对需要的桶进行加锁。
    3. Collections 类提供了synchronizedXxx()方法,可以将指定的集合包装成线程同步的集合。比如,
    List  list = Collections.synchronizedList(new ArrayList());
    Set  set = Collections.synchronizedSet(new HashSet()); 

  11.  HashMap不是线程安全的; Hashtable线程安全,但效率低,因为是Hashtable是使用synchronized的,所有线程竞争同一把锁; ConcurrentHashMap不仅线程安全而且效率高,因为它包含一个segment数组,将数据分段存储,给每一段数据配一把锁,也就是所谓的锁分段技术 为什么HashMap不是线程安全的?    1、如果多个线程同时使用put方法添加元素,而且假设正好存在两个put的key发生了碰撞(根据hash值计算的bucket一样),那么根据HashMap的实现,这两个key会添加到数组的同一个位置,这样最终就会发生其中一个线程的put的数据被覆盖。 2、如果多个线程同时检测到元素个数超过数组大小* loadFactor,这样就会发生多个线程同时对Node数组进行扩容,都在重新计算元素位置以及复制数据,但是最终只有一个线程扩容后的数组会赋给table,也就是说其他线程的都会丢失,并且各自线程put的数据也丢失。 hashMap实现线程安全
posted on 2019-02-20 23:56  Foreordination  阅读(191)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3