自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 java 关于 try catch finally 执行顺序

try catch finally 的执行顺序代码的执行情况是 try -> catch -> finally ,所以返回的顺序也是,如果try 里面有return,或者catch里面有return,会把return的对象返回到调用栈中,然后执行finally里面的逻辑,但是如果finally里面也有return 则会把调用栈里面的对象更新,如下代码:public class TryCatchDemo { public static void main(String[] args)

2021-03-13 16:27:12 238

原创 Android优秀文章链接只收集精华

####java基础https://www.jianshu.com/p/ee0de4c99f87 --------HashMaphttps://www.cnblogs.com/chengxiao/p/6059914.html#t1 -----HashMap基于jdk1.7https://www.cnblogs.com/zailushang1996/p/8601808.html ------工厂模式https://blog.csdn.net/u012156116/article/det

2020-07-15 17:11:21 181

原创 android Tween动画和属性动画

动画主要分为两种一种是帧动画,另外是属性动画

2020-06-18 16:34:21 270

原创 RecycleView原理分析

在面试中经常会遇见面试RecycleView的,RecycleView源代码及其复杂,想要回答好真的很困难,下面我就说一下我的理解。先说RecycleView的用法,然后从用法中去剖析其内在原理。1、设置一个LayoutManager 用于设置布局相关。2、设置Adapter 用于将布局和数据进行绑定。3、可以设置显示动画(这个是非必选)。4、可以设置RecycleView的间隔(这个也是非必选)。...

2020-06-11 19:13:20 413

原创 Glide面试怎么说

android 中图片是非常重要的一块下面分为5个部分来叙述面试常问知识。1、不同drawable。2、

2020-06-08 19:05:24 191

原创 RxBus原理分析

RxBus

2020-06-05 17:43:48 633

原创 android基础之Context

此图来自李一恩博客。Context译为上下文,当前程序运行的环境,在android中Activity、Application和Service都是一个Context,并且在创建Activity、Application和Service的时候都会

2020-06-02 19:39:17 150

原创 java 集合相关的

集合主要分为两类,实现collection接口和Map接口。Collection有包含类实现List接口和Set接口的。实现Map接口的主要有HashMap HashTable TreeMap CurrentHashMap实现List接口的类主要有ArrayList LinkList等实现Set接口的主要有HashSet TreeSet等...

2020-06-01 11:40:43 94

原创 Activity的层级结构

要想优化activity的布局首先应该清楚activity的布局层次。Activity包含一个phonewindow,phonewindow里面有一个内部类就是DecorView,Decorview是一个FrameLayout,里面包括两个子view,一个是LinearLayout(标题栏加内容),另外一个是底部状态栏。当Activity启动的时候会通过AMS的ApplictionThreadProxy将创建的消息通过binder驱动发送到应用进程的ApplicationThread中,然后通过han

2020-05-29 17:49:39 871

原创 Thread原理剖析

记得刚开始面试的时候被面试官问过Thread如果直接调用run方法吗?如果调用run方法会创建新的线程吗?初级回调只回答到面试官问的问题。中级回答进一步扩展(yield、wait、notify、notifyAll)。高级回答ThreadLocalMap相关。Thread 里面维护了一个ThreadLocal.ThreadLocalMap 存储键值对的对象,它的键就是ThreadLocal自身,值则是ThreadLocal对象设置的值了。...

2020-05-28 23:15:41 437

原创 说一说android屏幕刷新那些事

面试的时候经常会被问到如何处理屏幕卡顿的问题,可能绝大数人都会说尽量不在主线程中做耗时操作例如读取大文件,复杂的计算问题或者是数据库操作等等放在子线程执行,回答在好一点的呢可以知道基本概念,如人眼识别卡顿的极限是一秒二十四帧,手机的刷新频率是60帧,差不多16毫秒会刷一帧。但是接着问为什么是16毫秒刷一帧?为什么主线程耗时操作就会导致卡顿呢?就很少有人能够说清楚了。...

2020-05-28 09:55:41 159

原创 Rxjava2来分析一波

这里主要讲一下rxjava2在面试中回答点。1、rxjava2的基本使用2、rxjava2订阅流程和事件源发出流程分析。3、rxjava2使用注意的问题等。

2020-05-24 17:59:48 120

原创 Retrofit面试该说些什么

相信大家都用过Retrofit这个框架,但是面试官让你说说retrofit这个框架往往面试者不知道怎么回答,在这里我给大家提供一个思路。1、基本的使用。2、retrofit的如何定制扩展。3、retrofit扩展里面的流程。4、以及阅读retrofit源码的感受。...

2020-05-23 18:10:16 1646 2

原创 面试关于锁相关回答点

1、为什么需要加锁为了提交CPU的使用效率,会在CPU里面开辟一个高速缓存区或者是寄存器区,在程序运行的时候提前将主存的数据读入到缓存区中。对于同一个可变的共享变量,每一个线程都会拷贝一个到自己的高速缓存区内,如果一个线程改变了这个变量并不会马上将数据刷到主存,就这会造成数据修改不一致性。2、常见的锁为了保证程序的数据的可见性,原子性和禁止从排序就有了volatile和锁的概念。先说一下volatile 相比锁更轻量级一些,它能保证数据的可见性和禁止CPU的指令重排。每一次修改数据时候就会将数据刷到

2020-05-21 13:11:25 179

原创 okhttp分析

okhttp用法1、创建一个 OkhttpClient对象,使用了外观模式可以直接new 也可以Builder模式来创建OkhttpClient对象,在builder模式中可以添加拦截器和cookieJar等信息。2、创建一个Request的请求对象,通过builder方法进行创建,然后添加请求相关的参数如请求方式,请求链接,请求头等信息。3、通过okhttpClient对象调用newCall方法,并将request对象作为参数传入,返回一个call对象。4、通过这个call对象调用excute方法

2020-05-20 11:36:12 189

原创 面试自定义控件回答点

相信大家在面试的时候经常会遇到自定义view相关的面试题,下面我给大家说一下回答的思路。1、首先android的绘制流程,在activity创建的时候,ActivityThread会调用handleResumeActivity,此时DecorView会和ViewRootImpl会相关联,并把ViewRootImpl设置为DecorView的父类,View的绘制是从ProformTraverslas开始的。2、接着就可以分析常见的三个方法 measure layout draw3、如果有事件相关的要

2020-05-18 10:54:14 376

原创 当面试被问到到TCP/UDP

相信绝大部分的都能回到出来1、TCP面向连接,UDP面向无连接。2、TCP是可靠的,UDP不可靠。3、TCP面向字节流的,UDP面向数据报。4、TCP保证顺序,UDP不保证顺序5、TCP保证正确性,UDP可能丢包回到到这里,在面试官来看已经暴露给他太多的问题点了。什么是面向连接?TCP为什么可靠?(保证顺序性和不丢包是可靠性的具体体现了)问题一 什么是面向连接?这里的回答点就是三次握手机制。UDP在发送数据报文的时候不需要建立连接直接发送。TCP建立连接之前必须经历三次握手,主要目的让对

2020-05-13 15:55:17 121

原创 当面试被问到HTTP以后

遇见问题不要慌,首先回答HTTP是什么有什么特点,然后针对它的特点进行解释当然这是被虐以后的感悟。1、HTTP是什么。2、HTTP分为两段,客户端和服务器端。3、请求和相应的报文格式。4、HTTP底层采用TCP协议进行传输的。5、HTTP1.1以后是长连接。6、HTTP是无状态的。7、使用cookie来进行状态管理。8、请求步骤。1、HTTP是什么。1.1 HTTP概念。HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WW

2020-05-12 14:46:54 186

原创 WebView展示pdf

WebView 使用总结WevView是Android平台上一种特殊的View,是基于webkit引擎的,展现web网页的一种控件。WebView的内部实现是采用渲染引擎展示View的内容,提供了网页的前进、后退、缩放和搜索等功能,在android4.4之后直接采用chrom当做引擎。####加载html的四种方式webView.loadUrl("http://139.196.35.30:8...

2019-10-10 19:12:47 721

原创 android Datading讲解

DataBindingDataBinding可以将数据和xml绑定起来,也是实现mvvm的一种工具。先撇开mvvm我们先了解DataBing的用法。首先在 app moudle中的gradle文件添加dataBing的task。 dataBinding { enabled = true }我们先来写一个小例子。创建一个Person的java类如下。publ...

2019-07-22 18:01:05 600

原创 android系统的板子插入光电鼠标导致activity生命周期发生变化

android系统的板子插入光电鼠标导致activity生命周期发生变化在activity上设置 android:configChanges=“keyboard|keyboardHidden|navigation” 问题解决。如果遇到类似activity重启问题,而网上上没有解决方案时可以 罗列出所有的方案,逐一实验,下面给出完整的configChanges配置。android:configC...

2019-06-27 17:12:45 561

原创 eclipse 上配置tomcat

eclipse 上配置tomcat 添加tomcat到我们的eclipse中 打开Eclipse,选择Window–>Preference 点击Server–>Runtime Environments, 然后点击add 至此我们已经将安装在电脑上的tomcat添加到eclipse之上了。现在我们新建一个Dynamic Web Project工程 ...

2018-06-08 17:50:57 2357

原创 Handler消息机制

热修复概念:就是在不更新安装新包的情况下,下载补丁达到修复bug的目的。热修复的好处:减少了开发人员修改bug的成本,同时也优化了用户的体验,节省用户流量等。热修复原理:classloader类加载机制,classloader会把dex文件全部加载在进来,每一个dex文件同时也是一个Element,多个dex文件排列成一个有序dexElements数组,如果要找类的话,就会遍历dexElements

2018-02-27 18:42:28 107

原创 使用java.util.concurrent包来实现生产者和消费者模式

与我之前写过的生产者和消费者不同,这里我们不需要考虑何时去唤醒线程,何时去阻塞线程,可以帮助我们更简洁的实现生产者和消费者问题。http://blog.csdn.net/kai1ge1/article/details/78952825生产者代码如下:class Producer implements Runnable { private BlockingQueue blockingQueue

2018-02-25 11:04:23 525

原创 java volatile 关键字

volatile 关键字volatile主要有两种作用,一个是保证其可见性,另一个则是保证其顺序性。 可见性:多个线程共享一个变量,每个线程都会将这个共享变量存放一份到自己的变量区,当一个线程修改了这个共享变量,它首先会修改到自己的变量区,可能并不会立即修改到公共的内存区。如果加上volatile这个修饰,则当值修改的时候,会立即同步到公共内存区,同时每个线程的变量区都将失效,重新获取公共内存区里

2018-01-25 16:14:39 152

原创 java static 和final关键字

讲一讲static final关键字 在java中static 和 final关键字是十分重要的。 final关键字可以修饰类,方法,以及变量。 final修饰变量即为只读变量,只能赋值一次。 final修饰方法是不能被子类覆盖的,由于final是静态绑定的(静态绑定即在编译期间就知道这个方法属于哪个类的),所以运行速度要比非final的速度要快。 final修饰类不可被继承,一般都是比较

2018-01-24 11:46:18 185

原创 Collection接口子类讲解

基本概念Java容器类主要是用来保存对象,其中可以分为两种概念:实现Collection接口实现Collection接口主要有三种类型,List,SetList 主要讲两个实现类ArrayList和LinkedListArrayListArrayList底层为数组结构,有序的。查找速度快,但是插入速度慢。 查询速度快:数组的数据结构,是一块连续的内存空间,减少了因指针移动所带来的时间消耗,所以Ar

2018-01-05 16:15:00 2980

原创 java 中栈的数据结构和队列的数据结构模型

无意中发现LinkedList 不仅仅实现了List接口,同时也实现了Queue接口,因此在这里就模拟一下栈的数据结构和队列的数据结构。为以后的面试做准备。/** * @author yikai * 栈类型的数据结构的特点就是先进后出,那么这就简单了,就是在取值的时候,取出容器中 * 最后的值 */public class StackDemo<E> { private LinkedL

2018-01-03 15:04:39 562

原创 Java 生产者--消费者问题

Java 经典问题 生产者–消费者问题 现在有这样一个问题,生产者不停的生产馒头,消费者则不停的消费馒头,同时我们把生产的馒头存放到一个(篮子)即栈中。有上面的描述,我可以抽出一下几个类。 ManTou 馒头类 StackBasket 篮子类(用于装馒头的类) Producer 用于生产馒头的类 Consumer 用于消费馒头的类/** * @author yikai * 馒头类,就是

2018-01-02 16:11:24 266

原创 android 6.0录制动态适配

前几天看了阿里云写的android6.0写的动态权限适配,觉得挺好的,记录一下。录制所需要的权限private static final String[] PERMISSIONS = new String[]{ Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, ...

2017-07-30 16:18:13 195

原创 android6.0录像动态权限问题

前几天看了一下阿里云写的android6.0动态适配,觉得写的很好,记录一下。录制所需要的权限private static final String[] PERMISSIONS = new String[]{ Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, Man

2017-07-30 15:34:20 2224

原创 卫星效果的实现(上下方向)

最近看了一下卫星效果,觉得不错,就写了一个简单入门的上下方向的。废话不多说,直接上代码public class MainActivity extends AppCompatActivity implements View.OnClickListener { private View iv_root; private View iv_robot; private

2017-05-03 13:00:41 240

原创 java找出两个字符串相同的元素

前两天面试,面试官让我在5分钟之内手写一个程序,就是找出两个字符串相等的元素,当时搞了一个双重循环,面试官说很low。现在写一个高效一点的,分享一下。public class TestMain { public static void main(String[] args) throws Exception { String A="abcdef";

2016-11-26 10:10:36 8627 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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