Java
文章平均质量分 67
MirkoWug
如果生存不是为了撸代码,那还有什么意义
展开
-
Android组件化依赖库,Base库、网络、UI、相册、拍照、扫码、JsBridgeWebview等库一键引入
Android组件化依赖库,base库一键引入原创 2022-06-21 15:43:39 · 293 阅读 · 0 评论 -
外观模式、代理模式、装饰模式和中介者模式的区别
外观模式面对复杂的子系统,对外提供统一的接口调用代理模式控制对被代理类的访问。装饰模式装饰器是装饰对象,为装饰的对象增强功能中介者模式封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散。...原创 2021-04-07 15:24:37 · 511 阅读 · 0 评论 -
事件合并CountDownLatch、CyclicBarrier与RxJava中的zip和merge、concat
事件合并相关的应用1、CountDownLatchcountDownLatch是一个计数器,线程完成一个记录一个,计数器递减,只能只用一次2、CyclicBarrierCyclicBarrier的计数器更像一个阀门,需要所有线程都到达,然后继续执行,计数器递增,提供reset功能,可以多次使用RxJava 中的合并操作符Observable.just(1,2,3,4,5),Observable.just(“A”,“B”,“C”,“D”)3、concat(按顺序不会交叉)concat:组合多个原创 2021-03-22 15:10:34 · 362 阅读 · 0 评论 -
Java堆内存
Java堆内存 Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor、To Survivor。这样划分的目的是为了使 JVM 能够更好的管理堆内存中的对象,包括内存的分配以及回收。 新生代:Young Generation,主要用来存放新生的对象。老年代:Old Generation原创 2021-03-17 10:58:28 · 730 阅读 · 0 评论 -
Java并发编程:线程池的使用
Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在Java中可以通过线程池来达到这样的效果。今天我们就来详细讲解一下Java的线程池,首先我们从最核心的ThreadP.原创 2021-03-10 14:18:34 · 132 阅读 · 0 评论 -
引用拷贝、浅拷贝和深拷贝区别
类型拷贝一般分为二大类 引用拷贝 和 对象拷贝,我们通常讲的深拷贝和浅拷贝都属于对象拷贝。引用拷贝顾名思义,即是对引用地址的拷贝,说明引用地址一样,指向堆中的对象是同一个对象。如果对一个对象进行改变,其他对象也会跟着改变。对象拷贝对象拷贝指 对某一对象进行拷贝,是创建了一个全新的对象,也就是内存中存在二个不同地址的对象,这二个对象的基本数据类型变量的内容值都是一样的,但所包含的对象变量的地址可能一样可能不一样,浅拷贝与深拷贝的区别就在这里。1.浅拷贝当前对象里包含有对象变量,如果复制的对象中原创 2020-09-30 18:48:25 · 4361 阅读 · 2 评论 -
Bitmap计算大小方式
首先我们来了解一下四种存储模式public static final Bitmap.Config ALPHA_8public static final Bitmap.Config ARGB_4444public static final Bitmap.Config ARGB_8888public static final Bitmap.Config RGB_565ARGB_8888、ARGB_4444、RGB_565、ALPHA_8四种类型为bitmap在内存中存在的四种色彩的存储模式,他们本质原创 2020-09-15 10:28:41 · 3970 阅读 · 0 评论 -
JNI静态注册和动态注册区别
废话不多说,直接开始注意:无论是动静态注册还是动态注册,Java端代码都是一样的,所谓的静动态注册是指在C/C++里面的操作,下面会具体讲静态注册java代码:public class JniTest { static { System.loadLibrary("jniTest"); } public static native String stringFromJNI(); public static native String stringFro原创 2020-08-22 18:10:35 · 1131 阅读 · 0 评论 -
HashMap知识点和红黑树知识点
HashMap知识点初始容量 16 装载因子 0.75 默认限制扩容数 64 转换红黑树阈值 8 转换链表阈值 6当链表长度大于8 链表转为红黑树(前提是HashMap容量达到64) 当红黑树中的元素个数小于6 再转回链表(前提是根节点或者子节点为空)。(其实不准确:https://www.jianshu.com/p/edbde2897da22.1 大于8,是先考虑table数组扩容,达到限制扩容64后,才转换2.2 只有在resize()时根据阀值转换;remove()时会先判断原创 2020-08-20 16:58:34 · 266 阅读 · 0 评论 -
Android单例模式剖析
前言对Android开发者来说,相信对并发编程知识的掌握是非常薄弱的,一直是个人进阶的软肋之一。对于并发实践经验缺乏的开发者来说,文绉绉的技术书籍和博客,会比较羞涩难懂。从本文开始,尝试着逐个攻破并发编程的基础知识点。面试10问本文结合个人实际面试经验和最近学习归纳总结而出,欢迎各位大佬点赞支持。通过面试10问,让大家掌握单例模式的双重检查模式和静态内部类单例模式,并了解其中原理。从原理进而引出本文的重点:volatile和synchronized。第1问:平常在Android开发中,有用到哪么设原创 2020-08-05 18:03:56 · 199 阅读 · 0 评论 -
多线程并发 ,生产者与消费者 ,吃包子demo
多线程并发 ,生产者与消费者 ,吃包子demo定义:1.一家店铺可以有多个厨师,厨师做包子2.多个消费者来就餐 ,吃包子3.装包子的容器有限,包子数量到达一定值就不做了,等待客人消费public class FoodPacket { public static final int MAX = 10;//最大容量 ArrayList<String> list = new ArrayList<>();//容器 public synchronized原创 2020-08-04 17:21:24 · 413 阅读 · 0 评论 -
Java多线程 - 不要同步Boolean常量
在JAVA中通过synchronized语句可以实现多线程并发。使用同步代码块,JVM保证同一时间只有一个线程可以拥有某一对象的锁。锁机制实现了多个线程安全地对临界资源进行访问。同步代码写法如下:代码1:Java代码Object obj = new Object(); ... synchronized(obj) { //TODO: 访问临界资源 } JAVA的多线程总是充满陷阱,如果我们用Boolean作为被同步的对象,可能会出现以下两种情况:一. 以为对一个对象加锁,实原创 2020-08-04 15:22:08 · 486 阅读 · 0 评论 -
Java多线程编程
原标题:Java并发编程,一定要有自己的理解【面试+工作】 编写优质的并发代码是一件难度极高的事情。Java语言从第一版本开始内置了对多线程的支持,这一点在当年是非常了不起的,但是当我们对并发编程有了更深刻的认识和更多的实践后,实现并发编程就有了更多的方案和更好的选择。本文是对并发编程的一点总结和思考,同时也分享了Java 5以后的版本中如何编写并发代码的一点点经验。 为什么需要并发 并发其实是一种解耦合的策略,它帮助我们把做什么(目标)和什么时候...转载 2020-08-04 15:09:44 · 208 阅读 · 0 评论 -
APK反编译之一:Smali语法基础知识
APK、Dalvik字节码和smali文件APK文件 大家都应该知道APK文件其实就是一个MIME为ZIP的压缩包,我们修改ZIP后缀名方式可以看到内部的文件结构,例如修改后缀后用RAR打开鳄鱼小顽皮APK能看到的是(Google Play下载的完整版版本): Where's My Water.zip\asset\ ..原创 2020-07-17 11:43:12 · 517 阅读 · 0 评论 -
HashMap,LinkedHashMap,TreeMap的区别
Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的。HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMa...转载 2019-07-25 11:31:01 · 220 阅读 · 0 评论