随笔分类 -  JAVA

1 2 3 4 5 ··· 7 下一页

软/弱/虚引用
摘要:https://www.jianshu.com/p/825cca41d962 引用的本质是,可以把jvm内存当做一个大的池化技术,池化技术最重要的是逐出策略。那么,这三种引用对应的逐出策略是不一样的,具体可以看上面链接里的介绍。简单来说,强引用的逐出策略是,如果一个对象没有了强引用,就逐出。软引用是 阅读全文
posted @ 2019-07-15 15:39 冰花ぃ雪魄 阅读(161) 评论(0) 推荐(0) 编辑
网络timeout区分
摘要:ConnectTimeout 连接建立时间,三次握手完成时间 SocketTimeout 数据传输过程中数据包之间间隔的最大时间 下面重点说下SocketTimeout,比如有如下图所示的http请求 虽然报文(“abc”)返回总共用了6秒,如果SocketTimeout设置成4秒,实际程序执行的时 阅读全文
posted @ 2018-05-22 14:17 冰花ぃ雪魄 阅读(583) 评论(0) 推荐(0) 编辑
Java的Finalizer引发的内存溢出
摘要:转自 http://ju.outofmemory.cn/entry/74671 本文介绍的是Java里一个内建的概念,Finalizer。你可能对它对数家珍,但也可能从未听闻过,这得看你有没有花时间完整地看过一遍java.lang.Object类了。在java.lang.Object里面就有一个fi 阅读全文
posted @ 2018-05-11 14:35 冰花ぃ雪魄 阅读(5759) 评论(0) 推荐(1) 编辑
PreparedStatement是如何大幅度提高性能的
摘要:本文讲述了如何正确的使用prepared statements。为什么它可以让你的应用程序运行的更快,和同样的让数据库操作变的更快。 为什么Prepared Statements非常重要?如何正确的使用它? 数据库有着非常艰苦的工作。它们接受来自众多并发的客户端所发出的SQL查询,并尽可能快的执行查 阅读全文
posted @ 2018-04-19 19:33 冰花ぃ雪魄 阅读(273) 评论(0) 推荐(0) 编辑
分布式环境下限流方案的实现redis RateLimiter Guava,Token Bucket, Leaky Bucket
摘要:业务背景介绍 对于web应用的限流,光看标题,似乎过于抽象,难以理解,那我们还是以具体的某一个应用场景来引入这个话题吧。 在日常生活中,我们肯定收到过不少不少这样的短信,“双11约吗?,千款….”,“您有幸获得唱读卡,赶快戳链接…”。这种类型的短信是属于推广性质的短信。为什么我要说这个呢?听我慢慢道 阅读全文
posted @ 2018-04-03 15:46 冰花ぃ雪魄 阅读(638) 评论(0) 推荐(0) 编辑
Mybatis中的update动态SQL语句
摘要:Mybatis中的CRUD操作(增删改查)中,简单的SQL操作比较直观,如查找操作: 其中id对应同名java文件中的方法,resultMap对应的自定义的数据类型(当使用java自带类型就更容易了,比如java.lang.String之类的)。 但是涉及到更新操作时,可能不需要对所有字段更新,这时 阅读全文
posted @ 2018-03-30 16:47 冰花ぃ雪魄 阅读(1123) 评论(0) 推荐(0) 编辑
java基本数据类型与封装类型详解(int和Integer区别)
摘要:int是java提供的8种原始数据类型之一。 Java为每个原始类型提供了封装类,Integer是java为int提供的封装类(即Integer是一个java对象,而int只是一个基本数据类型)。int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别, 阅读全文
posted @ 2018-03-20 11:43 冰花ぃ雪魄 阅读(3227) 评论(0) 推荐(0) 编辑
jdk动态代理例子
摘要:jdk动态代理例子 1. 声明接口 2. 实现接口 3. 创建代理类,需要持有接口对象 4. 创建测试类 5. 运行结果 阅读全文
posted @ 2018-03-19 20:06 冰花ぃ雪魄 阅读(258) 评论(0) 推荐(0) 编辑
InvocationHandler中invoke方法中的第一个参数proxy的用途
摘要:最近在研究Java的动态代理时对InvocationHandler中invoke方法中的第一个参数一直不理解它的用处,某度搜索也搜不出结果,最后终于在stackoverflow上找到了答案。 这是原文的链接:http://stackoverflow.com/questions/22930195/un 阅读全文
posted @ 2018-03-19 19:58 冰花ぃ雪魄 阅读(1864) 评论(1) 推荐(4) 编辑
Mybatis类型转换介绍
摘要:1.1 目录 1.2 建立TypeHandler 1.2.1 TypeHandler接口 1.2.2 BaseTypeHandler抽象类 1.3 注册TypeHandler 1.4 Mybatis自动获取TypeHandler 1.5 Mybatis中自动注册的TypeHandler 1.2 建立 阅读全文
posted @ 2018-03-16 17:01 冰花ぃ雪魄 阅读(360) 评论(0) 推荐(0) 编辑
关于SimpleDateFormat安全的时间格式化线程安全问题
摘要:想必大家对SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多 阅读全文
posted @ 2018-03-15 18:20 冰花ぃ雪魄 阅读(881) 评论(0) 推荐(0) 编辑
学习protobuf 感想
摘要:前俩篇博文是从大牛的博客抄过来的, 写的都很好. 这里还写简单写下自己的感想: 1. 和json比, protobuff编码后的体积小很多, 这是肯定的. 都源自于protobuff内部的一系列特殊的编码方式. 而且这些编码的性能都很高, 由很少的简单数学计算和位运算组成. 2. 和Jackson比 阅读全文
posted @ 2018-02-28 18:08 冰花ぃ雪魄 阅读(176) 评论(0) 推荐(0) 编辑
Protocol Buffer 序列化原理大揭秘 - 为什么Protocol Buffer性能这么好?
摘要:前言 习惯用 Json、XML 数据存储格式的你们,相信大多都没听过Protocol Buffer Protocol Buffer 其实 是 Google出品的一种轻量 & 高效的结构化数据存储格式,性能比 Json、XML 真的强!太!多! 由于 Google出品,我相信Protocol Buff 阅读全文
posted @ 2018-02-28 17:59 冰花ぃ雪魄 阅读(384) 评论(0) 推荐(0) 编辑
Google Protocol Buffer 的使用和原理
摘要:简介 什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这样的文字介绍: Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12, 阅读全文
posted @ 2018-02-28 16:33 冰花ぃ雪魄 阅读(157) 评论(0) 推荐(0) 编辑
Java 序列化的高级认识
摘要:转自: https://www.ibm.com/developerworks/cn/java/j-lo-serial/ 引言 将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发人员只需要了解被序列化的类需要实现 Serial 阅读全文
posted @ 2018-02-28 14:51 冰花ぃ雪魄 阅读(121) 评论(0) 推荐(0) 编辑
protobuf和protostuff的区别
摘要:在我们的开发过程中,序列化是经常需要处理的问题,比如在做分布式访问数据时,或者是在做redis缓存存储数据时,如果我们涉及的知识面不够广的话,可能会简单的使用JDK的序列化,也即在需要序列化的类上implements Serializable接口去实现序列化,我想说的是这种方式在小系统中尚且可以用一 阅读全文
posted @ 2018-02-28 10:44 冰花ぃ雪魄 阅读(12403) 评论(1) 推荐(1) 编辑
谈谈HashMap线程不安全的体现
摘要:原文出处: Hosee HashMap的原理以及如何实现,之前在JDK7与JDK8中HashMap的实现中已经说明了。 那么,为什么说HashMap是线程不安全的呢?它在多线程环境下,会发生什么情况呢? 1. resize死循环 我们都知道HashMap初始容量大小为16,一般来说,当有数据要插入时 阅读全文
posted @ 2018-02-27 11:56 冰花ぃ雪魄 阅读(4270) 评论(0) 推荐(0) 编辑
Lombok自定义annotation扩展含Intellij插件
摘要:Lombok简介 Lombok(https://projectlombok.org/) 提供了以注解的形式为java对象增加属性和方法,这使得原来冗长的java源文件变的简洁(不需要再使用ide去生成getter和setter方法,不过ide需要插件支持才能识别lombok自动添加的getter/s 阅读全文
posted @ 2018-02-08 12:17 冰花ぃ雪魄 阅读(3133) 评论(5) 推荐(0) 编辑
lombok的使用和原理
摘要:一、项目背景 在写Java程序的时候经常会遇到如下情形: 新建了一个Class类,然后在其中设置了几个字段,最后还需要花费很多时间来建立getter和setter方法 lombok项目的产生就是为了省去我们手动创建getter和setter方法的麻烦,它能够在我们编译源码的时候自动帮我们生成gett 阅读全文
posted @ 2018-02-08 12:06 冰花ぃ雪魄 阅读(447) 评论(0) 推荐(0) 编辑
CGLIB介绍
摘要:一、什么是CGLIB? CGLIB是一个功能强大,高性能的代码生成包。它为没有实现接口的类提供代理,为JDK的动态代理提供了很好的补充。通常可以使用Java的动态代理创建代理,但当要代理的类没有实现接口或者为了更好的性能,CGLIB是一个好的选择。 二、CGLIB原理 CGLIB原理:动态生成一个要 阅读全文
posted @ 2018-02-05 15:51 冰花ぃ雪魄 阅读(170) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 7 下一页