![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 80
水煮鱼又失败了
简书同步更新:https://www.jianshu.com/u/1dfa12253a76
展开
-
JWT的基本使用
1 场景JSON Web Token (JWT)是一种开放标准(RFC 7519),它定义了一种紧凑和自包含的方式,用于作为JSON对象在各方之间安全地传输信息。这个信息可以被验证和信任,因为它是数字签名的。JWTs可以使用密钥(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥进行签名。**官网:**https://jwt.io/2 说明2.1 结构在其紧凑的形式中,JSON Web令牌由点(.)分隔的三个部分组成,它们是:HeaderPayloadSignature因此,JWT原创 2021-03-17 20:57:50 · 360 阅读 · 0 评论 -
java中的多线程使用方式
1 场景java中默认情况下,程序都是同步执行的。即在一个线程中执行,程序未执行完,不返回请求。如下场景,均需要创建执行程序外额外的线程:有些场景,需要立即返回请求结果,核心程序在后台异步执行,此次情况需要使用异步线程;处理数据较多时,需要启用多线程执行,提高执行速度;2 直接创建线程java中可借助如下类,直接创建线程:Thread、Runnable、Callable。此种方式,不建议使用。频繁地创建线程,会占用大量的资源和时间,会大大降低系统的性能。2.1 Thread创建线程(1原创 2021-03-17 20:57:03 · 290 阅读 · 0 评论 -
java线程间ThreadLocal的传递
1 场景本文主要讲解java线程间ThreadLocal的传递。适用如下场景:(1)线程内new的新的线程,继承父线程的ThreadLocal(2)线程内调用线程池的线程,继承调用线程的ThreadLocall2 需确认问题2.1 继承线程的ThreadLocal的含义新创建的线程,拥有原线程内部的所有的ThreadLocal的配置,和手动配置一遍一样。2.2 子线程内的ThreadLocal的值和父线程内的有什么关系?子线程内被传递的ThreadLocal的值和父线程内的ThreadLo原创 2021-03-17 20:56:40 · 2020 阅读 · 0 评论 -
java集合快速构建成树形json
1 场景1.1 面对问题java中,经常会需要构建树形结构的json,如构建一个省市区的树形结构。此处情况,有如下几个情况需要解决:需要根据不同的前端组件,来定义不同格式的json(如easyui、ext里面的tree结构均不同)。如切换组件,原代码不适用树形结构,需手动组装,如不同的树形结构太多,则会花较多的时间来组装不同业务的树形结构。手动实现,代码较复杂,容易出问题如让java中的实体类实现定义的树形结构的接口,代码侵入性太强1.2 实现目标这里实现一个代码工具,各位朋友可以参考原创 2021-03-17 20:56:13 · 641 阅读 · 0 评论 -
Java对象内存布局
1 场景此文主要分析:在java中new Object()占用多少字节?在内存中的布局是怎么的?基于版本:jdk1.82 内存布局图jdk8中,Java对象的内存布局如下图:其中需注意:(1)数组对象中才有数组长度这一块内存区(2)所有的对象大小,必须是8字节的整数倍。因此有个内存补齐Padding区,当Java对象的内存不够8字节的整数倍,此Padding区进行补齐。3 代码验证验证环境:64位操作系统+JDK1.83.1 maven依赖<dependency>原创 2021-03-17 20:55:49 · 180 阅读 · 0 评论 -
java对象的访问定位
参考**《深入理解Java虚拟机》**1 场景java创建好对象后,访问对象的时候,java程序需要通过栈上的reference引用来操作堆上的具体对象。JVM规范未规定对象的访问方式,对象的访问方式由虚拟机决定。2 版本JDK:1.8虚拟机:hotspot3 说明主流的对象访问方式有:句柄和直接指针两种。普遍使用的Hot Spot虚拟机,使用的是直接指针的方式。3.1 句柄java堆中划分一块内存作为句柄池,reference中存储的是句柄的地址。句柄中包含了“对象实例数据”和“类原创 2021-03-17 20:50:33 · 87 阅读 · 0 评论 -
JAVA对象内存分配过程
1 场景此文主要分析:在java中new Object()占用多少字节?在内存中的布局是怎么的?基于版本:jdk1.82 内存布局图jdk8中,Java对象的内存布局如下图:其中需注意:(1)数组对象中才有数组长度这一块内存区(2)所有的对象大小,必须是8字节的整数倍。因此有个内存补齐Padding区,当Java对象的内存不够8字节的整数倍,此Padding区进行补齐。3 代码验证验证环境:64位操作系统+JDK1.83.1 maven依赖<dependency>原创 2021-03-17 20:49:20 · 75 阅读 · 0 评论 -
请求拦截之filter、interceptor、aop
1 场景web程序中,对用户的请求,经常会对请求进行拦截处理,常用的处理方式如下:FilterInterceptorAOP本文基于SpringBoot的web程序,进行这三种拦截方式的说明。2 区别三种拦截方式的区别如下:依赖Servlet容器Spring WebSpring基于实现回调机制反射机制(AOP思想)动态代理类别FilterInterceptorAOP实现方式实现接口Filter实现接口HandlerInterceptor原创 2021-03-15 22:31:29 · 423 阅读 · 1 评论 -
java对象序列化为字符串
1 场景java对象某些时候,需要序列化成字符串存储在数据库中,需要的时候,再将字符串反序列化为java对象。如使用shiro缓存分布式session,需要将session对象序列化成字符串存储在redis中,来达到分布式应用共享session的功能。为什么不序列化成json? java对象同样可以转换为`json`,需要的时候,再转换为java对象。这种情况一般只适用转换`自己创建的javaBean对象`,如果类是非自己管理的javaBean,对象内部`存在没有对外开放set/get方法的属性`,原创 2021-03-15 22:29:02 · 2200 阅读 · 0 评论