java基础
精确而优雅
这个作者很懒,什么都没留下…
展开
-
探讨map空值以及json空值
平时的项目中由于不知名情况,数据库中的字段不知道有意还是无意,反正都会有null、或者空字符串的情况。 1.mybatis取数时空会得到什么? mapper: <select id="findAll" resultType="User"> select user_id id,user_name userName,user_age age from t_user ...原创 2018-03-07 16:12:52 · 1980 阅读 · 0 评论 -
JDK线程池
实际生产中,我们需要手写一个线程池来减少线程的创建释放。 常见的创建方式: newFixedThreadPool 该方法返回一个固定线程数量的线程池 newSingleThreadExecutor 该方法返回一个只有一个现成的线程池 newCachedThreadPool 返回一个可以根据实际情况调整线程数量的线程池 newSingleThr...原创 2018-05-02 11:30:30 · 287 阅读 · 0 评论 -
字符串操作速度比较
比较一下平时使用字符串操作性能的问题。参考一篇微信公众号文章。 直接上代码: public static void main(String[] args) { String s1="123"; String s2="123"; String s3=new String("123"); System.out.println(s1...原创 2018-03-06 14:07:17 · 1245 阅读 · 0 评论 -
常用的Json转换工具
1.fastjson maven: <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifact...原创 2018-03-06 13:50:15 · 1290 阅读 · 0 评论 -
枚举的用法
1.在公司的一些项目中看到经常有使用枚举进行数据类型的业务转化。把众多业务的代号和实际名称放在枚举里面,在数据库操作的时候在转化回来。 实体类:Entity public class Entity { private int num; private String name; private String remark; public enum Mobile{...原创 2018-03-06 11:39:50 · 230 阅读 · 0 评论 -
beansutil复制对象
1.所需要的jar包:beanutil.jar和logging.jar,下载地址 2.复制到的CopyEntity public class CopyEntity { private String name; private String remark; //setter、getter省略 } 3.复制的Entity public class Entity...原创 2018-03-06 11:30:04 · 2396 阅读 · 0 评论 -
静态代理&动态代理
静态代理 静态代理通常用于对原有业务逻辑的扩充。 接口: public interface Duck { public void fly(int height); } 实现类: public class BeijingDuck implements Duck { @Override public void fly(int height) { ...原创 2018-03-12 11:19:18 · 123 阅读 · 0 评论 -
多线程编程 之生产者消费者
为了提高CPU的利用率和各线程之间相互协作,Java的一种实现线程间通信的机制是:wait/notify线程间通信,下边就一起学习一下这种线程间的通信机制。 wait方法 (1)方法wait()的作用是使当前执行代码的线程进行等待,并且在wait()所在的代码处停止执行,直到接到通知或被中断为止。 (2)在调用wait()之前,线程必须获得该对象级别锁,这是一个很重要的地方,很多时候我们...原创 2018-03-16 18:13:41 · 212 阅读 · 0 评论 -
自定义注解Annotation
开发过程中经常使用到注解,体验到注解的方便快捷。同时他还支持自定义注解。通过自定义注解来实现一下常用的功能。 创建 以下注解测试作用,主要是给带有注解的方法,打印一下注解值。使用关键字@interface 声明。 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface Single...原创 2018-03-09 11:16:16 · 273 阅读 · 1 评论 -
Java反射机制
1.什么是反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 2.类加载的过程 JAVA中的类初始化分为三个步骤:加载、连接、初始化。这三个步骤统称为类的加载或类初始化。 所谓类的加载是指将class文件读入内存,并为...原创 2018-03-08 10:39:07 · 152 阅读 · 0 评论 -
红包算法探讨
最近在做一些微信红包发放的功能,从而了解了一系列的红包算法。这里探讨一下。给你一定的金额,给发n个红包。 随机数发红包 使用随机数,每次先给红包塞入1分钱,然后在剩余的红包余额里面随机一个金额加入红包内。 缺点:不公平,越后面越亏,越后面的随机数越少,非常不平衡。抢红包抢到心态爆炸。 package 红包; import java.util.Arrays; import java.uti...原创 2018-06-15 17:46:02 · 1439 阅读 · 0 评论