天道不一定酬所有勤
但是,天道只酬勤

Java

同步容器(如Vector)并不是所有操作都线程安全!~

hollischuang阅读(1678)评论(3)

之前在公众号中问了这个问题:对于线程安全的集合类(例如Vector)的任何操作是不是都能保证线程安全? 三天之内收到120+回复,其中表示不清楚的大概有10人左右,认为可以保证线程安全的有大概70人左右,认为不能保证线程安全的有50人左右, […]

使用Dozer优雅的将DO转换成VO

hollischuang阅读(3049)评论(6)

在Web开发中,我们会接触到很多领域模型中的概念,其中大部分和实体相关的概念都有缩写,一般以O(Object)结尾。其中比较常见的由DO、DTO、VO、DAO等。我们也经常有把一个实体对象转换为另外一个实体对象的操作。本文主要是介绍一种作者 […]

排名Top 16的Java实用类库

hollischuang阅读(5096)评论(3)

在Java中,有很多比较实用的类库,他们通常都定义了一系列具有常见功能的方法。本文总结了最常用的Java中的实用类以及他们的最常用的方法。无论是类和类中方法都是按照流行程度来排序的。 本文中列出来的类及方法都是经过大量实践的常用类库及方法, […]

Java开发必须掌握的线上问题排查命令

hollischuang阅读(8928)评论(2)

作为一个合格的开发人员,不仅要能写得一手还代码,还有一项很重要的技能就是排查问题。这里提到的排查问题不仅仅是在coding的过程中debug等,还包括的就是线上问题的排查。由于在生产环境中,一般没办法debug(其实有些问题,debug也白 […]

乐观锁的一种实现方式——CAS

hollischuang阅读(3896)评论(0)

在深入理解乐观锁与悲观锁一文中我们介绍过锁。本文在这篇文章的基础上,深入分析一下乐观锁的实现机制,介绍什么是CAS、CAS的应用以及CAS存在的问题等。 线程安全 众所周知,Java是多线程的。但是,Java对多线程的支持其实是一把双刃剑。 […]

Java开发人员最常犯的10个错误

hollischuang阅读(5077)评论(0)

一、把数组转成ArrayList 为了将数组转换为ArrayList,开发者经常会这样做: List<String> list = Arrays.asList(arr); 使用Arrays.asList()方法可以得到一个Arr […]

ArrayList vs LinkedList vs Vector 区别

hollischuang阅读(3893)评论(0)

List List 是一个接口,它继承于Collection的接口。它代表着有序的队列。当我们讨论List的时候,一般都和Set作比较。 List中元素可以重复,并且是有序的(这里的有序指的是按照放入的顺序进行存储。如按照顺序把1,2,3存 […]

深入理解Java中的组合和继承

hollischuang阅读(3960)评论(0)

Java是一个面向对象的语言。每一个学习过Java的人都知道,封装、继承、多态是面向对象的三个特征。每个人在刚刚学习继承的时候都会或多或少的有这样一个印象:继承可以帮助我实现类的复用。所以,很多开发人员在需要复用一些代码的时候会很自然的使用 […]

深入理解Java中的重写和重载

hollischuang阅读(5891)评论(4)

重载(Overloading)和重写(Overriding)是Java中两个比较重要的概念。但是对于新手来说也比较容易混淆。本文通过两个简单的例子说明了他们之间的区别。 定义 重载 简单说,就是函数或者方法有同样的名称,但是参数列表不相同的 […]

Java中的迭代与递归

hollischuang阅读(4279)评论(7)

递归 提到迭代,不得不提一个数学表达式: n!=n*(n-1)*(n-2)*...*1 有很多方法来计算阶乘。有一定数学基础的人都知道n!=n*(n-1)!因此,代码的实现可以直接写成: 代码一 int factorial (int n) […]

HollisChuang's Blog

联系我关于我