自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (1)
  • 收藏
  • 关注

原创 如何拯救濒临死亡的对象?

问题 : 当对象经过可达性分析算法,判定对象将要被回收,对象一定就非死不可吗?解答: 这里引用《深入理解java虚拟机》当中的原话,“即使在可达性分析算法中不可达的对象,也并非是“非死不可”的,这时候它们暂时处 于“缓刑”阶段,要真正宣告一个对象死亡,至少要经历两次标记过程:如果对象在进行可达 性分析后发现没有与GC Roots相连接的引用链,那它将会被第一次标记并且进行一次...

2019-12-26 15:32:48 255

原创 m个整数,任意组合(整数不可拆分),找到最大的组合结果 2,23,结果是232

解题思路:要保证89,8这种谁大,首先需要比较第一位的两个8,显然一样大,继续比较89的第二位9和8谁大,显然9更大,这样组合就是898,而不是889。可以抽象成A1,A2,...,Am。对于A1和A2,A1放在前面的条件是第一位大于A2第一位,如果等于,则继续比较,例如89 87 ,第二位9大于第二位的8,满足条件,以此类推,但是对于89 8这种,比较第一位是相等的,接下来比较第二位,但是8...

2019-12-08 20:03:32 233

原创 记一个单链表面试问题的解法

问题描述 给定一个单链表的头节点 head,实现一个调整单链表的函数,使得每K个节点之间为一组进行逆序,并且从链表的尾部开始组起,头部剩余节点数量不够一组的不需要逆序。(不能使用队列或者栈作为辅助)例如:链表:1->2->3->4->5->6->7->8->null, K = 3。那么 6->7->8,3->4-&...

2019-11-20 14:17:58 151

原创 synchronized 方法和块的区别(JVM)

"如果应用场景需要一个更大范围的原子性保证(经常会遇到),Java内存模型还提供了lock和unlock操作来满足这种需求,尽管虚拟机未把lock和unlock操作直接开放给用户使用,但是却提供了更高层次的字节码指令monitorenter和monitorexit来隐式地使用这两个操作,这两个字节码指令反映到Java代码中就是同步块——synchronized关键字,因此在synchron...

2019-08-31 11:46:00 434

原创 java 对象结构笔记

一、概述 java对象结构主要分为对象头,数据和填充字节二、对象头 对象头包括两部分信息,第一部分用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等,这部分数据的长度在32位和64位的虚拟机(未开启压缩指针)中分别为32bit和64bit,官方称它为“Mark Word”。对象需要存储的...

2019-07-26 18:19:21 212

原创 ArrayList与LinkedList循环删除元素浅谈

一、List删除元素方式 List接口当中主要提供了下列两种方法删除元素 //索引删除 E remove(int index); //直接元素删除 boolean remove(Object o);继承 Iterable<T> 中Iterator<T> iterator() 接口提供删除方法,remove方法需要子类实现 default vo...

2019-07-26 17:48:48 2797 2

原创 代码优化-避免内存泄漏的一次浅谈

1.代码场景   当我们写java程序的时候,不可避免的需要一些集合操作,有时候使用不当,导致GC不能够回收释放被集合占用的内存,例如下面代码protected List&lt;Map&lt;String, Object&gt;&gt; findListBySql(String sql) { List&lt;Map&lt;String, Object&gt;&gt; list = t...

2018-12-07 14:23:35 473 2

原创 JAVA synchronized与lock的区别及多线程的同步和通信

1.synchronized与lock的区别   synchronized是java内置的关键字,Lock是jdk1.5提供的java.util.concurrent包中提供的锁机制。 synchronized在代码执行完成之后会自动释放锁,lock机制需要手动调用unLock方法释放锁。高并发环境下synchronized会导致性能严重下降,这个时候推荐使用Lock( 实现类 Reentra...

2018-11-28 21:46:33 540

原创 NIO和IO复制速度测试(文件大小450M)

1.测试传统的IO FileInputStream FileOutputStream@Test public void testIOIs() throws IOException { File f = new File("D:\\2.exe"); if (f.exists()) { f.delete(); } ...

2018-03-06 15:26:04 541 1

rabbitmq的封装

更加方便的调用和使用rabbitmq,例如: Producer pro= new Producer("testqueue", "testexchage", "testkey"); for (int i=0;i<1200;i++){ pro.sendMessage(UUID.randomUUID().toString().getBytes()); } MqFactory.closeAll(pro); 调用生产者

2019-05-07

空空如也

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

TA关注的人

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