![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
面试
文章平均质量分 70
准备面试过程的知识总结
顾缘君兮
这个作者很懒,什么都没留下…
展开
-
Android加载图片的几种方式
Android加载图片的几种方式android中图片分为Drawable和Bitmap,两者可以相互转化,我们在res目录下放的Image图片都可以通过R类索引得到对应的Drawable,而assets目录则不会生成id,raw目录会生成id但不能直接使用现在讨论获得图片的几种方式一,获得res/raw目录下的原始图片文件InputStream is = getResources().openRawResource(R.id.fileNameID) ;Bitmap bmp=BitmapFactor转载 2021-04-23 22:54:39 · 2973 阅读 · 0 评论 -
自定义View
自定义View视图坐标系View获取自身宽高getHeight():获取View自身高度getWidth():获取View自身宽度View自身坐标通过如下方法可以获得View到其父控件(ViewGroup)的距离:getTop():获取View自身顶边到其父布局顶边的距离getLeft():获取View自身左边到其父布局左边的距离getRight():获取View自身右边到其父布局左边的距离getBottom():获取View自身底边到其父布局顶边的距离MotionEvent提供的方转载 2021-04-23 22:32:15 · 199 阅读 · 0 评论 -
接口和抽象类
接口和抽象类抽象类定义如果一个类没有包含足够多的信息来描述一个具体的对象,这样的类就是抽象类。抽象类用abstract修饰。特点(1)不能实例化,因为抽象类中含有无法具体实现的方法。(2)可在抽象类中定义公共成员变量、成员方法、构造方法等。(3)只要包含一个抽象方法的类,该类必须要定义成抽象类(抽象方法是一种特殊的方法,它只有声明但没有具体的实现,抽象方法必须为public或protected)。故可理解为抽象类是在普通类结构里增加抽象方法的组成部分。(4)如果子类继承于一个抽象类,则该子类转载 2021-04-20 11:24:03 · 252 阅读 · 0 评论 -
小米安卓岗一面总结
小米安卓岗一面总结面试官人很好,非常耐心,最后还会总结你的亮点和不足,面试体验非常棒。下面总结如下:1.http和https2.get和post区别3.http请求报文和响应报文4.TCP三次握手5.http和tcp联系6.tcp和udp的区别以及应用场景7.进程和线程的区别8.Java的四种引用9.接口和抽象类的区别10.创建线程的方式有哪些11.线程池在哪里12.线程池怎么实现13.final的作用14.static的作用15.四大组件(每一个都进一步问)16.事件分发原创 2021-04-19 16:02:46 · 235 阅读 · 0 评论 -
小米安卓面经
小米安卓面经jre和jdk区别JDK是Java的开发工具,它不仅提供了Java程序运行所需的JRE,还提供了一系列的编译,运行等工具,如javac,java,javaw等。JRE只是Java程序的运行环境,它最核心的内容就是JVM(Java虚拟机)及核心类库。线程池核心参数核心参数corePoolSize(核心线程数)(1)核心线程会一直存在,即使没有任务执行;(2)当线程数小于核心线程数的时候,即使有空闲线程,也会一直创建线程直到达到核心线程数;(3)设置allowCoreThreadT原创 2021-04-18 22:59:52 · 396 阅读 · 0 评论 -
Android通信相关
Android通信相关AsyncTask是一个Android已封装好的轻量级异步类,属于抽象类,使用时需要实现子类。它本质上是一个封装了线程池和Handler的异步框架线程池:缓存线程+复用线程,避免频繁创建、销毁线程带来的系统开销用于:1.异步任务,如在工作线程中执行耗时任务2.消息传递,如实现工作线程和主线程之间通信,将工作线程处理结果传递给主线程,并在主线程中执行相关UI操作3.和Handler一样用于处理异步任务,不过AsyncTask代码量更为轻量级,且后台是一个线程池,在异步任务转载 2021-04-18 14:21:42 · 290 阅读 · 0 评论 -
美团4.4笔试复盘
美团4.4笔试复盘第一题一天,小美在写英语作业时,发现了一个十分优美的字符串:这个字符串没有任何两个字符相同。于是,小美随手写下了一个字符串,她想知道这个字符串的的所有子序列,有多少个是优美的。由于答案可能会很大,输出对20210101取模后的结果。一个字符串的子序列定义为:原字符串删除0个或多个字符后剩下的字符保持原有顺序拼接组成的字符串为原串的子序列。如:ab是acba的子序列,但bc则不是。在本题中。空串也为原串的子序列。两个子序列不相同,当且仅当他们对应原串的下标不相同。如aab则含原创 2021-04-10 20:28:01 · 943 阅读 · 0 评论 -
C++虚函数
我们知道,在同一类中是不能定义两个名字相同、参数个数和类型都相同的函数的,否则就是“重复定义”。但是在类的继承层次结构中,在不同的层次中可以出现名字相同、参数个数和类型都相同而功能不同的函数。例如在例12.1(具体代码请查看:C++多态性的一个典型例子)程序中,在Circle类中定义了 area函数,在Circle类的派生类Cylinder中也定义了一个area函数。这两个函数不仅名字相同,而且参数个数相同(均为0),但功能不同,函数体是不同的。前者的作用是求圆面积,后者的作用是求圆柱体的表面积。这是合法的转载 2021-04-06 18:38:12 · 106 阅读 · 0 评论 -
Android性能优化
Android性能优化内存优化ANR(应用程序无响应)原因:一般是主线程未及时响应用户的输入事件(如触摸、按键);或者当前事件正在被处理,但是由于耗时太长没有能及时完成。常见的原因是主线程频繁进行耗时操作解决:使用多线程,将耗时操作交给工作线程执行CRASH(应用程序崩溃)原因:一般是内存溢出解决:内存优化,如:避免内存泄漏、避免内存抖动、图片Bitmap优化、优化代码内存溢出应用程序所需内存超出系统分配的内存限额,从而导致内存溢出原因:内存中加载的数据量过于庞大,如一次性从数据库取出过转载 2021-04-02 21:50:47 · 83 阅读 · 0 评论 -
Android 五大存储
Android 五大存储SharedPreferences是一种轻量级存储类,数据存储格式为键值对。适合保存一些简单的配置参数等轻量级数据,如自动登录功能保存上次登录成功的用户名和密码只支持Java基本数据类型和String类型数据存储。如果要存取复杂的数据类型(类、图像等),就需要对这些数据进行编码,通常转换成Base64编码,然后将转换后的数据以字符串的形式保存在XML文件中它保存数据是用xml文件存放读取数据使用awaitLoadedLocked同步锁,是线程安全的一般采用单例模式使用转载 2021-04-01 19:54:29 · 239 阅读 · 0 评论 -
Android六大布局
Android布局六大布局LinearLayour线性布局组件一个挨一个排列常用属性:orientation:组件排列方式,水平或垂直gravity:组件包含的子元素的对齐方式layout_gravity:组件在父容器里的对齐方式layout_weight:布局的权重RelativeLayout相对布局子控件以其兄弟控件或父控件为参考按照相对位置进行布局,适用于复杂的嵌套布局常用属性:1.根据父容器定位:layout_alignParentLeft\Right\Top\Bottom转载 2021-04-01 19:51:36 · 369 阅读 · 0 评论 -
计算机网络
计算机网络一次网络请求的流程/浏览器访问一个url网址所经历的过程1.域名解析(DNS查找)2.建立TCP连接(三次握手和四次挥手)3.建立TCP连接后客户端向服务端发起HTTP请求(HTTP请求报文:请求行,请求头,空行,消息体)4.服务器接收并处理请求,返回HTTP响应信息,HTTP响应报文的消息体为服务端返回给客户端的HTML文本内容(HTTP响应报文:状态行,响应头,空行,消息体)5.浏览器解析HTML代码,同时请求HTML中的静态资源(如js,css,图片等)遇到静态资源是,向服务端发转载 2021-03-30 21:16:44 · 154 阅读 · 0 评论 -
Android四大组件
Android四大组件Activity(活动)是android程序与用户交互的窗口,可以显示一些空间用于监听并处理用户的事件生命周期有四个状态、七个方法、两个异常四个状态Running:处于栈的最顶端,此时处于不可见并可和用户交互的激活状态Paused:当Activity被另一个透明的或者Dialog样式的Activity覆盖时的状态,此时仍然可见,但失去了焦点,不可与用户交互Stopped:Activity完全不可见,处于后台,但仍保留着当前状态和成员信息Killed:当前界面被销毁,等转载 2021-03-29 15:42:50 · 313 阅读 · 0 评论 -
垃圾回收机制
垃圾回收机制如何判断对象是否是垃圾引用计数法一个对象A,任何一个对象引用A,A的引用计数器加一,当引用失效时,A的引用计数器减一,如果A的引用计数器为0,说明A没有引用,可以被回收。缺点是无法解决循环引用的问题可达性分析算法程序把所有的引用关系看作一张图,从一个节点GC Root开始,寻找对应的引用节点,找到这个节点以后,继续寻找这个节点的引用节点,可达的对象都是存活的。当所有的引用节点寻找完毕之后,剩余的不可达节点则被认为是没有被引用到的节点,即无用的节点(GC Root 不可达对象),无用的转载 2021-03-26 16:34:16 · 95 阅读 · 0 评论 -
JVM相关
JVM相关Java代码执行流程源码编写:编写java文件编译生成class文件:将源代码文件编译生成class字节码文件,字节码文件存放了类的字段、方法、父类、实现的接口等信息加载class文件:通过类加载器将class二进制数据读入内存。读取class文件中的数据并存储在方法区中,建立一个Class对象,作为运行时访问类中数据的接口。运行class文件:JVM执行class文件,执行引擎找到main()入口方法,在栈里创建一个栈帧,逐行执行方法中的字节码指令。操作完成后返回给调用方,栈帧出栈。转载 2021-03-26 16:33:28 · 95 阅读 · 0 评论 -
MD5加密总结
MD5加密总结概述MD5消息摘要算法,属于Hash算法。MD5算法对输入任意长度的消息进行运行,产生一个128位的消息摘要(32位的数字字母混合码)特点不可逆相同的数据MD5值一样性质压缩性:任意长度的数据,算出的MD5值长度都是固定的容易计算:从原数据计算出MD5值很容易抗修改性:对原数据进行任何改动,哪怕只修改一个字节,所得到的MD5值都有很大区别弱抗碰撞:已知原数据和其MD5值,想找一个相同MD5值得数据非常困难强抗碰撞:想找到两个不同的数据具有相同的MD5值非常困难原理数据转载 2021-03-23 14:59:54 · 337 阅读 · 0 评论 -
C++定义一个宏,比较两个数的大小
C++定义一个宏,比较两个数的大小要求不使用<,>,if语句思路:负数是用补码表示的,最高位是符号位,所以判断a-b的最高位是不是1就可以知道a-b是不是负数。 1<<31得到最高位是1,其余位都是0,然后和a-b做与运算就可以知道最高位是不是1了代码如下:#define MAX(a,b) ( (((a)-(b)) & (1<<31) )>>31 ? (b):(a) ) 验证:#define MAX(a,b) ( (((a)-(b原创 2021-03-22 21:38:36 · 1741 阅读 · 0 评论 -
进程间的通信方式
进程间的通信方式管道:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用,进程的亲缘关系通常是指父子进程关系有名管道:也是半双工的通信方式,但是允许无亲缘关系的进程间通信消息队列:消息的链表存放在内核中并由消息队列标识,克服了信号传递信息少,管道只能承载无格式字节流以及缓冲区大小受限等缺点共享存储:共享内存就是映射一段能被其他进程所访问的内存,由一个进程创建,多个进程都可以访问。共享内存是最快的通信方式,往往与其他通信机制(如信号量)配合使用,来实现进程间的同步和通信转载 2021-03-22 21:10:10 · 137 阅读 · 0 评论 -
进程与线程的区别
进程与线程的区别根本区别:进程是操作系统资源分配的基本单位,线程是处理器任务调度和执行的基本单位资源开销:每个进程都有独立的代码和数据空间,程序之间的切换会有较大开销;线程可以看做是轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器,线程之间的切换开销较小包含关系:线程是进程的一部分影响关系:一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。(多进程比多线程健壮)执行过程:每个独立的进程有程序运行的入口、顺序执行序列和程序出口。但转载 2021-03-22 21:08:25 · 95 阅读 · 0 评论 -
Activity间数据传递
Activity间数据传递使用putExtra()传递数据putExtra(name,value)方法可将指定的数据封装到Intent对象中。其中,name为表示数据名称的字符串,value为要传递的各种数据类型的值。要获取lntent对象中封装的数据,可调用各种getXXXExtra()方法。使用Bundle对象传递数据将各种数据封装到一个Bundle对象中,再将Bundle对象封装到Intent对象中传递给启动的活动。Bundle对象的各种putXXX(String key,XXx val原创 2020-12-12 20:34:40 · 508 阅读 · 0 评论 -
Android事件分发机制
转载:https://www.cnblogs.com/aademeng/articles/10923336.html转载 2020-12-10 20:18:30 · 77 阅读 · 0 评论 -
设计模式
设计模式1、单例模式(创建型)**1.**定义作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。**2.**特点单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。3、创建方式①懒汉式,线程不安全是否 Lazy 初始化:是是否多线程安全:否实现难度:易描述:这种方式是最基本的实现方式,这种实现最大的问题就是不支持多线程。因为没有加锁 synchronized,所以严格意义上它并不原创 2020-12-09 21:27:17 · 104 阅读 · 0 评论 -
Android主流网络请求框架
Android主流网络请求框架1、Volley框架特点:适用于频繁请求而每次请求数据量不会很大;在请求的基础上做了磁盘缓存;防止多次相同请求浪费资源;提供String、Json、图片异步下载;网络请求的优先级处理;图片请求无需担心生命周期问题。使用:首先,通过Volley的静态方法new一个请求队列1 RequestQueue mQueue = Volley.newRequestQueue(context); 假如我们创建一个StringRequest实例(Volley原创 2020-12-09 21:26:43 · 3713 阅读 · 1 评论 -
Java基础面试题
Java基础面试题1. HashMap 和 HashTable 以及 CurrentHashMap 的区别首先说下最大的区别,HashMap是线程非安全的,效率比较高;HashTable和CurrentHashMap是线程安全的,效率比HashMap差一点,但CurrentHashMap比HashTable更加高效一些,因为CurrentHashMap采用了更加高效的分段锁机制。https://blog.csdn.net/majingjing66/article/details/744519162.原创 2020-12-08 22:32:18 · 127 阅读 · 0 评论 -
Android 性能优化
Android 性能优化1、布局优化(1)使用布局标签优化布局(2)去除不必要的嵌套和view节点(3)减少不必要的infalte(4)布局调优工具(5)检查overdrawhttps://blog.csdn.net/u012124438/article/details/545646592、内存优化https://blog.csdn.net/u012124438/article/details/546472873、apk瘦身(1)图片优化使用tinypng有损压缩使用jpg格式缩原创 2020-12-08 19:47:43 · 113 阅读 · 0 评论 -
Android Framework 相关
Android Framework 相关1、Android 系统架构1.应用程序层这一层一般我们最为熟悉了,我们平常开发安卓用java编写的app都属于这一层,当然系统自带的程序比如时钟、email等都是属于这一层2.应用程序框架层(Framework)这一层是核心应用程序所使用的API框架,为应用层提供各种接口API,包括各种组件和服务来支持我们的安卓开发,包括ActivityManager,WindowManager,ViewSystem等我们讲到AndroidFramework时很经常要提到原创 2020-12-08 18:03:57 · 208 阅读 · 0 评论 -
Android基础面试题
Android基础面试题1、什么是 ANR ,如何避免?应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应 用程序无响应(ANR:ApplicationNotResponding)对话框。不同的组件发生 ANR 的时间不一样,Activity 是 5 秒,BroadCastReceiver 是 10 秒,Service 是 20 秒(均为前台)。1. 在 UI 线程中做尽可能少的工作;2. 在 Activity 的 onCreate 和 onResume 中做尽可能少原创 2020-12-07 22:21:54 · 1113 阅读 · 0 评论 -
计算机网络面试题
计算机网络面试题一、HTTP/HTTPS1、HTTP和HTTPS有什么区别简单来说HTTPS是HTTP的安全版。传输方式不同,http是超文本传输协议,信息是明文传输;https则具有安全性的SSL/TSL加密传输协议。用的端口不同,http是80,https是443.连接方式不同,http的连接是无状态的;https是由ssl/tsl+http构建的可进行加密传输、身份认证的网络协议。客户端处理方式不同,如果 URL 的协议是 HTTP,则客户端会打开一条到服务端端口 80(默认)的连接,并原创 2020-12-06 00:20:45 · 549 阅读 · 0 评论