自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 选择排序

代码public class SelectedSort { public static void main(String[] args) { int[] datas = {8, 3, 7, 1, 5, 6, 4, 9, 2 }; logs("old : ", datas); selectedSort(datas); logs("new : ", datas); }

2016-11-30 16:24:37 214

原创 冒泡排序

代码实现public class BubbleSort { public static void main(String[] args) { int[] datas = { 8, 3, 7, 1, 5, 6, 4, 9, 2 }; logs("old : ", datas); bubbleSort(datas); logs("new : ", datas); } p

2016-11-30 15:56:48 281

原创 父类的静态方法能否被子类重写

父类的静态方法不能被子类重写代码Animpublic class Anim { public static void test() { System.out.println("Anim test static method!"); }}Dogpublic class Dog extends Anim { public static void test

2016-11-29 21:42:12 2932

原创 检查单链表中是否有环

单链表判断是否有环判断原理用两个指针,从头节点开始遍历,一个指针a每次走1步,一个指针b每次都2步。如果有环,两个指针相遇前b位于a后一位时,那么a,b指针下次相遇。b位于a后两位时,那么a,b指针下下次即将相遇。算法实现创建链表 public static Node createList(int max) { boolean

2016-11-27 12:42:40 346

原创 四种线程池

newCachedThreadPool用法代码import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class TestMain { public static void main(String[] args) { ExecutorServic

2016-11-22 15:11:14 2083

原创 Aidl实现的一个例子

AIDL 与 Messenger的异同对于跨进程的调用AIDL返回值是同步的,而Messenger是异步的。Aidl调用service的方法,会等待直到service中的方法执行完毕。AIDL在Service中会针对每个请求开启新线程来执行客户端的调用。而Messenger会把消息放在主线程的队列里。AIDL的实现,要注意线程安全的实现oneway

2016-11-20 18:54:27 2867

原创 工作线程弹toast

创建Handler的线程必须有looper。 public Handler(Callback callback, boolean async) { if (FIND_POTENTIAL_LEAKS) { final Class klass = getClass(); if ((klass.isAnonymousClass

2016-11-19 01:10:19 404

原创 HandlerThread的实现

主要源码public class HandlerThread extends Thread { Looper mLooper; ...省略代码 @Override public void run() { mTid = Process.myTid(); Looper.prepare(); synch

2016-11-18 23:41:29 537

原创 Service的学习

Service可以在后台长时间运行操作而不提供用户界面的组件。组件可以启动服务,也可以绑定到服务。服务可以处理网络事务,播放音乐,io操作,ContentProvider交互 等耗时操作都在后台执行。服务在其托管进程的主线程中执行。(即不创建自己的线程,也不在单独的进程中执行(除非另外指定))耗时操作应该在服务内创建新线程来工作。使用Service

2016-11-18 22:01:38 349

原创 IntentService的实现

简介简化了启动服务的实现。对于每个startService请求,均使用工作线程执行任务,且每次处理一个请求。工作线程会执行onHandleIntent , service会自动stop。当service启动后,所有的请求都会在同一个工作线程中执行,单同一时间,只有一个请求在执行。源码/** * IntentService is a base class f

2016-11-17 20:37:29 362

原创 学习BlockCanary的实现

Android如何获取主线程堆栈信息Thread.getStackTrace()方法。如何在其他线程获取主线程引用 : Looper.getMainLooper().getThread();如何Cpu使用情况获取Cpu总数据,来自CpuSampler的doSample方法 @Override protected void doSample()

2016-11-15 00:33:29 1460

原创 简单工厂

类图代码Productpublic interface Product { public void doSomething();}ProductApublic class ProductA implements Product { @Override public void doSomething() { Syste

2016-11-13 15:07:34 264

原创 策略模式

类图注意如果在一个系统里面有许多类,它们的区别只在于它们的行为。使用switch case 或 其他 条件判断语句的地方一个系统需要动态的在几个算法中选择其一使用哪个策略是由外部环境决定的代码实现Strategypublic interface Strategy { public void travelStrate

2016-11-13 13:53:02 290

原创 重构-读书与实践的体验

本文好多知识来源于《重构》为何重构:改进设计易于理解避免补丁循环更快的编写新代码何时重构:经常,随时添加功能时修改bug时代码review之后何时不重构:代码太混乱,不如重写项目的最后期限重构原则小步进行重构不改变代码的外观行为重构时清楚自己是在重构,写新代码时,清楚自己在写新代码

2016-11-12 23:54:36 311

原创 Builder模式

Builder模式的UML图类图时序图Builder模式的角色Director :调用具体的Builder去构建对象Builder : 抽象接口,规范产品对象的各个组成部分的构建ConcreteBuilder : 实现builder类抽象接口,建造过程完成后,返回产品Product : 建造的产品对象B

2016-11-12 22:54:08 239

原创 单例模式

单例模式的条件最多只有一个实例实例的生命周期足够长:如果临时使用一次,使用new就可以单例模式的类图单例模式的四种实现饿汉式public class Singleton1 { private static final Singleton1 sInstance = new Singleton1(); private Singleton1

2016-11-10 16:39:46 223

翻译 Android Dev 进程与线程 学习

进程和线程进程概要当某个应用组件启动且此应用没有运行任何其他组件时,系统会使用单个线程为应用启动新的Linux进程默认情况,同一应用的所有组件在同一个进程和线程中运行如果某个应用组件启动,并且该应用已存在进程,则该组件在已经存在的进程中启动,并使用同一个已经存在的进程开发者可以设置应用的组件在不同的进程中运行标示进程如

2016-11-10 15:36:33 306

原创 ComponentCallbacks2

ComponentCallbacks2 相关类图关于ComponentCallback2是一个细粒度的内存回收管理回调。Application、Activity、Service、ContentProvider、Fragment实现了ComponentCallback2接口开发者应该实现onTrimMemory(int)方法,细粒度release 内存,参数可以体现不

2016-11-10 01:02:17 2425

原创 Java ThreadLocal 类

一个例子(参考自张孝祥老师的视频)代码package com.jue.test_thread_local;import java.util.Random;public class TestMain { private static ThreadLocal tl = new ThreadLocal(); public static void main(String[]

2016-11-08 13:18:59 300

原创 Android Looper 类

Looper类的重要字段字段汇总 static final ThreadLocal sThreadLocal = new ThreadLocal(); private static Looper sMainLooper; // guarded by Looper.class final MessageQueue mQueue; final Th

2016-11-07 22:56:24 947

原创 面向对象的原则(Solid + L)

面向对象的原则(Solid + L)单一职责SRP : Single Responsibility Principle类:只代表一种角色接口:只代表一类抽象方法:只做一件事字读:只代表一种含义开闭原则OCP : Open Close Principle功能的添加通过扩展实现,而不是修改代码类修改的唯一原因是因为错误策略

2016-11-07 11:33:45 272

原创 Java基础,外部类能够访问内部类的私有静态字段。

外部类能够访问内部类的私有静态字段。public class Singleton { private Singleton() { } public static Singleton getInstance() { return SingletonHolder.sInstance; } private static clas

2016-11-07 11:05:57 1293

空空如也

空空如也

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

TA关注的人

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