随遇而安

随波逐流,随遇而安

额,假装这里有签名...

Java Proxy 和 CGLIB 动态代理原理(转载)

原文出处:CarpenterLee动态代理在Java中有着广泛的应用,比如SpringAOP,Hibernate数据查询、测试框架的后端mock、RPC,Java注解对象获取等。静态代理的代理关系在编译时就确定了,而动态代理的代理关系是在编译期确定的。静态代理实现简单,适合于代理类较少且确定的情况,而动态代理则给我们提供了更大的灵活性。今天我们来探讨Java中两种常见的动态代理方式:JDK原生动态代理和CGLIB动态代理。JDK原生动态代理先从直观的示例说起,假设我们有一个接口Hello和一个简单实现HelloImp://接口interfaceHello{StringsayHello(Stri......

java 代理 动态代理 proxy cglib

随遇而安 发表于2018/01/16 10:35:38 5次赏阅 0个点评

深入 Spring Boot:排查 @Transactional 引起的 NullPointerException(转载)

原文出处:hengyunabc写在前面这个demo来说明怎么排查一个@Transactional引起的NullPointerException。https://github.com/hengyunabc/spring-boot-inside/tree/master/demo-Transactional-NullPointerException定位NullPointerException的代码Demo是一个简单的spring事务例子,提供了下面一个StudentDao,并用@Transactional来声明事务:@Component@TransactionalpublicclassStudent......

springboot 事务 transactional nullpointerexception

随遇而安 发表于2018/01/16 10:32:01 6次赏阅 0个点评

如何有效地写算法题(转载)

原文出处:侯振宇这篇文章最早发在我团队的文档中。我的团队鼓励每个同学都在业余时间多做算法题,特别是新人。个人认为在编程能力的提升上比做sideproject更有用,对职业发展也是如此。当然出于兴趣做的sideproject另当别论。转到这里,希望对各位读者有用。如何有效地写算法题目的持续做算法题的目的仍然是自身能力提升。可以继续细化成三点:保持思维敏捷。非常重要,状态好才能保持对编程的热情。对基础的数据结构、查找和排序保持熟练。能解决日常开发中的性能相关问题。积累对问题域的探索。只有对问题域有足够的探索,才可能举一反三,迸发灵感。方法为了更有效地实现上面的目标。推荐用下面的方式来做题:严格使用......

算法 面试

随遇而安 发表于2018/01/16 10:28:13 4次赏阅 0个点评

一点解决版本冲突的应急思路、怎样在所有 jar 包文件中搜索冲突的方法?(转载)

原文出处:等你归去来maven是一个很好的项目管理工具,你可以轻松的定义一个引用,从而达到使用别人写好的库的作用。且maven可以轻松地和jenkins配合,从而使打包部署变得更容易。但是也因为这样,我们变得更傻瓜了,以致于有时候都忘了一些原始的基础的方法了,当然这不是本文的目的,本文的目的在于,如何解决一些maven带来的冲突问题。问题1:jenkins打包失败了,导致我无法安装代码到测试环境,怎么办?答:一般我们都会基于jenkins做一些二次开发,以适应公司内部的需求,或者优化一些修改化的东西。但是由于jenkins本身还是比较复杂的,有时候难免我们搞不清楚其原理,从而导致一些无法打包的......

maven jar jar冲突 maven冲突

随遇而安 发表于2018/01/16 10:25:17 5次赏阅 0个点评

Java架构师必会的技能(你都会了吗?)

我把它分为了五大专题工程化专题工程化专题 git git安装使用git日常使用:fetch/pull/push/revert/rebase git分支管理git flowJenkins多套环境(test/pre/production)系统自动化发布Jenkins自动发布到远程主机MavenMaven私服搭建setting.xml文件剖析pom.xml详解Maven实用插件教学(静态代码检查、生成可执行jar包)profile使用源码分析源码分析 Spring源码分析Spring IOC的实现原理Spring BeanFact......

java 架构师 java架构师 架构师技能

随遇而安 发表于2018/01/12 19:14:13 17次赏阅 0个点评

技术贴!成为Java架构师必须要懂的知识

Java架构师,应该算是一些Java程序员们的一个职业目标了吧。很多码农码了五六年的代码也没能成为架构师。那成为Java架构师要掌握哪些技术呢,总体来说呢,有两方面,一个是基础技术,另一个就是组织能力和提出解决方案能力了。小华君就跟大家来简要地说说吧。如果你是想成为Java架构师,那么你首先要是一个Java高级攻城狮。也就是说,基础必须牢固,对Java的了解全面而且深入。熟练使用各种框架,并知道它们实现的原理。Jvm虚拟机原理、调优操作,懂得jvm能让你写出性能更好的代码;池技术也是要掌握的,对象池、连接池、线程池都要会;Java反射技术,写框架必备的技术;Java各种集合对象的实现原理,了解......

java 架构师 java架构师

随遇而安 发表于2018/01/12 19:08:25 15次赏阅 0个点评

(面试感悟)一名3年工作经验的程序员应该具备的技能

前言因为和同事有约定再加上LZ自己也喜欢做完一件事之后进行总结,因此有了这篇文章。这篇文章大部分内容都是面向整个程序员群体的,当然因为LZ本身是做java开发的,因此有一部分内容也是专门面向咱们java程序员的。简单先说一下,LZ坐标杭州,13届本科毕业,算上年前在阿里巴巴B2B事业部的面试,一共有面试了有6家公司(因为LZ不想请假,因此只是每个晚上去其他公司面试,所以面试的公司比较少),其中成功的有4家,另外两家失败的原因在于:1、阿里巴巴B2B事业部的面试,两轮技术面试都过了,最后一轮面试是对方的主管,由于听说技术面试过了基本上90%都面试成功了,所以LZ在和主管的交谈中也是毫无顾忌,说得......

程序员 面试 程序生涯 职业规划

随遇而安 发表于2018/01/12 18:57:24 17次赏阅 0个点评

10年感触:架构是什么?——消灭架构!(转载)

架构是什么?架构是一个约定,一个规则,一个大家都懂得遵守的共识。那这是什么样的约定、什么样的规则、什么样的共识呢?我以包为例,我经常出差,双肩背包里装了不少东西。笔记本电脑、电源、2个上网卡、鼠标、USB线、一盒大的名片、一盒小的名片、口香糖、Mini-DisplayPort转VGA接口、U盘、几根笔、小螺丝刀、洗漱用品、干净衣服、袜子、香水、老婆给我带的抹脸膏(她嫌我最近累,脸有点黄)、钱包、Token卡、耳机、纸巾、USB线、U盘等。这个包有很多格子,最外面的格子我放常用的,比如笔、纸、一盒小的名片等;中间的格子一般放的是衣服、袜子、洗漱用品、香水等;靠背的那个大格子放了笔记本电脑,和笔记......

架构 消灭架构

随遇而安 发表于2018/01/12 18:24:56 16次赏阅 0个点评

Java线程面试题 Top 50(转载)

不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。在典型的Java面试中,面试官会从线程的基本概念问起,如:为什么你需要使用线程,如何创建线程,用什么方式创建线程比较好(比如:继承thread类还是调用Runnable接口),然后逐渐问到并发问题像在Java并发编程的过程中遇到了什么挑战,Java内存模型,JDK1.5引入了哪些更高阶的并发工具,并发编程常用......

java 多线程 面试题 面试 java面试

随遇而安 发表于2018/01/12 16:52:02 17次赏阅 0个点评

用大白话聊聊分布式系统(转载)

原文出处:waylau一提起“分布式系统”,大家的第一感觉就是好高大上啊,深不可测,看各类大牛关于分布式系统的演讲或者书籍,也大多是一脸懵逼。本文期望用浅显易懂的大白话来就什么是分布式系统、分布式系统有哪些优势、分布式系统会面临哪里挑战、如何来设计分布式等方面的话题来展开讨论。什么是分布式系统关于“分布式系统”的定义,我们先看下老外是怎么说的。《分布式系统原理和范型》一书中是这样定义分布式系统的:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像是单个相关系统”。关于这个定义,我们直观的感受就是:首先,这种系统相对来说比较牛逼,起码由好几台主机组成。以谷歌、亚马逊等服务商而言,他们......

分布式 架构 分布式系统

随遇而安 发表于2018/01/09 14:46:24 16次赏阅 0个点评

分布式系统常见的事务处理机制(转载)

原文出处:waylau为保障系统的可用性、可靠性以及性能,在分布式系统中,往往会设置数据冗余,即对数据进行复制。举例来说,当一个数据库的副本被破环以后,那么系统只需要转换到其他数据副本就能继续运行下去。另外一个例子,当访问单一服务器管理的数据的进程数不断增加时,系统就需要对服务器的数量进行扩充,此时,对服务器进行复制,随后让它们分担工作负荷,就可以提高性能。但同时,如何保障多个数据节点之间数据的一致以及如何处理分布式事务,将成为为一个复杂的话题。本文将介绍常用的事务处理机制。CAP定理CAP定理(也称为Brewer定理),是由计算机科学家EricBrewer提出的,即在分布式计算机系统不可能同......

分布式 事务 分布式系统

随遇而安 发表于2018/01/09 14:44:53 18次赏阅 0个点评

Spring IOC 容器源码分析(转载)

原文出处:JavaDoopSpring最重要的概念是IOC和AOP,本篇文章其实就是要带领大家来分析下Spring的IOC容器。既然大家平时都要用到Spring,怎么可以不好好了解Spring呢?阅读本文并不能让你成为Spring专家,不过一定有助于大家理解Spring的很多概念,帮助大家排查应用中和Spring相关的一些问题。阅读建议:读者至少需要知道怎么配置Spring,了解Spring中的各种概念,少部分内容我还假设读者使用过SpringMVC。本文要说的IOC总体来说有两处地方最重要,一个是创建Bean容器,一个是初始化Bean,如果读者觉得一次性看完本文压力有点大,那么可以按这个思路......

java 容器 spring ioc

随遇而安 发表于2018/01/09 10:02:21 17次赏阅 0个点评

使用 Spock 框架进行单元测试(转载)

原文出处:@蛋疼的axb1.摘要最近一段时间接触到了spock这个可以用于java和groovy项目的单元测试框架,写了一段时间单测之后认为这个框架不错,值得写一篇文章推广一下。2.关于单元测试很多人一谈到单元测试就会想到xUnit框架。对于一些java新人来说,会用jUnit就是会写单元测试,高级点的会捣鼓一下testng,然后就认为自己掌握了单元测试。而实际上,很多人不怎么会写单元测试,甚至不知道单元测试究竟是干什么的。写单元测试要比写代码要难上许多,而这里说的难度跟框架没什么关系。所以,在开始介绍spock之前,需要先抛开框架,谈谈单元测试本身的事情。在理解了单元测试之后才能更清楚spo......

框架 spock 单元测试

随遇而安 发表于2018/01/09 09:59:47 14次赏阅 0个点评

一个巧妙的负载均衡算法 :翘动你的大脑(转载)

原文出处:等你归去来现在的负载均衡技术,可以说是满大街都是,但是我们基本都停留在了使用的阶段上,并没有真正深入去了解其核心。如果真的出现了问题,可能就很难知道是什么原因导致了,只能去google,百度了。因此,了解一些核心的东西,还是不错的。负载均衡大概流程就是,随时收集各服务器信息或者各服务器主动上报信息,由配置主心进行保存,计算出权重,然后根据相应算法进行服务机器选择。(当然了,这不是本文的重点,我也说得不一定对)我要展示的是,一个根据权重进行机器选择的一个巧妙算法,如下:12345678910111213141516171819202122232425262728intchooseOne......

负载均衡 算法

随遇而安 发表于2018/01/09 09:51:47 15次赏阅 0个点评

Java String 对 null 对象的容错处理(转载)

原文出处:肖汉松前言最近在读《ThinkinginJava》,看到这样一段话:Primitivesthatarefieldsinaclassareautomaticallyinitializedtozero,asnotedintheEverythingIsanObjectchapter.Buttheobjectreferencesareinitializedtonull,andifyoutrytocallmethodsforanyofthem,you’llgetanexception-aruntimeerror.Conveniently,youcanstillprintanullreferen......

java spring 框架 null

随遇而安 发表于2018/01/09 09:49:14 17次赏阅 0个点评

一份从 0 到 1 的 Java 项目实践清单(转载)

原文出处:等你归去来虽说工作就是简单的事情重复做,但不是所有简单的事你都能有机会做的。我们平日工作里,大部分时候都是在做修修补补的工作,而这也是非常重要的。做好修补工作,做好优化工作,足够让你升职加薪!但是如果有机会,去尝试些自己平日里少做的事,我觉得是一件值得庆幸的事。前段时间,接了个新项目。只有一些idea在业务需求方脑海里,然后就开始需求讨论,然后就开始做事了。项目不复杂,但是由于是用JAVA语言实现(这相对来说是我的薄弱点),对我个人显得比较有意义。总结下来,其实也就是一个项目清单。个人觉得还是有点意义吧,给没有一定全面实践的同学参考吧!1.项目规划1.1首先,你得彻底明白到底要做什么......

项目管理 项目 项目实践

随遇而安 发表于2018/01/08 19:33:17 16次赏阅 0个点评