![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 77
Mr_haining
在逆境中寻求希望!在悲观中寻求快乐!
展开
-
Java并发关键字-synchronized
synchronized简介在学习知识前,我们先来看一个现象:开启了10个线程,每个线程都累加了1000000次,如果结果正确的话自然而然总数就应该是10 * 1000000 = 10000000。可就运行多次结果都不是这个数,而且每次运行结果都不一样。这是为什么了?有什么解决方案了?这就是我们今天要聊的事情。我们已经了解了Java内存模型的一些知识,并且已经知道出现线程安全的主要来源于JMM的设计,主要集中在主内存和线程的工作内存而导致的内存可见性问题,以及重排序导致的问题,进一步知道了hap原创 2021-11-22 11:34:24 · 133 阅读 · 0 评论 -
JDK自带工具keytool生成ssl证书
前言:因为公司项目客户要求使用HTTPS的方式来保证数据的安全,所以木有办法研究了下怎么生成ssl证书来使用https以保证数据安全。百度了不少资料,看到JAVA的JDK自带生成SSL证书的工具:keytool,外加看了同事的心得体会,自己总结了一下具体的使用方法和使用过程中发现的问题及解决办法。1:什么是HTTPS?HTTPS其实是有两部分组成:HTTP+SSL/TLS,也就是在HTTP上又加了一层处理加密信息的模块,并且会进行身份的验证。问题:Firebug和p...原创 2021-04-26 16:52:15 · 2193 阅读 · 1 评论 -
Java加密套件强度限制引起的SSL handshake_failure
通过Java代码使用HttpURLConnection去连接https系统时候总是报错handshake_failure。而使用浏览器访问一切正常。记录下诊断的过程。HttpURLConnection的调用非常简单。 HttpURLConnection connection = (HttpURLConnection)m_url.openConnection();connection.setRequestMethod("GET");connection.setAllowUs.原创 2021-04-26 16:32:12 · 2625 阅读 · 3 评论 -
JVM优化之 -Xss -Xms -Xmx -Xmn 参数设置
XmnXmsXmxXss有什么区别Xmn、Xms、Xmx、Xss都是JVM对内存的配置参数,我们可以根据不同需要区修改这些参数,以达到运行程序的最好效果。-Xms 堆内存的初始大小,默认为物理内存的1/64-Xmx 堆内存的最大大小,默认为物理内存的1/4-Xmn 堆内新生代的大小。通过这个值也可以得到老生代的大小:-Xmx减去-Xmn-Xss 设置每个线程可使用的内存大小,即栈的大小。在相同物理内存下,减小这个值能生成更多的线程,当然操作系统对一个进程内的线程数还是有限制的,不能无限生成原创 2021-04-26 11:16:46 · 248 阅读 · 0 评论 -
Jvm 参数xms和xmx是否必须设置相等
最近申请了几台机器专门用来运行Kafka Streams应用,发现经常发生OOM导致应用挂掉,原因是启动的时候指定了-Xms2G -Xmx2G,所以16G内存的机器没启几个应用内存就被占满了,尽管这些程序只是空跑。查了一下一般都建议-Xms和-Xmx设置为相等,那么能不能设置为不一样呢?先了解一下-Xms和-Xmx的含义-Xms初始堆的大小,也是堆大小的最小值,默认值是总共的物理内存/64(且小于1G),默认情况下,当堆中可用内存小于40%(这个值可以用-XX: MinHeapFreeRat原创 2021-04-26 11:13:44 · 2505 阅读 · 0 评论 -
Java中的内存管理 HotSpot™虚拟机
1.介绍 Java™2平台标准版(J2SE™)的一个优点是它执行自动内存管理,从而使开发人员免受显式内存管理的复杂性。本文概述了Java HotSpot虚拟机(JVM)中的内存管理Sun的J2SE 5.0发布。它描述了可用于执行内存管理的垃圾收集器,以及给出了一些关于选择和配置收集器以及设置内存区域大小的建议这是收集器操作的。它还作为一种资源,列出了一些最常用的选项影响垃圾收集器的行为,并提供大量链接到更详细的文档。第2节是为不熟悉自动内存管理概念的读者准备的。它有一个简短的讨论这种管...原创 2021-04-22 18:11:46 · 167 阅读 · 0 评论 -
java魔法类之Unsafe解析
问题(1)Unsafe是什么?(2)Unsafe只有CAS的功能吗?(3)Unsafe为什么是不安全的?(4)怎么使用Unsafe?简介本章是java并发包专题的第一章,但是第一篇写的却不是java并发包中类,而是java中的魔法类sun.misc.Unsafe。Unsafe为我们提供了访问底层的机制,这种机制仅供java核心类库使用,而不应该被普通用户使用。但是,为了更好地了解java的生态体系,我们应该去学习它,去了解它,不求深入到底层的C/C++代码,但求能了解它的基本原创 2021-04-07 14:52:05 · 100 阅读 · 0 评论 -
Java static、final、abstract关键字
一、static关键字1、static关键字概述:当我们编写一个类的时候,其实就是在描述对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字的时候才会产生出对象,这是系统才会分配内存空间给对象,其方法才可以供外部调用.我们有时候希望无论对象或无论产生了多少对象的情况下,某些特定的数据在内存空间里只有一份,例如所有的中国人都只有一个国家名称,每一个中国人都共享这个国家名称,不必再每一个中国人的实例中都单独分配一个用于代表国家名称的变量.2、static关键字的使用2.1static,静态的原创 2021-03-26 15:18:54 · 200 阅读 · 0 评论 -
JAVA内存模型
1. 概述 多任务和高并发是衡量一台计算机处理器的能力重要指标之一。一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标比较能说明问题,它代表着一秒内服务器平均能响应的请求数,而TPS值与程序的并发能力有着非常密切的关系。在讨论Java内存模型和线程之前,先简单介绍一下硬件的效率与一致性。2.硬件的效率与一致性 由于计算机的存储设备与处理器的运算能力之间有几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处原创 2021-03-23 17:02:49 · 77 阅读 · 0 评论 -
线程池
线程池ThreadPool:一个是线程的集合,一个是任务的集合指向一个任务队列。线程池装的是一个个线程执行里边一个个的任务,这个任务放在任务队列里边。(1)定义ThreadPoolExecutor有7个参数。分别为:核心线程数、最大线程数、生存时间、时间单位、任务队列、线程工厂(产生线程,线程的名称)、拒绝策略ThreadPoolExecutor tpe = new ThreadPoolExecutor(2, 4, 60, TimeUnit.SECONDS,原创 2021-03-18 23:29:17 · 104 阅读 · 0 评论