- 博客(22)
- 资源 (23)
- 收藏
- 关注
原创 android-----在子线程中更新UI操作的方法
大家都知道android是不允许在子线程中更新UI操作的,所有更新操作都应该在主线程中完成,因而有了异步消息处理机制,具体源码分析见android-----Handler消息处理机制那么除了通过sendMessage以及handleMessage还有哪些方法可以在子线程中书写更新UI操作的代码呢? (1)通过Handler的post方法; (2)通过View的post方
2016-04-30 22:22:18 2726
原创 android-----touch事件的层级传递问题
前面我们介绍了android-----事件分发机制到了这里还有一个重要的知识没有解释,在android中,touch事件是在层级传递的,如果我们给一个控件注册了touch事件的话会触发一系列诸如ACTION_DOWN,ACTION_MOVE,ACTION_UP的事件,但是这些事件的执行有个问题就是只有当前一个事件执行结束返回true之后才会执行下一个事件,也就是说只有ACTION_DOWN
2016-04-30 21:27:28 2038
原创 android-----事件分发机制
我们首先从一个简单的例子开始分析button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { System.out.println("执行onClick"); } }); button.setOnTouchListene
2016-04-30 16:18:26 4509
原创 java-----String的intern关键字
首先我们应该清楚的是JDK1.6和JDK1.7中String类的intern方法还是有差别的: JDK1.6中的intern: 调用intern方法的时候首先会去常量池中查看是否存在与当前String值相同的值,如果存在的话,则直接返回这个String值的引用;如果不存在的话,则会将原先堆中的该字符串拷贝一份到常量池中; JDK1.7中的intern
2016-04-30 10:11:43 2064
原创 面试经历-----摩根士丹利(实习岗)
久仰大摩大名,今日略有体会,从昨天收到面试通知后就直接蒙圈,20多天前做过IKM题库(26分钟刷30多道题好像是),没想到能有面试机会,然而全英文面试已经足够我死多少回了,话不多说,面试题见下:(1)简述一下二分查找树和二分排序树(为什么我感觉是一个东西呢)(2)说一说堆(我以为是java里面的结果是数据结构中的)(3)描述堆排序,以及堆排序的时间复杂度
2016-04-28 15:11:50 10715
原创 多线程断点文件下载实现
文件下载这种操作经常会出现,当文件较大的时候,假如不采用多线程断点下载,那么当下载到一半出错或者暂停的话,就需要从最开始重新来下载了,这点是没什么必要的,因为我们完全可以从上一次出错的地方继续下载,就像迅雷一样,我们下载文件的时候,不可能中途出现错误再次开始的时候从整个文件的开始下载,如果你平时下载细致的话会发现迅雷下载的过程中一种都有一个临时文件的存在,这个临时文件存放的就是你已经下载到文件的哪
2016-04-24 21:37:08 2692 4
原创 错误解决-----Tomcat环境变量配置完成,但是cmd输入startup无法启动
今天来分享一个狗血问题,系统刚刚重装了,环境变量没了,想要用Tomcat,在配置完成环境变量之后(配置过程网上资料一大堆),打开cmd 输入startup想要启动的时候,提示我不是可用命令,好奇怪,我的配置没什么问题啊,最后问题解决了,解决方法见下: 最初我是点的红色部分新建的,后来点的蓝色部分新建,然后启动
2016-04-21 11:34:03 20476 3
原创 面试经历
一面面试问题:(1)一支碳素笔除了写字画画之外还有什么用途呢?我的回答:划快递、搭积木、开锁、用笔芯芯头让手机初始化、绑成船过河、鄙视别人(面试官呵呵)、笔芯油当原料;(2)智力题:假设排列着100个乒乓球,由两个人轮流拿球装入口袋,能拿到第100个乒乓球的人为胜利者。条件是:每次拿球者至少要拿1个,但最多不能超过5个,问:如果你是最先拿球的人,你该拿几个?以后怎么拿就能保证你能得
2016-04-21 08:50:03 2638
原创 android-----错误解决
The connection to adb is down, and a severe error has occured.You must restart adb and Eclipse.Please ensure that adb is correctly located at 'D:\android\adt-bundle-windows-x86_64-20130917\sdk\p
2016-04-18 22:22:39 1372
原创 剑指offer-----面试题4(替换空格)
题目:请实现一个函数,把字符串中的每个空格替换成"%20",例如输入"We are happy",输出"We%20are%20happy";分析:首先计算出字符串中总共有多少空格,而后创建一个原先字符串长度加2倍空格的字符数组,通过从右向左的方式遍历原先字符串,遇到空格则替换成%20即可;代码:public class ReplaceSpace { public String r
2016-04-18 15:59:05 1443
原创 java-----ThreadLocal源码分析
前面Handler消息处理机制中提到了线程会将自己的Looper对象放到ThreadLocal中,因而我们有必要看看ThreadLocal是什么? ThreadLocal是什么? ThreadLocal也是用来进行多线程并发的,可以理解为是线程的局部变量,作用就是为每个线程提供一个变量值的副本,每个线程可以独立的改变自己的副本而不影响其他线程。 T
2016-04-17 14:39:31 1643
原创 错误解决-----java was started but returned exit code=13
昨天手欠,强制关机后,电脑磁盘文件貌似被损坏了,只好重装系统了,之后在安装完JDK,启动eclipse的时候出现了下面的错误:最后的解决方法是:进入控制面板------>程序与功能------->看看你是不是安装了多个JDK版本,我的是安了两个版本的,一个1.7,一个1.8,删掉其中一个,重新启动eclipse即可,仅此希望能帮到遇到同样问题的朋友;
2016-04-17 13:08:47 10978
原创 android-----Activity启动模式
当应用程序运行起来之后,android系统会开启一个线程,这个线程主要用途就是为了维护应用程序在运行过程中的Activity栈,每当创建一个Activity之后都会将该Activity压入到栈中,Activity的启动模式是指当栈中已经存在该Activity实例的情况下该怎么处理,不同的模式处理方式是不同的,因而我们有必要来探讨下Activity的启动模式。 Activity的启动模
2016-04-14 18:13:41 1507
原创 android---HandlerThread源码分析
在上一篇我们分析了Handler的消息处理机制,我们也实现了在子线程中创建Handler对象,并且利用该Handler对象来处理了子线程自己发给自己的消息,但是要想让子线程中的Handler发挥作用,必须采用Looper.prepare( )来创建一个Looper对象,进而创建一个MessageQueue消息队列出来,随后调用Looper.loop( )方法来让消息队列运转起来; 但是
2016-04-14 10:48:23 1301
原创 Android---Handler消息处理机制
搞Android的人都知道,android是不允许你在子线程中更新UI操作的,这主要出于线程安全方面的考虑,通常的做法是在主线程中创建一个Handler对象,在子线程中创建一个Message对象,该Message对象中封装一些更新UI操作的数据,通过Handler的sendMessage方法发送出去,主线程利用Handler的handleMessage方法来对该Message进行相应的处理,但发现
2016-04-13 13:52:33 2730
原创 java-----instanceof与getClass的区别
在比较一个类是否和另一个类属于同一个类实例的时候,我们通常可以采用instanceof和getClass两种方法通过两者是否相等来判断,但是两者在判断上面是有差别的,下面从代码中看看区别:public class Test{ public static void testInstanceof(Object x) { System.out.println("x instanceof P
2016-04-08 12:11:41 33613 7
原创 java-----RTTI与反射
java在运行时动态识别对象和类信息的方式有两种:(1)传统的RTTI(Run-Time Type Identification),他假定我们编译时已经知道了所有类型;(2)反射机制,允许我们在运行时发现和使用类的信息;RTTI运行时类型标识主要表现在三个方面:(1)Class对象: 每个类都有一个Class对象,便以一个新类都会产生Class对象;(2)强制类型转换:
2016-04-08 09:20:29 1375
原创 设计模式--单例模式
说到单例模式,可能是所有23种设计模式中用的最多并且相对来说最简单的一种了,今天我们分析一下实现单例模式的不同方式,以及我们设计的单例模式有什么缺点,有什么方面需要改进等等问题,好了下面进入正题:这个模式主要用于整个系统中只能出现一次类的实例的情况下,比如全局配置信息,在介绍单例模式之前有必要介绍单例模式和该类静态变量的区别: 单例模式:(1)保证某类的实例是全局唯一
2016-04-05 20:59:16 1539
原创 java动态代理
代理模式是常见的设计模式之一为什么要使用代理模式?(1)授权机制: 不同级别的用户对同一对象具有不同的访问权限,可以通过代理模式来控制用户的访问权限;(2)某个客户端不能直接操作某个对象,但是又必须操作这个对象,这时候需要代理来完成这个工作,因为备操作对象可以将权利授予代理,代理可以和客户端进行交互,起到中间桥梁的作用;代理模式分为静态代理和动态代理代理模式中的角色划分:(
2016-04-05 10:42:25 1980
原创 获得Class对象的两种方式比较
java提供了两种方式来生成对Class对象的引用:方式1:Class clazz = Class.forName("类的全限定名");方式2:Class clazz = 类名.class;两者最大的区别:(1):方式1是饿汉式加载,而方式2是懒汉式加载的,也就是说在调用方式1这句代码时,该类中的所有static类型变量或者static块都将会加载;但是调用方式2这句代码并不会默认
2016-04-04 11:20:00 2493
原创 举例说明函数重载和重写
在java中多态分为两种编译时多态(重载)和运行时多态(重写),编译时多态又叫前绑定,运行时多态又叫后绑定;下面用一个例子说明:public class OverloadAndOverwrite { public static void main(String[] args) { A a1 = new A(); A a2 = new B(); B b = new B();
2016-04-03 21:39:11 2627
winhex.exe
2017-09-20
DiskLruCache.java
2016-05-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人