java基础
Tang_zhihong
这个作者很懒,什么都没留下…
展开
-
1.Java8 List基础知识
集合:ListList包含有ArrayList,Vector,LinkedList,Stack,其中Stack是Vector的进一步实现1. ArrayList需要注意点:底层结构使用数组实现,初始容量,扩容规则public class ArrayList<E> extends AbstractList<E> implements List&...原创 2019-03-19 14:49:12 · 336 阅读 · 0 评论 -
12. Integer缓存机制
从Java5开始,为了优化频繁使用的Integer的空间和时间性能,采用了缓存实现。public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i +...原创 2019-03-22 15:30:46 · 206 阅读 · 0 评论 -
11. String基础知识
String:内部用final的char数组实现,是一个final类,也就是说不能被继承,所以他一旦被实例化就无法被修改。String需要特别注意的有: replaceFirst、replaceAll、replace区别 String 对"+" 的重载 String.valueOf和Integer.toString的区别 1.replaceFirst、replac...原创 2019-03-22 14:50:41 · 313 阅读 · 0 评论 -
4. Java8 Map集合基础知识点
Map:Map集合:子接口:Bindings,ConcurrentMap<K,V>,ConcurrentNavigableMap<K,V>,LogicalMessageContext,MessageContext,NavigableMap<K,V>,SOAPMessageContext,SortedMap<K,V>实...原创 2019-03-19 14:49:50 · 350 阅读 · 0 评论 -
10. 模块化(jboss modules、osgi、jigsaw)-破坏双亲委派
待补充原创 2019-03-21 15:57:59 · 719 阅读 · 1 评论 -
9. 类加载器-类加载过程,双亲委派
本文为个人学习用,所以内容不一一转载,详情查看https://blog.csdn.net/championhengyi/article/details/78680700原创 2019-03-21 15:39:38 · 240 阅读 · 0 评论 -
8. HotSpot即时编译及编译优化
首先我们要知道,通常javac将程序源代码编译,转换成java字节码(.java文件编译转换成.class文件,这也是我们通常意义上所理解的编译)。但是字节码不是机器语言,想要让机器执行,还需要通过JVM来解释字节码,将其翻译成对应的机器指令,逐条读入,逐条解释翻译(这个过程也叫编译,更深层次的编译)。但是通过解释执行,它的执行效率必定会比可执行的二进制字节码程序慢很多(这就是传统的JVM解释器I...转载 2019-03-21 14:53:02 · 643 阅读 · 0 评论 -
7 Java对象模型 Oop-Klass模型
对象在堆内存中的结构:以HotSpot虚拟机为例,对象在堆内存的布局分为三个区域,分别是对象头(Header)、实例数据(Instance Data)、对齐填充(Padding)。其中对象头包括有Mark world,元数据指针。对象头:Mark World用于存储对象运行时的数据,比如HashCode,锁状态标识,GC分代年龄等。元数据指针用于指向方法区中的目标类的类型信息,通过元数...原创 2019-03-21 11:32:17 · 493 阅读 · 0 评论 -
6. jvm垃圾回收机制
废话不多说,直接开始正文: 上一篇介绍过,程序计数器、虚拟机栈、本地方法栈 3 个区域是线程的私有内存区域,随线程的生命周期生灭。随着线程的销毁,这几个区域的内存就会被回收。而 Java 堆和方法区则不一样,这两个区域是线程共享区。堆中存放着实例对象,而在程序运行中,实例是不停的创建销毁的,所以GC在堆中频繁发生的。一个接口中的多个实现类需要的内存可能不一样,一个方法中的多个分支需...原创 2019-03-20 15:14:53 · 309 阅读 · 0 评论 -
3.java8 队列queue基础知识
集合:QueueQueue:Deque,PriorityQueue,PriorityBlockingQueue,ArrayBlockingQueueQueue用于模拟队列这种数据结构。队列通常是指“先进先出(FIFO)”的容器。队列的头部保存在队列中存放时间最长的元素,尾部保存存放时间最短的元素。新元素插入到队列的尾部,取出元素会返回队列头部的元素。通常,队列不允许随机访问队列中的元素。...原创 2019-03-19 14:49:40 · 1801 阅读 · 2 评论 -
2. java8 Set集合知识点
集合:SetSet集合包含有:EnumSet,SortedSet,HashSet,TreeSet,LinkHashSet,其中treeSet是SortedSet的进一步实现,LinkHashSet是HashSet的进一步实现。1. EnumSet:EnumSet类是一种专为枚举类设计的集合类,EnumSet中的所有元素都必须是指定枚举类型的枚举值,该枚举类型在创建EnumSe类时...原创 2019-03-19 14:49:28 · 992 阅读 · 0 评论 -
5. Jvm内存结构-基础知识
《深入理解Java虚拟机(第二版)》中的描述如下:JVM和系统调用之间的关系方法区和堆是所有线程共享的内存区域;而java栈、本地方法栈和程序员计数器是运行是线程私有的内存区域。下面我们详细介绍每个区域的作用Java堆(Heap)对于大多数应用来说,Java堆(Java Heap)是Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟...原创 2019-03-19 16:29:22 · 250 阅读 · 0 评论 -
13. Java 关键字:transient,instanceof,volatile,synchronized,final,static,const
1.transient作用于变量上,防止属性被序列化。一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。 transient关键字只能修饰变量,而不能修饰方法和类。注意,局部变量是不能被transient关键字修饰的。变量如果是用户自定义类变量,则该类需要实现Serializable接口。 一个静态变量不管是否被transient修饰,...原创 2019-03-27 13:34:28 · 960 阅读 · 0 评论