java和jvm
文章平均质量分 87
java ,jvm,高并发编程
luck_man911
每个人首先都应该有自己的方向
展开
-
Java SPI机制
一、SPI机制简介SPI的全名为Service Provider Interface.java spi机制的思想: 系统里抽象的各个模块,往往有很多不同的实现方案,在面向的对象的设计里,一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可拔插的原则,如果需要替换一种实现,就需要修改代码。为了实现在模块装配的时候能不在程序里动态指明,这就需要一种服务发现机制。 java spi就是提供这样的一个机制:为某个接口寻找服务实现的机制。有点类似IOC的思想,就是将装转载 2021-01-30 00:52:27 · 113 阅读 · 0 评论 -
jdk-14.0.2_linux-x64_bin.tar.gz
jdk 14下载地址jdk-14.0.2_linux-x64_bin.tar.gz链接: https://pan.baidu.com/s/1VmykmpRkQuMijMaKGrYf7g 提取码: gqza原创 2020-08-13 00:04:01 · 802 阅读 · 0 评论 -
正则表达式电话和姓名加星
/** * 名字只显示第一个字,后面全部星 * @param name * @return */ public static String formatNameStar(String name) { if(org.apache.commons.lang3.StringUtils.isEmpty(name)) { return ""; } return name.replaceAll("(?<=.{1}).","*"); } /** * 电话只保留前三位和..原创 2020-05-21 10:36:09 · 873 阅读 · 0 评论 -
java 替换回车换行符
场景:数据库存储了页面保存进来的分行文字,有隐含的CRLF。h5显示时,没有特殊处理,所以不会换行。处理方法:/** * 将字符串的换行替换成HTML的换行符号 * * @param str * @return */ public static String formatHtmlString(String str) { return str.replaceA...原创 2020-04-05 20:11:19 · 2828 阅读 · 0 评论 -
java 中的LongAdder
问题(1)java8中为什么要新增LongAdder?(2)LongAdder的实现方式?(3)LongAdder与AtomicLong的对比?简介LongAdder是java8中新增的原子类,在多线程环境中,它比AtomicLong性能要高出不少,特别是写多的场景。原理LongAdder的原理是,在最初无竞争时,只更新base的值,当有多线程竞争时通过分段的思想...转载 2020-03-18 14:31:09 · 1855 阅读 · 0 评论 -
AtomicLong并发编程
1、AtomicLongAtomicLong 是通过cas来实现的.atomiclong 可以理解是加了synchronized的long。public class Counter { private static long counter = 0; public static long addOne(){ return ++counter...转载 2020-03-18 14:21:27 · 140 阅读 · 0 评论 -
jdk8 调优
一、堆内存1.1堆内存划分:New(年轻代) 年轻代分为:Eden,Survivor0,Survivor1,s0和s1一般情况下大小是相等的。Old(年老代) Perm(永久代),1.8以后叫metaspace(元空间)1.2 GCGC分为两种:Minor GC(young GC) , FullGC。GC流程:1、新创建的对象会首先在Ed...原创 2020-03-04 11:20:46 · 571 阅读 · 0 评论 -
jdk8新特性(二)Stream流式操作
1、流处理过程2、Stream流式分类Stream,IntStream,LongStream,DoubleStream3、操作符Stream 的一系列操作必须要使用终止操作,否者整个数据流是不会流动起来的,即处理操作不会执行。3.1 中间操作符(1)map(mapToInt,mapToLong,mapToDouble) 转换操作符,把比如A->B,这里默认提...原创 2020-03-18 22:32:39 · 543 阅读 · 0 评论 -
log4j指定日志文件目录
1、问题场景:在运维工作中,启动脚本如果不是在tomcat/bin目录下执行的,那么日志会生成到当前执行脚本的相对路径下。如在/home/deploy下执行deploy.sh ,其中调用的startup.sh,那么日志就会在home/logs下,日志文件配置如下:2、解决方案:${catalina.home}/logs/TWS/INFO.log...原创 2019-12-04 11:00:30 · 1159 阅读 · 0 评论 -
jmeter测试tomcat并发
本文主要测试并发超过配置参数时,各监控和服务软件的异常现象,方便定位问题。一、线程配置参数server.xml的四个线程配置参数如下:maxThreads="60"minSpareThreads="20"maxSpareThreads="40"acceptCount="600"二、测试2.1 jmeter每秒并发数:10jmeter中的http监控结果...原创 2019-11-17 20:12:15 · 1020 阅读 · 0 评论 -
十进制转成任意进制
/** * 任意进制转换 * * @author luoqinglong * @date 2014-3-13 上午8:56:53 * @since 1.0 **/public class Generate { /** * 进制对应的各个字符 */ char[] template = { 'F', 'E', 'A', 'B', 'V', 'D', ...原创 2014-04-24 16:09:30 · 115 阅读 · 0 评论 -
简单web 排队器
知识点:1、1.5以上的线程池2、阻塞队列 实现:1、排号器(队伍)import java.util.concurrent.ArrayBlockingQueue;/** * 排队器 * * @author luoqinglong * @date 2014-3-23 */public class BuyQueue extends Array...原创 2014-03-25 00:13:46 · 590 阅读 · 0 评论 -
J2EE的核心API与组件
J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的13种技术规范进行简单的描述(限于篇幅,这里只能进行简单的描述): JDBC(Java Database Connectivity) JDBC API为访问不同的数据库提供了一种统一的途径,象ODB...原创 2012-08-02 12:06:40 · 195 阅读 · 1 评论 -
java 小数精度问题
1、原因由于浮点数在转化为二进制时无法运算完结,所以会无限循环下去,导致运算结果达不到期望值。例如:1.14,转化为二进制,然后再转回十进制就变成了:1.1399999999999999023003738329862244427204132080078125。2、场景加减乘除运算就会出现失真,请看示例package com.haobi.util;import java.math.BigDeci...原创 2018-05-31 16:36:22 · 2438 阅读 · 0 评论 -
gson和json-lib的区别
1、tojson--生成json的原理不一样gson是根据类的属性转json的,不会调用get方法。key的个数是类属性的个数,如TT。如:private String name ; private String age; private Integer step; private Long step1; private Float step3; private Double原创 2017-07-26 09:39:53 · 852 阅读 · 0 评论 -
gson 转换 null
gson 转换 null原创 2017-07-25 15:10:36 · 399 阅读 · 0 评论