![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java-ee
老螺丝
支持中国金融数字化转型,coding爱好者
展开
-
JAVA并发编程与伪共享
伪共享原因缓存系统中是以缓存行(cache line)为单位存储的。缓存行是2的整数幂个连续字节,一般为32-256个字节。最常见的缓存行大小是64个字节。当多线程修改互相独立的变量时,如果这些变量共享同一个缓存行,就会无意中影响彼此的性能,这就是伪共享。Java内存布局(Java Memory Layout)对于HotSpot JVM,所有对象都有两个字长的对象头。第一个字是由24位哈希码和8位标志位(如锁的状态或作为锁对象)组成的Mark Word。第二个字是对象所属类的引用。如果是数组对象还需原创 2020-07-14 18:10:35 · 172 阅读 · 0 评论 -
自建线程池优雅下线
自建线程池优雅下线什么场景下使用线程池什么场景下不要使用线程池常见线程池阿里线程开发规约多线程优雅下线线程池关闭创建线程池参数参考文献什么场景下使用线程池同步改异步提高并发吞吐量什么场景下不要使用线程池系统资源已经接近瓶颈(内存、CPU、IO)上游已经有多线程(多线程嵌套、在线程池中创建线程池)常见线程池(1) newFixedThreadPool建立一个线程数量固定的线程池,规定的最大线程数量,超过这个数量之后进来的任务,会放到等待队列中,如果有空闲线程,则在等待队列中获取,遵原创 2020-05-28 16:40:58 · 380 阅读 · 0 评论 -
@ConditionalOnClass(A.class)为什么不报错
问题说明条件加载是springboot自动配置的刚需,其中有两个条件@ConditionalOnClass和@ConditionalOnMissingClass非常特别,它是基于class类是否存在判断的。场景的使用场景如下:import A;import B;@Configurationclass C{ @Bean @ConditionalOnClass(A.clas...原创 2019-08-09 16:41:38 · 6038 阅读 · 0 评论 -
springscurity实战
springscurity为我们提供了强大的内置功能,但在实际应用场景中依然需要做一定的定制开发和配置。本文尝试通过实战一起了解springscurity的内部世界。需求场景混合式开发APP(Hybrid APP)是目前移动互联网主流的前端框架,这样的前端框架对后端接口服务和安全控制有个性化需求,简单整理如下:动静分离,所有接口返回都是json无状态restful接口,没有会话保持手机...原创 2019-01-17 09:49:28 · 644 阅读 · 0 评论 -
springsecurity核心要义
springsecurity框架的核心组件SecurityContextHolder:提供对SecurityContext的访问SecurityContext:持有Authentication对象和其他可能需要的信息AuthenticationManager: 其中可以包含多个AuthenticationProviderProviderManager:AuthenticationMan...原创 2018-12-31 11:48:54 · 378 阅读 · 0 评论 -
java 持久化
#名词大作战##什么是JPAJPA(Java Persistence API )中文名Java持久层API,JPA通过注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用开发工作;其二,Sun希望整合ORM技术,实现天下归一。Hibernate3.2+、TopLink 10....原创 2018-12-03 11:52:53 · 3669 阅读 · 0 评论 -
Java工具箱--getResource()
了解Java如何找到资源是很重要的。Java中的资源加载与“位置无关”,Java也区分绝对资源名称和相对资源名称。而这些名称由Java ResourceLoader处理不同。最后一个小问题可能会导致问题,特别是因为“错误”的资源名称在某些情况下也会产生效果原创 2017-09-12 09:24:17 · 723 阅读 · 0 评论 -
Java工具箱--Stream流
Stream是jdk8提供的函数式编程工具,非常强大原创 2017-09-26 16:22:19 · 293 阅读 · 0 评论 -
sonar问题修改
sonar问题及解决方案原创 2017-09-13 16:06:55 · 1800 阅读 · 0 评论 -
java 工具箱 AOP
面向切面编程(AOP)通过提供另外一种思考程序结构的途经来弥补面向对象编程(OOP)的不足。在OOP中模块化的关键单元是类(classes),而在AOP中模块化的单元则是切面。切面能对关注点进行模块化,例如横切多个类型和对象的事务管理。原创 2017-08-06 20:09:09 · 445 阅读 · 0 评论 -
Java工具箱-java.security
互联网应用有大量敏感数据在公网传输,存在被伪造、篡改、非法读取等风险。数据加密目前是对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。原创 2017-07-27 14:00:17 · 1095 阅读 · 0 评论