- 博客(24)
- 资源 (6)
- 收藏
- 关注
原创 LiveData数据倒灌?你真的用对了吗?源码解析
LiveData、lifecycle源码分析、粘性事件是什么、如何解决数据倒灌、常见面试题及答案
2023-04-11 19:15:49
1552
原创 树
文章目录树概念度高度和深度树的存储结构斜树满二叉树完全二叉树二叉树的存储结构遍历方法二叉排序树概念增删改查操作:哈夫曼数压缩基本思想平衡二叉树概念左旋左平衡树右平衡树红黑树树概念度高度和深度树的存储结构双亲表示法孩子表示法(最常用)首先得知道这棵树的度,为每个节点的长度。双亲孩子表示法孩子兄弟表示法斜树满二叉树完全二叉树二叉树的存储...
2020-01-10 14:26:19
361
原创 阻塞队列与线程池
文章目录阻塞队列与线程池阻塞队列阻塞队列类型入队出队操作生产消费者模式传统版v1版本传统版v2版本阻塞队列v3版线程池线程池几种线程池线程池七大参数线程池运行过程线程池拒绝策略使用哪种线程池拒绝策略验证自定义线程池阻塞队列与线程池阻塞队列阻塞队列类型有七种类型的阻塞队列,但常用的线程池中主要用到三种阻塞队列,所以主要看看这三种阻塞队列。ArrayBlockingQueue:由数组构成的...
2020-01-10 14:25:17
873
原创 集合类线程安全问题
文章目录集合类线程安全问题ArrayList并发修改异常为什么出现解决方案写时复制其他unsafe集合类集合类线程安全问题ArrayList先不谈ArrayList线程安不安全问题,看其源码可以知道,我们在new一个ArrayList的时候,其实底层使用的是数组作为数据结构的。 /** * Default initial capacity. */ priv...
2020-01-10 14:24:39
280
原创 java锁
文章目录java锁可重入锁及其验证手写一个自旋锁读写锁代码验证CountDownLatchCyclicBarrierSemaphoresynchronized和ReentrantLock区别死锁java锁公平锁:多个线程按照申请锁的顺序获取锁,先来后到,每个线程在获取锁时会先查看此锁维护的等待队列,如果为空,或者当前线程是等待队列的第一个,就占有锁,否则加入到等待队列中,遵从FIFO。非公...
2020-01-10 14:24:03
190
原创 CAS及ABA问题
CAS并发中线程安全必须保证三个要素,原子性、可见性、有序性。使用volatile可以保证可见性和有序性,但是不能保证原子性。所以还是会出现并发修改紊乱的问题。这里的解决方法可以通过synchronized修饰,但是太重了,所以使用原子类保证原子性即可,但是原子类底层是如何保证原子性的值得研究,首先一点就是CAS。CAS是什么campareAndSwap.JDK8,在AtomicInte...
2020-01-10 14:23:29
158
原创 volatile深度解析
volatile深度解析volatile是什么volatile是Java虚拟机提供的轻量级的同步机制。它有三个特征:保证可见性不保证原子性禁止指令重排想要理解volatile的工作机制首先要了解JMM,java memory model,即java内存模型。Java内存模型(JMM)JMM本身是一种抽象的概念,并不真实存在。它描述的是一组规则或规范,通过这组规范定义了程序中各个...
2020-01-10 14:22:33
188
原创 强软弱虚引用
文章目录强软弱虚引用强引用软引用内存充足内存不足适用场景弱引用WeakHashMap虚引用引用队列虚引用和引用队列总结强软弱虚引用强引用当内存不足,JVM开始垃圾回收,对于强引用的对象,就算是出现了OOM也不会对该对象进行回收。强引用是我们最常见的普通对象的引用,只有还有强引用指向一个对象,就表明该对象还活着,垃圾回收器不会回收这种对象。在java中最常见的就是强引用,把一个对象赋给一个引...
2020-01-10 14:21:20
423
原创 GC
文章目录GC元空间和永久带GC过程GC过程分析GC算法如何确定垃圾哪些对象可作为GCRootJVM调参查看进程参数配置:常用参数配置常见堆栈错误异常栈溢出错误OOM错误Java heap spaceGC回收时间过长Direct Buffer Memory Errorunable to create new native threadOOM Metaspace垃圾回收器垃圾回收器分类垃圾回收器调配G...
2020-01-10 14:20:30
1130
原创 JVM
文章目录JVMJVM体系结构类加载器ClassLoader类加载器的种类双亲委派存储结构PC寄存器方法区栈栈堆方法区交互堆堆内存堆变量的生命周期JVMJVM体系结构类加载器ClassLoader负责加载class文件,class文件在文件开头有特定的文件标识,将class文件字节码内容加载到内存中,并将这些内容转换成方法区中的运行时数据结构并且ClassLoader只负责class文件的...
2020-01-10 14:16:54
310
原创 HTTP(1.1)(s)
文章目录HTTP(/1.1)(s)HTTPHTTP简介HTTP特点报文状态码请求方法get和post区别与HTTP密切相关的协议IP协议ARP协议TCP协议DNS服务一图胜千言HTTP/1.1无状态长连接HTTPSHTTP的不足HTTPS加密方式验证通信方身份防止接受到的内容被篡改HTTP + 加密 + 认证 + 完整性保护 = HTTPS加密机制通信机制HTTPS慢Web攻击HTTP(/1.1...
2020-01-10 14:13:04
410
原创 java反射
java反射参考资料:https://blog.youkuaiyun.com/sinat_38259539/article/details/71799078反射概述原作者总结的非常到位,这里只划上重点。JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取类的信息以及动态调用对象的方法的功能称为ja...
2018-06-20 19:00:14
158
原创 java面向对象
java面向对象面向对象的理解参考资料:https://blog.youkuaiyun.com/xxf159797/article/details/53669822类类是对客观事物的一种抽象,但是客观事物有很多属性和行为,我们不可能把所有的属性和行为都抽象出来,所以有什么需求就抽象哪一部分。比如抽象一本书,如果以一个作家的身份来抽象,可能得到的属性会是页数、字数、写作时长等,抽象的...
2018-06-18 17:12:43
292
原创 java六大存储区域
java六大存储区域参考资料:https://blog.youkuaiyun.com/qq_28009065/article/details/79087831存储速度:寄存器(register)这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。java中,你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。...
2018-06-18 17:11:28
10029
原创 flask问答平台小案例笔记
flask问答平台小案例笔记配置文件config.py(配置项目基本信息)import osfrom datetime import timedelta# debug模式DEBUG = True# 配置数据库DIALECT = 'mysql'DRIVER = 'mysqldb'USERNAME = 'root'PASSWORD = '1234'HO...
2018-05-17 20:38:33
479
原创 flask的基本使用
flask的基本使用顺着视频学习视频地址:https://ke.qq.com/course/228864#term_id=100270059开启debug模式为什么开启debug模式原因1:看下面这段代码,很明显除数不能为0,会抛出异常。@app.route('/')def hello_world(): a = 1 b = 0 c = a / b ret...
2018-05-17 20:37:56
4358
原创 安装python虚拟环境virtualenv
安装python虚拟环境virtualenv在此之前必须配置Scripts的环境变量,否则无法使用pip安装virtualenv。安装这个东西的作用是为了解决python或者flask等框架版本不兼容问题,它可以使不同版本的项目独立运行。pippip install virtualenv创建虚拟环境目录(开辟虚拟环境)创建一个文件夹专门存放不同版本的flask环境目...
2018-05-17 20:36:48
255
原创 友盟分享第四方登录自动集成_学习笔记
友盟分享和第四方登录自动集成PS:写在最前面,先注册Application。PS:写在最前面,先注册Application。PS:写在最前面,先注册Application。没有注册的话报空指针异常:‘void com.umeng.commonsdk.debug.UMDebugLog.mutlInfo(java.lang.String, int, java.lang.String...
2018-04-12 17:32:31
1376
原创 图片压缩_学习笔记
图片压缩_学习笔记android原生图片压缩方法 private String beforeCompressPath = Environment.getExternalStorageDirectory().getAbsolutePath()+ File.separator + "183" + File.separator + "TestCompress...
2018-04-07 11:19:20
281
原创 进程守护_学习笔记
进程守护_学习笔记为什么需要进程守护360、应用宝等一键加速功能通过遍历进程来kill程序手机内存不足自动回收进程进程保活的一种:进程守护进程守护的原理我们可以让APP有两个服务进程,彼此监听状态,如果一个进程被kill掉了,另一个立马将其唤醒。进程守护的实现创建两个服务,一个主服务,一个守护服务MainActivity中,程序一启动,两个服务也...
2018-04-06 12:48:12
279
原创 友盟统计+渠道包_学习笔记
友盟统计+渠道包_学习笔记资料:官网:https://developer.umeng.com/docs/66632/detail/66889#h3-u5E38u89C1u95EEu9898视频资料:善知堂高级不外传技术之友盟统计+渠道包一、友盟统计1、集成获取APPKey:在编辑应用中看到:5ac59318b27b0a3b6c00030f自动集成:depend...
2018-04-05 19:08:56
2861
原创 RxJava2_学习笔记
RxJava2学习笔记参考资料:入门:https://www.jianshu.com/p/d149043d103a操作符详解:https://www.jianshu.com/p/0cd258eecf60实战练习:https://www.jianshu.com/p/c935d0860186gayhub官网:https://github.com/ReactiveX/RxJava...
2018-03-27 15:25:37
209
原创 Retrofit2.0基本使用_学习笔记
Retrofit使用:本文只讲Retrofit最基本的使用,文末有demo地址,参考资料如下: http://blog.youkuaiyun.com/lmj623565791/article/details/51304204 http://square.github.io/retrofit/ https://www.jianshu.com/p/308f3c54abdd https://www.cn...
2018-03-20 12:02:27
316
java socket长连接
2019-03-01
数据库课设 java课设都可用 机房管理系统 课程设计
2017-12-30
数据库课设,java课设都可用,小型超市商品管理系统 课程设计
2017-12-24
android工具类整理
2017-12-06
( 教师信息管理系统课程设计(数据库) 课程设计
2017-12-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人