java日常踩坑
文章平均质量分 53
HMM316
攻城狮 程序猿
展开
-
深入理解 Tomcat(一)源码环境搭建和 How Tomcat works 源码
1、深入理解 Tomcat(一)源码环境搭建和 How Tomcat works 源码原创 2021-08-20 10:07:22 · 129 阅读 · 0 评论 -
File转byte数组,对比
1、BIO方式 /** * 将文件转换成byte数组 * @param filePath * @return */ public static byte[] File2byteBIO(File tradeFile){ byte[] buffer = null; try(FileInputStream fis = new FileInputStream(tradeFile); ByteA原创 2021-07-07 18:45:39 · 455 阅读 · 0 评论 -
单服务器最大tcp连接数及调优汇总
转载:https://www.cnblogs.com/duanxz/p/4464178.html单服务器最大tcp连接数及调优汇总启动线程数:启动线程数=【任务执行时间/(任务执行时间-IO等待时间)】*CPU内核数最佳启动线程数和CPU内核数量成正比,和IO阻塞时间成反比。如果任务都是CPU计算型任务,那么线程数最多不超过CPU内核数,因为启动再多线程,CPU也来不及调度;相反如果是任务需要等待磁盘操作,网络响应,那么多启动线程有助于提高任务并发度,提高系统吞吐能力,改善系统性能。单机转载 2021-05-21 17:33:04 · 462 阅读 · 0 评论 -
linux 环境下 Consul启动后 Service Check 报红叉的错误
1、环境介绍JDK:1.8spring-boot:2.2.2.RELEASEspring-cloud:Hoxton.SR1consul:1.9.52、问题描述使用springcloud搭建微服务,注册中心使用 Consul 包含三个服务,两个服务提供者(8005,8006),一个服务消费者(80) 分别启动服务后出现如图错误,服务分别注册成功,但是均 (Allservicechecksfailing),错误日志为: Get "http://xxx.xxx.com:800...原创 2021-05-17 14:04:00 · 1020 阅读 · 0 评论 -
Spring @Transactional 事务失效的场景?如何解决?
在项目开发中,如果涉及到多张表操作时,为了保证业务数据的一致性,大家都会采用事务机制;但是好多小伙伴可能只是简单了解一下,一旦遇到事务失效的情况,便会无从下手,此篇文章给大家整理了一下常见Spring事务失效的场景,希望开发过程尽量避免踩坑,造成时间精力的浪费。目录1、失效场景2、 解决方案1、非public权限修饰1、失效场景 @Transactional配置的方法非public权限修饰; @Transactional所在类非Spring容器管理的bean; .原创 2021-05-06 13:22:44 · 240 阅读 · 0 评论 -
很诡异的一件事情
下面这段代码是验证static的线程可见性的public class TestStatic { public static void main(String[] args) { Data data = new Data(); new Thread(() -> { System.out.println("线程启动a值为:"+data.a); try { Thread.sleep原创 2021-03-27 00:30:29 · 111 阅读 · 0 评论 -
Collection 类关系图
原创 2021-03-18 17:07:39 · 132 阅读 · 0 评论 -
Java多线程之Callable接口的实现
1.接口的定义:public interface Callable<V> { V call() throws Exception; }2.Callable和Runnable的异同先看下Runnable接口的定义public interface Runnable { public abstract void run();}Callable的call()方法类似于Runnable接口中run()方法,都定义任务要完成的工作,实现这两个接口时要分别重写这两个方法,主要的不转载 2021-03-18 10:03:28 · 175 阅读 · 0 评论 -
记一次nginx Too many open files
1、问题线上举行活动,由于在线人数激增,导致服务拒绝服务2、查找问题排查思路:由于线上的服务第一道关卡就是nginx,所以第一时间去看了nginx的错误日志,果不其然2021/03/06 20:10:37 [crit] 26071#0: *345171208 open() "/usr/html/50x.html" failed (24: Too many open files), client: xxx.xxx.xxx.xxx, server: aa.xxx.com, request: "原创 2021-03-11 11:16:36 · 307 阅读 · 1 评论 -
JDK 工具使用
目录0、主要功能简介1、jps:虚拟机进程状况工具2、jstat虚拟机统计信息监控工具2.1、类加载统计 -class2.2、编译统计-compiler2.3垃圾回收统计 -gc2.4堆内存统计-gccapacity2.5新生代垃圾回收统计 -gcnew2.6新生代内存统计 -gcnewcapacity2.7 老年代垃圾回收统计 -gcold2.8老年代内存统计 -gcoldcapacity2.9JDK7 ...原创 2021-03-09 17:30:32 · 283 阅读 · 0 评论 -
证明ArrayList是线程不安全的
import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.concurrent.ConcurrentLinkedQueue;import java.util.concurrent.LinkedBlockingQueue;public class ConcurrectLinkedQueueDemos { static List<String> li.原创 2020-10-28 14:16:57 · 230 阅读 · 0 评论 -
举个小栗子,重新理解一下synchronized,volatile,wait(),notify(),join()
直接步入正题:1、若有一个方法需要实现多线程情况下一个一个访问,则可使用synchronized关键字来实现。2、若有一个工作是需要用两个或多个线程来共同协作完成,并且必须是完成某个动作之后才能执行下一个动作,则可使用 wait()和 notify() 结合来操作,也可使用volatile关键字来实现 。举个栗子:/** * @author HMM * */public class TestWait { String name = "QQQ";//随意 volat...原创 2020-09-03 18:19:27 · 904 阅读 · 0 评论 -
jfinal项目配置websocket出现404
直接上代码1、导入依赖包<dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> <scope>provided</scope></dependency>2、配置websocketControlleri原创 2020-08-19 09:29:17 · 429 阅读 · 0 评论