- 博客(78)
- 收藏
- 关注
原创 okhttp导致的内存溢出(OOM)sun.security.ssl.SSLSocketImpl
okhttp导致的内存溢出(OOM)sun.security.ssl.SSLSocketImpl。原因是每次请求都new一个OkHttpClient对象,每个OkHttpClient会维护一个连接池(线程池),线程池中的keepAliveTime参数为1分钟。
2023-12-01 10:04:49 1937
原创 记录一次项目上线后报错java.lang.UnsupportedClassVersionError: org/apache/tika/mime/MimeTypeException
项目上线后,请求接口报错org/apache/tika/mime/MimeTypeException has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
2023-11-28 10:27:54 712 4
原创 线上服务出现异常,获取链接超时wait millis 60 000, active 0, maxActive 400, creating 1
无法创建新连接,wait millis 60000, active 0, maxActive 400, creating 1"
2023-08-02 16:35:58 1700
原创 禁用了低版本的ssl协议tls1.0、tls1.1报错Received fatal alert: protocol_version
第三方禁用了低版本的ssl协议tls1.0、tls1.1导致请求失败。
2023-07-26 14:48:00 764
原创 No qualifying bean of type ‘com.netflix.loadbalancer.IRule‘ available: expected single matching bean
Ribbon负载均衡规则配置类位置错误导致:No qualifying bean of type 'com.netflix.loadbalancer.IRule' available: expected single matching bean
2024-01-20 17:20:09 354
原创 java.lang.IllegalArgumentException: Could not resolve placeholder XXX‘ in value
Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'config.info' in value "${config.info}"
2023-12-14 11:02:35 990
原创 CommandLineRunner和@PostConstruct区别与应用场景
CommandLineRunner和@PostConstruct区别与应用场景
2023-12-08 16:57:16 498
原创 zookeeper连接客户端操作数据时报错Socket is not connected
zookeeper客户端连接报错:org.apache.zookeeper.ClientCnxnSocketNIO - Ignoring exception during shutdown inputjava.net.SocketException: Socket is not connected
2023-10-17 23:26:14 1588
原创 zookeeper搭建分布式集群启动失败(Error contacting service. It is probably not running.)
Error contacting service. It is probably not running。annot open channel to 3 at election address java.net.ConnectException: 拒绝连接 (Connection refused)
2023-09-05 01:39:46 1401
原创 一文全解ThreadLocal
ThradLocal简介、内部结构、源码、扩容机制、数据定位、如何保证线程安全、导致内存泄漏原因、如何避免内存泄漏、key为设计成弱引用的原因、父子线程如何共享数据、GC回收等讲解
2023-02-25 19:24:51 585 1
原创 java基础—Volatile关键字详解
volatile详解—并发编程3大特性、volatile从CPU层面和JMM层面如何保证可见性、有序性,为什么不能保证原子性、happens-before讲解以及案例演示
2023-02-09 01:10:56 3703 2
原创 java基础—java内存模型(JMM)CPU架构、缓存一致性、重排序、JMM的实现、JMM保证可见性、有序性问题的详解
java内存模型详解(JMM常见面试题),CPU架构、缓存一致性、重排序、JMM的实现、JMM保证可见性、有序性问题的详解。
2023-02-04 19:43:52 2691
原创 java基础—关键字之final、static、abstract、interface详解
java关键字final、static、abstract、interface详解
2023-02-01 23:48:05 646 2
原创 StringUtils工具类isEmpty()系列与isBlank()系列详解
StringUtils工具类isEmpty()系列与isBlank()系列详解
2023-01-31 02:27:11 1143
原创 idea新建Springboot项目,设置默认maven和jdk版本
由于每次新建Springboot项目,maven总是在c盘和jdk版本不是自己需要的版本。每次都需要自己重新配置。idea新建Springboot项目,设置默认maven和jdk版本
2022-12-30 23:27:42 7115
原创 package com.sun.xml.internal.bind.v2 does not exist [INFO] 1 error
这种情况是导入的包有问题,找到对应报错的类,直接删除import导入的包即可
2022-03-28 10:30:38 628
原创 类加载和new对象的过程区别
类加载的的过程(loadClass)加载:将类加载进内存链接(验证、准备、解析)–验证:验证clas文件格式(魔数、版本号…)、符号引用等信息–准备:为静态变量赋默认值(1.8之后静态变量存放于堆种)–解析:分为静态解析和动态解析,作用主要是将符号引用解析为直接引用初始化:执行< clini>方法,为变量赋初始值。隐式调用构造函数new对象过程判断是否被加载过若没有——加载申请内存空间为对象分配内存空间(指针碰撞、空闲列表)赋默认值执行构造函数...
2021-07-28 16:44:10 413
原创 数组和集合的区别(面试)
数组是固定长度的,集合是动态长度(底层是数组或者链表)一个数组只能存放一种数据类型,集合可以存放多种数据类型(有了泛型之后,也可以只存储一种数据类型)数组可以存储基本数据类型和引用类型,而集合只能存储引用类型(自动装箱和拆箱)...
2021-07-15 03:07:59 339
原创 ArrayList(1.8)和Vector的区别(面试)
ArrayList(1.8)和Vector的区别底层结构:ArrayList和Vector采用的都是Object数组安全性:ArrayLiat:不是线程安全的Vector:是线程安全的初始化方式:ArrayList:懒汉式,无参构造函数创建对象时默认数组长度为0,在第一此时用add()时才会扩容为10Vector:懒汉式,无参构造函数创建对象时,会创建一个长度为10的Object数组扩容大小:ArrayList:扩容是原来的1.5倍Vector:扩容是原来的2倍(
2021-07-15 03:06:46 90
原创 HashMap和HashTable的区别(面试)
HashMap和HashTable区别底层结构:HashMap(1.8)采用的是:数组+链表+红黑树HashTable采用的是:数组+链表安全性:HashMap不是线程安全的HashTable是线程安全的(方法中加上了synchronized)是否可以null值HashMap的k只能一个null,value可以为多个nullHashTable的k-v都不能出现null加载方式HashMap是饿汉式(无参new时,创建的时null的数组)HashTable是饿汉式
2021-07-15 02:41:18 158
原创 class文常量池、运行时常量池、字符串常量池的区别
字符串常量池、class文件常量池和运行时常量池的区别1、Class文件常量池class文件常量池就是在class文件十大组成部分中之一classs文件十大组成部分1.魔数2.版本号3.常量池(class文件常量池)4.类访问标记5.类索引6.超类索引7.接口表索引8.方法表9.字段表10.属性表存储的主要有字面量和符号引用一般包括以下三种常量类和接口的全限定类名和描述字段名称和描述(字段信息)方法名称和描述(方法信息)具体结构去看class文部分笔记
2021-07-14 17:43:06 213 2
原创 JVM——垃圾回收器与内存分配策略
一、GC的基础知识介绍见垃圾收集器之前,先介绍一下基础知识1、JAVA VS C++javaGC处理垃圾开发效率高,执行效率低C++手工处理垃圾忘记回收—内存泄漏回收多次—非法访问开发效率低,执行效率高2、定位垃圾(如何确认对象的死活)1.引用计数法(REferenc Counting),简称RC如何判断:在对象中添加一个引用计数器,有一个地方引用它,计数器+1;当引用失效时,计数器值就-1,任何时刻计数器位0的对象就是不可被使用的。缺点:不能解决对象
2021-07-14 17:12:18 185 2
原创 SpringBoot自动装配原理解析
按住Ctrl点击查看启动类MySpringBootApplication上的注解-@SpringBootApplication@SpringBootApplicationpublic class MySpringBootApplication { public static void main(String[] args) { SpringApplication.run(MySpringBootApplication.class); }}注解@SpringB.
2021-06-11 01:06:50 63
原创 SpringBoot多条件搜索标准写法
自己在学习写项目过程中觉得有用的点,记录下来其他组件就不多写了,主要逻辑是在业务层,下面是业务层(Service)中的代码//==community是一个对象== @Override public Page<Community> search(Map searchMap) { //通用Mapper多条件搜索,标准写法 Example example = new Example(Community.class);//指定查询的表tb_communi.
2021-06-08 03:56:47 1396
原创 SpringJDBC——JdbcTemplate
使用到的Druid数据源和工具类数据库连接池c3p0和Druid详解1.概述Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发2.优势不用手动获取链接和释放资源。只关心如何定义sql语句,执行和处理3.步骤导入开发jar包获取数据源(借助druid获取数据源)创建JdbcTemplate对象,传入数据源编写sql语句调用JdbcTemplate的方法来完成CRUD的操作 4.演示druid.propert.
2021-05-07 19:01:39 204 2
原创 数据库连接池c3p0和Druid详解
文章目录1、数据库连接池1.概念2.好处3.实现4.介绍2、C3P0连接池技术1.与 Druid相比的2.步骤3.演示3、Druid连接池技术1.概述2.步骤3.演示4.打包成工具类1、数据库连接池1.概念其实就是一个容器(集合),存放数据库连接的容器。当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。2.好处节约资源用户访问高效3.实现标准接口:DataSource(数据源/连接池)-- jav
2021-05-05 18:17:11 677 1
原创 JDBC详细解析
文章目录1、JDBC介绍1.概念:2.使用JDBC开发用到的jar包3.JDBC核心API2、快速入门1.步骤2.演示3、各个对象和接口的详细解析1. 加载和注册驱动(Driver注册驱动功能)2.获取数据库链接对象(Driver获取链接对象功能)3.Connection接口:4.Statement接口5.Resoult结果集6.PreparedStatement:执行sql的对象4、工具类JDBCUtils5、事务1、JDBC介绍1.概念:Java DataBase Connectivity J
2021-05-05 01:06:28 337
原创 MySQL——多表查询
文章目录1、内连接1.隐式内连接2.显示内连接3.总结2、外连接、1.左外链接2.右外链接3、子查询1.概念2.子查询的三种情况3.查询结果是单行单列4.查询结果是多行单列5.查询结果是多行多列准备数据库# 创建部门表 CREATE TABLE dept( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20) ); INSERT INTO dept (NAM
2021-05-04 18:18:16 143
原创 使用IDEA配置JVM时控制台输出乱码
使用IDEA配置JVM时控制台输出乱码在idea界面菜单栏——Help——Edit Custon VM Options加上 -Dfile.encoding=utf-8Run菜单栏——run——Edic Configurations——在VM Options中填上 -Dfile.encoding=utf-8,问题解决
2021-04-23 17:24:10 273
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人