自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 Synchronized和ReentrantLock的区别

1.Synchronized是一个关键字,ReentrantLock是一个类 2.Synchronized会自动加锁和释放锁,ReentrantLock需要手动加锁和释放锁 3.Synchronized底层是JVM层面的锁,ReentrantLock是API层面的锁 4.Synchronized是非公平锁,ReentrantLock可以选择公平锁和非公平锁 5.Synchronized锁的是对象,锁信息保存在对象头中;ReentrantLock是通过代码中int类型的state标识来标识锁的状态 6.Syn

2021-08-25 23:22:38 121

原创 ArrayList和LinkedList的区别

1、ArrayList 基于动态数组,连续内存存储,适合下标访问(随机访问)。 扩容机制:因为数组长度固定,超出长度存数据时需要新建数组,然后将老数组的数据拷贝到新数组,如果不是尾部插入数据还会涉及到元素的移动(往后辅助一份,插入新数据),使用尾插法并指定初始容量可极大提高性能、甚至超过LinkedList(需要创建大量的node对象) 2、LinkedList 基于链表,可以存储在分散的内存中,适合做数据插入及删除操作,不适合查询,查询需要逐一遍历。 遍历LinkedList尽量使用iterator而不使

2021-08-22 13:47:30 71

原创 List和Set的区别

1、List:有序可重复 2、Set:无序不可重复

2021-08-22 13:14:53 106

原创 接口和抽象类的区别

1、抽象类可以存在普通成员函数,接口中只能存在public abstract方法。 2、抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的。 3、抽象类只能继承一个,接口可以实现多个。 接口的设计目的,是对类行为的约束,可以强制要求不同的类具有相同的行为。接口约束了行为的有无,但不对如何实现行为进行限制。接口是对行为的抽象。 抽象类的设计目的,是代码复用。抽象类有些方法是没有实现的,所以不允许实例化出来。抽象类是对类本质的抽象。 接口是规范,抽象类是模板

2021-08-22 13:10:52 77

原创 重载和重写的区别

1、重载:发生在同一个 类中,方法名必须相同,参数类型不同、顺序不同,方法返回值和访问修饰符可以不同,发生在编译时。 2、重写:发生在父子类中,方法名和参数列表必须相同,返回值范围子类小于等于父类,抛出的异常范围子类小于等于父类,访问修饰符范围子类大于等于父类;父类方法的访问修饰符为private则子类不能重写父类中的该方法。 ...

2021-08-22 12:59:23 120

原创 String、StringBuffer和StringBuilder的区别

1、String是final修饰的,不可变,每次操作都会产生一个新的String对象。StringBuffer和StringBuilder都是在原对象上操作。 2、StringBuffer是线程安全的,是因为StringBuffer的方法都是Syncgornized修饰的;StringBuilder是线程不安全的。 3、性能:StringBuilder>StringBuffer>String 4.使用场景:字符串不经常改变使用String;经常改变字符串内容,优先使用StringBuilder,

2021-08-22 12:52:28 71

原创 Android性能优化

1.内存泄漏 参考 https://blog.csdn.net/Suncanghai/article/details/89483232 2.内存抖动

2019-05-21 10:10:53 82

原创 Android内存泄漏

内存泄漏 程序在向系统申请分配内存空间后(new),使用完毕之后没有释放,导致一直占据该内存单元。直到程序结束,我们和程序都无法再使用该内存单元,就是所谓的内存泄露。(其实就是内存空间使用完之后没有回收)内存泄漏是导致程序OOM的主要原因之一。Android系统为每个程序分配的内存有限,如果一个应用产生的内存泄漏较多,就会导致应用所需的内存超过系统分配的内存限额,就造成了内存溢出导致应用Crash...

2019-05-13 23:09:15 102

原创 Android图片压缩(二次采样)

图片压缩 Android App开发过程中,系统规定图片大小不能超过16M,因此加载大图或者多张图片的时候,有可能会出现内存溢出的问题,图片二次采样就是为了避免图片加载时出现OOM异常。 第一次采样 第一次采样获取图片的压缩比例。先加载图片边界到内存中,根据图片的宽高以及空间的宽高计算出缩放比例。 第二次采样 将第一次采样获取到的缩放比例传给BitmapFactory,这样在加载图片的时候系统不会...

2019-05-04 20:34:34 356

原创 Android中的单例模式

定义 单例模式(Singleton pattern),是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的一个类只有一个实力。即一个类只有一个对象实例。 六种实现方式 这里通过借鉴学习其他大佬们的经验,总结出了六种实现方法。下面是具体每一种实现方式和优缺点。 1.懒汉式 懒汉式,顾名思义,就是懒加载,可以在需要的时候再去加载。 优点:可...

2019-04-23 22:09:39 323

空空如也

空空如也

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

TA关注的人

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