Java
文章平均质量分 51
秋不白了
生活依旧如此美好
展开
-
Java之Arrays.asList(T...t)详解
学而时习之,不亦乐乎。今天的主题是Arrays.asList(),返回的List(ArrayList),为什么不支持remove,add操作。先上第一盘菜,跟着源码一步一步走 public static <T> List<T> asList(T... a) { return new ArrayList<>(a); }Arrays下的asList方法,返回的是一个ArrayList,发现此ArrayList非彼"ArrayLi原创 2021-04-18 16:09:28 · 463 阅读 · 7 评论 -
Java之无处不在的Node
前言 生活依旧如此美好。不断的学习不断的总结,那么我的总结来了。 从入行Android开发以来,刚开始的Google,百度,Ctrl+C,Ctrl+V的懵懵懂懂,未曾进一步学习为什么要这样写,只知道能解决问题。后来才意识到,解决疑惑,需要阅读和理解源码,才能知其然,知其所以然,做到举一反三。半道出家的人啊,需要补充Java基础,计算机基础知识,于是请教同龄先行者,敦子,猛锅子一行人,买了一些书籍,先后有Java编程思想,Java语言描述数据结构,Java并发...原创 2021-04-13 08:09:02 · 382 阅读 · 0 评论 -
自定义JsonAdapter解析Json
本文以Gson解析器:自定义JsonAdapter Json解析使用场景:json解析安全校验,避免外部输入非法数据Java Beanpackage com.redrose.rxandroiddemo.bean;import com.google.gson.annotations.JsonAdapter;import com.redrose.rxandroiddemo.json.UserJsonAdapter;@JsonAdapter(UserJsonAdapter.class)p原创 2021-04-06 22:50:32 · 946 阅读 · 0 评论 -
学习:笔记 java 四种引用以及区别
学而时习之,不亦乐乎。强引用:强引用:只要强引用存在,垃圾回收器将永远不会回收被引用的对象,哪怕内存不足时, JVM也会直接抛出OutOfMemoryError,不会去回收。如果想中断强引用与对象之间的联系 可以显示的将强引用赋值为null,这样一来,JVM就可以适时的回收对象了软引用:软引用:在内存足够的时候,软引用对象不会被回收,只有在内存不足时,系统则会回收软引用对象, 如果回收了软引用对象之后仍然没有足够的内存,才会抛出内存溢出异常。 这种特性常常被用来实现缓存技原创 2020-10-27 23:29:59 · 123 阅读 · 0 评论 -
学习:笔记— 什么死锁和活锁?如何解决
学海无涯死锁:产生死锁的必备条件:1.互斥条件2.请求保持3.不剥夺4.环路等待用自己理解来解释:1.多个线程同时去那多把锁,并且,锁的数量小于等于线程数量2.多个线程去拿锁的顺序是互斥的3.拿到锁后,不释放如何解决死锁?从产生死锁的必备条件着手,方法一:让线程间拿锁的顺序由互斥改成一致,这样,CPU在分配时间片时,就不会产生死锁 方法二:尝试去拿锁,如果拿不到就释...原创 2020-10-15 22:51:49 · 796 阅读 · 0 评论 -
学习:笔记 Java volatile和synchronized得区别
学海无涯synchronized:锁对象。方法。多线程间获取同一把锁才能继续执行volatile:最轻量级的同步机制,线程间共享变量,可见,但是在多线程下,同时对这个变量写的时候,并不能保证正确的写入数据,只能保证线程间可见,并不能取代synchronized适用场景:一写多读,一个线程去写,多个线程去读错误加锁以及原因分析:先看代码:/** * @author yinsx * @DESC TODO * @time 2020/10/14 22:17 * @email y原创 2020-10-15 22:39:01 · 110 阅读 · 0 评论 -
学习:笔记—Thread.正确退出线程的方式以及原因
学海无涯:java 多线程基础知识:stop()Thread 的stop()为什么不建议使用,因为stop会导致线程的资源不被正确的释放,太过于强硬,interrupt()对线程发起一个中断,并不是真正的中断线程,其实是修改线程的中断标志位的值,不代表当前线程立即中断。源码 public static boolean interrupted() { return currentThread().isInterrupted(true); }..原创 2020-10-13 23:17:17 · 780 阅读 · 0 评论 -
学习:笔记-Java 静态代理和动态代理
学海无涯。静态代理:只能代理一个接口。动态代理,可以代理多个申明接口interface Wash { void onWash();}interface AnMo { void onAnMo();}声明静态代理对象/** * @author yinsx * @DESC TODO * @time 2020/10/12 21:40 * @email yinsxi@163.com */class Agent { AnMo anMo;原创 2020-10-12 22:33:32 · 144 阅读 · 0 评论 -
学习:关于解析网络请求Respondse数据--实现自己的TypeToken获取真实类型
学海无涯。参考Gson使用Type解析数据示例代码。可以查看源码查new TypeToken的时候使用的是哪个构造方法,以及如何获取到真实类型的,示例代码和自己获取真实类型: Type type = new TypeToken<Response<Data>>() { }.getType(); Gson gson = new Gson(); Response<Data> response = gson.原创 2020-10-11 20:48:48 · 261 阅读 · 0 评论