
面试题
zhoushenxian
我是一个菜鸟android开发工程师,目前从事电视端开发
展开
-
面试题:创建线程有几种方式
网上有说3或者4种,他们说的4种或者3种是把什么线程池也放进去了,今天我们就来看下oracle官网的描述,Athreadis a thread of execution in a program. The Java Virtual Machine allows an application to have multiple threads of execution running concurrently.Every thread has a priority. Threads with hig..原创 2020-06-11 11:08:31 · 554 阅读 · 0 评论 -
面试题:数组和链表的区别
数组:是将元素在内存中是连续存储的;它的优点:因为数据是连续存储的,内存地址连续,所以在查找数据的时候效率比较高;它的缺点:在存储之前,我们需要申请一块连续的内存空间,并且在编译的时候就必须确定好它的空间的大小。在运行的时候空间的大小是无法随着你的需要进行增加和减少而改变的,当数据量比较大的时候,有可能会出现越界的情况,数据比较小的时候,又有可能会浪费掉内存空间。在改变数据个数时,增加、插入、删除数据效率比较低。链表:是动态申请内存空间,不需要像数组需要提前申请好内存的大小,链表只需在用的.原创 2020-06-02 11:34:38 · 2094 阅读 · 0 评论 -
一道字符串面试题
题目:输入“aaaaabbbbccc”,输出“a5b4c3”我所想到的是用map去实现,key存字符,value存出现的次数,代码如下: public static void main(String[] args) { String str = "aaaaabbbbccc"; Map<Character, Integer> map = new HashMap<>(); for(int i=0;i<str.lengt原创 2020-05-26 15:40:49 · 327 阅读 · 0 评论 -
java 二个值交换的几种方式
比如:a=4,b=5,在不引用第三个变量时实现两者值交换这个面试题可能会到问到,在牛客网上就遇到这题,今天拿出来记录下,怕忘记真正的做法有三种,依次实现下第一种:最容易想到的方法,就是引用一个中间变量 int a = 4; int b = 5; int temp = a; a = b; b = temp;第二种:不使用第三方变量分析,我们把b-a = 1,把这个1赋值给a,那么b-a就是等于4了,b=b-a=4现在把b变成了4,然后我们只要把a变成5就可以原创 2020-05-26 14:53:09 · 378 阅读 · 0 评论 -
每日一道面试题:java创建对象有几种方式
每天在github上搜索一道面试题进行复习,扫盲技术点,今天是问Java创建对象有几种方式,可能会说就一种,其实有四种:原创 2020-05-01 20:35:21 · 726 阅读 · 0 评论 -
android 谈谈invalidate和postInvalidate方法的区别
看这二个方法的区别只有深入到代码中去看了,首先看invalidate()方法invalidate()分析 public void invalidate() { invalidate(true); }然后到 void invalidateInternal(int l, int t, int r, int b, boolean invalidateCache...原创 2019-07-16 07:10:57 · 627 阅读 · 0 评论 -
android 面试题 谈谈主线程一直循环 为什么不会出现阻塞或者ANR异常
在ActivityThread类中的main方法有段代码: ActivityThread thread = new ActivityThread(); thread.attach(false, startSeq); if (sMainThreadHandler == null) { sMainThreadHandler = thre...原创 2019-07-16 05:52:14 · 2464 阅读 · 0 评论 -
android 面试题 Parcelable与Serializable区别
一、序列化与反序列化由于在系统底层,数据的传输形式是简单的字节序列形式传递,即在底层,系统不认识对象,只认识字节序列,而为了达到进程通讯的目的,需要先将数据序列化,而序列化就是将对象转化字节序列的过程。相反地,当字节序列被运到相应的进程的时候,进程为了识别这些数据,就要将其反序列化,即把字节序列转化为对象。有了以上理解,接下来我们认识两个用于序列化和反序列化的接口:java原生的Seriali...原创 2019-07-16 05:32:22 · 1084 阅读 · 0 评论 -
android 面试题谈谈transient关键字
我们知道在Java中只要实现了Serializable接口,这个都可以被序列化,在Android中进行序列化还有一种方式, 就是Parcelable,而且比Java提供的序列话方式性能更高,但是在实际的开发中我们有些类虽然实现了Serializable接口,但是里面的有些属性不想进行序列化,这个时候就可以在这个变量的前面添加transient修饰了,class Rectangle imp...原创 2019-07-16 03:02:36 · 1931 阅读 · 0 评论 -
android 面试题 谈谈深拷贝和浅拷贝
对称拷贝就是将一个对象的属性拷贝到另一个类有着相同类类型的对象中浅拷贝浅拷贝就是按位拷贝对象,它会创建一个新的对象,这个对象有着原始对象属性值的一份精确拷贝,如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的就是内存地址值,因此如果其中一个对象改变了这个地址就会影响其他的对象用demo来测试下public class ShallowCopyTest { ...原创 2019-07-16 02:38:23 · 804 阅读 · 0 评论 -
android 面试题 集合类
java集合类主要由二个根接口派生的,Collection和MapCollection派生的类的结构List集合主要有ArrayList,Vector LinkedList Stack(栈)Vector:已经废弃了,因为它是线程安全 导致效率变慢,ArrayList:底层是由数组组成的,它的读插入和删除速度慢,时间复杂度都是O(n) 但是它的读取元素的效率高 时间复杂度为O(...原创 2019-07-16 00:19:02 · 649 阅读 · 0 评论 -
Android 面试题 如何计算一张图片在内存中大小
如何计算图片所占内存大小其实图片所占内存大小和图片本身大小几乎没啥关系, 为什么这么说呢?我现在把一张图片加载到内存去计算它的宽和高,图片如下:你看啊 它的大小是72*72,现在我放在不同的目录下看看它的宽和高,drawable它的宽和高是144*144drawable-hdpi它的宽和高是96*96drawable-mdpi它的宽和高是144*144d...原创 2019-07-08 02:12:33 · 1358 阅读 · 0 评论 -
android面试题 谈谈强 软 弱 虚引用
首先看类的结构图:t它是在java.lang.ref包下 从上面的单词就知道了Reference是引用的意思,前面的前缀就是所说的软 弱 虚引用,我们通常都是使用强引用, Person person = new Person();Java默认就是强引用,比如上面的new Peson对象,强引用的特点:当内存不足, jvm开始垃圾回收,对于强引用的对象,就算出现OOM异常...原创 2019-07-07 05:37:48 · 643 阅读 · 0 评论 -
android 面试题 谈谈Handler
Handler几乎每个人都会用,但是如果面试被问到,相信也不是每个人都能回答出来,特别是大点公司,特别喜欢问原理,或者你工作3年以上,别人不再问你怎么用了,而是问你底层实现原理,不然怎么区分你是高级还是中级 ,不给你定级别,工资不好给啊,Handler作用:主要用于异步消息的处理,那么可能好奇,什么是异步消息,我们在学线程这块就知道,线程一般是用于处理比较耗时的操作,就是结果不是马上就能...原创 2019-07-04 23:51:51 · 489 阅读 · 0 评论 -
android 两个不重复的数组集合中,求共同的元素
比如我一个集合中有[1,2,3,4] 另外一个集合中有[3,4,5,6] 它共同的元素是3。第一种解决方案思想:是定义一个空集合。然后把上面的二个集合双层for循环找出其共同的元素 List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); ...原创 2019-02-27 11:53:56 · 1728 阅读 · 0 评论 -
一道简单的java面试题
一道简单的java面试题原创 2016-02-23 17:02:22 · 668 阅读 · 0 评论 -
java面试题 "aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)
"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)原创 2015-02-23 20:00:46 · 10466 阅读 · 0 评论