java
文章平均质量分 59
sleep的线程
500年风吹,500年雨打,却等不到唤醒我的那行代码
展开
-
volatile的设计原理,得从硬件CPU说起
原文链接:https://mp.weixin.qq.com/s/WTqdSz-lc5zzelJgk4Co8g写volatile的文章非常多,本人也看过许多相关文章,但始终感觉有哪里不太明白,但又说不上来说为什么。可能是过于追求底层实现原理,老想问一个为什么吧。而写这篇文章的目的很简单,就是突然之间明白了volatile为什么要这样设计了。好东西当然要拿出来分享了,于是就有了这篇文章。我们就从硬件到软件,再到具体的案例来聊聊volatile的底层原理,文章比较长,可收藏之后阅读。CPU缓存的出现最初的CPU是转载 2021-10-13 17:39:28 · 589 阅读 · 0 评论 -
docker镜像pull不下来最终解决方法
https://www.cnblogs.com/wang50902/p/11378202.html原创 2021-09-15 20:35:26 · 4054 阅读 · 0 评论 -
Java内存模型
为什么定义Java内存模型?现代计算机体系大部是采用的对称多处理器的体系架构。每个处理器均有独立的寄存器组和缓存,多个处理器可同时执行同一进程中的不同线程,这里称为处理器的乱序执行。在Java中,不同的线程可能访问同一个共享或共享变量。如果任由编译器或处理器对这些访问进行优化的话,很有可能出现无法想象的问题,这里称为编译器的重排序。除了处理器的乱序执行、编译器的重排序,还有内存系统的重排序。因此Java语言规范引入了Java内存模型,通过定义多项规则对编译器和处理器进行限制,主要是针对可见性和有序性。.原创 2021-07-02 10:29:39 · 87 阅读 · 0 评论 -
Kafka反解域名导致发消息失败::java.io.IOException: Can‘t resolve address: xxx主机名:9092
背景描述: 在虚拟机集群上搭建了zk、kafka(version:0.11)集群,在控制台上测试生产消费时正常。而后在windows端使用java api向虚拟机消费端生产发送数据,发现程序正常运行起来过了大概十秒后结束( exit code 0),但在虚拟机开启的消费者端并没有收到...转载 2020-10-14 16:13:23 · 2501 阅读 · 1 评论 -
spring data jpa 实体类中字段不与数据库表映射
-------想要实体类与字段不与数据库表映射可以使用SpringDataJPA的注解 @Transient @Transient private Date time;当我们给这个属性添加get方法时,@Transient注解会失效,仍然会报数据库字段映射不到的错误。 @Transient private Date time; public Date getTime() { return new Date(); }此时将@.原创 2020-10-14 13:50:38 · 3780 阅读 · 0 评论 -
浅谈jvm的GC(垃圾回收)
1. 什么是 GC?GC,全称是 Garbage Collection (垃圾收集)或者 Garbage Collector(垃圾收集器)。在使用 C语言编程的时候,我们要手动的通过 malloc 和 free来申请和释放数据需要的内存,如果忘记释放内存,就会发生内存泄露的情况,即无用的数据占用了宝贵的内存资源。而Java 语言编程不需要显示的申请和释放内存,因为 JVM 可以自动管理内存,这其中最重要的一部分就是 GC,即 JVM 可以自主地去释放无用数据(垃圾)占用的内存。我们研究 ...转载 2020-09-07 17:34:24 · 262 阅读 · 0 评论 -
推荐6款常用的Java开源报表制作工具
推荐6款常用的Java开源报表制作工具 openkk 9年前发布 | 89K 次阅读 Java 报表 JasperReports是一个基于Java的开源报表工具,它可以在Java环境下像其它IDE报表工具一样来制作报表。JasperReports 支持PDF、HTML、XLS转载 2020-08-28 14:07:16 · 2914 阅读 · 0 评论 -
springboot项目启动产生随机端口号并校验该端口号是否被占用
当一个springboot应用想要启动多个实例时,最简单的是改变端口,在服务启动的时候能随机生成一个可以使用的端口是最好不过的,你就不需要手动的去修改application.properties文件手动的去修改然后重启项目费时费力。不多说直接上代码:public class StartCommand { private Logger logger = LoggerFactory.getLogger(StartCommand.class); public StartCommand原创 2020-08-19 13:47:26 · 1470 阅读 · 0 评论 -
json串如何进行转义(双引号拼接转义字符)
后台处理直接上代码: public String ToJson(String strjson) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < strjson.length(); i++) { char c = strjson.toCharArray()[i]; //转换为字节数组 switch (c)转载 2020-06-01 15:03:11 · 2844 阅读 · 0 评论 -
谈谈你对''Java 是解释执行''这句话的理解
众所周知,我们通常把 Java 分为编译期和运行时。这里说的 Java 的编译和 C/C++ 是有着不同的意义的,Javac 的编译,编译 Java 源码生成“.class”文件里面实际是字节码,而不是可以直接执行的机器码。Java 通过字节码和 Java 虚拟机(JVM)这种跨平台的抽象,屏蔽了操作系统和硬件的细节,这也是实现“一次编译,到处执行”的基础。在运行时,JVM 会通过类加载器(C...原创 2019-10-16 15:26:13 · 158 阅读 · 0 评论 -
分布式、多线程与高并发,到底有什么区别?(简述)
当提起这三个词的时候,是不是很多人都认为分布式=高并发=多线程?当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼?确实,在一开始接触的时候,不少人都会将三者混淆,误以为所谓的分布式高并发的系统就是能同时供海量用户访问,而采用多线程手段不就是可以提供系统的并发能力吗?实际上,他们三个总是相伴而生,但侧重点又有不同。什么是分布式?...原创 2019-10-10 16:00:25 · 155 阅读 · 0 评论 -
HttpClient使用详解
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 ...转载 2019-08-20 10:09:50 · 356 阅读 · 0 评论