Java
阿云_
这个作者很懒,什么都没留下…
展开
-
GC频繁Finalizer的锅?记一次频繁GC问题的排查
一次GC问题排查原创 2022-09-04 18:07:57 · 3205 阅读 · 0 评论 -
阿里巴巴Java开发手册(黄山版)2022.2.3发布
链接: https://pan.baidu.com/s/114Jrg1CqS4eViQgKT5jhcw 提取码: wa92原创 2022-02-25 22:21:59 · 8020 阅读 · 11 评论 -
ReentrantLock源码解析
ReentrantLock lock = new ReentrantLock(false);lock.lock();System.out.println("do something");lock.unlock();首先来介绍 AbstractQueuedSynchronizer,它是一个双向链表的结构,有头节点和尾结点。来看看它的一些属性// 在ReentrantLock语境下代表重入次数(0代表没有被持有)private volatile int state;// 独占锁模式下持有锁的线程原创 2020-08-31 19:40:47 · 262 阅读 · 0 评论 -
精进代码 - 接口参数校验
前言 我们在写接口的时候,需要对传来的数据进行必要的校验,先来看一段可以改造的代码:public String register(User user) { if (StringUtils.isEmpty(user.getAccount()) || StringUtils.isEmpty(user.getPassword()) || StringUtils.isEmpty(user.g...原创 2020-04-14 15:17:36 · 302 阅读 · 0 评论 -
精进代码 - 接口统一响应体
前言 如今web项目的接口大都是 RESTful 的,响应体中包含了一些接口执行的信息,比如返回的数据(data)、响应码(code)、是否成功(success)和响应描述(message)。每个接口都需要封装成这种格式,这样每次都需要留意。 下面来介绍一种方法,是 Spring 的 web 模块提供的功能。统一响应体pom依赖了web模块和lombok<dependency&...原创 2020-04-14 15:10:04 · 539 阅读 · 0 评论 -
AOP动态数据源切换 实现主从读写分离
前言MySQL 主从可以更好的减少数据库压力,今天搞了一个小demo,只读接口让他去从库查,用注解方式实现。代码上传至码云:https://gitee.com/yunup/some-examples环境信息Java 版本 1.8SpringBoot 版本 2.2.3.RELEASEMySQL主库 test &nbs...原创 2020-01-18 18:04:55 · 427 阅读 · 0 评论 -
java8 API 中文 翻译版 java帮助文档下载
Java1.8 帮助文档中文 – 谷歌版在线版: https://blog.fondme.cn/apidoc/jdk-1.8-google/下载链接:https://pan.baidu.com/s/10wTC1F_4EUPsHzrn-_sPTw 密码:k7rm中文 – 有道版在线版: https://blog.fondme.cn/apidoc/jdk-1.8-youdao/下载链接:https:/...转载 2018-07-05 21:16:21 · 14337 阅读 · 13 评论 -
Java8 十大新特性详解
前言: Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级。在Java Code Geeks上已经有很多介绍Java 8新特性的文章,例如Playing with Java 8 – Lambdas and Concurrency、Java 8 Date Time A...转载 2018-07-05 21:20:07 · 326 阅读 · 0 评论 -
java注解-ElementType详解
java中元注解(用来标识注解的注解)有四个: @Retention @Target @Document @Inherited; @Retention:注解的保留位置 @Retention(RetentionPolicy.SOURCE) //注解仅存在于源码中,在class字节码文件中不包含 @Retention(RetentionPolicy.C...转载 2018-08-07 00:53:23 · 35372 阅读 · 3 评论 -
几张图轻松理解String.intern()
在翻《深入理解Java虚拟机》的书时,又看到了2-7的 String.intern()返回引用的测试。 其实要搞明白String.intern(),我总结了下面几条规则: 一、new String都是在堆上创建字符串对象。当调用 intern() 方法时,编译器会将字符串添加到常量池中(stringTable维护),并...转载 2018-08-18 15:41:53 · 229 阅读 · 0 评论 -
Java8新特性 Lambda表达式 (一)Lambda语法
前言 Comparator接口大家应该不陌生,重写compare方法可以做两个参数的比较。 代码如下: Comparator<String> com = new Comparator<String>(){ @Override public int compare(String o...原创 2018-06-01 01:38:53 · 295 阅读 · 0 评论 -
CXF生成客户端类文件乱码问题
标注编码为国际统一编码utf-8比如wsdl2java -encoding utf-8 -d 本地目录 -client 你的wsdl地址原创 2018-04-04 09:41:05 · 2042 阅读 · 0 评论 -
Java8新特性 default关键字
引言: 在查看Enumeration接口源码的时候,发现新增了一个方法,这个方法是有方法体的,并且用default修饰的。这个修饰符看起来很陌生,查阅文档后,大概了解了些。文档中说:default methods enable you to add new functionality to the interfaces of your libraries and ensure bin...原创 2018-05-09 10:13:15 · 15121 阅读 · 6 评论 -
阿里P7学习路线总结
来源:微信公众号 【架构师小秘圈】 作者:Hollis,阿里资深Java工程师,一个对Coding有着独特追求的人! 来自:Hollis(ID:hollischuang)一、基础篇JVMJVM内存结构堆、栈、方法区、直接内存、堆和栈区别Java内存模型内存可见性、重排序、顺序一致性、...转载 2018-05-05 15:17:29 · 4444 阅读 · 1 评论 -
Java中加载资源文件的路径问题
在做javaweb开发的时候,我们可能会需要从本地硬盘上读取某一个文件资源,或者修改某一个文件,这个时候就需要先找到这个文件,然后用FileInputStrem等文件字节。字符流来将这个文件读取到内存中,再对其进行修改等的操作。那么在找这个文件的过程中就涉及到一个路径的问题—&gt;怎么正确的找到这个文件呢?有两种可行的方法:一、绝对硬盘路径;二、相对路径。。来来来,我们掰扯一下这两种方法的...转载 2018-05-28 13:51:23 · 1094 阅读 · 0 评论 -
Java8新特性 Lambda表达式 (二)方法引用和构造器引用
上一节介绍了Lambda表达式的基础用法,Java为我们提供了很多函数式接口。详见我转载的一篇博客:深入学习Java8中的函数式接口原创 2018-06-12 00:29:52 · 1788 阅读 · 0 评论 -
Java8新特性 Lambda表达式 (三)Lambda表达式与匿名内部类的比较
s原创 2018-06-12 21:47:11 · 1350 阅读 · 0 评论 -
Java10 你不知道的5件事
1.Java 的新版本发布节奏过去,JDK 版本发布节奏受重大新特性所驱动。以最近为例,Java 8 以 lambda 表达式和流的形式引入了函数式编程,Java 9 引入了模块化 Java 系统。每个新版本都被热切期待,而一些小的修复补丁则常常被搁在一边,等待更大组件的最终确定。Java 的演变落后于其他语言。新的高频率节奏促使 Java 在有较小的改进时就发布...转载 2018-06-12 23:11:54 · 383 阅读 · 0 评论 -
Java8新特性 Streams API 详解
为什么需要 StreamStream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Strea...转载 2018-06-13 00:19:34 · 474 阅读 · 0 评论 -
必看:深入学习Java8中的函数式接口
引言 目前由于系统已经全面切换为JDK8,所以有必要系统的了解一下Java8的一些新特性,以便后续在日常工作中可以使用一些高级特性来提高编程效率。 因为Java8引入了函数式接口,在java.util.function包含了几大类函数式接口声明。这里第一篇主要研究一下Function相关的接口。 FunctionalInterface注解 Java8的新引入,包含函数式的设计,...转载 2018-06-06 21:47:38 · 7313 阅读 · 0 评论 -
StringBuffer中的capacity的扩增机制
StringBuffer大家一定不陌生吧,今天浅谈一下StringBuffer中capacity的扩增机制。 因为StringBuffer实际通过一个char[]引用来保存字符串的,它的长度是固定的。如果append的值超过了数组容量,将会执行一个扩容方法,生成一个新数组,并将旧数组的值copy进去并替代。一、capacity( ) 与length ( )先来个小栗子:原创 2018-01-30 19:53:51 · 2154 阅读 · 0 评论