java基础
zzzzzzzzzyn
这个作者很懒,什么都没留下…
展开
-
JVM的一些相关问题
内容都是攒的,不喜勿喷!常见问题1. JVM 年轻代到年老代晋升过程?对象在Form和To之间来回复制,年龄达到15(默认值,可通过 MaxTenuringThreshold 修改),晋升老年代分配对象超过eden内存的一半,直接进入老年代。小于eden一半但没有内存空间,进行minor GC,survivor也放不下,进入老年代动态年龄判断,某个年龄对象超过survivor...原创 2020-04-22 22:26:28 · 225 阅读 · 0 评论 -
LinkedHashMap源码(JDK1.8)
1. 概述LinkedHashMap继承了HashMap,并在其基础上维护了一条双向链表,用来保证顺序访问。2. 源码分析2.1 内部类和属性LinkedHashMap的内部类继承了Node,并根据需要增加了before,after属性。这两个属性你肯定似曾相识,在LinkedList中使用过。其实他们的功能其实是一样的,定位前一个或后一个entry。// 头结点transient L...原创 2020-04-19 21:24:59 · 151 阅读 · 0 评论 -
ThreadLocal简析
1. 属性ThreadLocal有三个属性threadLocalHashCode、nextHashCode、HASH_INCREMENTthreadLocalHashCode属于对象的,每个ThreadLocal对象hashcode在初始化时确定且不可变nextHashCode属性是静态的随着ThreadLocal类的加载而加载,分配一个AtomicInteger对象,用来以原子的方式获取...原创 2020-04-10 16:56:57 · 282 阅读 · 0 评论 -
String类和常量池
String类和常量池String对象的创建方式String str1 = "abc";String str2 = "abc"; // 此时str1 == str2,因为他们都是常量池中的abcString str3 = new String("abc") // 这会在堆中创建一个abc新对象,此时str1≠str3第一种:直接赋值,若字符串存在于常量池中,会直接引用常量池中字符串...转载 2019-09-27 21:20:52 · 293 阅读 · 1 评论 -
一些常用的工具类
下面为大家介绍一些常用的apache工具类(轮子工厂)2333~apache轮子工厂原创 2019-09-19 10:19:16 · 213 阅读 · 0 评论 -
Java文件流操作
Java文件流基本操作文件流的分类1. 字节流2. 字符流3. 缓冲流文件流的分类1. 字节流所有字节流实现类都继承自抽象类InputStream和OutputStream,下面是一些常用的字节流(输入流和输出流都是一一对应的)FileInputStream:实现对文件字节的读取操作ByteArrayInputStream:把内存中的一个缓冲区作为输入源,从内存数组中读取数据字节(一般...原创 2019-09-18 15:03:28 · 662 阅读 · 0 评论 -
Java多线程编程笔记(附PDF)
Java多线程编程笔记Java多线程编程核心技术链接:https://pan.baidu.com/s/1waW7B9PTmkNMS-qkh6LNKg 提取码:cm4i原创 2019-08-20 15:26:41 · 647 阅读 · 0 评论 -
LinkedList源码个人笔记
LinkedList源码个人理解简介核心源码内部类基本参数构造方法add方法(重要)addAll方法(重要)get方法总结简介LinkedList底层是链表实现的,所以增删快(插入高效),查询慢。LinkedList继承自AbstractSequentialList,实现了List,Deque,Cloneable,Serializable。LinkedList继承Abstrac...原创 2019-07-31 16:48:13 · 195 阅读 · 0 评论 -
Java8新特性之Optional类(三)
Optional类简介常用API简介Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。Optional 类的引入很好的解决空指针异常。常用API...原创 2019-08-04 12:30:00 · 193 阅读 · 0 评论 -
Java8新特性之Stream流(二)
Stream流简介语法创建stream中间操作简介Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元...原创 2019-08-03 14:11:13 · 1264 阅读 · 0 评论 -
Java8新特性之Lambda表达式(一)
使用Lambda表达式是为了使代码变的更加简洁紧凑。原创 2019-08-02 19:41:11 · 279 阅读 · 0 评论 -
为什么Object数组无法被强制转换
为什么Object数组无法被强制转换ArrayList中的错误案例原因今天在进行数组的强制类型转换的时候爆了个异常Exception in thread “main” java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;直接上代码。ArrayList中的错误案例List...原创 2019-07-29 22:53:26 · 2828 阅读 · 0 评论 -
HashMap源码个人笔记
hashmaphashmappub方法扩容方法hashmappublic class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable { private static final long serialVersion...原创 2019-07-24 11:40:43 · 130 阅读 · 0 评论 -
== 和 equals 的区别
== 和 equals 的个人理解==的使用基本数据类型引用数据类型equals()的使用Java中判断两个变量是否相等有两种方式,分别是 == 和 equals==的使用基本数据类型基本数据类型指的是byte,short,int,long,float,double,char,boolean。对这些基本数据类型判断是:值是否相等引用数据类型引用类型指的是继承自Object类的对象...原创 2019-07-18 13:38:43 · 104 阅读 · 0 评论 -
ArrayList源码个人笔记
ArrayList源码的个人理解简介核心源码基本参数构造方法trimToSizeadd方法和grow方法(重要)add的重载方法总结简介ArrayList底层是数组实现的,所以特性也是查询快增删慢。但和数组不同的是它可以实现动态增长,在知晓数据的大概容量时可使用ensureCapacity方法进行手动扩容。ArrayList继承自AbstractList,实现了List,RandomAcce...原创 2019-07-14 13:08:19 · 152 阅读 · 0 评论 -
Java遍历过程中删除元素
Iterator遍历删除public static void main(String[] args) { List&lt;String&gt; list = new ArrayList&lt;&gt;(); list.add("a"); list.add("b"); list.add("c"); Iterato原创 2018-11-16 18:33:52 · 495 阅读 · 0 评论