- 博客(12)
- 资源 (61)
- 收藏
- 关注
原创 Java中几种常量池的区分
全局字符串池(string pool也有叫做string literal pool)全局字符串池里的内容是在类加载完成,经过验证,准备阶段之后在堆中生成字符串对象实例,然后将该字符串对象实例的引用值存到 String Pool 中(记住:String Pool中存的是引用值而不是具体的实例对象,具体的实例对象是在堆中开辟的一块空间存放的)。 在HotSpot VM里实现的 String Po...
2018-01-25 14:56:15 539
原创 String.intern 解析
基于 JDK 1.8.0_151intern 是 String.java 中的一个本地方法。 intern 方法会从字符串常量池中查询当前字符串是否存在,若不存在就会将当前字符串的引用放入常量池中。String字符串作为一种对象也是保存在堆中。public native String intern();import java.util.*;public class Test...
2018-01-24 22:36:56 943
原创 Java String 源码分析
基于 JDK 1.8.0_151public final class String implementsjava.io.Serializable,Comparable<String>,CharSequence {}在Java中,被 final 修饰符的修饰的类不允许被其他类继承。 所以 String 是不能被我们继承的。属性// 该值用于字符存储private final char val
2018-01-24 15:41:26 751
原创 Java容器学习--Vector&Stack源码分析
VectorStackStack 是栈。 它的特性是:先进后出(FILO, First In Last Out)。 Stack 继承于 Vector,所以它的实现也是基于数组。 Java已经不再推荐使用Stack,而优先使用 LinkedList 与 ArrayDeque。以上两个实现也都支持栈的操作。LinkedList基于链表;ArrayDeque基于循环队列。public class S
2018-01-20 11:01:28 295
原创 Java容器学习--LinkedList源码分析
public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable{}LinkedList 是一个继承于 AbstractSequentialList ...
2018-01-19 10:59:32 349
原创 java 标记接口
标记接口标记接口是计算机科学中的一种设计模式。它不含有任何属性和方法。其作用是:当某个类实现了这个接口的时候,我们就认为该类拥有了标记接口所描述的功能。其着眼点在于“标记”(标记拥有某一个功能),而“接口”只是作为一种实现方式。而注解是更加优雅的实现方式。Java中常见的几种标记接口Serializable这个接口是用来标记类是否支持序列化的,所谓的序列化就是将对象的各种信息转换成可以存储或者传输的
2018-01-16 10:29:47 629
转载 栈帧、局部变量表、操作数栈
Copy From:http://wangwengcn.iteye.com/blog/16221951.定义栈帧(stack frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。 每一个方法从调用开始到执行完成的过程,就对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。 对于执
2018-01-15 13:16:54 981
原创 What does super.clone() do?
翻译自:https://www.pixelstech.net/article/1420629927-What-does-super-clone%28%29-doObject 类中声明了一个受保护的方法protected native Object clone() throws CloneNotSupportedException;它的作用是:使所有类在需要的时候可以对自己进行克...
2018-01-15 11:32:13 721
原创 Java常量折叠
常量折叠是Java在编译期间做的一个优化,简单的来说就是在编译期就把一些表达式计算好,不需要在运行时进行计算。对于如下代码:String s1 = "a" + "b";int a = 1 + 3;java编译器在编译阶段会把值计算出来,也就会变成:String s1 = "ab";int a = 4;对于如下代码(使用javac编译)我们使用Luyten或者JD-G...
2018-01-13 14:25:23 755
原创 Java容器学习--ArrayList源码分析
ArrayList 内部采用数组实现,是一种顺序存储方式,并且支持随机访问。本文分析基于 JDK 1.8.0_151 版本。public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Seria...
2018-01-12 11:00:15 337
原创 Java容器学习--List与AbstractList
JDK 1.8.0_151ListList是继承于Collection的接口,它自然就包含了Collection中的全部函数接口;由于List是有序的容器,它也额外的有自己的API接口。主要有“添加、删除、获取、修改指定位置的元素”、获取List中的子容器”等。public interface List<E> extends Collection<E> ...
2018-01-11 15:21:41 898
原创 Java容器学习--Collection与AbstractCollection
JDK 1.8.0_151public interface Collection<E> extends Iterable<E> { int size(); boolean isEmpty(); boolean contains(Object o); Iterator<E> iterator(); Object[] ...
2018-01-08 22:15:48 367
lua-cjson-2.1.0-已编译
2018-04-16
mybatis plugin 3.21破解补丁
2017-11-13
QQWry-源码
2017-11-13
Privacy in Location-Based Applications
2017-10-17
BJUT数字图像处理作业
2017-01-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人