lotus

贵有恒何必三更眠五更起 最无益只怕一日曝十日寒

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2019年5月6日

摘要: 本文翻译自:http://www.programcreek.com/2013/04/why-string-is-immutable-in-java/ 这是一个很老但很流行的问题,这里有几个原因String在java中被设计成immutable的。对内存、同步、数据结构等有好的理解,能更好的回答这个问 阅读全文
posted @ 2019-05-06 23:07 白露~ 阅读(503) 评论(0) 推荐(0)

摘要: 一、简单定义不可变对象(Immutable Objects)即对象一旦被创建,它的状态(对象的数据,也即对象属性值)就不能改变,反之即为可变对象(Mutable Objects)。当满足以下条件时,对象才是不可变的:1. 对象创建以后其状态就不能修改。2. 对象的所有域都是final类型。3. 对象 阅读全文
posted @ 2019-05-06 22:53 白露~ 阅读(1228) 评论(0) 推荐(0)

摘要: 1.mutable(可变)和immutable(不可变)类型的区别 可变类型的对象:提供了可以改变其内部数据值的操作,其内部的值可以被重新更改。 不可变数据类型:其内部的操作不会改变内部的值,一旦试图更改其内部值,将会构造一个新的对象而非对原来的值进行更改。 2.mutable和immutable类 阅读全文
posted @ 2019-05-06 22:50 白露~ 阅读(1562) 评论(0) 推荐(0)

摘要: 关于Java传参时是引用传递还是值传递,是一个讨论比较多的话题,有说Java中只有值传递,也有些地方说引用传递和值传递都存在,本篇记录思考过程,不保证正确性, 感兴趣的同学一起讨论。 1.基本类型和引用类型在内存中的保存 Java中数据类型分为两大类,基本类型和对象类型。相应的,变量也有两种类型:基 阅读全文
posted @ 2019-05-06 22:15 白露~ 阅读(3897) 评论(0) 推荐(1)

摘要: 1.Java对象的创建 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象。 那么在java语言中,有几种方式可以创建对象呢? 使用new操作符创建一个对象。 使用clone方 阅读全文
posted @ 2019-05-06 21:52 白露~ 阅读(1153) 评论(0) 推荐(0)

摘要: java“指针” Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,本文会试图澄清这一概念。并且由于Java不能 通过简单的赋值来解决对象复制的问题,在开发过程中,也常常要要应用clone()方法来复制对象。本文会让你了解什么是影子clone与深度  阅读全文
posted @ 2019-05-06 16:29 白露~ 阅读(5405) 评论(0) 推荐(0)

摘要: Part I 没啥好说的,直接开始Part II吧。 Part II 谈到了对象的克隆,就不得不说为什么要对对象进行克隆。Java中所有的对象都是保存在堆中,而堆是供全局共享的。也就是说,如果同一个Java程序的不同方法,只要能拿到某个对象的引用,引用者就可以随意的修改对象的内部数据(前提是这个对象 阅读全文
posted @ 2019-05-06 16:17 白露~ 阅读(714) 评论(0) 推荐(0)