最近在看effective java 第二版,个人英语水平不咋地,利用坐地铁的时间慢慢地看,有些小收获就记下来。也锻炼锻炼一下文笔水平。
作者在谈创建对象问题时,比较了静态方法与构造函数的区别,各自的优缺点以后再总结吧。今天主要想说的是Boolean这个包装类。我们知道单例模式,要隐藏构造函数,对外提供一个静态方法来保证只创建一个对象。Boolean就有这样一个方法valueOf(),那么我们创建如下对象:
b1 = Boolean.valueOf(true);
……
bn = Boolean.valueOf(true);
这b1,bn这些对象应该指向的是同一个Boolean对象,也就应该有如下等式:
b1 == b2 …… ==bn
这个等式真的成立吗?又有一个疑问,如果b1这个对象在程序中需要改变值,变为false,那么是改变b1的内存指向呢还是不允许改变?
今天做了一个简单的测试,代码如下:
public class Simple {
public static void main(String[] args) {
System.out.println("开始~");
Boolean b1 = Boolean.valueOf(true);
Boolean b2 = Boolean.valueOf(true);
Boolean b3 = Boolean.valueOf(false);
if(b1 == b2 ){
System.out.println("相等");
}else{
System.out.println("不相等");
}
Boolean b4 = new Boolean(true);
Boolean b5 = new Boolean(true);
if(b4 == b5 ){
System.out.println("相等");
}else{
System.out.println("不相等");
}
}
}
运行结果如下:
开始~
相等
不相等
那个等式的确是成立的,接着查看了JDK文档,Boolean对象的确没有提供改变其值的方法,也就是说在对象在创建之后就不可改变了。
分享到:
相关推荐
为了使原始类型能够参与面向对象的编程,Java设计了八种对应的包装类(Wrapper Classes):Byte、Short、Integer、Long、Float、Double、Character和Boolean。这些包装类将原始类型封装成对象,使得我们可以使用对象...
### Java包装类详解 #### 基本概念 在Java编程语言中,为了使基本数据类型也能具备对象的特性,例如调用方法等,Java为每一种基本数据类型提供了对应的包装类。这些包装类不仅提供了丰富的操作接口,还能够帮助...
Java包装类是Java编程语言中的一个关键特性,主要用于将基本数据类型(如int、char、boolean等)与对象之间进行转换。这是因为Java的API库中许多类和方法都设计为接收或返回对象,而基本类型不是对象。为了解决这个...
包装类 byte-Byte short-Short int -Integer ... 前面6个包装类、Boolean 1、本身常量值的一个构造方法 (value) 2、带String 参数一个构造方法(String s) Character Character(char value) 一个构造方法
Java是一种面向对象语言,...这些包装类有:Boolean、Byte、Short、Character、Integer等。值得说明的是,java是可以直接处理基本类型的,但是在有些情况下我们需要将其作为对象来处理,这时就需要将其转化为包装类了。
"原始类型、包装类和原始类型所占的字节数" 原始类型(primitive type)是指 Java 中最基本的数据类型,它们是 Java 虚拟机(JVM)中所支持的基本类型。每种原始类型都对应着一个包装类(Wrapper Class),包装类是...
Java 包装类包括 Boolean、Byte、Character、Short、Integer、Long、Float 和 Double 八种。 1. Long 包装类型常量 cache 机制 在 Java 中,Long 包装类型的常量 cache 机制是指在 -128 到 127 之间的值会被缓存在...
首先,文件中提到了Java的基本数据类型,包括boolean、char、byte、short、int、long、float、double以及它们的包装类Boolean、Character、Byte、Short、Integer、Long、Float、Double。这些是Java编程中最基本的...
每个都有其对应的包装类,分别是Byte、Short、Integer、Long、Character、Float、Double和Boolean。 - 包装类的主要作用是将基本数据类型转换为对象,这样它们就可以被存储在对象容器(如ArrayList、HashMap等)中...
在Java中,Boolean是基本数据类型之一,同时也对应一个包装类Boolean,后者可以作为对象来使用,支持更多高级功能。 ### Button Button是GUI程序设计中常用的一个控件,用户可以通过点击按钮来触发特定的操作。在...
Java包装类是Java语言设计中的一个重要特性,它们是为了解决基本数据类型(如int、char、boolean等)无法直接参与面向对象编程的问题而引入的。包装类将基本数据类型转换为对象,使得我们可以在需要对象操作的场景下...
Java 包装类、拆箱和装箱详解 Java 语言作为一门典型的面向对象编程语言,然而其八种基本数据类型并不支持面向对象编程。这些基本类型的数据不具备“对象”的特性——不携带属性、没有方法可调用。为了解决这个问题...
类型与包装类之间的关系:Java提供了八种基本数据类型,每种都有对应的包装类,分别是: - `Boolean` 对应 `boolean` - `Byte` 对应 `byte` - `Short` 对应 `short` - `Integer` 对应 `int` - `Long` 对应 `long` -...
Java中的包装类是针对基本数据类型(如int、float等)设计的一组类,它们使得基本数据类型能够参与面向对象的编程。包装类解决了Java语言中基本类型与对象之间转换的不便,使得基本类型的数据可以像对象一样进行操作...
除了`Character`和`Boolean`,其他包装类都继承自`Number`抽象类,并且都是final类,这意味着它们不能被其他类继承。 二、包装类的常用方法 1. **Number类**:所有数值型包装类的基类,提供了将数值转化为各种基本...
除了八大基本类型之外,Java 还提供了对应的包装类,分别是 Integer、Long、Short、Byte、Character、Double、Float、Boolean、BigInteger 和 BigDecimal。这些包装类可以实现自动装箱和拆箱的功能,方便在不同类型...
- 对应这些基本类型,Java提供了八个包装类:`Byte`、`Short`、`Integer`、`Long`、`Float`、`Double`、`Character`和`Boolean`。 - 这些包装类不仅提供了对基本类型的对象化操作,还包含了各种静态方法,如`value...