SF
Java中文社群
Java中文社群
注册登录
关注博客
注册登录
主页
关于
RSS
面试官:如何实现 List 集合去重?
Java中文社群
2021-12-15
阅读 6 分钟
2.2k
List 去重指的是将 List 中的重复元素删除掉的过程。此题目考察的是对 List 迭代器、Set 集合和 JDK 8 中新特性的理解与灵活运用的能力。
面试官:元素排序Comparable和Comparator有什么区别?
Java中文社群
2021-12-12
阅读 6 分钟
1.9k
在 Java 语言中,Comparable 和 Comparator 都是用来进行元素排序的,但二者有着本质的区别。它们两也是常见的面试题,所以今天我们一起来盘它。
HashMap 有几种遍历方法?推荐使用哪种?
Java中文社群
2021-12-08
阅读 6 分钟
2.2k
HashMap 的遍历方法有很多种,不同的 JDK 版本有不同的写法,其中 JDK 8 就提供了 3 种 HashMap 的遍历方法,并且一举打破了之前遍历方法“很臃肿”的尴尬。
List 去重的 6 种方法,这个方法最完美!
Java中文社群
2021-12-06
阅读 6 分钟
7.6k
在日常的业务开发中,偶尔会遇到需要将 List 集合中的重复数据去除掉的场景。这个时候可能有同学会问:为什么不直接使用 Set 或者 LinkedHashSet 呢?这样不就没有重复数据的问题了嘛?
面试官:重写 equals 时为什么一定要重写 hashCode?
Java中文社群
2021-12-03
阅读 8 分钟
2.8k
equals 方法和 hashCode 方法是 Object 类中的两个基础方法,它们共同协作来判断两个对象是否相等。为什么要这样设计嘞?原因就出在“性能” 2 字上。
面试官:说一下final关键字和final的4种用法?
Java中文社群
2021-11-29
阅读 2 分钟
1.9k
final 翻译成中文是“最终”的意思,它是 Java 中一个常见关键字,使用 final 修饰的对象不允许修改或替换其原始值或定义。比如类被 final 修饰之后,就不能被其他类继承了,如下图所示:
面试官:int和Integer有什么区别?为什么要有包装类?
Java中文社群
2021-11-29
阅读 2 分钟
2.4k
PS:Java 10 有了局部变量类型推导,可以使用 var 来替代某个具体的数据类型,但在字节码阶段,Java 的变量仍有着明确的数据类型,且局部变量类型推导有着很多限制和不完善之处,也不是目前主流的应用版本,所以这里不做深入讨论。
面试官:final、finally、finalize 有什么区别?
Java中文社群
2021-11-29
阅读 2 分钟
1.6k
重要说明:本篇为博主《面试题精选-基础篇》系列中的一篇,查看系列面试文章请关注我。Gitee 开源地址:[链接]本题目难度:低常见程度:高1.final 介绍final 是 Java 语言中的一个关键字,使用 final 修饰的对象不允许修改或替换其原始值或定义。final 可以用来修饰:类、方法、变量和参数,其中可以用来修饰“参数”这一...
MyBatis 中为什么不建议使用 where 1=1?
Java中文社群
2021-11-15
阅读 4 分钟
2.1k
机智的小伙伴可能已经看出了问题,在众多 mapper 中发现了一个相同的想象,几乎所有的 mapper 中都包含了一个无用的拼接 SQL:where 1=1。作为一个几乎有代码洁癖症的人,自然是忍不住动手改造一番了。
HashMap 中的一个“坑”!
Java中文社群
2021-11-04
阅读 3 分钟
1.9k
最近公司新来了一个小伙伴,问了磊哥一个比较“奇怪”的问题,这个问题本身的难度并不大,但比较“隐蔽”,那究竟是什么问题呢?接下来我们一起来看。
Java 中 List 分片的 5 种方法!
Java中文社群
2021-11-01
阅读 5 分钟
2.1k
前些天在实现 MyBatis 批量插入时遇到了一个问题,当批量插入的数据量比较大时,会导致程序执行报错,如下图所示:原因是 MySQL 只能执行一定长度的 SQL 语句,但当插入的数据量较多时,会生成一条很长的 SQL,这样程序在执行时就会报错。
MyBatis原生批量插入的坑与解决方案!
Java中文社群
2021-10-18
阅读 4 分钟
3.2k
前面的文章咱们讲了 MyBatis 批量插入的 3 种方法:循环单次插入、MyBatis Plus 批量插入、MyBatis 原生批量插入,详情请点击《MyBatis 批量插入数据的 3 种方法!》。
升级了 Windows 11 正式版,有坑吗?
Java中文社群
2021-10-11
阅读 3 分钟
2.7k
更新按照的时间有点长,大概 10 分钟左右,我是直接从 Windows 10 升级到 Windows 11 的,升级完的效果惊艳到我了。Windows 11 一改 Windows 10 棱角分明的模样,一下子变的圆润和精致了。
MyBatis 批量插入数据的 3 种方法!
Java中文社群
2021-10-08
阅读 9 分钟
6.5k
批量插入功能是我们日常工作中比较常见的业务功能之一,之前我也写过一篇关于《MyBatis Plus 批量数据插入功能,yyds!》的文章,但评论区的反馈不是很好,主要有两个问题:第一,对 MyBatis Plus(下文简称 MP)的批量插入功能很多人都有误解,认为 MP 也是使用循环单次插入数据的,所以性能并没有提升;第二,对于原生...
MyBatis Plus 批量数据插入功能,yyds!
Java中文社群
2021-09-26
阅读 5 分钟
3.6k
最近 Review 小伙伴代码的时候,发现了一个小小的问题,小伙伴竟然在 for 循环中进行了 insert (插入)数据库的操作,这就会导致每次循环时都会进行连接、插入、断开连接的操作,从而导致一定的性能问题,简化后代码如下:
什么是可中断锁?有什么用?怎么实现?
Java中文社群
2021-09-10
阅读 6 分钟
3.4k
在 Java 中有两种锁,一种是内置锁 synchronized,一种是显示锁 Lock,其中 Lock 锁是可中断锁,而 synchronized 则为不可中断锁。
轮询锁在使用时遇到的问题与解决方案!
Java中文社群
2021-08-31
阅读 16 分钟
1.6k
当我们遇到死锁之后,除了可以手动重启程序解决之外,还可以考虑是使用顺序锁和轮询锁,这部分的内容可以参考我的上一篇文章,这里就不再赘述了。然而,轮询锁在使用的过程中,如果使用不当会带来新的严重问题,所以本篇我们就来了解一下这些问题,以及相应的解决方案。
死锁终结者:顺序锁和轮询锁!
Java中文社群
2021-08-28
阅读 7 分钟
1.6k
死锁(Dead Lock)指的是两个或两个以上的运算单元(进程、线程或协程),都在等待对方停止执行,以取得系统资源,但是没有一方提前退出,就称为死锁。死锁示例代码如下:
死锁的 4 种排查工具 !
Java中文社群
2021-08-24
阅读 5 分钟
1.7k
死锁(Dead Lock)指的是两个或两个以上的运算单元(进程、线程或协程),都在等待对方停止执行,以取得系统资源,但是没有一方提前退出,就称为死锁。
图解:为什么非公平锁的性能更高?
Java中文社群
2021-08-20
阅读 3 分钟
2.6k
在 Java 中 synchronized 和 ReentrantLock 默认使用的都是非公平锁,而它们采用非公平锁的原因都是一致的,都是为了提升程序的性能。那为什么非公平锁就能提升性能呢?接下来我们一起来看。
ReentrantLock 中的 4 个坑!
Java中文社群
2021-08-13
阅读 7 分钟
3.1k
JDK 1.5 之前 synchronized 的性能是比较低的,但在 JDK 1.5 中,官方推出一个重量级功能 Lock,一举改变了 Java 中锁的格局。JDK 1.5 之前当我们谈到锁时,只能使用内置锁 synchronized,但如今我们锁的实现又多了一种显式锁 Lock。
synchronized 中的 4 个优化,你知道几个?
Java中文社群
2021-08-09
阅读 3 分钟
5.1k
synchronized 在 JDK 1.5 时性能是比较低的,然而在后续的版本中经过各种优化迭代,它的性能也得到了前所未有的提升,上一篇中我们谈到了锁膨胀对 synchronized 性能的提升,然而它也只是“众多” synchronized 性能优化方案中的一种,那么我们本文就来盘点一下 synchronized 的核心优化方案。
synchronized 优化手段之锁膨胀机制!
Java中文社群
2021-08-03
阅读 4 分钟
2k
synchronized 在 JDK 1.5 之前性能是比较低的,在那时我们通常会选择使用 Lock 来替代 synchronized。然而这个情况在 JDK 1.6 时就发生了改变,JDK 1.6 中对 synchronized 进行了各种优化,性能也得到了大幅的提升,这也是目前版本中还能经常见到 synchronized 身影的重要原因之一。当然除了性能之外,synchronized 的使...
synchronized 加锁 this 和 class 的区别!
Java中文社群
2021-08-02
阅读 6 分钟
5.3k
synchronized 是 Java 语言中处理并发问题的一种常用手段,它也被我们亲切的称之为“Java 内置锁”,由此可见其地位之高。然而 synchronized 却有着多种用法,当它修饰不同对象时,其意义也是不同的,下面我们一起来看。
SpringBoot中时间格式化的5种方法!
Java中文社群
2021-07-26
阅读 8 分钟
1.9k
为了方便演示,我写了一个简单 Spring Boot 项目,其中数据库中包含了一张 userinfo 表,它的组成结构和数据信息如下:项目目录是这样的:UserController 实现代码如下:
@Autowired报错原因分析和4种解决方案!
Java中文社群
2021-07-05
阅读 3 分钟
7.4k
上图的报错信息相信大部分程序员都遇到过,奇怪的是虽然代码报错,但丝毫不影响程序的正常执行,也就是虽然编译器 IDEA 报错,但程序却能正常的执行,那这其中的原因又是为何?
中年程序员转行第1年的感悟|2021 年中总结
Java中文社群
2021-06-18
阅读 4 分钟
2.3k
2009 年初来乍到,先做了几年的 C# 开发,之后又去了一家 500 强的民营企业做了几年的技术经理,使用的技术也从 C# 开始扩展到了其他语言。
Java中生成随机数的4种方式!
Java中文社群
2021-06-15
阅读 8 分钟
4.1k
Random 类诞生于 JDK 1.0,它产生的随机数是伪随机数,也就是有规则的随机数。Random 使用的随机算法为 linear congruential pseudorandom number generator (LGC) 线性同余法伪随机数。在随机数生成时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。
ThreadLocal内存溢出代码演示和原因分析!
Java中文社群
2021-05-26
阅读 7 分钟
2.4k
ThreadLocal 翻译成中文是线程本地变量的意思,也就是说它是线程中的私有变量,每个线程只能操作自己的私有变量,所以不会造成线程不安全的问题。
SimpleDateFormat线程不安全的5种解决方案!
Java中文社群
2021-05-17
阅读 10 分钟
10.7k
SimpleDateFormat 就是一个典型的线程不安全事例,接下来我们动手来实现一下。首先我们先创建 10 个线程来格式化时间,时间格式化每次传递的待格式化时间都是不同的,所以程序如果正确执行将会打印 10 个不同的值,接下来我们来看具体的代码实现:
上一页
1
…
More
11
12
13
(current)
14
15
…
More
下一页
上一页
13
(current)
下一页