切片的本质: 切片是一个引用类型,是基于数组类型做的一层封装,内部结构包含头部指针、长度、容量。 形象把切片理解一个“框” ,框住数组或map的一部分,只能框连续的元素,底层数组改了,切片也改了,切片可以再切片 切片长度 len(slice) 是切片框住的元素个数;切片的容量 cap(slice) ...
分类:
其他好文 时间:
2020-07-01 18:41:17
阅读次数:
53
Java有两种引用类型,分别是编译时类型和运行时类型。编译型类型在变量声明时决定,运行时类型取决于变量具体指向的类型,如果两种类型不一致,就会出现多态。 规则:对象调用编译时类型的属性和运行时类型的方法。 举例: class Person { public String name; public P ...
分类:
编程语言 时间:
2020-07-01 16:04:44
阅读次数:
74
Object Java所有引用类型父类都是Object(所以基础类型和Object不能强转) C#万事万物基于Object(包括值类型与引用类型) 泛型 Java的基础类型不能用泛型,因为不能强转为Object。Java泛型在编译后实际上放入时都是先强转Object类型,在取出的时候强转为实际类型。 ...
分类:
编程语言 时间:
2020-06-30 20:38:54
阅读次数:
68
类 面向对象 封装 继承 多态 class class仅是定义, 是自定义的引用类型 使用class, 需要实例化, new 区分类, 对象 修饰符有: 默认 private 私有成员 public protected internal protected internal this: 当前类, 自 ...
在学习原型模式的时候,需要实现ICloneable时,调用object的MemberwiseClone(浅表副本)方式时发现一个问题: MemberwiseClone方法只会将值类型完全Clone,引用类型在Clone时只复制引用。 在我的实验中发现string类型的对象在MemberwiseClo ...
分类:
其他好文 时间:
2020-06-29 11:49:15
阅读次数:
35
1.尽可能的使用属性,而不是数据成员; 2.常量选择readonly而不是const; 3.选择is或者as操作符而不是强制类型转换; 4.用条件属性而不是#if; 5.始终提供ToString(); 6.区别值类型数据和引用类型数据; 7.选择恒定的原则值类型数据; 8.确保0对于值类型数据是有效 ...
分类:
编程语言 时间:
2020-06-29 09:34:38
阅读次数:
67
1 前言 原子更新基本类型只能更新单个变量,而原子更新引用类型可以原子更新多个变量。Atomic包提供了以下3个类。 AtomicReference:原子更新引用类型。 AtomicReferenceFieldUpdater:原子更新引用类型里的字段。 AtomicMarkableReference ...
分类:
其他好文 时间:
2020-06-28 09:44:27
阅读次数:
130
一、值类型 VS 引用类型 值类型 引用类型 值直接存储在栈中 值存储在堆中,再将堆的地址存到栈中 number, string, boolean, undefined, symbol object, array, null 变量之间赋值 a = b,是指直接将栈中变量a的值复制到变量b的栈空间里面 ...
分类:
编程语言 时间:
2020-06-27 09:49:29
阅读次数:
62
一、类型的转换 在c#中类型的转换分两种:显式和隐式,基本的规则如下: 基类对象转化为子类对象,必须显式转换,规则:(类型名) 对象。 值类型和引用类型的转换采用装箱(boxing)或拆箱(unboxing). 子类转化为基类对象。 基本类型互相之间转化可以用Covent类来实现。 字符串类型转换为 ...
null和""的区别 问题一: null和""的区别 String s=null; string.trim()就会抛出为空的exception String s=""; string.trim()就不会抛,为什么? 答: NULL代表声明了一个空对象,根本就不是一个字符串。 ""代表声明了一个对象实 ...
分类:
编程语言 时间:
2020-06-26 13:05:53
阅读次数:
76