自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面向对象三大特性,五大原则的理解

三个基本特征:封装,继承,多态;封装:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏,这就是封装。封装是面向对象的特征之一,是对象和类概念的主要特性。简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程...

2018-08-05 20:41:28 870

原创 什么是OOM,为什么会OOM及一些解决方法

1)什么是OOM? OOM,全称“Out Of Memory”,翻译成中文就是“内存用完了”,来源于java.lang.OutOfMemoryError。看下关于的官方说明: Thrown when the Java Virtual Machine cannot allocate an object because it is out of memory, and no more memory c...

2018-08-05 20:38:30 185261 13

转载 Activity生命周期的作用及意义

前言     Activity生命周期是研究Android开发最基础的知识点之一,熟练掌握生命周期的特性可以在实际开发中避免踩坑。比如,一些UI的初始化和回收操作、框架库的注册于反注册(摧毁)、线程的启动和停止等。另外,本文在最后章节还会讲解系统回收造成的问题。本文就是针对各生命周期进行分析和解答,帮助大家完全掌握生命周期。 推荐阅读:Android 源码分析Applicati...

2018-08-05 20:27:49 2618 1

原创 Android内存优化——常见内存泄露及优化方案

如果一个无用对象(不需要再使用的对象)仍然被其他对象持有引用,造成该对象无法被系统回收,以致该对象在堆中所占用的内存单元无法被释放而造成内存空间浪费,这中情况就是内存泄露。在Android开发中,一些不好的编程习惯会导致我们的开发的app存在内存泄露的情况。下面介绍一些在Android开发中常见的内存泄露场景及优化方案。单例导致内存泄露单例模式在Android开发中会经常用到,但是如果...

2018-08-03 17:07:05 165

转载 TCP与UDP的区别以及三次握手和四次挥手

UDP,在传送数据前不需要先建立连接,远地的主机在收到UDP报文后也不需要给出任何确认。虽然UDP不提供可靠交付,但是正是因为这样,省去和很多的开销,使得它的速度比较快,比如一些对实时性要求较高的服务,就常常使用的是UDP。对应的应用层的协议主要有 DNS,TFTP,DHCP,SNMP,NFS 等。TCP,提供面向连接的服务,在传送数据之前必须先建立连接,数据传送完成后要释放连接。因此TCP是...

2018-08-01 14:28:59 7358

原创 Handler机制(介绍及一些问题)

Handler1、handler是什么?答:handler是更新UI界面的机制,也是消息处理的机制,我们可以发送消息,也可以处理消息 2、为什么要有Handler?答:Android在设计的时候,封装了一套消息创建、传递、处理机制,如果不遵循这样的机制就没办法更新UI信息,就会抛出异常。 3、handler怎么用?答:1、post(Runnable);     ...

2018-08-01 11:00:59 130

原创 Retrofit添加缓存拦截器及封装

添加依赖implementation 'com.squareup.okhttp3:okhttp:3.9.1'implementation 'com.squareup.okhttp3:logging-interceptor:3.9.1'compile 'io.reactivex:rxjava:1.0.14'compile 'io.reactivex:rxandroid:1.0.1'co...

2018-07-31 08:58:05 866

原创 集合(Collection)讲解

Java集合框架的基本接口/类层次结构:图解java.util.Collection [I]+--java.util.List [I]   +--java.util.ArrayList [C]   +--java.util.LinkedList [C]   +--java.util.Vector [C]      +--java.util.Stack [C]+--java...

2018-07-29 19:25:26 279

原创 Retrofit+rxjava的使用

用法介绍创建API接口在retrofit中通过一个Java接口作为http请求的api接口。//定以接口public interface GitHubService { @GET("users/{user}/repos") Call<List<Repo>> listRepos(@Path("user") String user);}创建retr...

2018-07-18 19:00:39 131

原创 ViewPager+RedioButton实现底部tab导航

一、概述 实现类似微信哪种底部tab导航的方式有很多种,这篇文章先介绍实现这种底部导航的一种简单的方式,即ViewPager+RedioButton实现底部tab导航。实现之前,我们先看一下即将要实现的导航效果图:OK,下面我们通过代码一步一步实现上图的底部导航效果。二、编写代码第一步:编写主界面的布局,activity_main.xml<LinearLayou...

2018-07-18 18:57:38 170

原创 == 与 equals 的区别

==号和equals()方法都是比较是否相等的方法,那它们有什么区别和联系呢? 首先,==号在比较基本数据类型时比较的是值,而用==号比较两个对象时比较的是两个对象的地址值:int x = 10;int y = 10;String str1 = new String("abc");String str2 = new String("abc");System.out.println(...

2018-07-17 20:04:44 1794 2

原创 Activity 日夜切换实例

智能手机的迅速普及,大大的丰富了我们的娱乐生活。现在大家都喜欢晚上睡觉前玩会儿手机,但是应用的日间模式往往亮度太大,对眼睛有较为严重的伤害。因此,如今的应用往往开发了 日间和夜间 两种模式供用户切换使用,那日间和夜间模式切换究竟是怎样实现的呢?在文字类的App上面基本上都会涉及到夜间模式、就是能够根据不同的设定、呈现不同风格的界面给用户、而且晚上看着不伤眼睛、实现方式也就是所谓的换肤(主题切换)、...

2018-07-16 15:22:11 224

原创 底部导航栏框架(BottomTabBarde使用)

添加依赖implementation 'com.android.support:design:26.1.0' compile 'com.hjm:BottomTabBar:1.1.1'布局<com.hjm.bottomtabbar.BottomTabBar android:id="@+id/bottom_tab_bar" android:layout_widt...

2018-07-13 09:14:27 368

空空如也

空空如也

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

TA关注的人

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