
java
文章平均质量分 57
MyySophia
工作只是你的权利,而只有你的行为才能为你赢得尊重
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
理解 Linux backlog/somaxconn 内核参数
在研究IOTDB的时候,启动服务的时候会有个报警。iotdb后端服务器 Socket accept 队列满,系统的 somaxconn 内核参数默认太小。建议设置为65535下面我们我深入学习理解下 somaxconn 内核参数相关内容。原创 2023-10-08 15:00:54 · 532 阅读 · 0 评论 -
maven打包报错No plugin descriptor found at META-INF/maven/plugin.xml
遇到这个问题先google 了一番,没有很明确的答案,问了一下小C它给出了几个可能的原因,并在它的协助下我解决了这个问题,感觉stackflow不应该ban它。原创 2022-12-22 14:33:51 · 1761 阅读 · 0 评论 -
redis分布式锁自动续约问题以及Redisson的使用
在Redis集群的时候也会出现问题,比如说A客户端在Redis的master节点上拿到了锁,但是这个加锁的key还没有同步到slave节点(可能是网络的原因),master故障,发生故障转移,一个slave节点升级为master节点,B客户端也可以获取同个key的锁,但客户端A也已经拿到锁了,这就导致多个客户端都拿到锁。Redisson 是一个 Java 语言实现的 Redis SDK 客户端,在使用分布式锁时,它就采用了「自动续期」的方案来避免锁过期,这个守护线程我们一般也把它叫做「看门狗」线程。原创 2022-10-08 15:06:23 · 1460 阅读 · 0 评论 -
深刻理解Java的volatile和synchronized
volatile可以看成是synchronized的一种轻量级的实现,但volatile并不能完全代替synchronized,volatile有synchronized可见性的特性,但没有synchronized原子性的特性。可见性即用volatile关键字修饰的成员变量表明该变量不存在工作线程的副本,线程每次直接都从主内存中读取,每次读取的都是最新的值,这也就保证了变量对其他线程的可见性。另外,使用volatile还能确保变量不能被重排序,保证了有序性。原创 2022-09-26 14:44:08 · 745 阅读 · 0 评论 -
项目引入jar从私服Nexus 拉去遇到的一个问题
背景项目新增了一个pom,使用外网机器下载包到本地。pom文件如下: 为什么有的pom在public 有的在release 仓库?idea从maven-public拉取,而nexus的public下没有但是release下却有,这是什么原因呢?Nexus安装后默认有三个本地仓库,release、snapshot、3rd party仓库类型又分为三种我的setting文件如下:搞了一天还是没搞定这个仓库的jar包拉取。最后决定从本地的仓库加载,需要加这个参数: 问题暂时解决了,但是nexus原创 2022-07-05 15:39:10 · 430 阅读 · 0 评论 -
List中对象去重和List 根据对象的属性去重
目录List中对象去重List 根据对象的属性去重google的List 根据对象的属性去重有这么一个需求,需要将从数据库查出来的数据进行去重。开发人员并没搞清楚用户是想按照对象去重还是要按照对象的属性去重。用户是希望按照对象的某个属性去重。因为有一列是时间按照对象去重相当于没去重。导致前台数据重复第132行被注释掉的是按照对象去重为了修复这个bug需要按照对象的属性(glassID)去重。List中对象去重** 重写对象的equals()方法和hashCod..原创 2022-03-19 10:18:36 · 956 阅读 · 0 评论 -
java BufferedWriter 写文件的踩坑记
需求很简单,将从数据库中查到的某些数据写入到文件中。于是就有了这个方法: public void writeFile(List<String> glassList) { long start = System.currentTimeMillis(); DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); BufferedWriter out =原创 2022-03-15 11:15:40 · 3586 阅读 · 0 评论 -
java – 为什么stream average()方法返回OptionalDouble而不是double?
java8的函数式编程中中提供了Optional 类型, 旨在帮助用户规避NEP, 如果stram中的值都为0,Optional提供了很多方法让用户自己觉得要怎么办?看下这段代码调用isPresent返回值决定输出 public final static Function<List<FileCheckOut>, Double> getAverageDefectCntFunction = (ruleResults) -> {原创 2021-10-15 15:16:05 · 1488 阅读 · 0 评论 -
jedis zrangebyscore的返回值踩坑记
最近在使用jedis 操作redis,在处理一个sortedset key的返回值时遇到一个棘手的问题。有如下报错:java.lang.ClassCastException: java.lang.String cannot be cast to redis.clien具体操作是这样子:zrangebyscore 返回的是一个数据集合,如果要接这个返回值,你又不想new 一个bean, tuple 是一个不错的选择。需求中需要将该方法的返回值的第三个字段截取出来放入List<St..原创 2021-07-23 18:08:45 · 1223 阅读 · 0 评论 -
一段动态规划代码赏析
输入一个字符串 和 一个pattern. 返回结果是否匹配上 public static boolean isMatch(String str, String strPattern) { int countXing = 0; for (char c : strPattern.toCharArray()) countXing++; if (strPattern.length() - countXing > str.le.原创 2021-07-19 15:22:09 · 191 阅读 · 0 评论 -
Java8 parallelStream浅析
JAVA8中引入了lamda表达式和Stream接口。其丰富的API及强大的表达能力极大的简化代码,提升了效率,同时还通过parallelStream提供并发操作的支持,本文探讨parallelStream方法的使用。首先看下java doc中对parallelStream的定义。 A sequence of elements supporting sequential and parallel aggregate operations. ... Stream pipelines may转载 2021-07-15 18:05:43 · 589 阅读 · 0 评论 -
java反编译问题 报 INTERNAL ERROR
使用jd-gui.exe反编译工具,反编译时部分类无法反编译。报错如下:但是有些类可以反编译成功解决: 可以使用Luyten。原创 2021-07-06 16:53:49 · 2861 阅读 · 0 评论 -
Java8 ChronoUnits枚举
原文:http://www.yiibai.com/java8/java8_chronounits.htmljava.time.temporal.ChronoUnit 枚举在 Java8 中添加,以取代旧的API用来代表日,月等整数值让我们来看看他们的操作。使用所选择的任何编辑器创建下面的java程序在C:/> JAVAJava8Tester.javaimport java.time.LocalDate;import java.time.temporal.ChronoUni.原创 2021-07-06 11:23:00 · 206 阅读 · 0 评论 -
Java 反射 API 简介
通常来说,使用反射 API 的第一步便是获取 Class 对象。在 Java 中常见的有这么三种。使用静态方法 Class.forName 来获取。 调用对象的 getClass() 方法。 直接用类名 +“.class”访问。对于基本类型来说,它们的包装类型(wrapper classes)拥有一个名为“TYPE”的 final静态字段,指向该基本类型对应的 Class对象。例如,Integer.TYPE 指向 int.class。对于数组类型来说,可以使用类名 +“[ ].cl...原创 2021-06-26 23:37:19 · 236 阅读 · 0 评论 -
Spring navigate to the spring bean是什么意思?
按下该按钮返回到spring的启动类navigate to the autowired dependence:导航到自动连接的依赖 navigate to the spring bean declarations:导航到spring bean的声明 navigate to compoments:导航到组件目前这个阶段能理解到的是:这个意思就是spring 启动时会加载这些类?...原创 2021-06-25 23:37:04 · 3276 阅读 · 0 评论 -
Spring的BeanUtils的copyProperties方法
项目中遇到的情况是: 文件解析完之后将文件放在一个pojo里面,形如: private String ext1; //WX ADD 11/19 private String ext2; //WX ADD 11/19 private List<FilePnlPojo> panelInfo; private List<FileDefectPojo> defectInfo; private List<原创 2020-09-20 17:18:37 · 1734 阅读 · 0 评论 -
Spring全家桶
https://github.com/geektime-geekbang/geektime-spring-family原创 2020-08-13 22:15:47 · 193 阅读 · 0 评论 -
IDEA 多线程debug
在debug多线程的时候,断点总会跳的莫名其妙,因为你不知道到底是哪个thread 在running?接下来简单介绍一下在IDEA中使用多线程debug的功能选择希望进入多线程的断点勾选thread,或者在断点处右击选择在thradpool中选择一个thread,F9一步一步跳到该thrad的断点处。...原创 2020-07-14 13:58:38 · 494 阅读 · 0 评论 -
什么是高并发?高并发解决方案
比如接口响应超时、CPU load 升高、GC 频繁、死锁、大数据量存储等等,这些问题能推动我们在技术深度上不断精进。在过往的面试中,如果候选人做过高并发的项目,我通常会让对方谈谈对于高并发的理解。但是能系统性地回答好此问题的人并不多,大概分成这样几类: 对数据化的指标没有概念:不清楚选择什么样的指标来衡量高并发系统?分不清并发量和 QPS,甚至不知道自己系统的总用户量、活跃用户量,平峰和高峰时的 QPS 和 TPS 等关键数据。 设计了一些方案,但是细节掌握不透彻:讲不..转载 2020-06-30 09:36:10 · 2280 阅读 · 0 评论 -
使用private static修饰方法有什么好处?
最近在修改业务程序的时候,遇到了private static修饰的一个方法,在该方法中调用另外一个私有方法时报错。Non-static method 'sendAlarmMQ(java.lang.String, java.lang.String, java.lang.String)' cannot be referenced from a static context为何使用private static修饰方法总结下来就是:Make it clear to the reader t..转载 2020-05-09 17:37:43 · 4022 阅读 · 0 评论 -
如何安全的发布对象?
发布对象:使一个对象能被当前范围外的代码所使用。与之对应的一个问题是 对象逸出对象逸出是一种错误的发布对象方式,当一个对象还没有构造完时,就被其他线程所见。常见于多线程之中。错误的发布对象:私有成员变量在对象的公有方法中被修改。当其他线程访问该私有变量时可能得到不正确的值。例如: private String[] states = {"a", "b", "c"}; ...原创 2020-03-10 22:38:17 · 304 阅读 · 0 评论 -
Spring中的IOC是什么?
IOC准确的说是一种思想,它能将你从繁琐的代码中解脱出来并专注于对象本身。进一步突出面向对象。在了解IOC之前有必要了解依赖注入(DI)例如要设计一个行李箱。上面的设计看似完美,其实是存在问题的,如果现在根据市场需求要改变轮子的大小,那么整个架构都需要改变。可以看到如果尺寸改变每个依赖类都需要改变,这对某些底层类被上千个类依赖来说,修改起来就是一场噩梦。但是如果这样...原创 2020-03-07 21:48:54 · 534 阅读 · 0 评论 -
JAVA三大框架Struts、hibernate和spring的各自作用是什么?
struts 主要负责表示层的显示,spring 利用它的IOC和AOP来处理控制业务(负责对数据库的操作),hibernate主要作用是数据的持久化到数据库。未完待续........原创 2017-10-20 15:03:38 · 2112 阅读 · 0 评论 -
@Autowired 与@Resource的区别
1、@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。2、@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Quali...转载 2020-03-06 22:01:42 · 231 阅读 · 0 评论 -
Java连接ORAC的方式和单实例连接的区别
今天看到程序报错,无法获取连接,怀疑和数据库早上出问题有关,查看了代码连接方式,发现竟然连接的是ORAC中的一台,而恰恰出事情的那台就是程序连接的那一台。数据库的部署有单实例和RAC的情况,单实例比较简单,使用SID连接;RAC 有多个实例来增加并发和负载,RAC时TNS一般配置的是Server Name,RAC节点根据Server情况自动跳到合适的SID。对于RAC的情况,有各自的实例,此时...原创 2020-03-04 14:16:09 · 327 阅读 · 0 评论 -
Spring Boot 注解
Autowired 与@Resource的区别:1、@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。2、@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=...转载 2020-02-28 10:31:20 · 337 阅读 · 0 评论 -
Java Virtual Machine Process Status Tool <jps>
jps(Java Virtual Machine Process Status Tool)是java提供的一个显示当前所有java进程pid的命令jpsjps -l输出应用程序main class的完整package名或者应用程序的jar文件完整路径名...原创 2020-02-25 22:01:34 · 259 阅读 · 0 评论 -
JDBC 连接池、监控组件 Druid
JDBC 连接池、监控组件 DruidDruid是一个 JDBC 组件。1.监控数据库访问性能。2.提供了一个高效、功能强大、可扩展性好的数据库连接池。3.数据库密码加密。4.SQL执行日志。地址:https://github.com/alibaba/druid...原创 2020-02-25 08:42:24 · 570 阅读 · 0 评论 -
下划线转驼峰
实际业务中经常遇到需要将下划线转为驼峰命名的续期。下面的代码可以参考。public static String underline2Camel(String line, boolean smallCamel) { if (line == null || "".equals(line)) { return ""; } St...原创 2020-02-03 16:49:18 · 356 阅读 · 1 评论 -
GC 相关的参数
JVM GC 相关的参数-XX:+PrintGC 输出 GC 日志-XX:+PrintGCDetails 输出 GC 的详细日志-XX:+PrintGCTimeStamps 输出 GC 的时间戳(以基准时间的形式)-XX:+PrintGCDateStamps 输出 GC 的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)-XX:+PrintHeap...转载 2019-12-09 11:15:56 · 292 阅读 · 0 评论 -
网站常用术语 PV 和UV
网站流量常用术语UVUV指一天内访问某站点的人数,以cookie为依据。1天内同一访客的多次访问只记录为一个访客。通过IP和cookie是判断UV值的两种方式。当客户端第一次访问某个网站服务器的时候,网站服务器会给这个客户端的电脑发出一个Cookie,通常放在这个客户端电脑的C盘当中。在这个Cookie中会分配一个独一无二的编号,这其中会记录一些访问服务器的信息,如访问时间...原创 2019-12-04 14:50:15 · 835 阅读 · 0 评论 -
Spring Boot中定时器注解 && 同步 异步 阻塞 非阻塞
@Scheduled注解可以控制方法定时执行,其中有三个参数可选择:fixedDelay控制方法执行的间隔时间,是以上一次方法执行完开始算起,如上一次方法执行阻塞住了,那么直到上一次执行完,并间隔给定的时间后,执行下一次。个人感觉此方法接近于cronfixedRate是按照一定的速率执行,是从上一次方法执行开始的时间算起,如果上一次方法阻塞住了,下一次也是不会执行,但是在阻塞这段时间内累计...原创 2019-12-04 09:45:57 · 856 阅读 · 0 评论 -
Float的取值范围
首先说一下:范围是3.4E-38 ——3.4E+38,可提供7位有效数字。上述这两个量都是近似值,各个编译器不太一样的。下面我就将标准值是怎么定义的,和你说一下:这个比较复杂,建议你找一下IEEE754标准看一下。https://ieeexplore.ieee.org/document/4610935其中,s 表示 sign,即符号。如果 s == 0,则浮点数 ...转载 2018-04-12 21:38:38 · 21879 阅读 · 3 评论 -
Spring Boot注解
1、@controller 控制器(注入服务)2、@service 服务(注入dao)3、@repository dao(实现dao访问)4、@component (把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>) @Component,@Service,@Controller,@Repository注解的类...原创 2019-12-03 16:26:13 · 188 阅读 · 0 评论 -
多线程的原子操作
package com.chot;/** * @program: rtm * * @description: 原子操作demo * * @author: ninesun * * @create: 2019-11-18 09:28 **/import java.util.concurrent.atomic.AtomicInteger;/* * 下边两个操作多试几次总会出现...原创 2019-11-18 09:53:04 · 323 阅读 · 0 评论 -
上下文切换是在做什么事情?
本质上来说无论是用户态还是内核态的上下文切换都是很轻量的,甚至有一些硬件指令来支持,比如pusha可以帮助我们保存通用寄存器。同一个进程的线程共享页表,因此上下文切换的开销一般只有: 保存各种寄存器 切换sp(call指令会自动将pc压栈) 可以在数十条指令内完成。既然近内核以及上下文切换都不慢,那么多线程的开销究竟在哪?我们不妨看一个阻塞的系统调用fute...转载 2019-11-18 09:51:03 · 623 阅读 · 0 评论 -
spring中的Bean的作用域-singleton
Spring提供了五中scope。分别是 singleton、prototype、request、session、global session。我们主要讨论前两者的区别?当一个bean被声明为单例模式的时候。在处理多次请求的时候在Spring 容器中只实例化一个bean,后续的请求都公用这个对象,这个对象会保存在一个map里面。当有新的请求的时候先从缓存(map)里面查看有没有,有的话直接...原创 2019-08-28 08:58:22 · 928 阅读 · 1 评论 -
00-JVM指令手册
可以使用javap -c *.class 命令将class文件输出到txt文档来结合以下指令分析代码。栈和局部变量操作将常量压入栈的指令aconst_null 将null对象引用压入栈iconst_m1 将int类型常量-1压入栈iconst_0 将int类型常量0压入栈iconst_1 将int类型常量1压入操作数栈iconst_2 将...原创 2019-09-24 21:59:38 · 304 阅读 · 0 评论 -
java 编程思想 多线程学习笔记
废话就不说了,直接看书上的sample:public class LiftOff implements Runnable { protected int countDown = 10; // Default private static int taskCount = 0; private final int id = taskCount++; //区分任务的多个实例...原创 2019-09-26 18:30:48 · 156 阅读 · 0 评论 -
java 编程思想 多线程学习笔记
java 编程思想 多线程学习笔记欢迎使用Markdown编辑器一、如何创建多线程?总之,在任何线程池中,现有的线程可能的情况都会被复用。欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。一、如何创建多线程?1、继承Runnable,把需...原创 2019-09-27 16:19:26 · 358 阅读 · 0 评论