
java
OxygenBling
我会很努力,也期待会有好运气。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
线程池概念及相关使用 ThreadPoolExecutor ExecutorCompletionService
线程池概念一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。使用线程池目的避免频繁的创建销毁线程,复用创建的线程。线程池处...原创 2020-03-26 18:22:15 · 696 阅读 · 0 评论 -
Java 条件运算符 类型转换问题
概念形式:关系表达式 ? 表达式1 : 表达式2求值规则:求解关系表达式,根据关系表达式的布尔值决定取值;关系表达式的值为true时取表达式1的值;关系表达式的值为false时取表达式2的值。举例:int a = 1;int b = 2;System.out.println(a > b ? a : b);输出:2类型转换导致的问题Case 1和Case 2比较大小相同类型...原创 2019-11-27 20:07:26 · 644 阅读 · 0 评论 -
Java for each 语法糖
提前for each 语句遍历NullPointException异常问题分析。for each 为Java语法糖,编译时会将解析消除for each语句,具体见代码实例。源码public static void main(String[] args) throws Exception { int[] arr = {1, 2, 3, 4}; for (int i...原创 2019-09-25 20:34:13 · 430 阅读 · 0 评论 -
Stream ToMap(Collectors.groupingBy) 实践
简介Collectors.groupingBy返回一个实现 group by 操作的Collector对象,用于Collection Stream流分组操作。场景预设情景:根据年龄为List list分组,进阶分组Person对象不重复,分组Person对象不重复+保持插入顺序。实际应用:比如分页场景,对于一些需要先对List进行分组整合并且无法在数据库实现分页的需求,可以通过指定返回M...原创 2019-09-25 18:10:36 · 3625 阅读 · 0 评论 -
动态代理(JDK动态代理、CGLib动态代理)分析
a原创 2019-09-19 17:24:34 · 390 阅读 · 0 评论 -
代理模式(动态代理+静态代理)
代理模式概念为其他对象提供一种代理以控制对这个对象的访问。为另一个对象提供一个替身或占位符以访问这个对象。为什么使用代理模式在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层...原创 2019-09-18 19:49:39 · 774 阅读 · 0 评论 -
try-with-resources
Whattry-with-resources 是 JDK 7 中一个新的异常处理机制,它能够很容易地关闭在 try-catch 语句块中使用的资源。所谓的资源(resource)是指在程序完成后,必须关闭的对象。try-with-resources 语句确保了每个资源在语句结束时关闭。所有实现了 java.lang.AutoCloseable 接口(其中,它包括实现了 java.io.Close...原创 2019-08-14 20:29:09 · 656 阅读 · 0 评论 -
Java序列化和反序列化
概念序列化与反序列化序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在网络传输过程中,可以是字节或是XML等格式。而字节的或XML编码格式可以还原完全相等的对象,这个相反的过程又称为反序列化。对象序列化机制(object serialization)是Java语言内建的一种对象持久化方式,通过对象序列化,可以把对象的状态保存为字节数组,并且可以在有需...原创 2019-05-31 10:53:34 · 193 阅读 · 0 评论 -
Spring系列——AOP(概念+常用的三种AOP实现方式+日志打印Demo)
1 概念1.1 基本概念AOP是Aspect Oriented Programing缩写,即面向切面编程。AOP通过横向抽取机制为无法通过纵向继承体系进行抽象的重复性代码提供了解决方案。AOP希望将分散在各个业务逻辑代码中的相同代码通过横向切割的方式抽取到一个独立的模块中。连接点Joinpoint程序执行的某个特定位置,比如类初始化前、类初始化后、类的某个方法调用前、后、方法抛出异常后。...原创 2019-03-10 22:49:20 · 449 阅读 · 0 评论 -
Java:从lambda 表达式引用的本地变量必须是最终变量或实际上的最终变量
报错CaseLambda表达式对dest添加对象,后续对destList<String> dest = new ArrayList<>();List<String> src = new ArrayList<>(Arrays.asList("01", "02"原创 2019-01-25 18:57:50 · 34233 阅读 · 3 评论 -
Stream ToMap(Collectors.toMap) 实践
RequirementsList TO MapList Stream 转换 Map时向collect()方法中传递Collector对象,对象由Collectors.toMap()方法返回。如下实现List转换为MapList<GroupBrandCateBO> list = new ArrayList<>( Arrays.asList( ...原创 2019-01-25 09:27:59 · 94369 阅读 · 2 评论 -
HashMap values()
Map接口 values()方法定义Collection<V> values();HashMap类 values()方法实现public Collection<V> values() { Collection<V> vs = values; if (vs == null) { vs = new Values(); ...原创 2019-01-24 17:46:14 · 4368 阅读 · 0 评论 -
List Stream distinct() 去重
Requirements:去重List内重复对象(此处重复定义与对象属性值有关)Achievement:List Stream 对象调用distinct()方法,distinct()方法依赖hashCode()和equals()方法。判断两个对象是否相同原理与HashMap定位key原理相同,先计算hashCode,如果hashCode相同继续调用equals()方法。List<A...原创 2019-01-24 17:28:47 · 19550 阅读 · 0 评论 -
List Sort :列表自定义排序实现
List排序List接口提供了sort函数定义,传入Comparator对象实例即可自定义排序。 default void sort(Comparator&amp;lt;? super E&amp;gt; c) { Object[] a = this.toArray(); Arrays.sort(a, (Comparator) c); ListIterat...原创 2019-01-17 18:20:04 · 3873 阅读 · 0 评论 -
BigDecimal setScale() 精度计算异常处理: java.lang.ArithmeticException: Rounding necessary
Case: BigDecimal val0 = new BigDecimal(1.0 / 2); System.out.println(val0); System.out.println(val0.setScale(2)); BigDecimal val1 = new BigDecimal(1.0 / 3); Syst...原创 2019-01-11 17:25:41 · 3132 阅读 · 0 评论 -
DateTime Picker String value 转换 Date (Springmvc 注解@DateTimeFormat) 解决400请求无效问题
Date Time Picker String类型值传后台数据封装失败问题解决,使用@DateTimeFormat注解实现String To Date类型转换原创 2017-12-17 02:02:27 · 5192 阅读 · 0 评论