- 博客(23)
- 收藏
- 关注
原创 jpa批量处理大对象,内存溢出的问题
几天前,遇到了一个问题,从发现到解决,耗费了好几天,写一遍博客,记录下经过;任务描述:将mysql存储的第三方数据,迁移到mongodb;问题描述:数据迁移过程中,运行到大概1万多条的时候,突然报java.lang.OutOfMemoryError: Java heap space解决过程:因为第三方数据过大,通讯录记录可以达到几十兆,起初认为,新生成的大对象因为数据过大,无法保存于...
2019-08-17 16:18:34 3654 1
原创 jpa的r对象明明存在,却报错了空指针
原因:jpa通过erm生成的r对象只有findby方法,由于没有参数导致了空指针。修改:erm的表格创建,需要添加至少一个index,用于数据的查询。
2023-06-16 10:03:16 350
原创 springBoot常见面试题,springboot是如何进行自动装配的,如何内置tomcat并运行的?
springBoot常见面试题,springboot是如何进行自动装配的,如何内置tomcat并运行的?
2023-01-08 20:24:47 233
原创 Java命令行运行错误: 找不到或无法加载主类
最近打算重新学习一下java编程思想,通过命令行执行第一个代码就出问题了,javac和java -version都是正常的,java命令会报错 错误: 找不到或无法加载主类 HelloDate
2022-12-14 15:03:54 4338
原创 springBatch配置远程step
远程Step数据处理的示意图消息队列和AMQ服务器的配置配置本地的step(使用RemoteChunkHandlerFactoryBean)配置本地的step(使用ChunkProcessorChunkHandler,仅chunkHandler部分) 配置远程step远程job配置读取数据库配置 写数据库配置
2022-12-05 00:27:06 192
原创 实战模拟对象进入老年代方式补充:幸存区内存不足
上一节说进入老年代有三种方式,其实还遗漏了一种,如果young GC过程中,幸存区的内存不足,也是会把对象放置到老年代的,不过是全都放到老年代,还是部分放到老年代,我们上手试试。首先是JVM配置-XX:NewSize=10485760 -XX:MaxNewSize=10485760 -XX:InitialHeapSize=20971520 -XX:MaxHeapSize=20971520 -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=15 -XX:Pret
2022-05-21 22:13:38 223
原创 实战模拟对象进入老年代的三种方式
我知道大家经常会被问题面试题-对象在什么情况情况下会进入老年代,答案我想大家都是知道的,但是更详细一点的,到底是年龄到了15就进入老年代呢,还是15的下一次young GC进入老年代,最大年龄设置为0会是什么情况,设置为16又会是什么情况?让我们用代码来实际操作看下。1)动态年龄判断,当幸存区中年龄1+年龄2+年龄3+...+年龄n-1<50%,年龄1+年龄2+年龄3+...+年龄n-1+年龄n>50%,那么幸存区种年龄n及其以上的对象就会放到老年代中。2)年龄到达阈值,通过-XX:Ma
2022-05-21 21:17:53 276 8
原创 java中的四种引用类型
java中的四种引用类型,分别为强,软,弱,虚四种引用强引用我们最常见的new就是一种强引用,只要这个引用还在,垃圾回收是绝对不会回收这个对象的 /** * 强引用 */ public static Student s1 = new Student();软引用将实例对象通过SoftReference包装起来,正常情况下不会回收,在内存即将溢出时,会进行回收 /** * 软引用 */ public static
2022-05-16 22:16:55 421 3
原创 方法区会不会进行垃圾回收?
jvm相关参数如下-Xms,-Xmx :-X一般代表的是一些JVM参数,ms 是memory start,mx 是memory max-Xms是堆内存的初始大小,-Xmx为堆内存的最大大小,一般会将初始大小和最大大小设置为相同的值,原因:防止内存抖动,因为在堆内存不够使用的时候,jvm向操作系统申请内存需要一定的开销。-Xmn:是堆内存中新生代的大小,n代表的new,那么老年代的大小就是Xms-Xmn了-XX:Permsize :永久代大小,也就是方法区,-XX:MaxPermSize永久.
2022-05-16 21:10:03 856
原创 java内存模型
类加载后,用于存放加载的类信息的一块内存内存区域1、存放加载的类(方法区,方法区还会放常量池,也叫永久代)现在叫metaspace,方法区存放加载的类2、存放创建的对象java堆内存3、运行方法时使用 (程序计数器+java虚拟机栈)用于保存每个方法的局部变量是java虚拟机栈,一个方法创建一个栈帧4、调用native方法本地方法栈...
2022-05-14 23:28:06 116
原创 jvm加载流程以及类加载器的概念
jvm加载类的流程1、加载(将对应的.class字节码文件加载到对应的类到内存)2、验证(校验相应的.class是否完全符合jvm规范)3、准备(需要关注的,因为给类分配了内存空间,类变量也分配好内存空间,并给默认值)给类变量分配内存空间,并赋值一个初始值4、解析(解析符号,并关联到具体的对象的真正的内存地址)将符号引用替换为直接引用符号引用就是一组符号来描述所引用的目标。符号引用的字面量形式明确定义在《java虚拟机规范》的class文件格式中。直接引用就是直接指向目标的指
2022-05-14 17:24:54 179 2
原创 nacos之服务注册元数据
namespace:为了可以使nacos上注册的服务和添加的配置实现环境隔离,比如测试环境和生产环境,nacos上可以添加对应的namespace用于区分不同的环境,只有在相同namespace下的服务才可以相互调用新增namespace步骤如下:注册服务列表相关备注(因为使用的rpc框架有多种,所以这里就不提及相关的rpc配置)服务名:注册时定义的服务名称分组名称:用于定义一类系统的分组集群名称:多个实例可以分成不同的集群,比如10的实例可以分成两个集群,5个实例一个集群实例.
2022-05-14 00:56:33 3881
原创 nacos的服务注册以及健康检测机制
namespace:为了可以使nacos上注册的服务和添加的配置实现环境隔离,比如测试环境和生产环境,nacos上可以添加对应的namespace用于区分不同的环境,只有在相同namespace下的服务才可以相互调用新增namespace步骤如下:注册服务列表相关备注(因为使用的rpc框架有多种,所以这里就不提及相关的rpc配置)服务名:注册时定义的服务名称分组名称:用于定义一类系统的分组集群名称:多个实例可以分成不同的集群,比如10的实例可以分成两个集群,5个实例一个集群实例个
2022-05-13 23:30:32 2462
原创 管理入门4之关键挑战
先上干货,如何给下属布置任务布置任务的六个步骤(做法和参考话术)1、陈述任务 说明以下信息 任务背景 预期目标 期望达到的结果 下属能够把握的程度 不通结果可能对公司带来的影响 “XX,有个工作需要交给你完成,” 2、要求重复 要求下属重复一遍刚才布置的任务 如果发现有遗漏,等下下属重复完成任务内容之后,给予补充 “你可以重复一下我刚刚说的内容吗?看看我有没
2022-05-13 21:20:21 106
原创 管理入门3之业务管理
先上干货,如何给下属布置任务布置任务的六个步骤(做法和参考话术)1、陈述任务 说明以下信息 任务背景 预期目标 期望达到的结果 下属能够把握的程度 不通结果可能对公司带来的影响 “XX,有个工作需要交给你完成,” 2、要求重复 要求下属重复一遍刚才布置的任务 如果发现有遗漏,等下下属重复完成任务内容之后,给予补充 “你可以重复一下我刚刚说的内容吗?看看我有没
2022-05-10 00:01:10 400
原创 管理入门2之管理挑战
初级管理者常见挑战1、老板给团队定了太高的目标。2、不知道如何向老板争取资源3、任务布置下去,下属常常推卸任务。4、每天总是特别的忙,几乎没有休息时间。5、不知道如何向上管理。上述常见挑战,都是管理者每天都遇到的挑战一:如何提升团队的执行力优秀的管理者具有三大能力,这个三大能力分别是业务管理,团队管理和自我管理。业务管理(制定计划,过程监控,复盘改进)1、制定计划和目标环节会遇到的问题目标不清晰:拿到上级给的模糊目标不知道如何做合理的拆解 ...
2022-05-08 16:37:40 1139
原创 管理入门1之初为管理者的误区
初级管理者常见问题1、把上级交代的任务分配下去,就当甩手掌柜,到了任务完成期限,或者上级询问,再去询问进度。2、当下属出现问题时,不是去教会下属如何解决问题,而是直接自己上手处理。3、通过打压,训斥式的高压管理方式去管理下属。对于上述常见问题,都是管理者在管理过程中,对于自己的定位有误导致的一:从执行者到管理者Q1:管理者和执行者的区别A1:工作方式,工作对象,工作技能,职责范围工作方式:管理者是带领团队去做,执行者是亲力亲为工作对象:管理者是人+事,执行者是事工作技
2022-05-02 23:55:47 1320
原创 nacos集群部署
nacos作为系统的中间件,如果挂掉,对系统影响非常严重,所以生产上的一般是以集群搭建,耳接下来描述一下集群搭建步骤(windows环境)1、相关nacos复制三个文件夹(之前单机nacos已配置好)2、因为是本地启动,所以需要集群的服务端口不同,分别将nacos1,2,3的port设置为8848,8858,8868(文件路径nacos\conf\application.properties)3、配置集群地址(文件路径nacos\conf\cluster.conf)..
2022-04-27 00:39:20 2788
原创 nacos相关操作步骤演示(windows)
1、进入nacos目录C:\soft\nacos\bin,相关启动命令如下启动成功 standalone代表单机启动2、查看nacos界面http://127.0.0.1:8848/nacos/index.html
2022-04-26 23:58:27 2091
原创 nacos入门
一、nacos微服务使用场景nacos微服务注册中心比如有两个服务,一个是订单服务,一个库存服务,订单服务需要调用库存服务中是否有相应商品库存用于生成订单1、需要在库存服务配置nacos地址,并将库存服务注册到nacos的服务注册中心,nacos的服务注册中心获取对应的service,ip,port2、需要在订单服务配置nacos地址,用于服务发现,当订单服务需要调用库存服务时,根据servicename,从获取nacos服务注册中心获取一个服务list(所有提供服务的ip和port),然.
2022-04-26 22:52:54 1656 3
原创 Maven通过profiles标签读取不同的配置和不同的maven jar包依赖
maven的多环境配置,关键字是profilemaven命令时添加相关 条件mvn clean package -P prd //即构建出生产环境需要的war或者jar包,其它环境配置类似保留一个URL:https://www.jianshu.com/p/e6a87c2414ef1、在pom.xml中添加profiles<profiles> <...
2022-04-26 22:14:20 599
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人