android 谈谈invalidate和postInvalidate方法的区别

看这二个方法的区别只有深入到代码中去看了,首先看invalidate()方法 invalidate()分析 public void invalidate() { invalidate(true); } 然后到 void invalidateInternal(...

2019-07-16 07:10:57

阅读数 9

评论数 0

android 面试题 谈谈主线程一直循环 为什么不会出现阻塞或者ANR异常

在ActivityThread类中的main方法有段代码: ActivityThread thread = new ActivityThread(); thread.attach(false, startSeq); if (sMainThreadHandle...

2019-07-16 05:52:14

阅读数 8

评论数 0

android 面试题 Parcelable与Serializable区别

一、序列化与反序列化 由于在系统底层,数据的传输形式是简单的字节序列形式传递,即在底层,系统不认识对象,只认识字节序列,而为了达到进程通讯的目的,需要先将数据序列化,而序列化就是将对象转化字节序列的过程。相反地,当字节序列被运到相应的进程的时候,进程为了识别这些数据,就要将其反序列化,即把字节序...

2019-07-16 05:32:22

阅读数 8

评论数 0

性能优化之 线程优化

线程调度原理 在任意时刻,只有一个线程占用cpu,处于运行状态,在多线程并发的情况下,轮流使用CPU的使用权,但是现在是多核的时代, 比如现在很多电脑或者手机是8核的,意思是有8个cpu,让这8个cpu去执行任务,如果是执行任务很多的情况下,cpu是轮流的方式去执行任务的,而这个CPU去执行任务...

2019-07-16 04:25:26

阅读数 7

评论数 0

android 面试题谈谈transient关键字

我们知道在Java中只要实现了Serializable接口,这个都可以被序列化,在Android中进行序列化还有一种方式, 就是Parcelable, 而且比Java提供的序列话方式性能更高,但是在实际的开发中我们有些类虽然实现了Serializable接口,但是里面的有些属性不想进行序列化,这...

2019-07-16 03:02:36

阅读数 7

评论数 0

android 面试题 谈谈深拷贝和浅拷贝

对称拷贝就是将一个对象的属性拷贝到另一个类有着相同类类型的对象中 浅拷贝 浅拷贝就是按位拷贝对象,它会创建一个新的对象,这个对象有着原始对象属性值的一份精确拷贝,如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的就是内存地址值,因此如果其中一个对象改变了这个地址就会影响其他...

2019-07-16 02:38:23

阅读数 7

评论数 0

android 面试题 集合类

java集合类主要由二个根接口派生的,Collection和Map Collection派生的类的结构 List集合主要有ArrayList,Vector LinkedList Stack(栈) Vector:已经废弃了,因为它是线程安全 导致效率变慢, ArrayList:底层是由数...

2019-07-16 00:19:02

阅读数 7

评论数 0

android aop(三) AspectJ

AspectJ是面向切面编程的一个框架,它遵循了Jvm的语法并扩展了java语言,我们知道一个类想要运行起来,是先javac命令变成.class(字节码) 再由java命令把该类加载到jvm中,而AspectJ就在javac命令在.java 文件转变成.class文件的时候植入一些代码,这是在编译...

2019-07-12 16:45:14

阅读数 9

评论数 0

android aop( 二)实现方式之动态代理

之前说了aop有四种实现方式,其中最不推荐的就是动态代理实现,因为它浸入代码强,不利于维护,但是也要知道,因为其他实现方式里面的原理也用到了动态代理,只是封装更好 用起来更简单 比如一个app要收藏或者关注必须是用户已经登陆情况,除非是app可以是游客的情况下登陆也能收藏或者关注,这是另话了...

2019-07-12 02:59:27

阅读数 8

评论数 0

Android 面试题 如何计算一张图片在内存中大小

如何计算图片所占内存大小 其实图片所占内存大小和图片本身大小几乎没啥关系, 为什么这么说呢? 我现在把一张图片加载到内存去计算它的宽和高,图片如下: 你看啊 它的大小是72*72,现在我放在不同的目录下看看它的宽和高, drawable 它的宽和高是144*144 drawable...

2019-07-08 02:12:33

阅读数 34

评论数 0

android 谈谈AOP(一)

学Java有个OOP (Object Oriented Programming)即面向对象编程,它不是一门技术,而是思想,而AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术 AOP是OOP的延...

2019-07-07 23:38:31

阅读数 28

评论数 0

android面试题 谈谈强 软 弱 虚引用

首先看类的结构图: t 它是在java.lang.ref包下 从上面的单词就知道了Reference是引用的意思,前面的前缀就是所说的软 弱 虚引用,我们通常都是使用强引用, Person person = new Person(); Java默认就是强引用,比如上面的new Peso...

2019-07-07 05:37:48

阅读数 18

评论数 0

android 面试题 谈谈屏幕适配

面试问你屏幕适配,那么你要知道为什么Android要做屏幕适配,因为Android是开源的, 各大厂商不仅可以对软件定制,还可以对硬件定制,这样就造成市场上不同分辨率的手机超多,现在估计得有几万或者几十万种,这就导致android设备的碎片化很严重。所以还是做ios很辛福啊,下面对一些概念弄清楚 ...

2019-07-06 20:25:59

阅读数 55

评论数 0

android 面试题 谈谈Handler

Handler几乎每个人都会用,但是如果面试被问到,相信也不是每个人都能回答出来,特别是大点公司,特别喜欢问原理,或者你工作3年以上,别人不再问你怎么用了,而是问你底层实现原理,不然怎么区分你是高级还是中级 ,不给你定级别,工资不好给啊, Handler作用:主要用于异步消息的处理,那么可能...

2019-07-04 23:51:51

阅读数 21

评论数 0

android 面试题 状态模式

定义:当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类 首先从这个名字上看,状态,比如视频播放,它有一些状态,比如 暂停 播放 停止,快速,这些状态是可以切换的, 在普通的人们心中可能会定义几个static变量或者枚举的方式来对状态的切换,但是如果新增的需求 可...

2019-07-04 06:03:07

阅读数 13

评论数 0

android ThreadLocal使用以及作用

如果想看懂Android中Handler源码,那么ThreadLocal类的作用必须要懂,ThreadLocal的出现解决了线程存存储自己的数据不发生异常,而不是解决线程安全问题,看下例子: package thread; public class ThreadLocalTest { ...

2019-07-04 01:35:45

阅读数 12

评论数 0

android 面试题 说说创建线程的几种方式

在Java中一般创建线程有四种方式: 第一种:继承Thread,这种创建线程的缺点就是因为Java是单继承,假如是四个线程共享一分资源的话,这种方式就不使用了 第二种:实现Runnable接口,一般都是使用第二种,因为Java机制是多实现单继承, 第三种Callable 使用这种方式创建线程...

2019-07-02 20:03:38

阅读数 16

评论数 0

android 面试题 CyclicBarrier

 CyclicBarrier是一个同步工具类,它允许一组线程互相等待,直到到达某个公共屏障点。与CountDownLatch不同的是该barrier在释放等待线程后可以重用,所以称它为循环(Cyclic)的屏障(Barrier)。   CyclicBarrier支持一个可选的Runnable命令...

2019-07-02 05:09:17

阅读数 74

评论数 0

android 面试题 CountDownLatch的使用

Java的concurrent包里面的CountDownLatch其实可以把它看作一个计数器,只不过这个计数器的操作是原子操作,同时只能有一个线程去操作这个计数器,也就是同时只能有一个线程去减这个计数器里面的值。 你可以向CountDownLatch对象设置一个初始的数字作为计数值,任何调用这...

2019-07-02 04:44:03

阅读数 70

评论数 0

android 面试题 ArrayList是线程不安全的,请写出例子并给出解决方案

我们知道List集合不安全的是因为add()方法没有使用synchronized,我们知道jdk很早有个Vector类,看看它的add() public synchronized boolean add(E e) { modCount++; ensureCapa...

2019-07-02 03:21:59

阅读数 13

评论数 0

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