自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java基础之泛型

概述泛型的使用泛型变量的类型限定通配符的边界限定泛型使用的限制1、概述泛型是JDK1.5的新特性,其本质是参数化类型,即所操作的数据类型被指定为一个参数,使用时通过传参来指定具体的类型。泛型提供了编译时类型安全监测机制,该机制允许程序员在编译时监测非法的类型,对比强制类型转换具有更好的安全性和可读性。泛型在集合类中尤其有用,例如ArrayList: ArrayList list1 = new ArrayList(); list1.add("不使用泛型"); .

2020-05-20 14:56:30 152

原创 面试中常见的java基础问题

面向对象编程的特性String、StringBuffer和StringBuilder的区别String a = " " 和 String a = new String(" ")的区别Object的equals和==的区别equals和hashcode的关系装箱和拆箱int和Integerjava异常机制什么是内部类?静态内部类和非静态内部类的区别为什么匿名内部类中使用局部变量要用final修饰?final、finally和finalize()的区别重载和重写抽象类和接口反射泛型.

2020-05-19 17:18:08 237

原创 JVM类加载机制

类加载过程类加载器双亲委派模型一、类加载过程1、概述JVM类加载机制:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可被虚拟机直接使用的java类型的过程。2、类加载过程一般来说,我们把类加载过程主要分成三个步骤:加载、连接和初始化,其中连接又分为三个部分:验证、准备和解析,整个生命周期七个阶段如图所示:下面分别来介绍上面的几个阶段:(1)加载JVM类加载阶段主要完成了三件事:通过的类的全限定名(包名+类名)来获取定义此类的二进制字.

2020-05-15 16:14:03 167

原创 JVM垃圾回收机制

对象存活判定算法垃圾回收区域垃圾回收算法垃圾回收器一、对象存活判定算法1、引用计数算法给每个对象添加一个引用计数器,当有地方引用它时,计数器值就加1,当引用失效时,计数器值就减1,当计数器值为0时,对象就不再被引用。但主流的java虚拟机没有使用这种算法,主要是原因是它难以解决对象之间循环引用的问题。2、可达性分析算法通过一系列称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到“GC Roots”没有任何引用链相连时,则证明此对象不.

2020-05-13 16:41:53 160

原创 JVM内存管理机制

JVM执行java程序的过程:java源代码文件(.java)会被java编译器编译为字节码文件(.class),然后由JVM中的类加载器加载各个类的字节码文件,加载完毕后,交由JVM执行引擎执行。在这个过程当中,JVM会用一段空间来存储执行程序期间需要用到的数据和相关信息,这段空间就是运行时数据区,也就是JVM内存,JVM将它所管理的内存划分为若干个不同的数据区域,如下图所示:如图所示,我们可以知道运行时数据区分为线程私有数据区和线程共享数据区。1.线程私有数据区(1)程序计数器当前线程所执行的

2020-05-11 17:31:46 200

原创 容器类总结

java的容器主要分为四个部分:List列表、Set集合、Map映射、工具类(Iterator迭代器、Arrays、Collections、Enumeration枚举类),其结构图如下:下面具体总结下常见的集合类:

2020-05-11 11:06:09 139

原创 IPC实现方式

上一节总结了下IPC的基础概念,这一节主要介绍下IPC的实现方式,下面先通过一张图来了解下IPC有哪些方式:通过上面这张图我们可以知道,IPC方式实际上都是通过Binder来实现的,只不过封装方式不同,下面我们再通过一张表,来了解下IPC不同方式之间的区别:通过上面这张表,我们对IPC不同方式有了个大概的了解,下面我们具体来介绍每种方式的使用。一.BundleBundle用于四大组件间的...

2020-05-06 21:00:15 1176

原创 IPC的基础概念

IPC是Inter-Process Communication的缩写,含义是跨进程通信,今天先来了解下IPC的基础知识。多进程序列化Binder机制一.多进程概念1.进程&线程进程是资源分配的最小单位,在PC和移动设备上指一个程序和应用,而线程是CPU调度的最小单位,是一种有限的系统资源,一个进程可以包含多个线程,线程分为主线程(UI线程)和子线程(做耗时操作),不可在主线...

2020-04-28 17:25:04 1592

原创 Bitmap的加载和缓存策略

本章主要学习Bitmap的加载和Cache,由于Bitmap的特殊性以及android对单个应用所施加的内存限制,导致加载Bitmap很容易出现内存溢出,因此这里主要探讨下如何高效地加载Bitmap以及其中所使用的的缓存策略.Bitmap的高效加载Android中的缓存策略一.Bitmap的高效加载1.核心思想按一定的采样率把图片缩小后再加载.2.核心类和核心参数(1)Bitma...

2020-04-25 16:40:58 178

原创 Android中Drawable的使用

Drawable简介Drawable种类一.Drawble简介1.简介Drawable是个抽象类,是所有Drawable对象的基类.它表示是一种可以在Canvas上进行绘制的抽象的概念.比较常见的颜色和图片就是一个Drawable.2.优点它使用简单,比自定义View的成本低,并且非图片类型的Drawable占用空间较小3.Drawable的宽高Drawable可以通过getI...

2020-04-23 21:31:51 1132

原创 Android数据存储探索

今天来总结下Android中几种数据存储方式:文件存储sharedPreferencesSQLiteContentProvider网络存储本篇文章主要介绍前面的三种存储方式,ContentProvider在学习Android四大组件的时候有过介绍,下面通过一张图先来了解下今天要学习的三种存储方式默认的存储位置。一.文件存储...

2020-04-21 22:05:44 253

原创 Android动画探索之属性动画

概述工作原理ValueAnimatorObjectAnimator插值器估值期一.概述1.特性属性动画是API 11新加入的特性,相比于View动画只作用在视图View上,它对作用对象进行了扩展,属性动画可以对任何对象做动画,甚至可以没有对象.除了作用对象进行了扩展以外,属性动画的效果也得到了加强,不再像View动画那样只能支持四种简单的变换.另外View动画没有改变View的...

2020-04-20 16:38:30 201

原创 Android动画探索之View动画

View 动画(补间动画)帧动画一.View 动画View动画通过对场景里的对象不断做图像变换(平移/缩放/旋转/透明度)从而产生动画效果,它是一种渐进式动画,并且View动画支持自定义.View动画的View移动只是视觉效果,并不能改变View的位置.1.View动画的种类View动画的四种变换效果对应着Animation的四个子类:TranslateAnimation,Scale...

2020-04-18 19:58:20 246

原创 消息机制Handler探索

Android中的消息机制指的就是Handler的运行机制,Handler是用来跨线程通信的,为了避免ANR,我们会把耗时操作放到子线程中去执行,因为子线程不能更新UI,这里就要借助到Android的消息机制也就是Handler了,Handler会把相关的UI操作切换到主线程中去执行。注意:为什么不能在子线程中访问UI?答:UI控件非线程安全,在多线程中并发访问可能会导致UI控件处于不可预期的...

2020-04-18 11:35:23 104

原创 多线程应用篇

上篇文章介绍了多线程基础内容,这里来讲一讲多线程的表现形式,它有哪些具体的应用。AsyncTaskHandlerThreadIntentService一. AsyncTask1.定义一个轻量级的异步任务类,是抽象的泛型类,即使用时需实现子类。public abstract class AsyncTask<Params, Progress, Result> {......

2020-04-16 17:24:32 224 1

原创 多线程基础探索

一个Android应用在创建的时候会开启一个线程,我们叫它主线程或者UI线程,在开发中,我们为了避免主线程被耗时操作阻塞从而产生ANR,我们就需要去开启子线程去访问网络或数据库等耗时操作。线程基础同步阻塞队列线程池一.线程基础1.进程与线程(1)进程:进程是程序的实体,是受操作系统管理的基本运行单元,它也是线程的容器。(2)线程:是操作系统调度的最小单元,也叫作轻量级进程。在一...

2020-04-15 17:10:24 102

原创 四大组件之ContentProvider探索

ContentProvider主要负责存储和共享数据,底层是由Binder实现的,所以能够跨进程通信,在不同的应用程序之间进行数据共享,它还可以选择对哪一部分数据进行共享,从而保证程序中的隐私数据不会有泄露风险。ContentProvider有两种形式:可以使用现有的内容提供者来操作和读取相应程序中的数据,也可以创建自己的内容提供者给这个程序的数据提供外部访问接口。访问系统ContentPr...

2020-04-14 15:54:56 164

原创 四大组件之BroadcastReceiver探索

BroadcastReceiver是一种消息型组件,用于在不同组件乃至不同的应用之间传递消息.广播有两种注册方式,静态注册和动态注册.广播可以用来实现低耦合的观察者模式,广播一般来说不需要停止,它没有停止的概念.广播的注册方式广播的种类一.广播的注册方式1.静态注册静态注册是指在AndroidManifest中注册广播,这种广播在应用安装时会被系统解析,此种形式的广播不需要应用启动就...

2020-04-13 16:42:34 124

原创 四大组件之Service探索

Service是一种计算型组件,用于后台执行一系列计算任务,因为运行在后台,所以无法被用户感知,Service组件有两种状态:启动状态和绑定状态.Service运行在主线程中,因此耗时的后台计算任务仍然需要在单独的子线程中完成.Service的生命周期Service的基本用法Service和Activity通信Service的重启一.Service的生命周期官方文档关于Servic...

2020-04-11 15:55:55 109

原创 四大组件之Activity探索

Android四大组件之Activity生命周期启动模式IntentFilter匹配规则onSaveInstanceState和onRestoreInstanceState1.生命周期

2020-04-10 15:05:12 98

空空如也

空空如也

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

TA关注的人

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