![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 77
#全家桶
这个作者很懒,什么都没留下…
展开
-
Android—HTTPS部署自签名证书
Android 作为客户端https 通信,通常需要一个SSLContext, SSLContext 需要配置一个 TrustManager,如果是双向通信,还需要一个KeyManager。KeyManager 负责提供证书和私钥,证书发给服务端校验。双向认证 TrustManager + KeyManager。TrustManager 负责校验服务端发来的证书。单向认证 TrustManager。二、Android 客户端的配置。一、生成自签名私有证书。原创 2023-02-14 18:47:06 · 1599 阅读 · 0 评论 -
Android—内存泄漏、GC及LeakCanary源码解析
内存泄露():程序在向系统申请分配内存空间后(new),在使用完毕后未释放。结果导致一直占据该内存单元,我们和程序都无法再使用该内存单元,直到程序结束,这是内存泄露。内存溢出(OOM):程序向系统申请的内存空间超出了系统能给的。比如内存只能分配一个int类型,我却要塞给他一个long类型,系统就出现oom。又比如一车最多能坐5个人,你却非要塞下10个,车就挤爆了。大量的内存泄露会导致内存溢出(oom)。引起内存泄漏的情况对于使用了BraodcastReceiver,ContentObserv原创 2020-06-02 17:09:15 · 618 阅读 · 0 评论 -
Android—AspectJ实践
AspectJ支持编译期和加载时代码注入Advice(通知):典型的 Advice 类型有 before、after 和 around,分别表示在目标方法执行之前、执行后和完全替代目标方法执行的代码。Joint point(连接点):程序中可能作为代码注入目标的特定的点和入口。Pointcut(切入点):告诉代码注入工具,在何处注入一段特定代码的表达式。Aspect(切面):Pointcut 和 Advice 的组合看做切面。例如,在本例中通过定义一个 pointcut 和给定恰当的...原创 2021-10-08 19:58:34 · 382 阅读 · 0 评论 -
Android—简单路由框架实践
简单路由框架实现:1.目录结构annotation和factory-compiler是两个javalibrary,分别负责接口还有APT。2.依赖关系app作为主工程依赖所有implementation project(':annotation')implementation project(':router')implementation project(':secondmodule')annotationProcessor pro...原创 2021-10-08 19:47:34 · 280 阅读 · 0 评论 -
Android—APT实践
APT可以根据注解,在编译时生成代码。1. 创建两个java library2. 依赖factory-compiler的依赖dependencies { implementation 'com.google.auto.service:auto-service:1.0-rc4' implementation project(':annotation') implementation 'com.squareup:javapoet:1.10.0' ...原创 2021-08-02 19:25:34 · 167 阅读 · 0 评论 -
Java—JVM的内存
内存JAVA是在JVM所虚拟出的内存环境中运行的,JVM内存区域主要包括:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。线程独占:程序计数器:计数器记录的是虚拟机字节码指令的地址(当前指令的地址)。字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等功能都需要依赖这个计数器。虚拟机栈(stack):常说的栈也就是虚拟机栈,栈是由一个个栈帧组成,而每个栈帧中都拥有:局部变量表、操作数栈、动态链接、方法出口信原创 2020-10-18 19:54:48 · 203 阅读 · 0 评论 -
Java—关于单例模式的实现方式
1.饿汉式(线程安全,调用效率高,但是不能延时加载):JVM初始化的时候创建对象,不能延时public class ImageLoader{ private static ImageLoader instance = new ImageLoader; private ImageLoader(){} public static ImageLoader getInstance(){ return instance; } }2原创 2020-05-27 22:56:27 · 160 阅读 · 0 评论 -
Java—JVM加载机制
编程语言有两种:1、编译型语言 将代码一次性编译成计算机可识别的二进制文件,语言有C和C++2、解释型语言 通过解释器,一行行读取我们编写的代码转换成二进制数据后执行,JVM就是解释器,语言有java和kotlin类的生命周期:一、类的加载在加载的时候,虚拟机将我们写的.java文件,编译成字节码后加载到内存里,然后在内存中生成一个java.lang.Class对象,作为方法区这个类的各种数据的访问入口。二、类的连接类的加载过程后生成了类的ja...原创 2020-05-27 22:32:22 · 127 阅读 · 0 评论 -
Java—Collection、Map、树
Collection <类型> List可以重复,有顺序 ArrayList 主选 结构:数组 特点:查找快,增删慢 线程不安全,效率高 Vector 结构:数组 特点:查找快,增删慢 线程安全,效率低 LinkedList 结构:链表 特点:查找慢...原创 2020-05-26 20:07:57 · 253 阅读 · 0 评论 -
Java、Android—零碎难记笔试考点(持续更新)
String类是final类“对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象”。public class Test{ public static void main(String[] args){ String a = "aaaa"; String b = a.replace('a', 'b'); System.out.println(a); System.out.print(b);原创 2020-05-30 22:18:45 · 1573 阅读 · 1 评论 -
Java—TCP与HTTP连接
对称加密客户端和服务器共用同一个密钥,该密钥同时用于加密和解密一段内容。 对称加密的优点是加解密效率高,但是在安全性方面可能存在一些问题,因为密钥存放在客户端有被窃取的风险。对称加密的代表算法有:AES、DES等。非对称加密将密钥分成了两种:公钥和私钥。 公钥通常存放在客户端,私钥通常存放在服务器。 使用公钥加密的数据只有用私钥才能解密,反过来使用私钥加密的数据也只有用公钥才能解密。 非对称加密的优点是安全性更高,因为客户端发送给服务器的加密信息只有用服务器的私钥才能解密,因此不用担心被别原创 2020-06-03 11:51:44 · 2554 阅读 · 1 评论