自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 dockerfile-maven-plugin:1.4.13‘ not found,maven仓库导入dockerfile-maven-plugin失败

dockerfile-maven-plugin:1.4.13‘ not found,maven仓库导入dockerfile-maven-plugin失败

2022-07-10 15:53:39 1255 1

原创 springboot解决完Public Key Retrieval is not allowed异常又出现Access denied for user ‘‘@‘localhost‘

连接数据库时出现Public Key Retrieval is not allowed异常加上allowPublicKeyRetrieval=true又出现ccess denied for user ‘’@‘localhost’原因springboot框架的版本问题解决方法:springboot版本号从2.4.5改为2.6.3

2022-04-17 13:11:19 701

原创 引用变量和实例对象根本区别

引用变量和对象区别Person p=new Person();//p是一个引用存在活动栈帧中是一个局部变量,引用的对象new Person()是存在堆里面的//根对象指的是堆中像newPerson一样的对象,而不是栈帧里的局部变量引用//活动线程中引用堆里的对象可作为根对象...

2022-03-22 11:20:13 639

原创 i++,++i的JVM底层实现

i++,++i的底层i++和++i的区别:先执行iload指令还是innc指令假如i=4,s=i++时先执行iload 1,(i在局部变量表索引22的位置),将局部变量表索引22位置的i的值4压入操作数栈然后执行引擎对i执行自增运算(innc 22,1),innc指令是在局部变量slot(槽)上进行运算的,所以局部变量表上的i=5最后执行执行istore 2(s在局部变量表索引2的位置),所以s=4.假如i=4,s=++i时首先执行引擎对i执行自增运算(innc 22,1),innc

2022-03-22 11:18:29 583

原创 String与StringTable串池机制,string.concat()与intern()方法底层,intern()方法jdk1.6,1.8区别

String字符串concat方法拼接String x="a";String y="b"; x.concat(y)concat源码中容易得出,concat方法通过创建一个长度为两字符串长度之和的byte数组来存放两字符串,然后将两个字符串依次放入数组中,实现了字符串的拼接。至于为什么使用byte数组,上面讲过,String类型底层使用byte数组存储char数组,因此concat使用byte数组来存储字符串,如果用其他类型的数组就要进行类型转换。注意:concat方法并不会对原对象进行

2022-03-22 11:11:53 684

原创 LinkdekList ArrayList添加元素的本质

LinkdekList ArrayList添加元素的本质LinkdekList ArrayList添加元素的本质是添加引用,将泛型元素E,添加进Element对象,所以它里面的元素可能会变化当我们得到一个添加好元素的链表,不想它发生改变可以用List的构造器方法,创建生成新的List,构造器内传入旧List,它会创建一个复制旧list内容的全新list,这样对旧链表增删改不会引起新链表改变 LinkedList<List<Integer>> res = new LinkedLi

2022-03-22 11:04:31 529

原创 JVM、JRE、JDK区别详解

JVM、JRE、JDK区别​ JDK Java Virtual Machine(Java虚拟机)-java程序的运行环境,JVM是一种用于计算设备的规范(所以可以有很多种JVM,甚至可以自己开发JVM),是虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加

2022-03-22 11:03:21 1271

原创 java深拷贝与浅拷贝区别和特点

java深拷贝与浅拷贝实现对象拷贝的类,需要实现 Cloneable 接口,并覆写 clone() 方法。浅拷贝就是创建出一个对象后,将原类的成员变量的地址赋以新的对象的成员变量,像Object对象的clone方法就是浅拷贝深拷贝,在拷贝引用类型成员变量时,为引用类型的数据成员另辟了一个独立的内存空间,实现真正内容上的拷贝。(1) 对于基本数据类型的成员对象,因为基础数据类型是值传递的,所以是直接将属性值赋值给新的对象。基础类型的拷贝,其中一个对象修改该值,不会影响另外一个(和浅拷贝一样

2022-03-22 11:02:01 804

原创 java线程与线程池,Thread方法讲解,线程池详解

Thread的方法wait():使一个线程处于等待状态,并且释放所持有的对象的lock。(78条消息) Java对象中等待(wait)和通知(notify)_坤少_jkson的博客-CSDN博客_java waitsleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,当线程调用interrupt(),去Lock那章看详细讲解,改变中断的标志,设置为true,它会让某些正在执行特定方法抛出异常,比如说sleep(),wait(),调用此方法要捕捉InterruptedException异常。

2022-03-22 11:00:32 352

原创 synchronized与Lock区别,用法,性能,锁机制

synchronized与Lock不同之处用法上的不同:synchronized既可以加在方法上,也可以加载特定代码块上,而lock需要显示地指定起始位置和终止位置。synchronized是托管给JVM执行的,lock的锁定是通过代码实现的,它有比synchronized更精确的线程语义。性能上的不同:lock接口的实现类ReentrantLock,不仅具有和synchronized相同的并发性和内存语义,还多了超时的获取锁、定时锁、等候和中断锁等。在竞争不是很激烈的情况下,synchroni

2022-03-22 10:58:33 1267

原创 java Lock方法解析,实现类解析,lock.lockInterruptibly()底层源码实现

LockLock是一个接口public interface Lock { void lock(); void lockInterruptibly() throws InterruptedException; boolean tryLock(); boolean tryLock(long time, TimeUnit unit) throws InterruptedException; void unlock(); Condition newConditio

2022-03-22 10:56:29 1167

原创 synchronized使用特性详解,synchronized实现可重入原理

synchronized详解一、应用修饰实例方法,锁是实例对象修饰静态方法,锁就是当前类的 class 对象锁静态成员不专属于任何一个实例对象,是类成员,因此通过 class 对象锁可以控制静态成员的并发操作。一个线程 A 调用一个实例对象的非 static synchronized 方法,而线程 B 需要调用这个实例对象所属类的静态 synchronized 方法,是允许的,不会发生互斥现象,因为访问静态 synchronized 方法占用的锁是当前类的 class 对象,而访问非静态

2022-03-21 00:51:59 2679

原创 java锁机制详解

java锁机制1. 乐观锁 VS 悲观锁​ 悲观锁认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。Java中,synchronized关键字和Lock的实现类都是悲观锁。​ 乐观锁认为自己在使用数据时不会有别的线程修改数据,所以不会添加锁,只是在更新数据的时候去判断之前有没有别的线程更新了这个数据。如果这个数据没有被更新,当前线程将自己修改的数据成功写入。如果数据已经被其他线程更新,则根据不同的实现方式执行不同的操作(例如报错或者自动重

2022-03-21 00:50:27 6203 2

原创 并发编程三个重要概念,原子性、可见性、有序性详解

并发编程三个概念1.原子性​  原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。​ 例子:银行转账​ 再举个最简单的例子,大家想一下假如为一个32位的变量赋值过程不具备原子性的话,会发生什么后果?i = 9;假若一个线程执行到这个语句时,我暂且假设为一个32位的变量赋值包括两个过程:为低16位赋值,为高16位赋值。那么就可能发生一种情况:当将低16位数值写入之后,突然被中断,而此时又有一个线程去读取i的值,那么读取到的就是错误的数据。

2022-03-21 00:48:04 440

原创 java中volatile的作用,volatile保证可见性有序性原理,volatile不保证原子性

java中volatile的作用一、保证可见性​ 作用:一个共享变量被volatile修饰时,它会保证将修改后的值立刻更新会主存,当有其他线程需要读取它时,它会去内存读取新值​ 普通的共享变量不保证可见性,普通变量被修改后什么时候写回主存是不确定的,当其他线程去读取时,内存中可能还是原来的旧值,因此无法保证可见性​ synchronized和Lock也能保证可见性,synchronized和Lock能够保证同一时间内只有一个线程获取锁然后执行同步代码,然后在释放锁后将变量的修改刷新到主存中​

2022-03-21 00:46:47 2999 3

原创 java多态小总结

java中多态java中多态可以分为类的多态和方法的多态类的多态:一个父类可以有多个不同子类,每个不同子类表现出不同的行为,一个子类可以赋给不同的父类(父接口),表现出不同特性方法的多态:方法的重载,同一个方法名称不同实现...

2022-03-21 00:43:58 156

原创 快速失败和安全失败-java面经总结

快速失败和安全失败一、快速失败(fail-fast)​ 在用迭代器遍历一个集合对象时,如果在遍历过程中对集合对象内容进行了修改(增加、删除、修改),迭代器会抛出ConcurrentModificationException​ 原理:迭代器在遍历时访问集合内容,遍历过程中使用modCount变量观测集合内容有没有改变,当集合在遍历期间内容发生变化时就会改变modCount的值。每次迭代器使用hasNext()/next()遍历下一个元素前,都会检测modCount的值是否为expectedModCoun

2022-03-21 00:42:02 269

原创 为什么说java中只有值传递

为什么说java中只有值传递值传递和引用传递定义值传递(pass by value):在调用函数时将实际参数复制一份(即创建副本,基本类型复制它的值,引用类型复制它的地址)传到函数中,这样对参数进行修改(这里指改变形参指向的地址),不会影响到实参(但是改变形参对象内容–指向地址内的内容,还是能够改变实参–比如说改变实参对象的属性值)引用传递(pass by reference):调用函数时将实际参数的地址(即实际对象)直接传递到函数中,那么在函数中对参数进行修改(改变它的指向,比如说指向一个new的

2022-03-21 00:40:54 541

原创 HashMap、LinkedMap、TreeMap底层源码分析,jdk1.7,1.8区别

Map的实现类的结构:Map:双列数据,存储key-value键值对的数据HashMap:作为Map的主要实现类;线程不安全的,效率高;可以存储null的key和value ,如果有线程安全需求,可以用Collections的方法转变为线程安全的map,一般不会用Hashtable子类-LinkedHashMap:保证在遍历map元素时,可以按照添加的顺序实现遍历。原因:在原有的HashMap底层存储键值对类的结构基础上,在里面添加了一对指针,指向前一个和后一个元素。(LinkedHashSet

2022-03-21 00:39:18 761

原创 set底层源码原理分析jdk1.7,1.8区别-java基础

setset接口实现类:​ 1.HashSet:Set接口主要实现类,线程不安全,可以存储null值public HashSet() { map = new HashMap<>();}public boolean add(E e) { //private static final Object PRESENT = new Object(); return map.put(e, PRESENT)==null;}​ 用HashMap的key不可重复的原理达

2022-03-21 00:35:16 1626

原创 List源码分析-List集合jdk1.7,1.8区别

List​ Collection接口:单列集合,用来存储一个一个的对象List接口:存储有序,可重复的数据​ 1.ArrayList:list接口主要实现类,线程不安全,效率高,插入、删除麻烦,因为其它元素要前移后移​ jdk7源码分析Object[] elementData;//底层存储数据的结构​//空参构造器,initialCapacity-初始容量//创建长度是10的Object[] 数组public ArrayList(){ this(initialCapacity:10)

2022-03-21 00:33:04 529

原创 java抽象类和接口根本区别总结

java抽象类和接口区别

2022-03-20 23:09:13 330

原创 java基础-java面经总结-1.基础内容

java基础-java面经总结-1基础内容

2022-03-20 23:06:50 364

原创 计算机网络第一章习题答案

计算机网络第一章习题答案

2022-03-20 23:01:45 1241

原创 计网笔记-计网总结-计网复习提纲-计网部分面经

计网笔记-计网总结-计网复习提纲-面经

2022-03-20 23:00:26 733

原创 计网笔记-计网总结-计网复习提纲- 第六章 应用层

第六章 应用层概括​ 应用层协议:每一个应用层协议都是为了解决某一类应用问题,问题解决依赖于不同主机中应用进程通信和协同工作,应用进程的通信应该遵循严格规则,应用层具体内容就是定义这些通信规则​ 应用层协议应当定义:应用进程交换的报文类型,如响应报文和请求报文各种报文类型的语法,如报文各个字段即详细描述字段的语义,及字段中信息的含义进程何时如何发送报文,及对报文响应的规则​​ 应用层协议和网络应用不是同一种概念,应用层协议是网络应用一部分,万维网应用是一种基于客户/服务器体系的网

2022-03-20 22:58:08 1284

原创 计网笔记-计网总结-计网复习提纲- 第五章 运输层

第五章 运输层​ 重要概念运输层为互相通信的应用进程提供逻辑通信端口,套接字的意义无连接UDP特点面向连接TCP特点在不可靠网络上实现可靠传输的工作原理,停止等待协议和ARQ协议TCP的滑动窗口、流量控制、拥塞控制和连接管理5.1 运输层协议概况​ 运输层向应用层提供服务,是面向通信最高层,用户功能最低层,主机的协议栈才有运输层,路由器转发分组只用到下三层功能。​ 为什么需要运输层​ 真正通信实体是主机中进程,IP层通信实体是两台主机,无法交付到主机中进程,运输层是应用进程

2022-03-20 22:57:14 1890

原创 计网笔记-计网总结-计网复习提纲-第四章 网络层

第四章 网络层4.1 网络层提供的两种服务​ 虚电路服务、数据报服务。P115​ 虚电路服务得建立连接,可靠通信由网络保证,分组按照发送顺序到达主机​ 数据报服务可靠通信由用户主机保证,每个分组由路由进行转发4.2 网际协议IP​ 与IP协议配套三个协议地址解析协议ARP网际控制报文协议ICMP网际组管理协议IGMP​ 网络互连中间设备物理层中间设备叫转发器(集线器)数据链路层中间设备 网桥或桥接器(交换机)网络层中间设备 路由器网络层以上中间设备 网关​

2022-03-20 22:56:09 2863

原创 计网笔记-计网总结-计网复习提纲-第三章 数据链路层

第三章 数据链路层梗概​ 数据链路层使用信道点对点信道:一对一,使用PPP协议广播信道:一对多,使用CSMA/CD协议​ 数据链路层三个基本问题:封装成帧、透明传输、差错检测​ 以太MAC层的硬件地址​ 适配器、转发器、集线器、网桥、以太网交换机的作用和使用场所3.1使用点对点信道的数据链路层​ 链路:一个节点到另一个节点的物理线路​ 数据链路:链路加上协议加上实现协议的硬件软件​ 数据单元:帧​ 封装成帧帧=帧首部+IP数据报+帧尾部协议规定最大传送单元M

2022-03-20 22:53:56 292

原创 计网笔记-计网总结-计网复习提纲-第二章 物理层

第二章 物理层2.1物理层基本概念​ 物理层考虑的是怎样在传输媒体上传输比特流,使数据链路层感受不到传输媒体和通信手段的差异,而不是去定义传输媒体。​ 物理层主要任务确定与传输媒体接口相关特性机械特性:接口所用接线器(形状、尺寸等)规格标准化电气特性:接口电缆线上电压范围功能特性:电线上某一电平电压的意义过程特性:不同功能各种可能事件出现顺序​ 数据在计算机内部一般采用并行传输,而数据在通信线路一般采取串行传输(逐个比特按照时间顺序传输),物理层还有完成传输方式的转换2.2数据通

2022-03-20 22:51:59 468

原创 计网笔记-计网总结-计网复习提纲-第一章.概述

第一章.概述1.1 计算机网络在信息时代的重要 互联网两个重要特点:连通性和共享1.2互联网概述​ 计算机网络定义:若干节点和连接节点链路构成 (节点-计算机、集线器、交换机、路由器,链路构成)​ 互联网基础结构发展的三个阶段第一阶段:单个网络ARPANET向互联网发展过程,1983年TCP/IP协议成为ARPANET上标准协议,所以1983年互联网诞生时间第二阶段:建成三级结构的互联网(主干网、地区网、校园网/企业网)第三阶段:逐渐形成多层次的ISP结构的互联网ISP(Inte

2022-03-20 22:46:57 3695 2

原创 FilterSecurityInterceptor源码解读

FilterSecurityInterceptor源码解读FilterSecurityInterceptor概念:获取所配置资源访问的授权信息,根据SecurityContextHolder中存储的用户信息来决定其是否有权限。要实现FilterSecurityInterceptor得有三个条件(1)决策管理器:决定这个用户能不能访问这个资源三种类型的决策器AffirmativeBased:只要有一个voter投同意票,就授权成功,一般用这个ConsensusBased:只要投同意票的大于投

2021-04-08 22:44:03 519

在模块里添加模块出现的沙雕问题

没有补全路径,直接点了确认在这里插入图片描述

2021-03-30 19:02:56 83

原创 GET,POST,PUT,DELETE,OPTIONS等请求方式的切换

GET,POST,PUT,DELETE,OPTIONS等请求方式的切换普通a标签是通过get 提交的,要想为一个a标签配上其他提交方式,最好把它改为被一个表单包裹,把它改为button,按下即提交form表单提交有get 和post方式,可以通过method属性设置,但可以通过设置改变成PUT,DELETE,OPTIONS这三种方式比如在springboot里1、SpringMVC中配置HiddenHttpMethodFilter;(SpringBoot自动配置好的)2、页面创建一个p

2021-03-14 18:41:45 727

转载 ThreadLocal<Connection>原理,ThreadLocal详解

早了很多个,终于找到一个讲的特别好的,记录一下链接ThreadLocal详解,处理成员变量线程不安全的情况

2020-11-04 11:12:03 662

原创 spring整合junit分析(原因加操作)

  为什么spring要整合junit:因为在测试类里面没有整合junit之前,不能用@Autowired 自动注入,得用容器生成,影响代码可读性(提高程序测试人员的效率)原因:junit单元测试中,没有main方法也能执行junit集成了一个main方法 ,该方法就会判断当前测试类中哪些方法有 @Test注解,然后junit就让有Test注解的方法执行junit不会管我们是否采用spring框架 ,在执行测试方法时,junit根本不知道我们是不是使用了spring框

2020-11-03 17:20:10 365

原创 Spring项目中无法引入@Resource注解

直接在pom.xml导入依赖 <!--解决Resource注解引用不了问题--> <dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>1.3.2</version>

2020-10-30 22:19:56 796

转载 Properties类按顺序输出加载内容

Properties类按顺序输出加载内容问题描述:因为读取配置文件来置文件来配置我们的service和dao的全限定类名,用来通过反射解耦。这里用到了Properties,但是用Properties获取的key集合是无序的,导致先创建Services,再创建Dao引起空指针异常,所以通过写一个Properties的子类来顺序读取配置文件里面的key-value来解决这个问题看了几个重写的发现一个大佬写的挺不错,又有注释的,这里推荐一下作者: 人之为言出处:https://www.cnblogs.co

2020-10-28 23:35:39 312

原创 mybatis异常:WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective a

mybatis沙雕小异常,因为版本过低出现看着不舒服的警告WARNING: An illegal reflective access operation has occurredWARNING: Illegal reflective access by org.apache.ibatis.reflection.Reflector (file:/D:/maven_repository/org/mybatis/mybatis/3.4.5/mybatis-3.4.5.jar) to method java.l

2020-10-23 21:24:02 1696

原创 java.beans.IntrospectionException: Method not found: isValue

  ## 异常java.beans.IntrospectionException: Method not found: isQq  原因封装数据库对象列名qq在封装对象时 写成了QQ,且封装用的是 Executor里面 PropertyDescriptor pd = new PropertyDescriptor(columnName,domainClass); //要求:实体类的属性和数据库表的列名保持一种  其实很多封装这种情

2020-10-19 20:48:31 2442

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除