最新文章列表

String、StringBuffer、StringBuilder的区别?

Java的基本类型有八种,三大类: 字符型:char 布尔型:boolean 数值型:byte、short、int、long、float、double,前四种整型,后面两种浮点型   Java八种基 ...
hbxflihua 评论(0) 有653人浏览 2019-04-13 10:00

设计模式-Immutable

不变设计模式:不变模式的用意是对象生成之后就不能再改变了   尤其在多并发程序中:为确保数据的一致性和正确性,又必要对对象进行同步,但是同步操作对系统性能有相当的损耗。因此可以使用一种不可改变的对象,依靠其不变形来确保并行操作在没有同步的情况下依旧保持一致性和正确性。   保持对象不可变的手段: 1、基本类型 ,final修饰 或者 不提供set方法 2、引用类型(包括集合类型),深 ...
王新春 评论(0) 有390人浏览 2017-01-06 15:37

不可变集合immutable

   每个Guava immutable集合类的实现都拒绝null值。我们做过对Google内部代码的全面的调查,并且发现只有5%的情况下集合类允许null值,而95%的情况下都拒绝null值。万一你真的需要能接受null值的集合类,你可以考虑用Collections.unmodifiableXXX。   Immutable集合使用方法:  一个immutable集合可以有以下几种方式来创建:  ...
bigSeven 评论(0) 有698人浏览 2015-05-25 16:28

Design Pattern: Builder Pattern

Builder Pattern:      The builder pattern is a design pattern that allows for the step-by-step creation of complex objects using the correct sequence of actions.      The construction is controlled ...
DavyJones2010 评论(0) 有757人浏览 2014-07-21 15:39

Java不可变类或对象详解(Immutable class)

如果某个对象在被创建后其状态就不能被修改,那么这个对象就称为不可变对象。线程安全性是不可变对象的固有属性之一,它们的不变性条件是由构造函数创建的,只要它们的状态不改变,那么这些不变性条件就能得以维持。不可变对象一定是线程安全的。 当满足以下条件时,对象才是不可变的: 1) 对象创建以后其状态就不能修改。 2) 对象的所有域都是final类型(当然像不可变String类型的域并不需要声明为final ...
darrenzhu 评论(0) 有4252人浏览 2014-05-11 18:51

Item 66: Synchronize access to shared mutable data

1.  Without synchronization, one thread’s changes might not be visible to other threads. Not only does synchronization prevent a thread from observing an object in an inconsistent state, but it ensure ...
leonzhx 评论(0) 有637人浏览 2014-04-30 17:02

为什么Java的string类要设成immutable(不可变的)

        最流行的Java面试题之一就是:什么是不可变对象(immutable object),不可变对象有什么好处,在什么情况下应该用,或者更具体一些,Java的String类为什么要设成immutable类型?         不可变对象,顾名思义就是创建后不可以改变的对象,典型的例子就是Java中的String类。 String s = "ABC"; s.t ...
bijian1013 评论(0) 有1484人浏览 2014-04-13 18:02

Item 39: Make defensive copies when needed

1.  You must program defensively, with the assumption that clients of your class will do their best to destroy its invariants.   2.  For immutable class, it is essential to make a defensive copy of ...
leonzhx 评论(0) 有803人浏览 2014-04-10 19:48

常见Java面试题(一):非可变性(Immutability)和对象引用(Object reference)

一些比较核心的Java问题经常会用来考验面试者的Java基本知识功底。这篇文章列出来了一些在我的书里面没有的面试题,通过这些面试题读者也可以梳理一下Java基础知识点。 Q1.下面的代码片段会输出什么? String s = " Hello "; s += " World "; s.trim( ); System.out.println(s); ...
碧水千顷 评论(0) 有705人浏览 2013-03-29 10:19

Item 15: Minimize mutability

1.  The Java platform libraries contain many immutable classes, including String, the boxed primitive classes, and BigInteger and BigDecimal.   2.  Immutable classes are easier to design, implement ...
leonzhx 评论(0) 有1017人浏览 2013-03-01 16:11

Immutable(多线程学习系列 - 2 - Immutable Pattern的补充)

在多线程学习系列 - 2 - Immutable Pattern 中,作者告诉我们不可变类的好处以及如何设计不可变类 下面的内容是Effective Java(v2)中的第15条--使4可变性最小化 作者给出了设计不可变类的一些建议,多线程学习系列 - 2 - Immutable Pattern 中一些建议过于强硬,比如类要是final,域要是final等等   1.不要提供任何会修改对 ...
su1216 评论(0) 有1466人浏览 2012-05-26 13:18

Google Guava集合4:创建方法和只读特性

Google guava 集合的创建特性和只读特性 现在,让我们一起看看guava集合的创建模式,再看看guava提供的一些只读的集合类型。 如果你还不了解guava集合, ...
vipcowrie 评论(1) 有12191人浏览 2012-05-10 20:48

Java 并发编程 - Programming Concurrency on the JVM

这几个月一直在做性能调优的工作,以前总是进行功能的开发,从来不考虑性能的问题,经过这几个月的工作,发现从性能和扩展性的角度去看软件开发,还真是大不一样。在和朋友聊天的时候,提及Java程序是否能充分利用多核cpu的问题的时候,朋友给我推荐了这本书《Programming Concurrency on the JVM》。几天看下来,还真觉得很应景,建议做Java开发的朋友试着阅读一下。我简单记录下我的 ...
JackyCheng2007 评论(0) 有3450人浏览 2012-03-24 23:08

Java面试问题之十八

阅读以下代码段,结合代码的意图分析此代码是否能够实现这个目的。 import java.util.Date; public final class Schedule { private final Date start; //开学时间,不允许被修改 private final Date end; //放假时间,不允许被修改 ...
YuHuang.Neil 评论(0) 有942人浏览 2011-09-06 16:20

Java中的不可变类的设计模式

在Java中有两种基本类类型,就是可变类与不可变类。所谓不可变类,是指当创建了这个类实例之后,就不允许修改它的任何属性值。在JDK的基本类库中,所有基本类型的包装类,比如Integer类和Long类,都是不可变类,还有最常见的就是java.lang.String类也是不可变类。 那么创建自己的不可变类时,需要考虑的基本设计模式如下: (1)把所有属性定义为private final类型。 (2)不 ...
YuHuang.Neil 评论(0) 有1225人浏览 2011-09-06 15:17

最近博客热门TAG

Java(141744) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54919) .net(54785) Web(54514) 工作(54118) Linux(50905) Oracle(49875) 应用服务器(43289) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37267) 数据结构(36424)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics