摘要:
Object.toString()打印“地址”的原理 @(java) 首先,打印的绝不是地址 可以发现我们打印的是调用对象的对应Class对象的getName()方法返回值和hashcode()方法的16进制表示。 Object.hashCode()是什么? native方法指原生态方法,它调用的不 阅读全文
摘要:
先看一段代码 作为set存储内容的list在向list中增加元素好像后被set"清除"了 实际上list还在set中,只是通过contains找不到了 分析 为了理解问题我们需要通读hashset的源代码: 我们知道hashmap不允许key重复出现,set正是利用了这一点来复用hashmap; 观 阅读全文
摘要:
String会出现在哪些地方 + 方法内的局部string + 类内的字段String + static string + 容器中存储的string + String数组 那么String的位置会影响其存储方式吗? 显然是不会的,类永远只会储存在堆上。 但是实际上类的字段并不是一直在堆上的。 Str 阅读全文
摘要:
先贴官方文档的核心观点 StringBuffer public final class StringBuffer extends Object + 字符串缓冲区就像一个String ,但可以修改。 + 字符串缓冲区可以安全地被多个线程使用。 这些方法在必要时进行同步。 + 每个字符串缓冲区有一个容量 阅读全文
摘要:
在进行如下代码的过程中发现了这样的一个异常:ConcurrentModificationException,即并发修改异常。 提示我在it.next()处抛出异常 以下来自jdk 9 javadoc 当不允许这样的修改时,可以通过检测到对象的并发修改的方法来抛出此异常。 例如,一个线程通常不允许修改 阅读全文
摘要:
Unicode转义序列的解析是发生在代码编译之前,编译器机械的将\u样式的代码文本转义,即使是注释以及非正常代码,对此步骤来说也没有区别 导致下面的情况: 由于机械转义,"\u0022+\u0022"实际上是""+""即两个空字符串相加,所以打印为空 注释中的\u000a被转移成\n换行符,所以其后 阅读全文
摘要:
继承基本知识:超类基类父类->子类派生类子类继承父类的除private外的字段、方法以及构造器超类的字段建议设定为private,并通过专用的方法来提供接口访问这些字段super和this的区别:super并不是引用,只是一个指示编译器调用超类方法的特殊关键词子类构造器:可以通过super来调用超类 阅读全文
摘要:
(泛型使用基本类型方法是否泛型和其所在类是否泛型无关:方法可使用两种泛型:一是如果类也是泛型类,类的泛型可用。而是在返回值前加<T>来定义专属该方法的泛型使用泛型类必须声明泛型,而使用泛型方法不用:编译器会采用类型参数推断技术猜出来。方便的生成容器:由于技术有限,容器的生成必须经显式的声明泛型,十分 阅读全文
摘要:
码点与代码单元 java string有两种判定字符的方式,一种是以码点,一种以代码单元,简单讲,码点就是真正的字符,代码单元是按大小即char型长度2个字节划分字符串。 所以length和charat方法都不能正确的表示我们所认为的字符数量个字符位置 关于 Character 摘自jdk文档 ch 阅读全文