梦想从这里开始

千里之行,始于足下

多线程和队列的通俗理解

我们先不要用专业的角度来看多线程。 先来回忆一下,现实生活中,自己曾经一个人做的事,和多个人同时做的事。     假如现在某百货商场做一个抢购活动,限时限量的。那么就意味着你抢得越多就越占便宜,至少可以这样去理解。     那么如果你一个人去抢的话,你只有两只手,抢得...

2017-12-29 16:00:20

阅读数 2898

评论数 0

日志打印

为什么需要日志 因为项目上线后不允许你调试,你只能通过Log来分析问题。项目出问题时,你要能拿出Log证明自己负责的部分没有问题,如果是自己的问题,要从Log里快速找出错误原因。如果没有从Log里找出错误原因,那一定是一件很悲催的事情,特别是在bug不容易重现的情况下。 哪些地方打日志 打...

2017-11-13 11:16:56

阅读数 2937

评论数 0

理解Maven中的SNAPSHOT版本和正式版本

Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准,Maven的替代者Gradle也基本沿用了Maven的依赖管理机制。在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个属性构成的,分别是groupId、artifactId以及version。这三个属性可以唯一确定一...

2017-10-23 22:22:53

阅读数 300

评论数 0

Spring AOP在函数接口调用性能分析及其日志处理方面的应用

面向切面编程可以实现在不修改原来代码的情况下,增加我们所需的业务处理逻辑,比如:添加日志。本文AOP实例是基于Aspect Around注解实现的,我们需要在调用API函数的时候,统计函数调用的具体信息,包括:函数签名,传入参数,函数处理时间,异常信息拦截等, @Around是可以同时在所拦截方法...

2017-10-13 13:49:32

阅读数 355

评论数 0

重构的那些事儿

几天前的一次上线,脑残手抖不小心写了bug,虽然组里的老大没有说什么,但心里面很是难过。同事说我之所以写虫子是因为我讨厌if/else,这个习惯不好。的确,if/else可以帮助我们很方便的写出流程控制代码,简洁明了,这个条件做什么,那个条件做什么,说得很清楚。说真的,我从来不反对if/else,...

2017-10-13 11:14:18

阅读数 243

评论数 0

线程池

不论你是否关注,Java Web应用都或多或少的使用了线程池来处理请求。线程池的实现细节可能会被忽视,但是有关于线程池的使用和调优迟早是需要了解的。本文主要介绍Java线程池的使用和如何正确的配置线程池。 单线程 我们先从基础开始。无论使用哪种应用服务器或者框架(如Tomcat、Jet...

2017-09-14 16:54:18

阅读数 166

评论数 0

数据库工具——Navicat Premium使用技巧

Navicat Premium 常用功能讲解 Navicat Premium 常用功能讲解 1.快捷键  1.1. F8 快速回到当前对象列表  1.2. Ctrl + q 打开查询界面  1.3. Ctrl + d 快速修改当前的表结构  1.4. Ctrl ...

2017-09-14 16:08:39

阅读数 241

评论数 0

代码评审需要注意的项目规范

贾言 验幻空越重, 命循频异长。 依轮线日简, 接偶正分壮。 言欢空月虫, 明勋品宜昌。 依伦先日贱, 洁偶正粉妆。 贾言 架构师说, 用20个字描述代码评审的内容, 自省也省人。由于是一字...

2017-08-28 09:37:53

阅读数 700

评论数 0

软件架构模式转载

软件架构模式转载 概要介绍 最近一两年,转载文章越来越少了,之所以转载这篇文章,是因为看这篇文章,弄明白了我的一些问题。所以梳理了一下,结合了几篇文章。 架构模式可以帮助你定义程序的基本特征和行为。例如一些架构模式很自然让程序成为大规模(scalable)的程序。有些模式让程序变...

2017-08-11 14:50:21

阅读数 215

评论数 0

分布式一致性解决

前言 目前的应用系统,不管是企业级应用还是互联网应用,最终数据的一致性是每个应用系统都要面临的问题,随着分布式的逐渐普及,数据一致性更加艰难,但是也很难有银弹的解决方案,也并不是引入特定的中间件或者特定的开源框架能够解决的,更多的还是看业务场景,根据场景来给出解决方案。根据笔者最近几年的...

2017-08-11 14:33:22

阅读数 231

评论数 0

如何分析mysql的查询语句

在项目中,有时候时间紧,我们往往比较关注功能,对于性能关注度没有那么高,书写的SQL能够支持功能即可,但是在线上运行过程中,会出现各种问题,sql太慢,这时候我们的第一反应是是不是没走索引,于是找到DBA说加个索引,但是其实有了索引查询未必快,具体问题需要具体分析,对于查询,我们可以自己通过exp...

2017-08-11 13:49:30

阅读数 243

评论数 0

项目管理

参加工作已经两年多了,加上实习的时间差不多快三年了,中间做过很多项目,但是成功的不多,PM,也就是所谓的项目经理做过很多次,有业务项目,有技术驱动项目,有大型跨团队项目,有了一些感悟,大概几个月前在团队内部做过一个分享,最近刚刚忙完双十一,就把之前的PPT简单翻译一下放出来吧。     ​ ...

2017-08-11 10:53:25

阅读数 259

评论数 0

JAVA数组去除重复数据

前一段时间被面试问到:如果一个数组中有重复元素,用什么方法可以去重?一时间会想到用一种方法,但是后来查阅资料后发现,有好多方法可以实现,现在就总结一下,比较简单的几种。 一.用List集合实现 int[] str = {5, 6, 6, 6, 8, 8, 7,4}; List ...

2017-08-02 22:33:25

阅读数 237

评论数 0

Cglib代理

CGLIB和我们的java的动态代理是有区别的,CGLIB是代理的类,而我们的java动态代理是代理的对象   首先我们先说一个"好像"和我们要讲的东西不相干的东西.(其实很重要的,能带你拐一个小的弯.) 首先有两个类,子类和父类,父类和子类有相同的方法,当我们调用父类的...

2017-07-18 17:41:12

阅读数 160

评论数 0

NIO入门

我们在写java程序的时候,为了进行优化,把全部的精力用在了处理效率上,但是对IO的关注却很少。这也可能是由以前java早期时JVM在解释字节码时速度慢,运行速率大大低于本地编译代码,因此以前往往忽视了IO的优化。 但是现在JVM在运行时优化已前进了一大步,现在的java应用程序更多的是受I...

2017-07-17 14:54:00

阅读数 156

评论数 0

Zookeeper入门

zookeeper可谓是目前使用最广泛的分布式组件了。其功能和职责单一,但却非常重要。 在现今这个年代,介绍zookeeper的书和文章可谓多如牛毛,本人不才,试图通过自己的理解来介绍zookeeper,希望通过一个初学者的视角来学习zookeeper,以期让人更加深入和平稳的理解zooke...

2017-07-17 14:26:35

阅读数 159

评论数 0

Spring学习总结之高级装配

1.  profile profile可以决定bean在什么环境下才被装配(开发环境、测试环境、线上环境等) @Profile(“dev”)可以用在class之前,也可以用在类之前(Spring3.2),表示类或者方法返回类只有在dev环境激活时才被创建;也可以在XML文件中配置。 ...

2017-07-17 13:51:38

阅读数 156

评论数 0

zookeeper在dubbo中的作用

流程: 1.服务提供者启动时向/dubbo/com.foo.BarService/providers目录下写下URL 2.服务消费者启动时订阅/duubo/com.foo.BarService/providers目录下的URL,并向/dubbo/com.foo.BarService/consu...

2017-07-17 11:14:33

阅读数 515

评论数 0

自己写一个java.lang.reflect.Proxy代理的实现

Java设计模式9:代理模式一文中,讲到了动态代理,动态代理里面用到了一个类就是java.lang.reflect.Proxy,这个类是根据代理内容为传入的接口生成代理用的。本文就自己写一个Proxy类出来,功能和java.lang.reflect.Proxy一样,传入接口、代理内容,生成代理。 ...

2017-07-16 10:51:06

阅读数 216

评论数 0

java泛型

Java泛型是JDK5引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter)。声明的类型参数在使用的时候使用具体的类型来替换。泛型最主要的应用是在JDK5中的新集合类框架中。对于泛型概念的引入,开发社区的观点是褒贬不一。从好的方面上说,泛型的引入可以解决之前的集...

2017-07-14 11:18:33

阅读数 164

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭