自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 多线程下的clone()克隆

在多线程处理时经常会出现,需要在某一个线程下对某个属性进行更改,但是该属性主在主线程中却不能改变的情况。例如:有一条在数据库中的图书数据,id=1001001要在子线程中将其更改为id=2002002,但是在主线程中依旧要使用id=1001001进行操作。有的会选择对子线程使用睡眠操作,但是使用睡眠不但会使程序性能降低,还会产生bug,也不能确保主线程中一定输出100100.这时可以使用clone()来进行操作。再用克隆后的对象去执行存储。

2023-11-20 22:13:47 58 1

原创 单例模式

单例模式是最简单的设计模式,因为在new对象时要在内存中创建很多空间,占用了很多内存。而单例模式就是在内存中只存在一个对象,并且可以反复调用。(利用static的特点)(2)、懒汉模式:类加载时不产生单例,调用时才产生。(1)、饿汉式:类加载时就创建单例。

2023-10-31 20:58:29 343 5

原创 clone()克隆、equals()、hashCode()重写

equals()方法比较对象时比较的是值,但是在比较两个对象内容时就会出现失真的情况,这时就需要重写equals()方法;使用克隆方法改变克隆对象的某个属性,而原对象属性不改变。克隆后:改变user2的name和bookName属性,user不改变。在User类中接入接口Cloneable并重写clone()方法。在Book类接入接口Cloneable,重写clone()方法。未克隆结果:改变user2的name,user也发生改变。

2023-10-31 20:08:18 457 5

原创 Java 写菱形

用Java打印菱形,用了一个很low的写法。

2023-10-15 22:01:29 47 1

原创 杂记:堆排序

第二步,(以大顶堆为例)将堆顶最大 值与堆中最后一位元素位置互换,之后将其取出。这样就得到了该数组的最大值,因为在这个过程中造成了对大顶堆的破坏,就需要对堆重新构建,成为一个大顶堆。之后再重复上述步骤,依次取出第二大、第三大、第四大、第五大、第六大........个元素,之后就得到了一个有序的数组。堆排序是把一组无序数组,构建成一个二叉树形式的堆,有大顶堆和小顶堆两种。每一个根节点都比其子节点大的堆叫大顶堆,这样堆顶的元素就是最大值(对左右子节点的大小顺序无要求),反之则称为小顶堆。

2023-10-15 21:54:52 19 1

原创 杂记:选择排序

2,在剩下的未排序数组 中选出第二小的值放在最小值的后面(第二小的位置)思路:1,在一堆无序数组中,先选出最小值放在最前面;

2023-10-14 17:41:54 18 1

原创 杂记:快速排序。

使用递归方法重复上述步骤,直到分出来的数组长度小于等于一;//调用quickSort()方法if(hand>=end){ //递归终止条件,如果左边的游标下标值大于或等于右边的就说明该数组长度为1,或者超出物理地址、递归出口return;// hand=0;//将左右游标的下标值传给i和j//将首个元素值定义为基数,方便代码书写while(i!=j){ //判断左右两游标下标值是否相等,如果相等就开始换基数值。

2023-10-14 16:39:19 19 1

原创 杂记:进一步理解 插入排序

2,这里控制着数组的物理位,(j=i-1)是根据1中的轮数来锁定到了第i位(end)去与左边的数值比较插入;j--)通过使end位的数值不断逼近左边的首位来进行比较插入。1,每一个第i位上的数都要向左边去排序插入,这里是控制到哪一个第i位上的数去排序插入。也就是到了第几轮(在插入排序法中,同一个数可能会有机会在不同的第i位上存在)。3,符合条件就交换数值(插入数值)。

2023-10-13 16:15:06 29

原创 杂记:冒泡排序

是序列中先从最左边开始,相邻的两个元素开始做比较。也即是第i+1个与第i个进行比较,如果(i+1)

2023-10-12 22:46:10 20

原创 杂记1、字符类型转换、==和.equals()

这里我定义了一个double 类型的变量ageScroe求三个数的平均值,运行出的理想值应该是ageScroe = 79.66666666666667,但是输出的是ageScroe = 79.0,这里的原因是第四行代码等号右边是以int类型来计算的,计算出int类型的ageScroe再隐式转换为double类型的。1、==比较的是两个数值,比较的是值,比较引用类型时,比较的是物理地址。1.隐式转换,在类型表示范围大小从小到大的转换,是可以直接转换的。在字符类型转换里容易马虎犯的错。虽然是很简单的问题。

2023-10-12 15:05:45 29

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除