java
深南大盗
大神:写的了代码,查的出异常,杀的了木马,翻的了围墙!
展开
-
8).Android Jetpack 一个demo两分钟实现底部滑动导航栏
Android底部导航栏的实现方式特别多,例如TabHost,TabLayout,或者TextView等,都可以实现底部导航栏的效果。BottomNavigationbar+ViewPager2实实现底部滑动导航栏功能支持 图片+文字 组合 支持 仅图片 支持 未读消息 支持 自定义布局 支持 切换动画(可关闭) 支持 选中tab再次点击事件(多用于返回顶部或刷新) BottomNavigationBar bottomNavigationBar;...原创 2020-11-28 15:09:33 · 517 阅读 · 0 评论 -
7).Android Jetpack 一个demo两分钟完全掌握 Navigation
主要用于fragment跳转,替代commit,add方法!navigation资源文件需要先创建:fragment会发现有2分属性:app:navGraph: 属性赋值的是 nagation 文件app:defaultNavHost: 这个是和返回键相关的一般通过拖动的形式<span style="color:#000000"><span style="color:#cccccc"><code class="language-xml"&g...原创 2020-11-28 14:37:53 · 323 阅读 · 0 评论 -
6).Android Jetpack 一个demo两分钟完全掌握 MVVM(DataBinding+LiveData+ViewModel+Repository)
https://www.jianshu.com/p/6150cd307197?from=singlemessage&isappinstalled=0MVVM+ViewModel+LiveData+DataBind如何使用?Android mvvm架构demo(DataBinding+LiveData+ViewModel+Repository)数据操作是在model,vm直接调用model对象去请求数据;但还有一种做法,就是4层模型,在vm下面一层是Repository,Rep..原创 2020-11-26 17:27:37 · 958 阅读 · 0 评论 -
4).Android Jetpack 一个demo两分钟完全掌握 LiveData
参考:https://juejin.cn/post/6844904117496725511LiveData 是一个可观察的数据持有者类,与常规 observable 不同,LiveData 是生命周期感知的LiveData和lifecycle 有什么区别?LiveData里面要传一个lifecycle对象mutableLiveData.observe(this, new Observer<String>() { @Override public..原创 2020-11-24 20:42:02 · 234 阅读 · 0 评论 -
Android 抖音头像缩放特效 直播间特效 100%高度还原
原理分析:public class DouYinHeaderView extends View { private Bitmap bitmap; BitmapShader bitmapShader; Paint paint; Matrix matrix; private float currentScaleRatio = 1f; private float minScaleRation = 0.9f; private Pain..原创 2020-08-28 19:30:03 · 1142 阅读 · 0 评论 -
Android java 稀疏数组2分钟学会SparseArray
ArrayMapSparseArray 的系列除了前面分析的SparseArray,其实还有其它的一些类似的数据结构,它们总结起来就是用于存放基本数据类型的键值对:SparseIntArray— int:int SparseBooleanArray— int:boolean SparseLongArray— int:long 假设有一个9*7的数组,其内容如下:...原创 2020-03-15 16:53:32 · 386 阅读 · 0 评论 -
Android java CopyOnWriteArrayList使用和原理分析
一、Copy-On-WriteCopy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略二、什么是CopyOnWrite容器CopyOnWrite容器即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容...原创 2020-03-15 16:50:06 · 764 阅读 · 0 评论 -
java 内存模型JMM(Java Memory Model)三大特性可见 有序 原则性
关联:volatile关键字 在Java语言中,采用的是共享内存模型来实现多线程之间的信息交换和数据同步的。通信通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。在消息传递的并发模型里,线程之间没有公共状态,线程之...原创 2019-04-13 19:18:49 · 458 阅读 · 0 评论 -
java 泛型和泛型边界 2分钟看懂各种框架 无界 ? 下界 super 上界extents
什么是泛型?为什么要使用泛型?泛型泛型就是参数化类型适用于多种数据类型执行相同的代码 泛型中的类型在使用时指定 泛型归根到底就是“模版”优点:使用泛型时,在实际使用之前类型就已经确定了,不需要强制类型转换。泛型主要使用在集合中List arrayList = new ArrayList();arrayList.add("aaaa");arrayList....原创 2019-04-13 19:18:05 · 625 阅读 · 0 评论 -
java 秒懂 注解 (Annotation)你可以这样学 运行时注解和编译注解
区别Retrofit:运行时注解,需要用的时候才用到重写:编译的时候用到的。运行时注解与编译时注解的区别是什么呢?a)保留阶段不同。运行时注解保留到运行时,可在运行时访问。而编译时注解保留到编译时,运行时无法访问。b)原理不同。运行时注解是Java反射机制,而编译时注解通过APT、AbstractProcessor。c)性能不同。运行时注解由于使用Java反射,...原创 2019-04-13 19:16:33 · 2932 阅读 · 2 评论 -
Java 枚举(enum) 详解7种常见的用法 原理 枚举占用内存的原因
用法:周一到周五给 enum 自定义属性和方法给 enum 对象加一下 value 的属性和 getValue() 的方法: packagecom.hmw.test; /** * 枚举测试类 * * @author <a href="mailto:hemingwang0902@126.com">何明旺</a&g...原创 2019-04-13 19:15:55 · 1340 阅读 · 0 评论 -
Android 面试回答 老司机教你深入理解gc回收机制
Dalvik VMDalvik 虚拟机采用寄存器架构,而不是 JVM 的栈结构。Java 程序编译后的 .class 文件并不能在 Dalvik 中解释执行。因此 Google 提供了一个 dx 工具,用于将 .class 文件转换成 Dalivk 能够识别的 .dex 格式。具体 Dalvik VM 的细节不是本文重点,以下不再讨论。APP虚拟机: 安卓Andr原创 2017-09-29 16:31:40 · 6368 阅读 · 0 评论 -
Android中跨进程通信的几种方式
安卓中的四大组件,就是为了解决跨进程通信的问题1.广播2.contentProvide3.Service里面常用的AIDL=====其实就是Binder机制4.Activity 如调用系统通话应用(需要一个URI)Intent callIntent=new Intent(Intent.ACTION_CALL,Uri.parse("tel:1234567原创 2017-09-27 17:39:11 · 1693 阅读 · 0 评论 -
Android java中的ArrayList的原理和实现
一、 ArrayList概述: ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的CopyOnWriteArrayList类。ArrayList实现了Serial原创 2017-06-29 17:41:25 · 938 阅读 · 0 评论 -
HTTP、TCP、UDP,Socket,HTTPS(史上最强理解,没有之一)
TCP HTTP UDP三者的关系如下:TCP/IP是个协议组,可分为四个层次:网络接口层、网络层、传输层和应用层。在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。在传输层中有TCP协议与UDP协议。在应用层有HTTP,FTP、TELNET、SMTP、DNS等协议。HTTP全称是HyperText Transf原创 2017-03-28 19:45:40 · 44722 阅读 · 10 评论 -
Android 厉害了ThreadLocal的工作原理和实例分析
ThreadLocal介绍 ThreadLocal如果单纯从字面上理解的话好像是“本地线程”的意思,其实并不是这个意思,只是这个名字起的太容易让人误解了,它的真正的意思是线程本地变量。看看官方怎么说的。实现一个线程本地的存储,也就是说,每个线程都有自己的局部变量。所有线程都共享一个ThreadLocal对象,但是每个线程在访问这些变量的时候能得到不同的值,每个线程可以更改这些变原创 2017-03-27 18:19:35 · 733 阅读 · 0 评论