JAVA
chenzihao36
知行合一
展开
-
高并发编程常用容器和J.U.C包常用工具介绍
J.U.C包中一些工具的简介一、HashMap原创 2020-06-29 17:15:17 · 310 阅读 · 0 评论 -
两个例子解释线程的可见性和原子性问题
两个例子解释线程的可见性和原子性问题多线程情况下,会出现两种线程安全的问题:可见性和原子性问题。具体针对这两种多线程情况下出现问题的解决方案如下:(1)可见性://用volatile关键字屏蔽CPU缓存和指令重排序,保证线程可见性public class VolatileTest { boolean flag = true;//用这个会导致thread1线程不能读到被修改的flag值,thread1线程的循环永远不会结束// volatile boolean flag = true;原创 2020-06-24 11:49:53 · 251 阅读 · 0 评论 -
线程池原理与API使用介绍
线程池原理与API使用简介一、线程池原理首先我们要明确为什么用多线程?是不是线程越多就越好?随着现代多核CPU的发展,原创 2020-06-23 16:29:36 · 468 阅读 · 0 评论 -
利用Spring的Aop机制、自定义注解和反射实现代码功能增强
利用Spring的Aop机制、自定义注解和反射实现代码功能增强一、预备知识的简单介绍:(1)AOP:它是Spring为我们提供的一个十分有用的机制,AOP采用称为“横切”的技术,把一些与业务代码不是强相关的功能独立出来,从而形成一个“切面”,并且我们把这个“切面”切到业务流程的某个位置,以实现业务增强。(2)注解:它是一种能被添加到java代码中的元数据,类、方法、变量、参数和包都可以用注解来修饰。注解对于它所修饰的代码并没有直接的影响。通俗来说,注解就是一个标签,我们可以用@interface来写一原创 2020-06-15 18:06:36 · 448 阅读 · 0 评论 -
从BIO到NIO再到Netty一次讲明白
一、Netty简介netty是一个高性能、高可扩展的异步事件驱动的网络应用程序框架,它极大地简化了TCP和UDP客户端和服务器开发等网络编程。要了解netty首先我们需要要先了解BIO和NIO:1. BIO: BIO是Java中提供的阻塞式网络编程开发包,它通过socket接口和I/O包进行通信与数据处理。但是,这种方法有一些缺陷,比如,ServerSocket.accept()方法是一个阻...原创 2019-11-12 23:59:24 · 328 阅读 · 0 评论 -
JVM内存结构介绍(java运行时数据区)
关于JVM内存结构的一点介绍(java运行时数据区)写前BB:这是本人的第一篇博客,主要记录我在学习过程中的一些心得体会与知识总结,以后也会不定期更新。通过写博客,我总结和复盘了学习的知识,也希望通过我的分享能让更多的人获得一些启发。当然由于本人是一个菜鸟,写博客中也会出现一些错误和用词不当的地方,还请多多交流,同时也希望各位大佬们轻喷_(:з」∠)_ _java运行时数据区我们进行jav...原创 2019-08-19 18:55:10 · 211 阅读 · 0 评论