-
使用 Java 注解自动化处理对应关系实现注释代码化
原文出处:琴水玉概述假设我们要从一个ES索引(相当于一张DB表)查询数据,ES表有order_no,order_type,state等字段,而应用对象则有属性orderNo,orderType,state等。这样,就会面临“将应用对象的属性与ES字段对应起来”的问题。固然可以通过注释来说明,不过这样显得比较生硬。因为注释并不起实际作用,代码里还得写一套映射关系,就会存在注释与代码不一致的情况。那么......1,036 0 2018-04-16 11:24
-
Java日志框架:logback详解(转载)
原文出处:五月的仓颉为什么使用logback记得前几年工作的时候,公司使用的日志框架还是log4j,大约从16年中到现在,不管是我参与的别人已经搭建好的项目还是我自己主导的项目,日志框架基本都换成了logback,总结一下,logback大约有以下的一些优点:内核重写、测试充分、初始化内存加载更小,这一切让logback性能和log4j相比有诸多倍的提升logback非常自然地直接实现了slf4j......1,050 0 2018-04-09 19:01
-
JDK 10 的 109 项新特性
原文出处:开源中国虽然感觉JDK9发布才仅仅几周的时间,然而,随着新的OpenJDK的发布节奏,JDK10已经到达发布候选里程碑阶段。我看过各种关于JDK10新特性的博客,但是它们都倾向于关注通过 JEPS 定义的大方面。这篇博文,我将看看是否可以罗列出JDK10中已经发生变化的方方面面(包括新增的和剔除的)。有时候,我会做一些关于JavaSE的报告会。之前我在“JDK9的55......1,009 0 2018-03-30 18:36
-
20 个使用 Java CompletableFuture的例子
原文出处:鸟窝在Java中异步编程,不一定非要使用rxJava,Java本身的库中的CompletableFuture可以很好的应对大部分的场景。原文: 20ExamplesofUsingJava’sCompletableFuture,作者MahmoudAnouti。这篇文章介绍Java8的 CompletionStageAPI和它的标准库的实现 Completabl......1,255 0 2018-03-28 19:14
-
Spring AOP 的实现机制(转载)
原文出处:大名Dean鼎AOP(AspectOrientProgramming),一般称为面向切面编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等等。AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理,静态代理的代表为AspectJ;而动态代理则以SpringAOP为代表。静态代理是编译期实现,动态代理是运行期......987 0 2018-03-26 19:27
-
Java代码优化(转载)
原文出处:五月的仓颉前言2016年3月修改,结合自己的工作和平时学习的体验重新谈一下为什么要进行代码优化。在修改之前,我的说法是这样的:就像鲸鱼吃虾米一样,也许吃一个两个虾米对于鲸鱼来说作用不大,但是吃的虾米多了,鲸鱼自然饱了。代码优化一样,也许一个两个的优化,对于提升代码的运行效率意义不大,但是只要处处都能注意代码优化,总体来说对于提升代码的运行效率就很有用了。这个观点,在现在看来,是要进行代码......968 0 2018-03-26 17:21
-
在 Java 8 中避免 Null 检查(转载)
原文出处:ostatsu如何预防Java中著名的NullPointerException异常?这是每个Java初学者迟早会问到的关键问题之一。而且中级和高级程序员也在时时刻刻规避这个错误。其是迄今为止Java以及很多其他编程语言中最流行的一种错误。Null引用的发明者 TonyHoare 在2009年道歉,并称这种错误为他的十亿美元错误。我将其称之为自己的十亿美元错误。它的发明......888 0 2018-03-26 17:11
-
使用Java函数接口及lambda表达式隔离和模拟外部依赖方便单元测试(转载)
原文出处:琴水玉概述单测是提升软件质量的有力手段。然而,由于编程语言上的支持不力,以及一些不好的编程习惯,导致编写单测很困难。最容易理解最容易编写的单测,莫过于独立函数的单测。所谓独立函数,就是只依赖于传入的参数,不修改任何外部状态的函数。指定输入,就能确定地输出相应的结果。运行任意次,都是一样的。在函数式编程中,有一个特别的术语:“引用透明性”,也就是说,可以使用函数的返回值彻底地替代函数调用本......1,152 0 2018-03-08 18:14
-
8张图理解Java(转载)
一图胜千言,下面图解均来自Program Creek 网站的Java教程,目前它们拥有最多的票选。如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟。1、字符串不变性下面这张图展示了这段代码做了什么Strings="abcd";s=s.concat("ef");2、equals()方法、hashCode()方法的区别HashCode被设计用来提高性能。equals()方法与......940 0 2018-02-05 16:53
-
Netty-Mina深入学习与对比(一)(转载)
转载自并发编程网–ifeve.com本文链接地址:Netty-Mina深入学习与对比(一)这博文的系列主要是为了更好的了解一个完整的nio框架的编程细节以及演进过程,我选了同父(TrustinLee)的两个框架netty与mina做对比。版本涉及了netty3.x、netty4.x、mina1.x、mina2.x、mina3.x。这里并没有写netty5.x的细节,看了netty5的修改文档,似乎......1,042 0 2018-01-29 18:53
-
HTMLParser 源码解析(转载)
原文出处:saymagic最近有解析HTML的需求,在Java中,好用的HTML解析框架也比较多,如JSoup,HTMLParser, JTidy等等。在对比几款框架之后,最终选取了HTMLParser做为第一版实现的框架。所以对HTMLParser的源码进行了一次整理。由于这种解析类的框架内部细节特别多,所以这里并不会特别的关注所有细节,而是侧重梳理HTMLParser整个解析的流程。......909 0 2018-01-29 18:19
-
Java异常有多慢?(转载)
本文作者:ImportNew-曹旭东本文是回答StackOverflow上的问题,但因为写太长了,所以就发到这里了。实际上,真正要讨论的问题并不是,“相对‘那些不会发生错误的代码’来说,‘那些以异常形式上报的错误’会有多慢?”,因为你可能也认同“已接受的回答”。相反,真正的问题是,“相对‘那些以其他形式上报的错误’来说,‘那些以异常形式上报的错误’会有多慢?”通常认为,“不要抛出你想要捕获的异常”......882 0 2018-01-26 17:25
-
Java集合深度解析之LinkedList(转载)
转自:兰亭风雨LinkedList简介 LinkedList是基于双向循环链表(从源码中可以很容易看出)实现的,除了可以当做链表来操作外,它还可以当做栈、队列和双端队列来使用。 LinkedList同样是非线程安全的,只在单线程下适合使用。 LinkedList实现了Serializable接口,因此它支持序列化,能够通过序列化传输......1,103 0 2018-01-25 00:13
-
Java 异常进阶(转载)
原文出处:decaywood在使用Java编写应用的时候,我们常常需要通过第三方类库来帮助我们完成所需要的功能。有时候这些类库所提供的很多API都通过throws声明了它们所可能抛出的异常。但是在查看这些API的文档时,我们却没有办法找到有关这些异常的详尽解释。在这种情况下,我们不能简单地忽略这些由throws所声明的异常:publicvoidshouldNotThrowCheckedExcept......703 0 2018-01-23 17:28
-
G1 垃圾收集器之对象分配过程(转载)
原文出处:占小狼G1的年轻代由edenregion和survivorregion两部分组成,新建的对象(除了巨型对象)大部分都在edenregion中分配内存,如果分配失败,说明edenregion已经被全部占满,这时会触发一次younggc,回收edenregion的垃圾对象,释放空间,满足当前的分配需求。小对象G1默认启用了UseTLAB优化,创建对象(小对象)时,优先从TLAB中分配内存,如......1,007 0 2018-01-23 17:24
-
深入 Spring Boot:怎样排查 expected single matching bean but found 2 的异常(转载)
原文出处:hengyunabc写在前面这个demo来说明怎么排查一个常见的springexpectedsinglematchingbeanbutfound2的异常。https://github.com/hengyunabc/spring-boot-inside/tree/master/demo-expected-single调试排查expectedsinglematchingbeanbutfoun......1,426 0 2018-01-19 09:50
-
Java Proxy 和 CGLIB 动态代理原理(转载)
原文出处:CarpenterLee动态代理在Java中有着广泛的应用,比如SpringAOP,Hibernate数据查询、测试框架的后端mock、RPC,Java注解对象获取等。静态代理的代理关系在编译时就确定了,而动态代理的代理关系是在编译期确定的。静态代理实现简单,适合于代理类较少且确定的情况,而动态代理则给我们提供了更大的灵活性。今天我们来探讨Java中两种常见的动态代理方式:JDK原生动态......939 0 2018-01-16 10:35
-
Java架构师必会的技能(你都会了吗?)
我把它分为了五大专题工程化专题工程化专题 git git安装使用git日常使用:fetch/pull/push/revert/rebase git分支管理git flowJenkins多套环境(test/pre/production)系统自动化发布Jenkins自动发布到远程主机MavenMaven私服搭建setting.xml文件剖析pom.xml详解Ma......896 0 2018-01-12 19:14
-
技术贴!成为Java架构师必须要懂的知识
Java架构师,应该算是一些Java程序员们的一个职业目标了吧。很多码农码了五六年的代码也没能成为架构师。那成为Java架构师要掌握哪些技术呢,总体来说呢,有两方面,一个是基础技术,另一个就是组织能力和提出解决方案能力了。小华君就跟大家来简要地说说吧。如果你是想成为Java架构师,那么你首先要是一个Java高级攻城狮。也就是说,基础必须牢固,对Java的了解全面而且深入。熟练使用各种框架,并知道它......1,090 0 2018-01-12 19:08
-
Java线程面试题 Top 50(转载)
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。在典型的Java面试中,面试官会从线程的基本概念问起,如:为什么你需要使用线程,如何创建线程,用什么方式创建线......936 0 2018-01-12 16:52