
java
文章平均质量分 52
dragon-w
这个作者很懒,什么都没留下…
展开
-
性能卓越的jvm垃圾回收器G1
Avg GC time 高达97.8毫秒,这在要求毫秒响应的场景是会严重拉低吞吐量的。该测试源于某个现场运维人园反馈api接口承压有问题,在排查过程中的一个记录。第一次尝试:修改堆大小到256M。第二次尝试:换GC回收器类型。先看第一个配置下的表现。原创 2023-01-18 15:46:06 · 177 阅读 · 0 评论 -
可重入锁深入学习(有码)
今天,梳理下java中的常用锁,但在搞清楚这些锁之前,先理解下 “临界区”。在同步的程序设计中,临界区段活称为关键区块,指的是一个访问共享资源(例如:共享设备或是共享存储器)的程序片段,而这些共享资源又无法同时被多个线程访问的特性。---维基百科释义1:可重入互斥锁(维基百科的这个叫法更贴切),是互斥锁的一种,同一线程对其多次加锁不会产生死锁,可重入互斥锁也称为递归互斥锁或递归锁。 ---维基百科测试对象,等同于业务逻辑执行测试执行结果:我们可以看到,ObjectA的func1和func原创 2022-12-07 15:01:10 · 173 阅读 · 0 评论 -
Java摘录
equals,instanceof,abstract,Throwable原创 2022-12-06 11:49:21 · 295 阅读 · 0 评论 -
算法-全排列(含参考实现代码)
从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。公式:全排列数f(n)=n!(定义0!=1)---百度百科。原创 2022-12-01 20:22:45 · 678 阅读 · 0 评论 -
算法-选择排序
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。可以看到,我们将一个乱序的数组按照从小到大的顺序完成了排序,但上面的例子只能对int数组进行排序,为了通用性,我们同样参照上一篇线性排序的例子一样,基于java的泛型对代码进行优化。我们看到数据规模相差10倍的情况下,耗时差了125倍,约等于100倍,这样同样说明了,选择排序的时间复杂度是O(n^2)的。执行后没有抛出异常,输出了统计时间,说明我们的算法是正确的。原创 2022-11-27 14:57:25 · 75 阅读 · 0 评论 -
算法-线性查找
查找是对具有相同属性的数据元素(记录)的集合(数据对象)进行的,称之为表或文件,也称字典。对于表的查找,若仅对表进行查找操作,而不能改变表中的数据元素,为静态查找;线性查找又称顺序查找,是一种最简单的查找方法,它的基本思想是从第一个记录开始,逐个比较记录的关键字,直到和给定的K值相等,则查找成功;若比较结果与文件中n个记录的关键字都不等,则查找失败。我们再仔细观察上述代码,就不难发现其中的缺陷,比如我们现在实现的这个入参是确定的,只能针对int类型数组进行查找,那我如果我们要查找字符串呢,浮点呢?原创 2022-11-22 10:27:35 · 710 阅读 · 0 评论 -
Java-Collection
java集合学习原创 2022-11-18 23:06:00 · 99 阅读 · 0 评论