- 博客(17)
- 收藏
- 关注
原创 synchronized关键字
java中使用synchronized关键字来标记代码块,使被标记代码同一时间只能被一个线程执行。使用互斥锁对象来控制进入的线程。如同厕所的门上的有人/无人的一样,有人在门被锁上,其他人无非法进入,没人在门可以之间打开进入。在类中可以对方法,代码块使用Synchronized关键字,默认锁对象是this,即访问者本身。如下代码中,swap()和swap2()中都使用该关键字进行标记,且互斥锁对象都为this,则swap()方法在执行时,swap()和swap2()方法都将会被锁住。class MyCla
2021-06-28 14:37:30
101
原创 类中变量的初始化
类加载时,是从上而下初始化变量的,对于变量会给定初始值,变量的赋值操作将会在构造方法中进行。我所知道的是,在使用new关键字创建类的对象时,将先对类中的实例变量初始化,再执行构造函数中的代码,也就是说在初始化实例变量的时候,其实都只是赋予默认值,在构造函数中进行赋值操作,只是这些过程我们不需要详细了解,只需要在定义类的实例变量时进行初始值赋值操作。...
2021-06-24 17:31:15
242
原创 2021-04-24
Collections中的一些方法sort(List< T > list) 方法对列表中的数据进行排序(升序)reverse(List< ? > list) 方法对列表中的数据顺序颠倒shuffle(List< T > list , Random ran)对列表中的数据随机打乱顺序,可选传递随机规则unmodifiableList(List< ? extends T> list)将列表对象转化为不可修改的列表对象,返回List&
2021-04-24 14:46:36
56
原创 2021-04-24
ArrayList源码相关ArrayList内部用数组来存储数据,通常创建对象时不会去指定内部的的数组长度(也可以指定,有相应的构造方法),创建对象时默认初始数组长度为10。 /** * Default initial capacity. */ private static final int DEFAULT_CAPACITY = 10; ...... /** * Constructs an empty list with the spe
2021-04-24 14:15:59
54
原创 ArrayList 和 LinkedList 比较
ArrayList 和 LinkedList 比较ArrayList实现方式 : 数组优 点:数组获取某个索引的元素(get) 或者 修改某个索引处 的元素(set) 的速度快的。缺 点 :当向数组中间插入元素(add) 或者 删除数组中某个元素 (remove) 时,其索引后的元素的索引都将受到影响,因此这些操作速度较慢。当数组的空间用完时,继续添加元素还将触发扩容,扩容过程(创建更大的数组(元素组长度*1.5+1),复制元素到新数组)需要
2021-04-18 17:28:51
66
原创 2021-04-08
数组对象创建过程对象创建过程字符串数组创建过程(String对象的本质是字符数组)声明一个数组类型变量,在内存中为该变量分配内存空间.将数组第一个元素的地址引用赋值给变量,数组中的数据在内存中是连续的....
2021-04-08 17:14:51
55
原创 2021-04-07
JVM内存堆内存图解年轻代:Eden(伊甸园区):new关键字创建的新对象在这里分配内存空间当该区域满了的时候,垃圾回收器会启动快速垃圾回收幸存的对象会放到Survival区,在那里分为好几代Survival(幸存区):存放着快速GC幸存的对象,根据对象经理的GC次数,分为不同代当该区域满了的时候,将最老的一批对象移动到老年代区域老年代存放经历了许多次GC幸存下来的长寿命的对象...
2021-04-07 15:20:19
57
原创 面向对象的基本原则
面向对象的五大基本原则单一职责原则(Single-Resposibility Principle):一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。开放封闭原则(Open-Closed principle):软件实体应该是可扩展的,而不可修改的。也就是,对扩展开放,对修改封闭的。Liskov替换原则(Liskov-Substituion Principle):子类必须能够替换其基类
2021-03-24 21:33:03
89
1
原创 二元操作细节
java核心卷I中43页有如下表述:两个数值进行二元操作时,会有如下的转换操作:如果两个操作数其中有一个是double类型,另一个操作就会转换为double类型。否则,如果其中一个操作数是float类型,另一个将会转换为float类型。否则,如果其中一个操作数是long类型,另一个会转换为long类型。否则,两个操作数都转换为int类型。...
2021-03-24 19:59:19
255
原创 java设计模式--原型模式
## java设计模式--原型模式```package CreationalPatterns.PrototypePattern;public class Sheep implements Cloneable{ public Sheep(String name, String colour, int age) { this.name = name; this.colour = colour; this.age = age; } @
2020-06-21 14:41:53
88
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人