Java基础
一次编写 到处调试
hello world
展开
-
Java集合工具类
1 List1.1 空集合《Effectice Java》第43条:返回零长度的数组或者集合,而不是null。错误观点:null返回值比零长度数组更好,因为它避免了分配数组所需要的开销。黄书作者说了,在这个级别上担心性能问题是不明智的,而且调用者容易遭遇到NPE。 接下来我们看看有哪几种方式能创建出来一个空的集合。(1)Collections.emptyList()...原创 2018-10-27 00:04:43 · 3134 阅读 · 0 评论 -
lambda表达式对list排序
1 背景对一个对象list做排序,排序字段是对象的sortNum,排序前剔除掉sortNum为null的对象定义待排序的beanpublic class TestBean { private Integer id; private String name; private Integer sortNum;}2 一个排序失败的CASEl...原创 2019-06-26 22:08:54 · 6951 阅读 · 0 评论 -
如何使用花括号{}占位符打印日志
日志框架通常会这么记日志:public static final Logger LOG = LoggerFactory.getLogger("test");LOG.info("shit, blabla {}, blabla {}.", id, name);现在我们徒手用“System.out.println”实现这种带“{}”占位符的打印,仅供参考:package util;...原创 2019-06-10 16:47:35 · 4115 阅读 · 0 评论 -
Java double类型转成String,去除末尾的“.0”
1 背景1.double直接转string,例如sout(double)或者String.valueOf(double),假设是整数,会自动在后面添加“.0”,我们不需要这个添加;2.不要用科学计数法显示2 正确示例(左double 右String)1 -> 11.0->11.1->1.1100->1003 代码privat...原创 2019-05-16 10:24:27 · 11358 阅读 · 0 评论 -
动态代理(JDK & CGLIB)
静态代理,一个代理类只能代理一个接口,好处的简单、好实现、好理解,坏处呢,举个例子,我们知道Mybatis逆向工程会生成N多个Mapper接口文件,如果每个Mapper接口都造一个代理类出来,然后呢,每个代理类做的事情又都是一样的——获取session、解析crud语句、执行crud、处理结果、结束session。难道我们对此就束手无策了吗?不,使用动态代理,我们可以只造一个轮子就能代理eve...原创 2019-02-24 00:22:12 · 100 阅读 · 0 评论 -
静态代理
静态代理的意思就是,我要做一件事,但是我不自己去做,而是委托别人去做,UML通常为:代理类(Proxy)也要实现实际类(RealSubject)的接口。比较简单,下面直接给出代码示例:public interface Hello { void say(String name);}public class HelloImpl implements Hello { ...原创 2019-02-23 15:11:55 · 113 阅读 · 0 评论 -
用Java实现一个简单的阻塞队列LinkedBlockingQueue
package mytest.others.other;import java.util.ArrayList;import java.util.List;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.locks.Condition;import java.util.concur...原创 2019-02-18 15:00:02 · 443 阅读 · 0 评论 -
实操lambda表达式
摘要:从一个Bean List中取出某一属性组成新的List 对Bean List倒排序 对Bean List倒排序,考虑null值1 从一个Bean List中取出某一属性组成新的List先来定义一个Hello World级别的Bean:package mytest.others.other;/** * @Description TODO * @Author lilo...原创 2019-01-17 11:38:43 · 198 阅读 · 0 评论 -
Java反射
1 Java反射基础1.1 获得 Class 对象的三种方法Class.forName()类.class对象.getClass() (1)使用 Class 类的 forName 静态方法:public static Class<?> forName(String className)比如在 JDBC 开发中常用此方法加载数据库驱动Class.forN...原创 2018-11-16 19:44:25 · 142 阅读 · 0 评论 -
修改Jar包里的单个class文件
步骤简述:1.准备好需要修改的Jar包,准备好包含源码的source Jar包;2.解压缩source jar包,修改source代码,然后javac编译;3.用winrar打开待修改的Jar包,把步骤2编译好的class文件直接拖进来放到相应目录。一、问题背景最近在研究图数据库neo4j,用的spring-boot开发,其中需要用“@Properties”创建动态属性,会引用...原创 2019-08-01 03:42:11 · 4454 阅读 · 0 评论