线上排查:内存异常使用导致full gc频繁-编程思维

线上排查:内存异常使用导致full gc频繁 问题系统 日常巡检发现,应用线上出现频繁full gc 现象 应用线上出现频繁full gc 排查过程 分析dump 拉dump文件:小插曲:dump时如果指定:live,则在dump前jvm会先进行一次full gc,并且gc log里会打印dump full gc,这种对非内存泄漏导致的线上异常内存情况排查反而会带来不便,导致我们多dump了好

vscode编译java程序出现nosuchmethoderror的解决方法-编程思维

一、问题发现        某天,我在学习java反射机制的时候,在Debian中使用vscode编写了一个简单的java反射机制项目,在编译项目代码的时候出现如下错误:   Exception in thread "main" java.lang.NoSuchMethodError       进行断点调试,调试进入类中的某个方法时中断了,检查代码却发现没有写错,把代码复制到IDEA中运行也没

springboot访问windows共享文件-编程思维

前言 最近有项目需要开发档案打包下载功能,其中包含很多大附件,项目使用minio存储且不在同一台服务器上,为了优化速度决定使用windows共享功能进行文件传输 SMB1.0 集成jcifs类库,主要适用于一些老旧系统,但下载速度比较慢,仅作参考 此类库没有maven引用,官网地址:http://jcifs.samba.org/ 注意事项: 设置jcifs.smb.client.dfs.disa

java 双亲委派与类加载器-编程思维

JAVA 双亲委派与类加载器 双亲委派 虚拟机在加载类的过程中需要使用类加载器进行加载,而在Java中,类加载器有很多,那么当JVM想要加载一个.class文件的时候,到底应该由哪个类加载器加载呢? 这就不得不提到”双亲委派机制”。 首先,我们需要知道的是,Java语言系统中支持以下4种类加载器: Bootstrap ClassLoader 启动类加载器 Extention ClassLoad

java中的时区设置问题-编程思维

通过对日常环境和生产环境进行对比发现,变更时间传参之后,在后端java程序转换的日期不统一,对查询造成影响。 JAVA中的时区设置 第一种方式、通过代码指定。 final TimeZone timeZone = TimeZone.getTimeZone("GTM+8");TimeZone.setDefault(timeZone); 第二种方式、通过JVM参数指定 -Duser.timezone=

最容易懂的策略模式消除if-else分支,实现开闭原则,提高可扩展性-编程思维

1 介绍 策略模式最常用的场景就是用于消除代码中的if-else,这里所说的if-else并不是说任何简单的判断都引入策略模式来优化,这样反而会增加代码的复杂度。 反例:使用策略模式对一个boolean类型的变量进行优化 2 背景 我负责的有一个基于流程引擎开发的项目,有一个功能模块是查看申请单的详情,由于不同的申请单展示的信息各不相同,最开始负责这部分功能开发的同学使用if-else来判断申请

java基础1-1-1—java基础语法(数据类型及转换)-编程思维

JAVA基础 1、数据类型及转换 1.1 注释 注释是在程序指定位置添加的说明性信息 简单理解:对代码的一种解释说明,方便我们程序员更好的去阅读代码 // 单行注释 /* 多行注释 */ /**文档注释*/ 1.2 强制转换 强制转换:把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量 简单理解:大的给小的,不能直接给,需要强转 格式:目标数据类型 变量名 = (目标数据类型

java基础1-1-2—java基础语法(运算符)-编程思维

2、 运算符 2.1 算术运算符 运算符和表达式 运算符:对常量或者变量进行操作的符号 表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。 不同运算符连接的表达式体现的是不同类型的表达式。 举例说明: int a = 10; int b = 20; int c = a + b; +:是运算符,并且是算术运算符 a+b:是表达式,由于+是算术运算符,所以这个表达

java基础1-1-3—java基础语法(条件控制语句)-编程思维

3、 条件控制语句 3.1 流程控制语句-顺序结构 流程控制语句:通过一些语句,来控制程序的【执行流程】 流程控制语句分类: 顺序结构 分支结构(if,switch) 循环结构(for,while,do...while) 顺序结构语句是Java程序,默认的执行流程,按照代码的先后顺序依次执行。 从上到下,从左到右。 3.2 if语句格式1 if语句格式 格式: if(关系表达式){ 语句体;

java基础1-1-4—java基础语法(循环+随机数)-编程思维

4、循环+随机数 4.1 循环语句-for循环 循环 特征:1、重复做某件事情 2、具有明确的开始和停止标志 for循环格式介绍 public static void main(String[] args){ for(int i = 1;i <= 3;i++){ System.out.println("折返跑"); } } 4.2 for循环案例-输出数据1-5和5-1 注

juc并发编程-编程思维

什么是JUC java.util.concurrent* public class Test1 { public static void main(String[] args) { //获取处理器核数 System.out.println(Runtime.getRuntime().availableProcessors()); } } com.an

事务隔离级别 事务的传播属性 脏读 重复读 幻读-编程思维

仅此一文让你明白事务隔离级别、事务的传播属性、脏读、不可重复读、幻读 脏读 重复读 幻读 事务的基本要素(ACID) 原子性(Atomicity):一个事务必须操作完成,不会停滞在中间环节,执行过程出错,回滚到事务开始前的状态。该事务是一个不可分割的整体-如化学中学过的原子,是物质构成的基本单位。 一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比

初识redis-编程思维

Redis 五大基本数据类型 String List Set Hash Zset 三种特殊数据类型 geo hyperloglog bitmap Nosql概述 为什么要用Nosql 1、单机MySQL的年代! 90年代,一个基本的网站访问量一般不会太大,单个数据库完全足够! 那个时候,更多的去使用静态网页Html服务器根本没有太大的压力 思考一下,在这种情况下,整个网站的

list 根据对象中的属性过滤数据-编程思维

一.代码块 public static void main(String[] args) { // 1.测试数据创建 UserEntity user1 = UserEntity.builder().id(1).name("张三").sex(0).build(); UserEntity user2 = UserEntity.builder().i

springboot websocket 的简单使用-编程思维

项目结构: 引入依赖: "org.springframework.boot:spring-boot-starter-websocket", "org.springframework.boot:spring-boot-starter-thymeleaf", 启动类: public class DemoApplication { public static void main(Str