
面试
文章平均质量分 60
iblade
明年的某个时候,你会想着要是今天就行动了该多好!
展开
-
设计模式之美——面试对象与面向过程对比
实际上,面向过程编程和面向过程编程语言并没有严格的官方定义。理解这两个概念最好的方式是跟面向对象编程和面向对象编程语言进行对比。相较于面向对象编程以类为组织代码的基本单元,面向过程编程则是以过程(或方法)作为组织代码的基本单元。它最主要的特点就是数据和方法相分离。相较于面向对象编程语言,面向过程编程语言最大的特点就是不支持丰富的面向对象编程特性,比如继承、多态、封装。原创 2022-10-29 20:07:03 · 801 阅读 · 0 评论 -
Binder学习笔记
三个方面回答:进程间通信机制,虚拟物理设备驱动;能发起通信的Java类;很多一线大厂的APP就是多进程在运行。推送就是一个单独进程,保持连接的稳定性。WebView退出不干净,单独进程,在退出WebView时直接杀掉该进程 就不会有内存泄漏了。Application 的onCreate 会执行多次,初始化第三方库 避免重复初始化。Linux本身是有进程间通信的,为何基于Linux的Android还要新搞出一个Binder呢?优势何在?共享内存,Socket,管道(如handler实现原.原创 2022-02-06 14:32:41 · 2070 阅读 · 0 评论 -
JVM内存管理笔记
郑重声明:本文属于个人学习笔记,严重参考姜新星大佬在拉勾教育平台的《Android工程师进阶34讲》。严重参考警告。星哥如觉不妥,微信我一下哈, 侵删。JVM 的运行时内存结构中一共有两个“栈”和一个“堆”,分别是:Java 虚拟机栈和本地方法栈,以及“GC堆”和方法区(两栈一器,一堆一区)。除此之外还有一个程序计数器,但是我们开发者几乎不会用到这一部分。JVM 内存中只有堆和方法区是线程共享的数据区域,其它区域都是线程私有的。并且程序计数器是唯一一个在 Java 虚拟机规范中没有规定任何 Ou原创 2021-08-17 20:15:54 · 148 阅读 · 0 评论 -
Leakcanary原理笔记
使用弱引用+引用队列的形式。1、监听Activity生命周期2、在Activity执行onDestory()后,创建一个WeakRefrence,该引用指向Activity,将其放入引用队列RefrenceQueue。3、过一段时间,判断引用是否存在,若存在,过一会儿执行GC,再判断是否存在,若还是存在,该视为内存发生泄漏。4、dump内存信息,分析泄漏原因...原创 2021-08-14 18:02:21 · 172 阅读 · 0 评论 -
Android设计模式之单例模式
一 单例模式介绍及它的使用场景单例模式是应用最广的模式。其实经常使用的图片加载框架ImageLoader的实例创建就是使用了单例模式,因为这个ImageLoader中含有线程池、缓存系统、网络请求,很消耗资源,不应该创建多个对象,这时候就需要用到单例模式。ImageLoader的创建代码如下:ImageLoader.getInstance();// 在自己的Application中创建全局实例.....//getInstance()执行的源码 public static ImageLoader原创 2020-07-13 22:53:26 · 878 阅读 · 0 评论 -
Java中Math.round(±11.50) = ?
private void test() { System.out.println("小数点后第一位=5"); System.out.println("正数:Math.round(11.5)=" + Math.round(11.5)); System.out.println("负数:Math.round(-11.5)=" + Math.roun...原创 2018-06-13 15:58:12 · 263 阅读 · 0 评论 -
职场晋升法则
汇报工作说结果 在汇报工作的时候,不要跟老板说过程有多艰辛,你多么不容易,老板都不傻,否则做不到今天。举重若轻的人老板最喜欢,一定要把结果给老板,结果思维是第一思维。 请示工作说方案 不止一位职场前辈告诉我:不要让你的老板做问答题,而是做选择题。所以在请示工作的时候至少保证给老板两个方案,并表达自己的看法。 总结工作说流程 做工作总结要描述流程,不只是先后顺序逻...原创 2018-06-14 11:14:00 · 475 阅读 · 1 评论 -
Android面试题总结(2018年9月)
2018年9月,面试题总结,顺利拿到offer,并没有想象中的开心,或许随着工作年限的增长,对自己技术进步的步伐提出了更高的要求,加油!1.在Android开发中,谈一下您使用位运算的场景?(https://blog.youkuaiyun.com/zzp16/article/details/7956768)2.IntentService实现原理3. handler实现原理,能否用于子线程间通信,如何实现...原创 2018-09-25 15:35:00 · 438 阅读 · 0 评论 -
HashMap源码解析
来不及整理电子版,先献丑把笔记本拍几张,随后整理。有人问,什么年代了,还手写笔记,哈哈,如果不亲自手写一遍,我是真心记不住。很多API不用知道工作原理 一样可以使用,所以平时只是使用,如果要想进一步知道原理,岂能不下点功夫,例如 按照自身理解,动笔誊写一遍。...原创 2018-09-25 16:07:21 · 235 阅读 · 0 评论 -
找出单身狗:有2n+1个数,其中有n个数出现过两次,找出其中只出现一次的数
/** * 任何数异或0值不变,任何数与自己异或值为0。 * 因此一个数两次异或同一个数,值不变。 */ public void findSingle() { int[] arr = {1, 2, 3, 4, 5, 4, 3, 2, 1}; int t = arr[0]; for (int i = 1;...原创 2019-01-27 16:14:48 · 1156 阅读 · 0 评论 -
Java面试String汇总
1.下面这条语句一共创建了多少个对象:String s=”a”+”b”+”c”+”d”; 答:对于如下代码:String s1 = “a”;String s2 = s1 + “b”;String s3 = “a” + “b”;System.out.println(s2 == “ab”);System.out.println(s3 == “ab”);第一条语句打印的结果为false,第二条语句打印的原创 2018-02-06 15:37:39 · 1293 阅读 · 1 评论 -
关于Java自动装箱拆箱的面试题
问:请写出运行结果? Long l1 = 128L; Long l2 = 128L; System.out.println(l1 == l2); //1 System.out.println(l1 == 128L); //2 Long l3 = 127L; ...原创 2019-01-27 18:11:45 · 2193 阅读 · 2 评论 -
如何做一个有趣的人
1、不善表达是能力不行(储备太少),不是性格内向——请不要自欺欺人咯——这句话至少对于自己完全没毛病。2、【极简主义】衣服不要多,但要有质感。朋友不要多,但要有交情。信息不要多,但都很重要。读书不必多,但要有深度。东西不必多,但要用得着。3、【作者对极简主义的理解】不对这个泛泛的世界投注太多的感情、太多的时间、太多的金钱,把注意力集中在自己感兴趣的内容上;目标明确,专注不暧昧;该工作工作,该玩玩,...原创 2018-06-21 13:07:56 · 11352 阅读 · 0 评论 -
码农翻身精华文章
文章出自大话编程我是一个线程我是一个Java class Javascript: 一个屌丝的逆袭 Java:一个帝国的诞生JSP:一个装配工的没落TCP/IP 之 大明王朝的邮差TCP/IP 之 大明内阁TCP/IP 之 蓟辽督师CPU 阿甘CPU 阿甘之烦恼CPU 阿甘:函数调用的秘密我是一个网卡我是一个路由器我是一个进程我是一块硬盘(上)我是一块硬盘(下)我是一个键盘张大胖的socket张大胖...原创 2018-06-04 14:56:25 · 876 阅读 · 0 评论 -
程序员要知道的英语词汇
有时候如果应聘到了一个有外资背景的公司或者这个公司的很多人都有海外或外资工作背景时,你也许还会用到一些日常工作交流时候的词汇。比如我们看一下某主管开会时的发言:小王,请你尽快“Push”一下这件事,按照前期咱们定下来的“Plan”来“follow”这个“case”,每一个“Milestone”都要“Share”出来,你负责的这块工作要充分的“Open”,明天最好和客户做一个“Conference”能原创 2016-01-20 18:58:42 · 598 阅读 · 0 评论 -
改良程序的11技巧
有很多理由都能说明为什么我们应该写出清晰、可读性好的程序。最重要的一点,程序你只写一次,但以后会无数次的阅读。当你第二天回头来看你的代码时,你就要开始阅读它了。当你把代码拿给其他人看时,他必须阅读你的代码。因此,在编写时多花一点时间,你会在阅读它时节省大量的时间。让我们看一些基本的编程技巧:尽量保持方法简短永远永远不要把同一个变量用于多个不同的目的使用自描述的变量名和方法名尽可能的把变量定义转载 2016-01-22 19:50:55 · 438 阅读 · 0 评论 -
界面之下:还原真实的 MVC、MVP、MVVM 模式
关于MVC推荐阅读博客: 《界面之下:还原真实的 MVC、MVP、MVVM 模式》 《从三层架构到MVC,MVP》 《MVC与MVP简单对比》一、前言做客户端开发、前端开发对MVC、MVP、MVVM这些名词不了解也应该大致听过,都是为了解决图形界面应用程序复杂性管理问题而产生的应用架构模式。网上很多文章关于这方面的讨论比较杂乱,各种MV*模式之间的区别分不清,甚至有些描述都是错误的。本文追根溯转载 2016-03-29 14:14:37 · 3299 阅读 · 3 评论 -
常见Android面试题(一)
1、 工作中怎么和美工配合?答: (1) 为了文字不变形,告诉美工文字和图片要分开 (2) 为了适配,要使用9.png技术对图片进行处理 (3) 要告诉美工图片相对于整个屏幕的宽高要写清楚。2、 如果是一张大的背景图怎么处理?答:试着把图片的内容切分成几个小图片,最后通过xml布局拼接,这样就能达到减少图片空间资源的效果。3、 切成很多小图的话位置怎么保证?答:可以使用Rel原创 2016-02-26 13:26:48 · 370 阅读 · 0 评论 -
Android面试:谈谈Android的优点和不足之处.
Android平台手机 5大优势:一.开放性 在优势方面,Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android联盟中来.显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,随大的受益正是丰富的软件资源.开放的平台也会带来更大竞转载 2016-03-28 20:08:12 · 6969 阅读 · 0 评论 -
xUtils 源码解析
本文为 Android 开源项目源码解析 中 xUtils 部分。 项目地址:xUtils,分析的版本:192c2a886c,Demo 地址:xUtils Demo 分析者:Caij,校对者:maogy,校对状态:未完成功能介绍 xUtils 一个 Android 公共库框架,主要包括四个部分:View,Db, Http, Bitmap 四个模块。 View 模块主要的功能是通过注解绑定转载 2016-04-18 21:30:58 · 529 阅读 · 0 评论 -
Android程序员面试
整个面试题分为三个部分:Java、Android和项目经验。1Java技术1.1 Java基础对抽象、继承、多态的理解泛型的作用及使用场景枚举的特点及使用场景线程sleep和wait的区别JAVA反射机制weak/soft/strong引用的区别Object的hashCode()与equals()的区别和作用1.2 集合类JAVA常用集合类功能、区别和性能 并发相关的集合类转载 2016-07-15 09:47:05 · 1031 阅读 · 0 评论 -
Android跨进程通信
定义多进程Android应用中使用多进程只有一个办法(用NDK的fork来做除外),就是在AndroidManifest.xml中声明组件时,用android:process属性来指定。不指定process属性,则默认运行在主进程中,主进程名字为包名。android:process = package:remote,将运行在package:remote进程中,属于全局进程,原创 2018-01-29 15:03:46 · 321 阅读 · 0 评论 -
OnTouchListener()监听不到MotionEvent.ACTION_UP?
面试中被问到Android多点触控,不小心被触及到盲区,作为已开发三四年的老司机,那个心酸啊!忙里偷闲特意写个Demo熟悉下事件分发和多点触控吧,搞了半天竟然只能监听到MotionEvent.ACTION_DOWN,其他一概监听不到。先上代码:private void test() { imageView.setOnTouchListener(new Listener(原创 2018-01-29 16:08:51 · 4756 阅读 · 4 评论 -
MotionEvent基本概念
MotionEvent是事件传递中的一个重要概念——事件类型。事件类型就是指MotionEvent对象所代表的动作。比如说,当你的一个手指在屏幕上滑动一下时,系统会产生一系列的触摸事件对象,他们所代表的动作有所不同。有的事件代表你手指按下这个动作,有的事件代表你手指在屏幕上滑动,还有的事件代表你手指离开屏幕。这些事件的事件类型就分别为ACTION_DOWN,ACTION_MOVE,和ACTIO原创 2018-01-29 17:33:52 · 1209 阅读 · 0 评论 -
Unicode,UTF-8,ASCII等字符编码
字符串是一种数据类型,但是,字符串比较特殊的是还有一个编码问题。因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整...原创 2018-05-08 14:38:47 · 376 阅读 · 2 评论 -
面试题——常见5种运行时异常
java提供了两种异常机制。一种是运行时异常(RuntimeExepction), 一种是受检异常(checked execption)。受检异常:我们经常遇到的IO异常及sql异常就属于检查式异常。对于这种异常,java编译器要求我们必须对出现的这些异常进行catch,面对这种异常要么往上抛,要么就catch运行时异常:我们可以不处理。当出现这样的异常时,总是由虚拟机接管。RuntimeExec原创 2016-01-15 13:52:37 · 25272 阅读 · 2 评论