今天在复习可变与不可变的时候写了一个小demo进行测试,主要是打算测试一下函数对参数的直接修改。但是运行的时候却发现抛出了java.lang.UnsupportedOperationException这个异常。 出错位置: public class ListTest { public static ...
分类:
编程语言 时间:
2020-06-06 20:12:43
阅读次数:
71
String 是一个不可变的,由 final 修饰的类。 不可变类是指其实例不能被修改的类。每个实例中包含的所有信息都必须在创建该实例的时候就提供,并且在对象的整个生命周期内固定不变。为了使类不可变,要遵循下面五条规则: 1. 不要提供任何会修改对象状态的方法。 2. 保证类不会被扩展。 一般的做法 ...
分类:
其他好文 时间:
2020-06-06 10:40:39
阅读次数:
59
@ Java 提供了一个操作 Set 、 List 和 Map等集合的类:Collections , 该工具类里提供了大量方法对集合元素进行排序、 查询和修改等操作,还提供了将集合对象设置为不可变、对集合对象实现同步控制等方法 。 排序操作 Collections 提供了如下常用的类方法用于对 Li ...
分类:
编程语言 时间:
2020-06-06 01:07:30
阅读次数:
66
1、数据库中char和varchar的区别? 在建立数据库表结构的时候,为了给一个String类型的数据定义一个数据库的数据库类型,一般参考的都是char或者varchar,这两种选择有时候让人很纠结,今天想总结一下它们两者的区别,明确一下选择塔门的理由。 (1) char的长度是不可变的 varc ...
分类:
数据库 时间:
2020-06-05 21:21:19
阅读次数:
82
栈区 存 引用和基本类型,不能存对象,而堆区存对象。==是比较地址,equals()比较对象内容。 (1) String str1 = "abcd"的实现过程:首先栈区创建str引用,然后在String池(独立于栈和堆而存在,存储不可变量)中寻找其指向的内容为"abcd"的对象,如果String池中 ...
分类:
其他好文 时间:
2020-06-05 12:54:28
阅读次数:
76
方法的参数传递机制 1、形参是基本数据类型 * 传递数据值 2、实参是引用数据类型 * 传递地址值 * 特殊的类型:String、包装类等对象不可变形 1 package com.test.code; 2 3 import java.util.Arrays; 4 5 /** 6 * 方法的参数传递机 ...
分类:
编程语言 时间:
2020-06-05 00:26:38
阅读次数:
88
十一、字典 说字典前,得说两种数据类型。可变和不可变。 不可变类型:数字、字符串、元组; 可变类型:列表,字典。 1.字典的每个键值“key=>value”用冒号“:”分割,每个对之间用逗号(,)分割,整个字典包括在花括号‘{ }’中。 两大特点:无序,键唯一。 格式:dict = {key1: v ...
分类:
编程语言 时间:
2020-06-05 00:25:23
阅读次数:
102
目录: 一、布尔类型 二、可变、不可变类型 三、赋值运算符: 增量赋值 链式赋值 增量赋值 交叉赋值 解压赋值 四、、身份运算is与== 五、if判断 一、布尔类型:True和False 1、显式的布尔值1.1.直接定义布尔类型的变量值 tag=True 1.2.通过比较运算得到布尔值 10 == ...
分类:
编程语言 时间:
2020-06-04 19:53:10
阅读次数:
80
1、可变类型:list,dict 在值改变的情况下,id号不变,也就是说内存地址不变,证明就是在改原来内存空间中的值,即原值可变 2、不可变类型:int、float、str 在值改变的情况下,id号也跟着变了,也就是说内存地址变了,证明不是在改原来内存空间中的值, 而是申请了新的内存空间,产生了新的 ...
分类:
其他好文 时间:
2020-06-04 19:38:26
阅读次数:
58
1 不可变类的5大特征 类不能被继承,方法不能被子类覆写,所以类或者方法定义为final 保证成员变量不被外部访问,所以private修饰 不提供set方法 对于类中可变成员,get方法返回的是对象的拷贝,解除引用关 通过构造方法初始化成员变量,如果成员变量是非可变类型,一般指的是引用类型,则不能直 ...
分类:
其他好文 时间:
2020-06-04 13:27:41
阅读次数:
44