自定义博客皮肤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)
  • 收藏
  • 关注

原创 Set、Map、List三种集合的差别

Set是Collection的一个子接口,是无序的,Set中不包括重复的元素。TreeSet由二叉树实现,支持两种排序方法,自然排序和定制排序,默认为自然排序,通过compareTo方法来比较元素之间的大小关系,元素按升序排序,不允许放入null值。HashSet通过哈希表实现,是无序的,只能放入一个null。List接口继承了Collection接口定义了一个允许重复项的有序集合。List查找元素的效率较高,但插入元素和删除元素的效率低,因为会引起其他元素位置发生变化。Map描述...

2022-03-14 02:05:22 423

原创 ArrayList和LinkedList区别

1 首先,它们的底层数据结构不同,ArrayList的底层是基于数组实现的,LinkedList底层是基于链表实现的;2 由于底层数据结构不同,他们所使用的场景也不同,ArrayList更适合随机查找,LinkedList更适合删除和添加,查询、添加、删除的时间复杂度不同;3 另外ArrayList和LinkedList都实现了List接口,但是LinkedList还额外实现了Deque接口,所以LinkedList还可以当作队列来使用。...

2022-03-13 21:15:17 660

原创 Android进程间通信(IPC)方式

1 使用IntentActivity、Service、Receiver都支持在Intent中传递Bundle数据,而Bundle实现了Parcelable接口,可以在不同的进程间进行传输。在一个进程中启动了另一个进程的Activity,Service和Receiver,可以在Bundle中附加要传递的数据通过Intent发送出去。2 使用文件共享Android系统基于Linux,使得其并发读取文件没有限制地进行。3 SharedPrefrences(不推荐)系统对它地读写有一定地缓存

2022-03-13 21:00:55 2799

原创 Dalvik虚拟机&ART虚拟机

·Dalvik虚拟机和Java虚拟机的区别1 Java虚拟机运行的是Java字节码,Dalvik虚拟机运行的是Dalvik字节码。传统的Java程序经过编译,生成Java字节码保存在class文件中,Java虚拟机通过解码class文件中的内容来运行程序。而Dalvik虚拟机运行的是Dalvik字节码,所有的Dalvik字节码由Java字节码转换而来,并被打包到一个DEX可执行文件中。Dalvik虚拟机通过解释DEX文件来执行这些字节码。2 Dalvik可执行文件体积小。Android SDK中

2022-03-13 20:59:24 5040

原创 消息机制(Handle机制)

·消息机制简介-Handler是Android消息机制的上层接口。Handle的使用过程简单,通过它可以轻松将一个任务切换到Handle所在的线程中去执行。通常情况下,Handle的使用场景是更新UI。在子线程中进行耗时操作,执行完操作后,发送消息,通知主线程更新UI。这就是消息机制的典型应用场景。·消息机制的模型消息机制主要包括:MessageQueue,Handle和Looper这三大部分,以及Message。Message:需要传递的消息,可以传递数据;MessageQueue

2022-03-13 20:52:22 510

原创 Fragment

·什么是Fragment?Fragment是现实在Activity中的Activity。它可以实现在Activity中,拥有自己的生命周期,可以接受处理用户的事件,并且可以在一个Activity中添加,替换,移除不同的Fragment。·Fragment的生命周期Fragment比Activity多了几个生命周期的回调方法onAttach(Activity)当Fragment与Activity发生关联的时候调用onCreateView创建该Fragment视图onActiv.

2022-03-13 20:46:36 339

原创 BroadcastReceiver

·BroadcastReceiver定义BroadcastReceiver(广播接收器),属于Android四大组件之一。在Android开发中,BroadcastReceiver的应用场景特别多,广播是一个全局的监听器,属于Android四大组件之一。Android广播分为两个角色:广播发送者、广播接收者。·BroadcastReceiver的作用用于监听/接受应用发出的广播消息,并作出相应。应用场景:1 不同组件之间的通信(包括应用内/不同应用之间)2 与Androi..

2022-03-13 18:56:28 1764

原创 Service

·Service简介 Service是Android中实现程序后台运行的解决方案,它非常适用于去执行那些不需要用户交互而且还要求长期运行的任务。Service默认并不会运行在子线程中,也不运行在一个独立的进程中,它同样执行在UI线程中,因此,不要在Service中执行耗时操作,除非在Service中创建了子线程来完成耗时操作。·Service种类按运行地点分类:本地服务(Local Service):该服务依附在主进程上,这样在一定程度上节约了资源。主进程被杀死后,服务便会终止。如:音乐播放

2022-03-13 18:53:48 2350

原创 Activity的启动模式

1 标准模式(standard)每启动一次Activity,就会创建一个新的Activity实例并置于栈顶。2 栈顶复用模式(singleTop)如果需要新建的Activity位于任务栈栈顶,那么此Activity的实例就不会重建,而是重用栈顶的实例。3 栈内复用模式(singleTask)该模式是一种单例模式,即一个栈内只有一个该Activity实例。该模式,可以通过AndroidManifest文件中的Activity中指定Activity需要加载到哪个栈中,即singleTask的

2022-03-13 18:44:11 131

原创 特殊情况下Activity的生命周期&Activity的三种运行状态

·特殊情况下的生命周期1 横竖屏切换在横竖屏切换的过程中,会发生Activity被销毁并重建的过程。在了解这种情况下的生命周期时,首先应该了解这两个回调。onSaveInstanceState和onRestoreInstanceState在Activity由于异常情况下终止时,系统会调用onSaveInstanceState来保存当前Activity的状态。这个方法的调用是在onStop之前,和onPause没有既定的时序关系,该方法只在Activity被异常终止的情况下调用。当异常终止

2022-03-13 18:41:02 468

原创 Activity的生命周期

1 onCreate():当Activity第一次创建时会被调用。这是生命周期的第一个方法,在这个方法中可以做一些初始化工作,比如加载页面布局的资源,初始化数据等。2 onRestart():表示Acitivity正在重新启动,一般情况下,当当前Acitivity从不可见重新变为可见时,onRestart就会被调用。这种情况一般是用户行为导致的,比如用户切换到别的程序,又回到了这个Activity。3 onStart():表示Activity正在被启动,即将开始,这时候Activity已经...

2022-03-13 18:37:27 535

空空如也

空空如也

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

TA关注的人

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