共享对象想要安全发布,主要有两种方法,一种是额外同步的方法,另外则是将对象做为不可变对象。当满足一下条件时,对象才是不可变的: 对象创建以后其状态就不能修改 对象所有的域都是final类型 对象正确创建(在创建对象期间,this引用没有逸出) The class must be declared a ...
分类:
其他好文 时间:
2019-12-28 11:32:40
阅读次数:
101
设计成不可变对象为了安全和高效 1.安全方面:举例说明:在文件操作或反射操作的时候需要传递字符串,如果是设计成可变的那么就会造成安全问题 2.高效:举例说明 字符串源码中会将hashcode缓冲下来,那么比如在HashMap中以字符串为key时第一次计算出hash值放缓冲中,以后直接就可以获取到这个 ...
分类:
编程语言 时间:
2019-12-14 13:36:40
阅读次数:
139
""" tuple 是不可变对象 """ user_tuple = ('admin', 18, "cd", "male") print(user_tuple) # tuple 拆包 name, age, address, gender = user_tuple print(name, age, ad ...
分类:
其他好文 时间:
2019-12-13 23:22:12
阅读次数:
99
JDK8新特性里提供了3个时间类:LocalDate、LocalTime、LocalDateTime 在项目开发中,已经需要对Date类型进行格式,否则可读性很差,格式化Date类型要使用SimpleDateFormat,但SimpleDateFormat是现成不安全的。 1. 为什么需要Local ...
分类:
其他好文 时间:
2019-12-09 21:27:16
阅读次数:
153
元素是构成REACT应用的最小砖块 元素描述了你在屏幕上想看到的内容。 const element =<h1>Hello,world</h1>; 与浏览器的DOM元素不同,REACT元素是创建开销极小的普通对象。REACT DOM会负责更新DOM来与REACT元素保持一致。 注意: 你可能会将元素与 ...
分类:
其他好文 时间:
2019-12-07 10:41:00
阅读次数:
79
根据对象成员变量的拷贝程度(基本数据类型、引用类型),可将拷贝分为浅拷贝和深拷贝。 一、浅拷贝 package javaKeyTechnology; class PerSon{ private String name; private int age; PerSon(String name,int ...
分类:
编程语言 时间:
2019-12-04 14:53:22
阅读次数:
105
String Java程序中所有的字符串文字(例如"abc" )都可以被看作是实现此类的实例。 特点: 1、字符串String类型本身是final声明的,意味着我们不能继承String。 2、字符串的对象也是不可变对象,意味着一旦进行修改,就会产生新对象 我们修改了字符串后,如果想要获得新的内容,必 ...
分类:
编程语言 时间:
2019-12-01 13:40:59
阅读次数:
101
默认参数值的陷阱 默认参数值在函数定义的时候并得到计算,如下: 最后输出的结果为5,因为默认值已在函数定义时得到计算。 重要警告 :默认值仅被计算一次。 当默认值是可变对象(例如列表,字典或大多数类的实例)时,这会有所不同。 例如,以下函数累积在后续调用中传递给它的参数: 这段代码将输出: 这是因为 ...
分类:
其他好文 时间:
2019-11-29 00:47:55
阅读次数:
74
Python中的赋值、深拷贝与浅拷贝(内存地址) 1、python中的可变对象与不可变对象 (1) 可变对象:dict,list 内存变化如下: (2) 不可变对象:int,string,float,tuple 内存分配如下: 2、赋值、浅拷贝与深拷贝: (1) b = a: 赋值引用,a 和 b ...
分类:
编程语言 时间:
2019-11-24 17:25:16
阅读次数:
68
函数是一段可以重复使用的代码,通过传递的参数返回不同的结果,函数能够提高应用的模块性和代码的重复利用率。博文大纲:一、函数二、变量的作用域三、内建函数四、特殊函数——lambda函数一、函数Python中的函数都是语句和表达式的集合。函数的用法并没有限制,使用方法就像Python中其他值一样,对于重复使用的代码,需要编写为自定义函数以便于重复使用。在CentOS7系统(默认是Python2.7.5
分类:
编程语言 时间:
2019-11-23 16:03:02
阅读次数:
66