随笔分类 -  Java

摘要:在Spring Boot项目中可以使用AOP实现自定义注解,从而实现统一、侵入性小的自定义功能。 实现自定义注解的过程也比较简单,只需要3步,下面实现一个统一打印日志的自定义注解: 1. 引入AOP依赖 在pom文件中引入AOP的依赖: 2. 定义注解 定义注解的属性: 3. 定义切面 使用注解 在 阅读全文
posted @ 2019-07-15 16:45 Acode 阅读(7793) 评论(0) 推荐(0) 编辑
摘要:1. 对列表中的元素进行拼接 以前,对一个列表中的字符串进行拼接时,常见的代码如示例1所示: 代码示例1 运行结果 示例1的代码没有问题,结果也是正确的,唯一的缺憾就是:代码比较长。 在JDK8之后,上述代码可以简化: 代码实例2 运行结果 代码由原来的9行缩短到2行,非常简洁,最主要的是节省了时间 阅读全文
posted @ 2019-03-22 21:27 Acode 阅读(17481) 评论(0) 推荐(0) 编辑
摘要:错误使用 在实现限流时,网上的各种文章基本都会提到Guava的RateLimiter,用于实现单机的限流,并给出类似的代码: 可是上面的代码真的能限流吗? 首先,从代码逻辑角度来讲,方法在每次被调用是都new一个RateLimiter,不同请求之间毫无关联,怎么能起到限流的作用呢? 其次,经过本人实 阅读全文
posted @ 2018-07-03 18:35 Acode 阅读(2707) 评论(0) 推荐(0) 编辑
摘要:一段很简单的代码,先自己在大脑中给出结果: for (int i = 0; i 阅读全文
posted @ 2018-06-15 17:43 Acode 阅读(4837) 评论(0) 推荐(0) 编辑
摘要:在实际工作中经常遇到对账户的操作(账户充值和账户消费),处理的逻辑如下: 然而,在实际中经常会有并发操作的问题,下面通过在数据中执行SQL的方式,模拟下不做并发处理的情况: 数据库是MySQL,隔离级别采用默认的可重复读,表为t_money,只有两列:id、money,只有一条记录id=1, mon 阅读全文
posted @ 2018-04-19 14:40 Acode 阅读(1659) 评论(0) 推荐(0) 编辑
摘要:1. CountDownLatch 1.1 功能及使用场景 一个同步工具,使得一个或多个线程等待一组线程执行完成后再执行。 使用场景:等待一些前置任务执行完成后,再执行特定的功能。比如,系统启动时,各种配置生效后,才能运行提供服务。 1.2 代码实例 public class CyclicBarri 阅读全文
posted @ 2018-04-13 11:43 Acode 阅读(233) 评论(0) 推荐(0) 编辑
摘要:将Java对象转为一个Map,以及将map转为对应Java对象,代码如下: 运行结果: 阅读全文
posted @ 2018-04-08 15:19 Acode 阅读(640) 评论(0) 推荐(0) 编辑
摘要:Java线程池中线程的数量超过核心线程的数量,且所有线程空闲,空闲时间超过keepAliveTime,会停止超过核心线程数量的线程,那么会保留哪些线程呢?是不是有规则呢? 测试代码: ThreadPoolExecutor executor = new ThreadPoolExecutor(3, 5, 阅读全文
posted @ 2018-03-27 15:27 Acode 阅读(2693) 评论(0) 推荐(0) 编辑
摘要:在工作中,我们会经常用到如下类似的结构 使用起来比较复杂,Guava同样提供了一个类似的接口:SetMultimap,可是从百度上基本找不到该接口的具体实现类,最后还是给Google一下,简单的使用代码: 阅读全文
posted @ 2017-10-19 19:02 Acode 阅读(2434) 评论(0) 推荐(0) 编辑
摘要:对中文进行排序,同样是得定义一个Comparator,下面上代码: 一般情况下,该段程序没有问题,网上说是个别汉字会有问题。 阅读全文
posted @ 2017-10-18 18:11 Acode 阅读(12257) 评论(0) 推荐(1) 编辑
摘要:很简单,直接看代码: 阅读全文
posted @ 2017-09-08 15:49 Acode 阅读(6121) 评论(0) 推荐(0) 编辑
摘要:今天在论坛里看到一段请教list删除的问题,下面先看代码: public static void main(String[] args) { List list = new ArrayList(5); list.add(1); list.add(2); list.add(3); list.add(4 阅读全文
posted @ 2017-09-05 09:29 Acode 阅读(1209) 评论(0) 推荐(0) 编辑
摘要:Bean的定义 遵循Sun的Java Bean规范编写的特殊类 Java Bean的规范 类的访问控制权限是public 类提供有一个无参的构造函数 类的属性的访问控制权限是private,通过setXXX()方法和getXXX()方法访问属性 可序列化,即实现接口java.io.Serializa 阅读全文
posted @ 2017-07-20 15:56 Acode 阅读(210) 评论(0) 推荐(0) 编辑
摘要:将peoperties文件的读取和写入封装成了一个工具类: 阅读全文
posted @ 2017-07-14 13:11 Acode 阅读(563) 评论(0) 推荐(0) 编辑
摘要:JDK 1.6中,扩容的源码是这样: 可以看出,扩容的大小是新字符串的长度的2倍,然后再加上2。 为什么要再加上2呢? 在网上找了半天资料,然后在知乎上找到了一个合理的回答:在使用StringBuilder的时候,append()之后,我们一般会在后面在加上一个分隔符,例如逗号,也就是再加上一个ch 阅读全文
posted @ 2017-07-10 16:35 Acode 阅读(3745) 评论(0) 推荐(0) 编辑
摘要:``` public class WordCount { public static void main(String[] args) { String[] stopWords = { "", ",", "." }; List stopWordList = Arrays.asList(stopWords); String strWorld = "Regular expression... 阅读全文
posted @ 2017-05-05 13:29 Acode 阅读(220) 评论(0) 推荐(0) 编辑
摘要:在Java中,一个String对象被一些特殊字符分隔时,可以使用split()方法,生成一个String[],然后进行其他的操作,就像下面这样: 其实,split()的参数是一个正则表达式,当String对象是被正则表达式中的 特殊字符 分隔时,split()的参数就不能直接仅仅写这个特殊字符(不是 阅读全文
posted @ 2017-05-05 11:30 Acode 阅读(1391) 评论(0) 推荐(0) 编辑
摘要:在《 "Java中ArrayList的fori和foreach效率比较" 》中对ArrayList的两种循环方式进行了比较,本次对LinkedList的两种遍历方式进行效率的比较。 1. list的元素为自定义的对象 自定义的Student类 【代码实例1】 public static void m 阅读全文
posted @ 2017-03-03 15:46 Acode 阅读(2447) 评论(0) 推荐(0) 编辑
摘要:1. list的元素为Integer 【代码实例1】 public static void main(String[] args) { List list = new ArrayList(); int maxNum = 1000000; for (int i = 0; i list = new Ar 阅读全文
posted @ 2017-03-03 15:34 Acode 阅读(10013) 评论(0) 推荐(0) 编辑
摘要:1、什么是线程池? 简单粗暴的理解就是:装着一个或多个线程的容器,我们称这个容器为线程池。 在现实世界中,有着各种各样的“池”,例如游泳池、花池等等。那花池来说,里面种满了各种各样的鲜花,花池本身要做的就是提供一片空地,里面的鲜花是园丁来种植、浇水。不同于花池,线程池不仅仅需要提供一个可以装线程的容 阅读全文
posted @ 2017-02-10 16:01 Acode 阅读(560) 评论(0) 推荐(0) 编辑

您是本站第访问量位访问者!
点击右上角即可分享
微信分享提示