
java
文章平均质量分 85
Captain2200
这个作者很懒,什么都没留下…
展开
-
Java线程池如何合理配置核心线程数
我相信大家都用过线程池,但是线程池数量设置为多少比较合理呢?线程数的设置的最主要的目的是为了充分并合理地使用 CPU 和内存等资源,从而最大限度地提高程序的性能,因此让我们一起去探索吧!首先要考虑到 CPU 核心数,那么在 Java 中如何获取核心线程数?可以使用 Runtime.getRuntime().availableProcessor() 方法来获取(可能不准确,作为参考)在确认了核心数后,再去判断是 CPU 密集型任务还是 IO 密集型任务:CPU 密集型任务:比如像加原创 2021-08-01 15:06:57 · 444 阅读 · 0 评论 -
类加载机制-深入理解jvm
一.目标:1.什么是类的加载?2.类的生命周期?3.类加载器是什么?4.双亲委派机制是什么?二.原理 (类的加载过程及其最终产品):JVM将class文件字节码文件加载到内存中, 并将这些静态数据转换成方法区中的运行时数据结构,在堆(并不一定在堆中,HotSpot在方法区中)中生成一个代表这个类的java.lang.Class 对象,作为方法区类数据的访问入口。三.过程...转载 2020-02-20 21:36:21 · 154 阅读 · 0 评论 -
Java 线程的 5 种状态
线程状态图:线程共包括以下 5 种状态:1. 新建状态(New):线程对象被创建后,就进入了新建状态。例如,Thread thread = new Thread()。2. 就绪状态(Runnable):也被称为“可执行状态”。线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程。例如,thread.start()。处于就绪状态的线程,随时可能被CPU调度...转载 2020-02-20 20:40:46 · 407 阅读 · 0 评论 -
java.awt.Graphics2D 生成图片--个人章的方法
# java.awt 画矩形踩坑 本来使用Graphics2D的drawRect()方法画图的,但是出现了下边框过粗,不得已 使用了画线的方法,四个边框,单独划线,这里要注意坐标轴和线的宽度--高度height 一下是代码/** * 创建私人章的方法 * @param drawStrName 输入的姓名 1- 18 位 ...原创 2019-12-27 13:58:16 · 1545 阅读 · 0 评论 -
科普: 中间件底层实现的分布式协议之Raft
正式介绍 Raft 协议之前,我们先来举一个例子????进行展开。方式一:在一个技术团队内假设角色都是均等的,会导致什么情况呢?产品提出一个需求,就可以随便去找团队中的任意一个人去发起需求。如果这个人因为请假走了,但是他没有把需求及时同步给团队其他人,因此会导致该需求存在很大的延迟。方式二:在技术团队中选举一个Leader 角色,产品提出的需求必须优先提给 Leader,找 Lead...转载 2019-12-16 19:16:19 · 487 阅读 · 0 评论 -
中间件的数据抽取各种运行状态 ,weblogic的 , tomcat 类似 ---朋友的代码
package com.agent.opt.type.weblogic.data;import java.io.File;import java.io.IOException;import java.lang.management.ManagementFactory;import java.net.InetAddress;import java.net.InetSocketAddre...原创 2019-10-18 17:06:36 · 610 阅读 · 1 评论 -
HashTable 和HashMap区别
HashTable和HashMap区别HashTable最早的版本是JDK1.1,HashMap最早版本是1.2HashTable继承的是Dictionary抽象类,HashMap继承的是AbstractMapHashTable是线程安全的,HashMap是线程不安全HashTablekeyvalue都不能为Null,HashMapkeyvalue可以为NullHas...原创 2019-10-15 11:29:25 · 139 阅读 · 0 评论 -
带附件/密送/抄送的 javaMail 邮件发送 -- java_demo(两种实现方式)
话不多说,上代码--第一种,自己实现的,参考资料javaMail 的邮件发送包括了抄送(CC),密送(BCC)采用springBoot常用的邮件服务器名称、地址及SSL/非SSL协议端口号Java Mail发送邮件(带多个附件)引入的依赖为 <!-- email --> <dependency> <groupId>com.su...原创 2019-05-27 21:40:03 · 3950 阅读 · 0 评论 -
zookeeper是如何实现数据一致性的?
转载自https://blog.youkuaiyun.com/qqqq0199181/article/details/80865828众所周知,zookeeper是一个开源的分布式协调服务,很多分布式的应用都是基于zookeeper来实现分布式锁,服务管理,服务发现,通知订阅等功能。那么。zookeeper自身是如何在分布式环境下实现数据的一致性的呢。结构既然zookeeper是在分布式环境下提供...转载 2019-05-16 11:42:17 · 2488 阅读 · 0 评论 -
Java的,与类的初始化顺序
转载自https://blog.youkuaiyun.com/sujz12345/article/details/52590095<init>与<clinit><init>Java在编译之后会在字节码文件中生成<init>方法,称之为实例构造器,该实例构造器会将语句块,变量初始化,调用父类的构造器等操作收敛到<init>方法中,收敛顺序(这...转载 2019-04-30 18:05:17 · 180 阅读 · 0 评论 -
Java8中使用以下类计算日期时间差:Period、Duration、ChronoUnit
一.简述在Java8中,我们可以使用以下类来计算日期时间差异:1.Period2.Duration3.ChronoUnit二.Period类主要是Period类方法getYears(),getMonths()和getDays()来计算.示例:package insping; import java.time.LocalDate;import java.t...原创 2019-04-29 10:43:53 · 10928 阅读 · 1 评论 -
Spring Boot系列二 Spring @Async异步线程池用法总结
转载 自https://blog.youkuaiyun.com/hry2015/article/details/676405341. TaskExecutorSpring异步线程池的接口类,其实质是java.util.concurrent.ExecutorSpring 已经实现的异常线程池:1. SimpleAsyncTaskExecutor:不是真的线程池,这个类不重用线程,每次调用都会创建...转载 2019-04-24 11:01:38 · 318 阅读 · 0 评论 -
线程池的 RejectedExecutionHandler(拒绝策略)
转载自https://blog.youkuaiyun.com/jgteng/article/details/54411423https://blog.youkuaiyun.com/luofenghan/article/details/78596950JAVA为多线程场景提供了线程池,下面是一个线程池的构造方法:public ThreadPoolExecutor(int corePoolSize, ...转载 2019-04-24 10:56:21 · 1255 阅读 · 0 评论 -
Java中System.setProperty()用法
转载自https://www.cnblogs.com/chasewade/p/3387390.html/** 设置指定键对值的系统属性* setProperty (String prop, String value);** 参数:* prop - 系统属性的名称。* value - 系统属性的值。** 返回:* 系统属性以前的值,如果没有以前的值,...转载 2019-04-18 16:43:05 · 855 阅读 · 0 评论 -
一次bug调试经验----To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
5-Feb-2019 11:03:11.635 严重 [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal Context [] startup failed due to previous errors15-Feb-2019 11:03:11.743 警告 [RMI T...原创 2019-02-16 16:47:01 · 2900 阅读 · 0 评论 -
Spring Cloud Config入门(本地配置)
转载自 https://www.cnblogs.com/zcr3108346262/p/7602314.htmlspring cloud config 简介Spring Cloud Config为分布式系统中的外部化配置提供服务器和客户端支持。使用Config Server,您可以在所有环境中管理应用程序的外部属性。 Spring Cloud Config 分为两个部分 ,server端...转载 2019-01-23 10:09:22 · 953 阅读 · 0 评论 -
Spring Boot基本配置
转载自 https://www.cnblogs.com/lilinzhiyu/p/8116877.html本文参考javaEE开发的颠覆者SpringBoot实战第一版基本配置入口类和@SpringBootApplication Spring Boot通常有一个名为*Application的入口类,且入口类有一个main方法,这个main方法就是标志的java应用入口方法。调...转载 2019-01-16 16:23:55 · 198 阅读 · 0 评论 -
JAVA多线程之线程间的通信方式
转载自 https://www.cnblogs.com/hapjin/p/5492619.html一,介绍本总结我对于JAVA多线程中线程之间的通信方式的理解,主要以代码结合文字的方式来讨论线程间的通信,故摘抄了书中的一些示例代码。 二,线程间的通信方式①同步这里讲的同步是指多个线程通过synchronized关键字这种方式来实现线程间的通信。参考示例:pub...转载 2019-01-02 17:48:02 · 348 阅读 · 0 评论 -
Java---线程多(工作内存)和内存模型(主内存)分析
转载自 https://www.cnblogs.com/chihirotan/p/6486436.html首先解读Java内存模型(这里区别于JVM的内存模型,堆、栈、工作区) Java 内存模型来屏蔽掉各种硬件和操作系统的内存差异,达到跨平台的内存访问效果。JLS(Java语言规范)定义了一个统一的内存管理模型JMM(Java Memory Model) Java内存模型规定了所...转载 2019-01-02 17:47:03 · 366 阅读 · 0 评论 -
正则表达式(Java版整理)
转载自 https://www.cnblogs.com/yw0219/p/8047938.html 基础元字符代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 ^ 匹配字符串的开始 $ 匹配字符串的结束 \b 匹配字符串的结束 重复...转载 2018-12-18 12:18:12 · 249 阅读 · 0 评论 -
并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
转载自https://blog.youkuaiyun.com/westos_linux/article/details/78968012在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueu...转载 2018-12-06 19:48:42 · 302 阅读 · 0 评论 -
java安全管理器SecurityManager入门
转载自 https://blog.youkuaiyun.com/dhfzhishi/article/details/78447520 https://www.aliyun.com/jiaocheng/774888.html一、文章的目的 这是一篇对Java安全管理器入门的文章,目的是简单了解什么是SecurityManager,对管理器进行简单配置,解决简单问题。 比如在阅读源码的时候,发...转载 2018-11-15 14:19:25 · 1739 阅读 · 0 评论 -
Java HttpClient使用小结
转载自 https://blog.youkuaiyun.com/bhq2010/article/details/9210007httpclient是apache的一个项目:http://hc.apache.org/文档比较完善:http://hc.apache.org/httpcomponents-client-ga/tutorial/html/这里就不啰嗦了,主要是在做demo的时候遇到的一些问...转载 2018-11-14 16:11:08 · 417 阅读 · 0 评论 -
Java泛型中E、T、K、V等的含义
转载自 https://blog.youkuaiyun.com/chenlycly/article/details/25561029Java泛型中的标记符含义: E - Element (在集合中使用,因为集合中存放的是元素) T - Type(Java 类) K - Key(键) V - Value(值) N - Number(数值类型)? - 表示不确定的java类型 ...转载 2018-11-14 14:39:20 · 1252 阅读 · 0 评论 -
Java 9 尝鲜之JShell交互式编程环境
转载自https://www.cnblogs.com/IcanFixIt/p/6690478.htmlJShell——Java 9 的交互式编程环境本文要求读者有基本的 Java 知识。TipsJava 9 的代码由于提供了新特性,所以有些代码并不支持向后兼容。也就是说,用 Java 9 写的代码,有可能在 Java 8 或更早版本的 JDK 上不能运行。1. 在操作系统...转载 2018-11-14 14:09:37 · 679 阅读 · 0 评论 -
JDK6u25里添加的按线程统计分配内存量: JMX
转载自 http://rednaxelafx.iteye.com/blog/1021619Oracle几天前发布的JDK 6 update 25里添加的一个新功能非常有趣,可以按照线程来跟踪(GC堆)内存的分配量。这个功能在VM核心、解释器、C1编译器、C2编译器以及GC中都有代码支持,并且通过JMX API暴露出来。 不过新加的这功能不是加在java.开头的包里,而是加在com.sun.m...转载 2018-11-13 14:50:32 · 383 阅读 · 0 评论 -
RecursiveTask和RecursiveAction的使用 以及java 8 并行流和顺序流
转载自 https://blog.youkuaiyun.com/weixin_41404773/article/details/80733324什么是Fork/Join框架 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。 我们再通过Fork和Join这两个单词来理解...转载 2018-11-12 17:22:09 · 840 阅读 · 0 评论 -
RunTime.getRunTime().addShutdownHook的用法
转载自 https://www.liangzl.com/get-article-detail-8064.html有时候我们用到的程序不一定总是在JVM里面驻守,可能调用完就不用了,释放资源.RunTime.getRunTime().addShutdownHook的作用就是在JVM销毁前执行的一个线程.当然这个线程依然要自己写.利用这个性质,如果我们之前定义了一系列的线程池供程序本身使用...转载 2018-11-08 11:44:24 · 1153 阅读 · 0 评论 -
java retry(重试) spring retry, guava retrying 详解
转载 自 http://blog.51cto.com/9250070/2156431系列说明java retry 的一步步实现机制。java-retry 源码地址情景导入简单的需求产品经理:实现一个按条件,查询用户信息的服务。小明:好的。没问题。代码UserService.javapublic interface UserService { /...转载 2018-11-07 17:19:50 · 915 阅读 · 0 评论 -
Java实现心跳机制
转载自 https://www.cnblogs.com/codingexperience/p/5939059.html一、心跳机制简介 在分布式系统中,分布在不同主机上的节点需要检测其他节点的状态,如服务器节点需要检测从节点是否失效。为了检测对方节点的有效性,每隔固定时间就发送一个固定信息给对方,对方回复一个固定信息,如果长时间没有收到对方的回复,则断开与对方的连接。 ...转载 2018-11-07 16:15:30 · 12198 阅读 · 3 评论 -
走进Java中的持有对象(容器类)之一 容器分类
转载自 https://www.cnblogs.com/ACFLOOD/p/5555555.htmlJava容器可以说是增强程序员编程能力的基本工具,本系列将带您深入理解容器类。 容器的用途 如果对象的数量与生命周期都是固定的,自然我们也就不需要很复杂的数据结构。我们可以通过创建引用来持有对象,如Class clazz;也可以通过数组来持有多个对象,如Class[...转载 2018-09-04 21:58:04 · 2291 阅读 · 0 评论 -
GC算法基础
转载自 http://www.wolfbe.com/detail/201609/364.html#转载自 http://www.wolfbe.com/detail/201609/364.html#Java中的垃圾回收 摘要:总的来说基本所有的回收器都会关注如下两个方面:找出所有的存活对象;清理掉所有的其它对象——也就是那些被认为是废弃或无用的对象。原文出处:英文原文链接在深...转载 2018-09-02 23:01:39 · 136 阅读 · 0 评论 -
JVM 工作原理和流程
转载自 https://blog.youkuaiyun.com/qq_33384065/article/details/80282023Java 详解 JVM 工作原理和流程<div class="article-info-box"> <div class="article-bar-top d-flex"> ...转载 2018-09-02 23:00:56 · 237 阅读 · 0 评论 -
Java线程(二):线程同步synchronized和volatile
转载自 https://blog.youkuaiyun.com/ghsau/article/details/7424694 上篇通过一个简单的例子说明了线程安全与不安全,在例子中不安全的情况下输出的结果恰好是逐个递增的(其实是巧合,多运行几次,会产生不同的输出结果),为什么会产生这样的结果呢,因为建立的Count对象是线程共享的,一个线程改变了其成员变量num值,下一个线程正巧读到了修改后的num,所以...转载 2018-08-24 09:59:42 · 125 阅读 · 0 评论 -
Concurrent——Atomic原子操作类
转载自https://blog.youkuaiyun.com/sdlyjzh/article/details/78587777打算把Concurrent包下面的一些类整理一下。今天先从最简单的开始,Atomic原子类。先看一下atomic包下的类 一共12个,共分四类:基本类型、数组、引用、属性。我们就按这四个分类,介绍一下它们的用途以及实现。基本类型包含上图红框里面的三个类。由于三个类提...转载 2018-08-23 10:23:10 · 700 阅读 · 0 评论 -
Java中的Atomic包使用指南
转载自 http://ifeve.com/java-atomic/本文首发于并发网,作者:方腾飞引言Java从JDK1.5开始提供了java.util.concurrent.atomic包,方便程序员在多线程环境下,无锁的进行原子操作。原子变量的底层使用了处理器提供的原子指令,但是不同的CPU架构可能提供的原子指令不一样,也有可能需要某种形式的内部锁,所以该方法不能绝对保证线程不被阻塞...转载 2018-08-23 10:23:02 · 168 阅读 · 0 评论 -
切点、切面:@Aspect、@PointCut相关的个人总结
转载自http://blog.51cto.com/12181171/2103016最近写的项目里面都用到了很多切面,切点的知识,写完以后,来自我总结一下:举个例子:一个类(Show)里面有一个表演(display)的方法,在表演之前,应该有致辞(say)的方法,在表演之后,应该有鼓掌(hand)的方法。为了高内聚低耦合,表演的方法应该单独封装在一个类里面,致辞和鼓掌的方法应该另外封装,...转载 2018-08-23 10:22:57 · 1020 阅读 · 2 评论 -
Lombok常用注解和功能
转载自 https://blog.youkuaiyun.com/qq_40081976/article/details/79139565注解val:用在局部变量前面,相当于将变量声明为final @NonNull:给方法参数增加这个注解会自动在方法内对该参数进行是否为空的校验,如果为空,则抛出NPE(NullPointerException) @Cleanup:自动管理资源,用在局部变量之前,在当...转载 2018-08-23 10:22:44 · 494 阅读 · 0 评论 -
java 中 阻塞队列 非阻塞队列 和普通队列的区别
转载自 https://blog.youkuaiyun.com/u012881904/article/details/51491736阻塞队列与普通队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞。试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列插入新的元素。同样,试图往已满的阻塞队列中添加新元素的线程同样也会被阻塞,...转载 2018-08-22 23:14:26 · 11390 阅读 · 12 评论 -
聊聊Java中的并发队列中 有界队列和无界队列的区别
转载自 https://blog.youkuaiyun.com/AJ1101/article/details/81711812本文主要总体的说一说各种并发队列 首先来一张全体照 从有界无界上分 常见的有界队列为ArrayBlockingQueue 基于数组实现的阻塞队列 LinkedBlockingQueue 其实也是有界队列,但是不设置大小时就时Integer.MAX_VALUE,内部是基...转载 2018-08-20 23:02:01 · 22796 阅读 · 7 评论