![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
冰凡gg
坚持每日打卡,let learning be instinct!
展开
-
SAAS用户数据库设计
saas用户设计原创 2022-08-18 11:41:52 · 883 阅读 · 1 评论 -
JVM方法区总结
1.栈、堆、方法区交互关系话不多说,上图(不懂得可以私信我)2.方法区的理解1.一块独立于java堆内存的区域2.是线程共有的区域3.和堆一样,可以设置方法区的内存大小4.也会有内存溢出的异常.比如:加载了过量的第三方jar包,在tomcat下部署了过多的工程.定义了太多的类.5.当关闭JVM时,会释放方法区的内存区域.3.HotSpot中方法区的演进在jdk及以前,习惯把方法区称为永久代,jdk8开始,元空间取代了永久代. 元空间和永久代的最大区别是:元空间不在jvm设置的内存中,原创 2020-12-04 11:05:07 · 126 阅读 · 0 评论 -
JVM 类加载子系统
1.类加载器的作用将文件中或者网络上加载的.class文件,通过类特定的方法,将类型信息放到方法区的元空间中.不需要管他是否需要运行,只管加载.2.类的加载过程:一共分为5个部分:1.加载通过类的限定全类名获取到类的二进制信息,将这些二进制对应的类信息的静态存储结果存储到运行时数据结构中.再在内存中加载一个类对应得java.lang.Class对象.作为方法获取类信息的入口.2.链接:分为三个过程①验证:文件格式验证:.class文件会有特定的格式元数据验证:验证是否时抽象类,接口,父类原创 2020-12-04 09:56:42 · 101 阅读 · 0 评论 -
JVM垃圾回收器总结
1.GC分类按线程数:并行垃圾回收器:Parallel Collector. 同一时间段内只有一个cpu执行垃圾回收操作.用户线程等待. 串行垃圾回收期:Serial Collector.同一时间段内可以有多个cpu执行垃圾回收操作,用户线程等待.按压缩方式:压缩式,内存有序. 非压缩式:内存无序.按工作方式:并发式,及并发GC,用户线程和垃圾回收器同时交替进行. 独占式,垃圾回收线程进行时,用户线程需要等待.按工作区分:年轻代,老年代.2.GC性能指标吞吐量: 用户线原创 2020-12-03 14:58:52 · 3678 阅读 · 2 评论 -
JVM垃圾回收的的相关概念
1.System.gc()**system.gc()或Runtime.getRunTime().gc()会调用Full gc对堆中空间进行回收. 但是不一定调用成功.一些特殊情况下,比如编写性能基准,我们可以在运行之间调用System.gc2.内存溢出和内存泄露内存溢出:发生了OOM,即堆内存不够.存在大量大对象.并且无法被回收.内存泄露:存在大量没有被程序应用,但是无法被GC回收,最后导致OOM.举例:单例对象的生命周期和程序一样长,如果存在外部对象引用的话,这个外部对象无法被回收. 还有一种资源原创 2020-12-02 16:35:15 · 99 阅读 · 0 评论 -
JVM的垃圾回收总结
一. 垃圾回收概述:对于没有指针指向的对象就是垃圾.需要给垃圾回收器回收.二. 垃圾回收相关算法:1.标记阶段:引用计数法 在每个对象中维护一个计数器,被对象引用了就+!,没有就-1,0代表没有引用. 优点:实现简单,垃圾便于辨识,效率高. 缺点:需要维护计数器,占用内存.没法解决循环引用的问题.所以java中.,没有使用该计数法来标记垃圾.2.标记阶段:可达性分析算法基本思路:以GCtRoots为起点,从上到下判断对象是否可以通过引用链可达,如果可达代表不是垃圾,不可达代表该对象无引用可以被回原创 2020-12-02 15:53:08 · 103 阅读 · 0 评论 -
关于StringTable的知识
StringTable的版本调整记录:1.jdk6及以前,放到永久代中.jdk7将字符串常量池放到了java堆中.2.调整原因: 永久代只有在fullGc的时候才触发.回收效率低,放到堆中,能直接进行内存分配.和回收.String的基本特性:1.用final修饰,不可变,2.实现了seriailizable接口,可序列化.3.实现了comparable接口,可以比较大小.4.在jdk8及以前,底层时char[],jdk9以后改成了byte[]. (原因:char数组一个char占用两个字节,原创 2020-12-02 11:52:35 · 228 阅读 · 1 评论 -
org.apache.ibatis.reflection.ReflectionException
错误原因:mybatis中的xml的属性名,和实体类中的属性名字不一致,注意:区分大小写原创 2020-11-05 09:33:58 · 160 阅读 · 0 评论 -
Exception in thread “A“ java.lang.IllegalMonitorStateException
错误:Exception in thread “A” java.lang.IllegalMonitorStateException如图:错误原因:使用wait(),notifyAll(),方法没有加锁.解决:加上synchronized 锁原创 2020-11-05 09:13:19 · 587 阅读 · 1 评论 -
Error:java: Compilation failed: internal java compiler error
Error:java: Compilation failed: internal java compiler error原因:java版本错误.***解决:***:1.将设置里面的java版本.project的java版本,modules中的java版本,三个地方的版本改成一致.如图:原创 2020-11-04 20:29:59 · 91 阅读 · 0 评论 -
idea服务启动的时候特别慢然后启动以后页面请求也特别慢。
原因:断点打到了方法上了,如图。去掉方法上的断点试试。原创 2020-07-13 20:53:06 · 654 阅读 · 1 评论 -
集合remove时出现ConcurrentModificationException 错误
错误原因:遍历集合的时候调用list.remove,在遍历中改变了数组的长度。所以就会报ConcurrentModificationException 错误。解决办法:通过迭代器iterator遍历可以在集合中删除元素。如图:注释掉的就是会报错的用法。后面的是正确用法。...原创 2020-04-27 13:30:55 · 621 阅读 · 0 评论 -
mybatis,mybatisPlus 无效的列类型: 1111
错误原因:修改或者新增的时候出现空值,对象无法获取到对应的jdbcType类型。解决:在传入的子后面加上对应的jdbcType。比如:原创 2020-04-22 14:52:02 · 3506 阅读 · 0 评论 -
用逗号隔开的字符串去重
用逗号隔开的字符串去重用逗号隔开的字符串去重用逗号隔开的字符串去重看了几篇博客感觉都挺麻烦了,自己就写了个看着高大上的去重方法(利用stream流)。 // String thorghLIne = "fttt,yyy,uuu,uuu,ooo,ooo"; //将字符串变成数组,然后利用stream流变成集合 List<String> throughLines = ...原创 2020-04-10 17:18:14 · 2932 阅读 · 3 评论 -
微信商城中后台微信支付接口
加粗样式微信支付和支付宝支付接口学起来简直一个天上一个地下。废话不多说写接口吧。1.先定义好接口:@CrossOrigin(origins = “")// 解决跨域@GetMapping(“getPages/{orderId}”)public Map<String,String> getPackage(@PathVariable String orderId, HttpSer...原创 2019-07-29 13:54:55 · 454 阅读 · 0 评论 -
ExcelUtil
package com.backstage.util;import com.google.zxing.MultiFormatWriter;import org.apache.poi.hssf.usermodel.;import org.apache.poi.hssf.util.HSSFColor;import org.apache.poi.ss.usermodel.FillPatternT...原创 2019-07-29 14:34:31 · 211 阅读 · 0 评论 -
mybatis出现The server time zone value '�й���ʱ��' is unrecogni
The server time zone value ‘�й���ʱ��’ is unrecogni解决办法:在url 后面拼上 serverTimezone=UTC如图:原创 2019-08-02 15:32:41 · 10133 阅读 · 0 评论 -
配置tomca,报错。The Apache Tomcat installation at this directory is version 8.5.6A
The Apache Tomcat installation at this directory is version 8.5.6. A Tomcat 8.0 installation is expected.原因:版本对不上。解决一:下载个对应版本解决二:①在Tomcat的安装目录中找到lib目录,再找到catalina.jar。使用压缩软件 (WinRAR或是好压)打开它。②依...转载 2019-08-06 11:01:51 · 459 阅读 · 0 评论 -
mysql中给表中添加唯一约束
ALTER TABLE identification_manage ADD UNIQUE(platform_flag)注意:不要给字段名加单引号,否则会报错。原创 2019-08-09 14:53:49 · 905 阅读 · 0 评论 -
springboot 引入本地jar包
当maven工程中没法下载专用的jar包时,需要从本地引入相关jar包。1.现在src/main/resources 下创建一个lib文件,将需要引入的jar包丢进去。2.打开pom文件,在pom中加入:因为我要引入:这四个jar包,所以我在pom文件中引入:com.handlecommons-codec1.11systemproject.basedir/src/main/re...原创 2019-08-09 17:11:08 · 650 阅读 · 0 评论 -
启动项目报错
启动后端项目时,报的错(记一下):java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'selectNotice原因:出现两个相同的映射。原创 2019-09-10 09:30:12 · 217 阅读 · 0 评论 -
ssh框架抛异常org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for curr
ssh框架抛异常org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread。原因:事务不同步解决:在类上加注解@Transactional如图:...原创 2019-09-22 14:12:07 · 4732 阅读 · 0 评论 -
关于maven管理的springboot项目在idea上如何打包部署到linux服务器上。
关于maven管理的springboot项目在idea上如何打包部署到linux服务器上。这里写自定义目录标题先说一下我的项目环境和部署环境。第一种:以jar包的方式运行。以war包的方式部署在Linux服务下。先说一下我的项目环境和部署环境。1.项目:springboot + vue mysql数据库。2.部署环境:liunx系统 centos7.第一种:以jar包的方式运行。1....原创 2019-09-27 09:57:27 · 930 阅读 · 0 评论 -
关于@Slf4j注解
如果不想每次都写private final Logger logger = LoggerFactory.getLogger(XXX.class); 可以用注解@Slf4j。这个注解是lombok插件的注解,首先安装lombok插件。原创 2019-07-02 09:38:16 · 97 阅读 · 0 评论