
java
文章平均质量分 71
followYouself
智障儿童欢乐多
展开
-
多线程并发问题分析与总结
多线程并发问题分析与总结原创 2022-12-11 00:00:00 · 1610 阅读 · 0 评论 -
架构模式 MVC MVP MVVM
MVC、MVP、MVVM模式的简单介绍原创 2022-07-23 16:25:43 · 1052 阅读 · 0 评论 -
Retrofit & Rxjava3 & RxAndroid
Retrofit & Rxjava3Retrofit:https://blog.csdn.net/followYouself/article/details/120317044引用库本文主要分析 implementation 'com.squareup.retrofit2:adapter-rxjava3:2.9.0'的源码implementation 'com.squareup.retrofit2:retrofit:2.9.0'implementation 'com.squareu原创 2021-09-30 18:11:44 · 741 阅读 · 0 评论 -
Rxjava3 & RxAndroid
Rxjava && Rxandroid引用方式implementation "io.reactivex.rxjava3:rxjava:3.1.1"implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'概念Observable是被观察者,也是生产者,也是source类型。Observer是观察者,也是消费者。被观察者、生产者、source、上游、upstream 是一类概念。在subscribeOn和observeOn经常会看原创 2021-09-30 18:10:05 · 697 阅读 · 0 评论 -
ThreadLocal
ThreadLocal顾名思义:线程本地的对象。一个ThreadLocal对象,在不同线程中,通过public T get() 函数返回的value是不同的。在Android的Looper.java中,使用了ThreadLocal对象存储线程自己的Looper对象,通过myLooper函数获取looper对象。ThreadLocal存储的对象类型是T,ThreadLocal<T>. 一个ThreadLocal在每个线程中只能存储一个T类型的value值。ThreadLocal对象是存储原创 2021-09-08 19:35:51 · 202 阅读 · 0 评论 -
ConcurrentHashMap(2)
transfer 扩容函数MIN_TRANSFER_STRIDE 每次至少扩容 16个hash桶,所以当table的长度小于等于 16时,只会有一个线程在进行扩容工作。支持多线程进行扩容。如果在扩容过程中,进行get函数操作,每个bin桶扩容完成后,旧tab的节点位置都会被设置为ForwardingNode(hash值为负)。ForwardingNode 重写了Node节点的find方法,会在NextTable中寻找正确的hash对象。参考资料https://juejin.cn/post/6844原创 2021-08-23 10:37:52 · 233 阅读 · 0 评论 -
ConcurrentHashMap(1)
android-29\java\util\concurrent\ConcurrentHashMap.java不支持key 或者 value 为null它是线程安全的,但不是锁(synchronization details)安全的。This class is fully interoperable with {@code Hashtable} in programs that rely on its thread safety but not on its synchronization detai原创 2021-08-23 10:35:34 · 318 阅读 · 0 评论 -
Java虚拟机
深入理解java虚拟机java体现架构可以分为:java设计语言、java API、class文件、虚拟机一个java程序都有一个java虚拟机实例.一个java虚拟机实例有单独的堆、方法区、栈等.双亲委派模型类装载器优先使用双亲装载器去装载类型,如果双亲装载器装载失败,那么类装载器才会尝试自己装载类.启动类装载器是根类装载器,由native方法实现.每一个类装载器都有一个唯一的命名空间,通过命名空间控制了类的访问权限.装载、连接、初始化.内存相关方法区. 装载的类信息存放在方.原创 2021-08-22 16:12:00 · 171 阅读 · 0 评论 -
HashMap
HashMapHashMap 是一个Node<K,V>数组(table) 和 链表(或者红黑树) 结构组成。 /** * The table, initialized on first use, and resized as * necessary. When allocated, length is always a power of two. */ transient Node<K,V>[] table; // Node数组声原创 2021-08-18 12:13:27 · 178 阅读 · 0 评论 -
设计模式和编码原则
编码六原则引用自:http://c.biancheng.net/view/1324.html开闭原则Software entities should be open for extension,but closed for modification。软件实体应当对扩展开放,对修改关闭,这就是开闭原则的经典定义。当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模...原创 2020-06-18 12:10:36 · 272 阅读 · 0 评论 -
正则表达式
正则表达式类常见符号* :代表前面的字符出现0次或者多次,最少0次+ :代表前面的字符出现一次或者多次,最少一次? :代表前面的字符出现0次或者一次. :匹配任意字符,处理换行符\n^ :匹配字符串的开始位置,在中括号中是匹配取反的字符集{} :匹配字符串的次数.形式入{n},{n,},{n,m}() :一个子表达式,也是一个子模式组\b :匹配单词边界.单词边界是空格和字母之...原创 2019-03-10 02:13:34 · 229 阅读 · 0 评论 -
Java中的锁—类锁、对象锁. synchronized 偏向锁 实现
规律总结并发。首先应该意识到只有在多线程(并发)的情况下才会有锁的竞争、获取的问题,单线程根本是不需要考虑锁的。同步。一个非同步的操作,在任何情况下都是可以被无阻塞执行的,无论对象或者是否处于锁状态。例如:对象A被锁住,但是这时对象A仍然可以被调用进行任何非同步操作。synchronized。synchronized修饰的代码块必须执行完(退出)才会释放锁。 synchronized修饰的...原创 2018-11-11 21:13:27 · 246 阅读 · 0 评论 -
Socket、read函数、http中headers
Socket、read函数、http中headers说明Socket1. Socket中几个函数setSoTimeout(int time)。设置read函数的阻塞时长,超过时长抛出SocketTimeoutException。shutdownOutput() / shutdownInput()。shutdownOutput()函数是关闭输出流,例如在客户端调用,此时代表客户端输出流关闭,不能再向...原创 2018-07-05 18:08:53 · 1123 阅读 · 0 评论 -
Ubuntu系统下Java环境变量配置
Java环境变量配置原创 2017-11-07 00:21:18 · 559 阅读 · 0 评论 -
JAVA中异常抛出、捕获机制—try catch throw
Java异常抛出,捕获机制原创 2017-11-11 18:36:55 · 3442 阅读 · 0 评论