自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 问答 (2)
  • 收藏
  • 关注

原创 Java笔记:HashMap 1.8 源码分析

HashMap 1.8 源码分析 基本原理 ​ HashMap 在 JDK 1.8 中,以数组-链表/红黑树的形式,来存储键-值对。 ​ 向桶内插入一个元素时,先根据该元素的 hashCode() 方法再进行位运算,之后和哈希表中数组长度 - 1的值进行与操作,得到应当放入的桶的数组下标,若发生了哈希冲突,则以链地址法的方式解决。当一个桶内的链表长度大于树化长度后,就将其转变为红黑树,使得查找和插入的时间复杂度降低。 数据结构 transient Node<K,V>[] table; ​

2020-11-09 23:30:57 93

原创 Java笔记:ThreadLocal源码分析

Java笔记:ThreadLocal源码分析 简述   顾名思义,ThreadLocal指的是线程本地变量,使用该实例对象进行读写的数据在同一线程中保持一致,多个线程不能共享该数据,使得每个线程能够单独维护自身内部的线程本地变量,其他线程无从修改,保证了线程间数据的隔离。   ThreadLocal对象本身不存储本地变量值,而是提供存取本地变量值的接口,真正的本地变量值存储在线程的本地变量表中。同...

2019-10-14 11:22:35 200

原创 Java笔记:Future设计模式

Java笔记:Future设计模式 简述   Future设计模式提供了一种票据的思想,其具体思路为:   在主线程中存在一个负责任务接收和开票的对象(将持有该对象的线程称作主线程),当有子线程向该对象提交任务的时候,该对象提供一个方法,该方法会负责生成并返回一个票据对象交给创建出的新的子线程,同时创建出新的工作线程执行任务,从而可以使子线程和主线程可以完成其他的工作,主线程不必将提交的任务串行化...

2019-10-02 17:59:35 149

原创 Java笔记:代理模式

Java笔记:代理模式 静态代理 静态代理的实现需要一个接口以及两个共同实现该接口的类,为示以区分,描述如下: Subject接口(公共接口):两个类都要继承该接口,可使公共接口引用来引用代理类对象形成向上造型。 RealSubject类(真正实现者):继承Subject接口,作为接口方法的主要实现者。 Proxy类(代理类):继承Subject接口,同时以组合的形式包含一个RealSubject...

2019-09-25 22:50:07 135

原创 Java笔记:final关键字补充、不可变对象

Java笔记:final关键字补充、不可变对象 final关键字 1、修饰基本数据类型:基本数据类型属性或方法局部变量一经赋值后无法改变,必须赋初值且只能赋值一次,若对其多次赋值则不能通过编译。 2、修饰引用数据类型:该引用数据类型变量与最初交给它的内存空间形成绑定且不能修改,必须赋初值且只能赋值一次,不能将该引用变量指向其他对象的内存空间,但仍可以修改开始绑定的对象内部值。 3、修饰类:该类无法...

2019-09-13 15:52:45 465

原创 Java笔记:抽象类和接口

Java笔记:抽象类和接口抽象类接口接口多重实现接口继承接口嵌套接口工厂模式 抽象类 在普通类中,一个类必须实现自身写的所有方法,每个方法必须含有自己的方法体。即便先创建一个父类,再由后续的类去继承该类,父类所有方法也必须如此。倘若创建该父类只是为了构造一个后续类的模板,那么可以考虑抽象类,仅仅说明要怎么做并且把具体步骤放到实现该抽象类的类中:含有抽象方法的类叫做抽象类,同时只有抽象类才能含有抽象...

2018-11-03 15:26:09 218

原创 Java笔记:组合、继承

Java组合、继承 组合 为达到同时使用几个类的方法,可以采用组合的方法。就是将几个类的方法实例化成对象,并变为另一个类的成员。为实现某个功能,可直接在其他区域调用此类中的对象的方法(需注意访问限定符);或在此类的public方法中调用其成员的方法,参数由大类方法传至小类方法。要注意在类开头声明成员变量时只是创建在栈中的引用变量,需在外面的大类构造方法中用new小类构造方法创建引用变量指向的存在堆...

2018-10-04 19:51:49 117

原创 Java笔记:类和对象

Java类和对象 类是在编程中经过编写的,拥有成员变量和一些方法的一种数据类型,可以由自己通过联系现实中的事物进行编写,关键字是class,一个Java源文件只能含有一个public类,且该类名称与文件名相同。类是对现实中具体事物的一种表示,并且需借由类创建对象,称为类的实例化,一个对象就是一个类的实例化,由一个类可以创建多个对象,这些同属一个类的对象便拥有定义类时类中定义含有的成员变量和方法。...

2018-09-16 21:43:35 221

原创 Java题目、递归

Java题目 1、 将字符串中指定的全部相同字符替换为其他长度字符串。 思路一: 先将字符串转为字符数组,从前向后寻找要替换的字符个数,通过计算得到新字符数组的长度,创建新字符数组后从前向后依次为新字符数组每个元素赋原字符数组对应位置的值,若为要替换的字符,将对应位置及之后的几个元素赋所需字符串的对应字符。开始的计算保证了之后新的字符数组没有空位,数组长度不流失浪费。这里给出方法,在其他地方...

2018-09-04 18:34:00 186

原创 Java笔记:String类、ArrayList类(略讲)

String类 在Java中,String类属于引用数据类型,正如像数组一样的引用数据类型一样,包括存放在栈中的引用地址和存放在堆中的实际值。 字符串的声明 String str1 = “hello”; String str2 = “hello”; 直接赋值,使str1,str2同时指向堆中”hello”字符串,由于并未经过new的过程,直接指向堆中常量池的相同区域,所以在执行Syste...

2018-08-18 15:31:40 282

原创 Java笔记:数组

Java数组 一维数组 数组是一种分组管理数据的语言结构,借助数组可以有序地创建、存储、访问一组独立的值,数组是一个值列表,每个值连续存储在由数组开辟的一块空间之内。数组作为一种引用数据类型,应将其分两部分看,一部分为在栈中的引用地址,另一部分为在堆中的实际值,栈中的引用地址指向堆中实际值。 数组的声明与定义 int[] arr = {1,2,3};//将变量arr定义为整型数组,并为其赋...

2018-08-07 09:33:48 249

原创 Java笔记:基本数据类型、包装类

Java笔记 基本数据类型 Java的数据类型包括基本数据类型和引用数据类型,基本数据类型又包括属于整型,用于存储整数的long(长整型,8字节)、byte(1字节)、short(短整型,2字节)、int(整型,4字节);浮点型,存储小数的float(4字节)、double(8字节);字符型char(2字节);还有boolean(无默认长度,只存储true或false),倘若发生数据的溢出...

2018-08-02 17:18:17 123

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除