本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
- kingwell.leng
最新文章列表
String、StringBuffer、StringBuilder的区别?
Java的基本类型有八种,三大类:
字符型:char
布尔型:boolean
数值型:byte、short、int、long、float、double,前四种整型,后面两种浮点型
Java八种基 ...
设计模式-Immutable
不变设计模式:不变模式的用意是对象生成之后就不能再改变了
尤其在多并发程序中:为确保数据的一致性和正确性,又必要对对象进行同步,但是同步操作对系统性能有相当的损耗。因此可以使用一种不可改变的对象,依靠其不变形来确保并行操作在没有同步的情况下依旧保持一致性和正确性。
保持对象不可变的手段:
1、基本类型 ,final修饰 或者 不提供set方法
2、引用类型(包括集合类型),深 ...
不可变集合immutable
每个Guava immutable集合类的实现都拒绝null值。我们做过对Google内部代码的全面的调查,并且发现只有5%的情况下集合类允许null值,而95%的情况下都拒绝null值。万一你真的需要能接受null值的集合类,你可以考虑用Collections.unmodifiableXXX。
Immutable集合使用方法: 一个immutable集合可以有以下几种方式来创建: ...
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 ...
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 ...
为什么Java的string类要设成immutable(不可变的)
最流行的Java面试题之一就是:什么是不可变对象(immutable object),不可变对象有什么好处,在什么情况下应该用,或者更具体一些,Java的String类为什么要设成immutable类型?
不可变对象,顾名思义就是创建后不可以改变的对象,典型的例子就是Java中的String类。
String s = "ABC";
s.t ...
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 ...
常见Java面试题(一):非可变性(Immutability)和对象引用(Object reference)
一些比较核心的Java问题经常会用来考验面试者的Java基本知识功底。这篇文章列出来了一些在我的书里面没有的面试题,通过这些面试题读者也可以梳理一下Java基础知识点。
Q1.下面的代码片段会输出什么?
String s = " Hello ";
s += " World ";
s.trim( );
System.out.println(s);
...
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 ...
Immutable(多线程学习系列 - 2 - Immutable Pattern的补充)
在多线程学习系列 - 2 - Immutable Pattern
中,作者告诉我们不可变类的好处以及如何设计不可变类
下面的内容是Effective Java(v2)中的第15条--使4可变性最小化
作者给出了设计不可变类的一些建议,多线程学习系列 - 2 - Immutable Pattern
中一些建议过于强硬,比如类要是final,域要是final等等
1.不要提供任何会修改对 ...
Java 并发编程 - Programming Concurrency on the JVM
这几个月一直在做性能调优的工作,以前总是进行功能的开发,从来不考虑性能的问题,经过这几个月的工作,发现从性能和扩展性的角度去看软件开发,还真是大不一样。在和朋友聊天的时候,提及Java程序是否能充分利用多核cpu的问题的时候,朋友给我推荐了这本书《Programming Concurrency on the JVM》。几天看下来,还真觉得很应景,建议做Java开发的朋友试着阅读一下。我简单记录下我的 ...
Java面试问题之十八
阅读以下代码段,结合代码的意图分析此代码是否能够实现这个目的。
import java.util.Date;
public final class Schedule {
private final Date start; //开学时间,不允许被修改
private final Date end; //放假时间,不允许被修改 ...
Java中的不可变类的设计模式
在Java中有两种基本类类型,就是可变类与不可变类。所谓不可变类,是指当创建了这个类实例之后,就不允许修改它的任何属性值。在JDK的基本类库中,所有基本类型的包装类,比如Integer类和Long类,都是不可变类,还有最常见的就是java.lang.String类也是不可变类。
那么创建自己的不可变类时,需要考虑的基本设计模式如下:
(1)把所有属性定义为private final类型。
(2)不 ...