随笔分类 -  JAVA

摘要:场景:   昨天有位朋友去面试,我问他面试问了哪些问题,其中问了Integer相关的问题,以下就是面试官问的问题,还有一些是我对此做了扩展。 问:两个new Integer 128相等吗? 答:不。因为Integer缓存池默认是 127 128; 问:可以修改Integer缓存池 阅读全文
posted @ 2019-08-14 10:40 胡金水 阅读(688) 评论(3) 推荐(0)
摘要:这是一道阿里的面试题,考察你对HashMap源码的了解情况,废话不多说,咱们就直接上源码吧! jdk 1.7 源码 jdk 1.8 源码(比较长,慢慢品哈) 总结 jdk1.7扩容是重新计算hash;jdk1.8是要看看原来的hash值新增的那个bit是1还是0好了,如果是0则索引没变,如果是1则索 阅读全文
posted @ 2019-06-18 01:18 胡金水 阅读(1337) 评论(0) 推荐(0)
摘要:DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); df.setTimeZone(TimeZone.getTimeZone("UTC")); String timestamp = df.format(new Date()); System.out... 阅读全文
posted @ 2019-06-14 11:31 胡金水 阅读(2381) 评论(0) 推荐(0)
摘要:记录一个小笔记:获取一个对象中,支付成功的金额之和: 阅读全文
posted @ 2019-04-24 13:46 胡金水 阅读(928) 评论(0) 推荐(0)
摘要:概念: 当调用Thread.yield方法时,会给线程调度器一个当前线程愿意让出CPU使用的暗示,但是线程调度器可能会忽略这个暗示。 代码演示: 分别有以下两种情况输出: 第一种情况: 第二种情况: 阅读全文
posted @ 2019-02-28 16:47 胡金水 阅读(330) 评论(0) 推荐(0)
摘要:缓存穿透、缓存雪崩、缓存击穿的原因及解决方案 缓存穿透 缓存雪崩 缓存击穿 实现方式如下: 阅读全文
posted @ 2018-11-27 20:33 胡金水 阅读(1395) 评论(0) 推荐(0)
摘要:JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C和C++) 阅读全文
posted @ 2018-11-12 14:42 胡金水 阅读(843) 评论(0) 推荐(0)
摘要:JMM怎么解决原子性、可见性、有序性的问题? 在java中提供了一系列和并发处理相关的关键字,比如volatile、synchronized、final、juc等,这些就是java内存模型封装了底层的实现后提供给开发人员使用的关键字,在开发多线程代码的时候,我们可以直接使用synchronized等 阅读全文
posted @ 2018-09-05 01:37 胡金水 阅读(1960) 评论(0) 推荐(0)
摘要:Java四种引用包括强引用,软引用,弱引用,虚引用。 强引用:只要引用存在,垃圾回收器永远不会回收Object obj = new Object();//可直接通过obj取得对应的对象 如obj.equels(new Object());而这样 obj对象对后面new Object的一个强引用,只有当obj这个引用被释放之后,对象才会被释放掉,这也是我们经常所用到的编码形式。 软引用:非必须引用,... 阅读全文
posted @ 2018-07-26 19:38 胡金水 阅读(119) 评论(0) 推荐(0)
摘要:优化前的代码: 优化后的代码: 阅读全文
posted @ 2018-03-30 00:08 胡金水 阅读(854) 评论(0) 推荐(0)
摘要:import java.util.ArrayList; import java.util.List; public class CollectionGroupUtil { public static List groupListByQuantity(List list, int quantity) 阅读全文
posted @ 2017-12-17 23:55 胡金水 阅读(570) 评论(0) 推荐(0)
摘要:/** * 将一个list均分成n个list,主要通过偏移量来实现的 * @param source * @return */ public <T> List<List<T>> averageAssign(List<T> source,int n){ List<List<T>> result=new 阅读全文
posted @ 2017-12-17 22:26 胡金水 阅读(461) 评论(0) 推荐(0)
摘要:浅克隆:复制对象,不复制对象的引用; 深克隆:复制对象,以及对象的引用。 总结: 1、在java中,只要一个类实现了java.io.Serializable接口,那么它就可以被序列化; 2、通过ObjectOutputStream和ObjectInputStream对对象进行序列化和反序列化操作; 阅读全文
posted @ 2017-10-10 23:32 胡金水 阅读(408) 评论(0) 推荐(0)
摘要:1、同步阻塞IO(JAVA BIO):同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时,服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。 2、同步非阻塞IO(JAVA NIO):同步非阻塞,服务器实现模式一个请求一个线 阅读全文
posted @ 2017-04-11 17:59 胡金水 阅读(1627) 评论(0) 推荐(0)
摘要:log4j.rootLogger=DEBUG, Console #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.Patter 阅读全文
posted @ 2017-02-20 15:23 胡金水 阅读(8384) 评论(0) 推荐(0)
摘要:1、利用软引用和弱引用解决OOM问题:用一个HashMap来保存图片的路径和相应图片对象关联的软引用之间的映射关系,在内存不足时,JVM会自动回收这些缓存图片对象所占用的空间,从而有效地避免了OOM的问题; 2、通过软引用对象重获方法实现java对象的高速缓存:比如我们创建了一个Employee类, 阅读全文
posted @ 2017-01-08 01:14 胡金水 阅读(1498) 评论(0) 推荐(0)
摘要:我就不废话那么多,直接上代码: 如上述代码:a.equals("true");和"null".equals(a);有什么区别的? 答案:前者会抛空指针异常,后者不会; 剖析:如果a=null,String对象就会是一个空对象,空对象说明没有equals方法,所以就会报空指针异常; 又如,后者a=nu 阅读全文
posted @ 2017-01-06 14:06 胡金水 阅读(3179) 评论(0) 推荐(0)
摘要:1.描述: Singleton(单例)是设计模式的一种,为了保证一个类仅有一个实例,并提供一个访问它的全局访问点。 2.主要特点: 1)单例类确保自己只有一个实例(构造函数私有:不被外部实例化,也不被继承)。 2)单例类必须自己创建自己的实例。 3)单例类必须为其他对象提供唯一的实例。 3.单例模式 阅读全文
posted @ 2017-01-04 10:28 胡金水 阅读(270) 评论(0) 推荐(0)
摘要:在学习CGlib动态代理时,遇到如下错误: Exception in thread "main" java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(I)V 经过百度上寻找答案,是jar包冲突导致,解决方案: 把cgli 阅读全文
posted @ 2017-01-01 00:24 胡金水 阅读(1458) 评论(0) 推荐(0)