java
dxwell6
这个作者很懒,什么都没留下…
展开
-
为什么java的jvm堆空间要有两块幸存者区?
问题引出 在学习jvm堆空间时,了解到堆中年轻代分为三个区域:伊甸园区和两个幸存者区,当伊甸园区满了之后会使用gc回收不再被引用的对象销毁,剩余对象在两个幸存者区之间倒腾 但是为什么要两个幸存者区,我一个幸存者区不就行了?伊甸园剩下的直接放到这个幸存者区,再加一个计数的不就行了。 原因分析 主要原因是内存碎片!何为内存碎片,就是没法使用的内存,下面来介绍一下(其实内存碎片分为内部碎片和外部碎片,这里指的是外部碎片) 内存碎片 看一个例子来理解 在幸存者区中创建了如下的几个对象 现在垃圾收集器从内存中删原创 2021-11-03 12:25:21 · 1610 阅读 · 0 评论 -
Spring Boot 中@Componentscan 和@EnableAutoConfiguration 的区别
问题引出 学习springboot配置原理的时候,注解@SpringBootApplication下有三个注解,@SpringBootApplication、@EnableAutoConfiguration以及@ComponentScan,感觉后两个都是包扫描的配置,有点分不清。这里做一个辨析: 区别 这两个注释之间的基本区别是@ComponentScan 扫描 Spring 组件,也就是我们平时开发用的@Controller/@Service/@Component/@Repository这些注解是由Co原创 2021-09-06 17:37:52 · 1475 阅读 · 1 评论 -
巴什博奕
题目描述 解法思路 这类题目都有通用解法,可以考虑n个石头,每次被对方拿走1-m个石头,拿到最后一个的赢 如果当n = (m + 1) * k时,假设先手的人拿s个石头,s在1-m这个范围内,那么后手的人只需要拿m+1-s个石头,循环k个轮回,后手的人一定赢 如果n = (m + 1) * k + i时,先手的人拿i个石头,还剩下m+1个石头,又变成上面的情况了,只不过这时先手后手换了位置,先手一定赢 代码 public class Solution { public boolean canWin原创 2021-04-18 21:29:52 · 84 阅读 · 0 评论 -
挑战不用加法运算符+号实现两数之和
既然不能直接使用运算符+号,那么肯定就是用位运算来实现两数之和了A+B 先回顾一下一些位运算知识 异或运算 首先,异或就是两数不同则为1,相同则为0,如表格所示。不难发现,两个一位二进制进行异或可以表示这两个二进制的和,但是没有进位。 而两个整数的异或就是两个整数在每一个二进制位上进行相加,没有进位 数1 数2 异或结果 0 0 0 0 1 1 1 0 1 1 1 0 与运算 那么进位怎么表示呢,只有两个二进制数都为1时,相加起来才有进位,因此我们可以用两个整数相与来表示进位原创 2021-04-18 19:27:34 · 356 阅读 · 0 评论 -
2020-09-2 CCF计算机软件能力认证真题练习:风险人群筛查——java实现
输入样例1 5 2 6 20 40 100 80 100 80 100 80 100 80 100 80 100 80 100 80 60 50 60 46 60 42 60 38 60 34 60 30 10 60 14 62 18 66 22 74 26 86 30 100 90 31 94 35 98 39 102 43 106 47 110 51 0 20 4 20 8 20 12 20 16 20 20 20 输出样例1 3 2 输入样例2 1 3 8 0 0 10 10 -1 -1 0 .原创 2021-03-09 14:58:40 · 153 阅读 · 0 评论 -
2020-09-1 CCF计算机软件能力认证真题练习:称检测点查询
2020-09CCF题目一 2020 年 6 月 8 日,国务院联防联控机制发布《关于加快推进新冠病毒核酸检测的实施意见》,提出对“密切接触者”等八类重点人群“应检尽检”,其他人群“愿检尽检”。 某市设有n个核酸检测点,编号从1到n,其中i号检测点的位置可以表示为一个平面整数坐标(xi, yi)。 为方便预约核酸检测,请根据市民所在位置(X, Y),查询距其最近的三个检测点。 多个检测点距离相同时,编号较小的视为更近。 输入 输入共n+1行。 第一行包含用空格分隔的三个整数n、X和Y,表示检测点总数和市民所原创 2021-03-09 12:43:58 · 224 阅读 · 0 评论 -
java程序员一定要会的IDEA设置及高效代码
掌握了本文的内容,可以帮助你高效写出代码,避免冗余操作 字体设置 1.在设置中找到Editor,打开折叠找到Font进行调整 代码自动补全 main结构补全(psvm) 输入psvm 回车,自动补全main开头 输出函数补全(sout) 输入sout,回车 循环语句补全(fori) 自动为对象生成声明(.var) (1)比如输入 123.var 回车,则会生成如下代码: (2)输入 new Random().var 回车,则会生成如下代码: 生成 if 语句(.if) 我们输入原创 2020-07-14 09:02:37 · 249 阅读 · 0 评论