自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 何时使用抽象类?何时使用接口?

一、抽象类在java中抽象的关键字为abstract,抽象类被创造出来就是为了继承。抽象类有以下几个特性:1、抽象方法必须为public、protected(若为private,则不能给子类继承,子类无法实现该方法,所以无意义),缺省时为public;2、抽象类不能直接用来创建对象,必须由子类继承并实现其父类方法才能创建对象;3、抽象类可以继承抽象类,子类必须复制继承父类的抽象方法;4...

2020-03-31 10:11:27 3094

原创 GC Roots定义

一、什么是垃圾内存中已经不再被使用到的空间就是垃圾二、要进行垃圾回收,如何判断一个对象是否可以被回收?1.引用计数法很难解决对象之间的循环引用问题2.枚举根节点做可达性分析java jvm的官方实现版本是HotSpot,他的GC回收是通过可达性算法实现的,而不是通过引用计数器算法。所谓的可达性就是从若干个GC Roots 出发,能被直接或间接的引用到的,都称为“可达的”(reacha...

2020-03-11 11:43:46 236

原创 单例模式双重检验锁的判断是否为null的意义

关于双重检验锁,首先简单来看一个小例子,代码如下:public class Singleton{ private static Singleton instance = null; private Singleton(){} public static Singleton getInstance(){ if (instance == null) {//e...

2020-03-09 10:45:03 413

原创 android EventBus的简单使用

1 前言当我们进行项目开发的时候,往往是需要应用程序的各组件、组件与后台线程间进行通信,比如在子线程中进行请求数据,当数据请求完毕后通过Handler或者是广播通知UI,而两个Fragment之家可以通过Listener进行通信等等。当我们的项目越来越复杂,使用Intent、Handler、Broadcast进行模块间通信、模块与后台线程进行通信时,代码量大,而且高度耦合。现在就让我们来学习一下...

2020-03-08 22:18:51 197

原创 Handler持有Activity的泄露解决:静态内部类+弱引用

在处理handle异步消息处理机制中,我们经常会写出如下代码:public class HandlerTestActivity extends Activity { private final Handler mHandler = new Handler() { @Override public void handleMessage(Message msg...

2020-03-08 12:25:41 1711

原创 Android 5.0到10.0版本的重大变化

Android 5.0Material DesignAndroid 6.0官方指纹支持运行时权限机制->需要动态申请权限Android 7.0多窗口模式支持Java 8语言平台Android 8.0广播接收者不能静态注册发送通知必须用通知渠道才能成功发送Android 9.0刘海屏 API 支持限制明文流量的网络请求 httpAndroid 10暗黑模式隐私增...

2020-03-06 21:59:40 781

原创 Android布局优化之ViewStub、include、merge使用

原文链接:https://blog.csdn.net/bboyfeiyu/article/details/45869393

2020-03-06 16:15:58 139

原创 Service的生命周期、两种启动方法的区别

Service的生命周期、两种启动方法的区别一、A started serviceonCreate, onStartCommand, onBind 和 onDestroy。这几个方法都是回调方法,都是由Android操作系统在合适的时机调用的,并且需要注意的是这几个回调方法都是在主线程中被调用的。1、onCreate: 执行startService方法时,如果Service没有运行的时候会...

2020-03-06 00:57:34 3222

原创 http1.0、1.1、2.0的区别

1. http 1.01.1 链接无法复用,即不支持持久链接:http 1.0 规定浏览器与服务器保持较短时间的链接,浏览器每次请求都和服务器经过三次握手和慢启动(基本思想是当TCP开始传输数据或发现数据丢失并开始重发时,首先慢慢的对网路实际容量进行试探,避免由于发送了过量的数据而导致阻塞)建立一个TCP链接,服务器完成请求处理后立即断开TCP链接,而且不跟踪每个浏览器的历史请求。注意:由于...

2020-03-03 12:05:55 422

原创 JAVA的原子性和可见性的理解

JAVA的原子性和可见性的理解这篇博客主要解决两个问题:1. 原子性和可见性的区别(1)原子性是拒绝多线程操作的,不论是多核还是单核,具有原子性的量,同一时刻只能有一个线程来对它进行操作。简而言之,在整个操作过程中不会被线程调度器中断的操作,都可认为是原子性。例如 a=1是原子性操作,但是a++和a +=1就不是原子性操作。(2)可见性volatile修饰词,可以应对多线程同时访问修改同一...

2020-03-02 20:57:19 1341

原创 安卓区分几种不同的Context的区别

可以参考这篇文章https://medium.com/@ali.muzaffar/which-context-should-i-use-in-android-e3133d00772cContext|— ContextWrapper|— —Application|— —ContextThemeWrapper|— — — —Activity|— —Service|— — — Inten...

2020-03-01 11:49:49 381

空空如也

空空如也

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

TA关注的人

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