自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 出现Permission denied (publickey)的解决方法

出现Permission denied (publickey)的解决方法

2022-09-07 18:11:41 20460 2

原创 synchronized关键字介绍(秋招篇)——下

七、synchronized底层原理在jdk1.6之前,synchronized被称为重量锁,在jdk1.6中,为了减少获得锁和释放锁带来的性能开销,引入了偏向锁和轻量级锁。下面先介绍jdk1.6之前的synchronized原理。 对象头 在HotSpot虚拟机中,Java对象在内存中的布局大致可以分为三部分:对象头、实例数据和填充对齐。因为synchronized用的锁是存在对象头里的,这里我们需要重点了解对象头。如果对象头是数组类型,则对象头由Mark Word、Class Metada

2021-12-03 16:37:16 418

原创 synchronized关键字介绍(秋招篇)——上

一、心路历程在Java并发编程当中,synchronized关键字无疑是被问到频率较高的一个问题,在面试当中,很多面试官对你对synchronized关键字及对它底层的了解程度都是比较重视的。如果你能回答上来,无疑是比较加分的。以下是个人通过自己了解到的,已经书中的知识结合总结的内容,欢迎大家指正!二、什么是synchronized关键字在多线程的环境下,多个线程同时访问共享资源会出现一些问题,而synchronized关键字则是用来保证线程同步的。三、JMM及Java内存的可见性那我们

2021-12-03 11:15:07 347

原创 Exception starting filter springSecurityFilterChain

1.出现问题 我在SSM项目中,想要加入SpringSecurity。导入SpringSecurity依赖以及配置了springSecurityFilterChain之后,启动项目,发现报如下错误:提出了找不到这个bean的错误:org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSecurityFilterChain' available at org...

2021-11-09 21:14:13 619

原创 String.intern() :让你和面试官有更多的交流

测试前提: JDK1.8环境下!

2021-11-04 16:29:27 110

原创 Java实现归并排序

7.10 归并排序7.10.1 归并排序介绍:归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。7.10.2 归并排序思想示意图 1-基本思想:7.10.3 归并排序思想示意图 2-合并相邻有序子序列:再来看看治阶段,我们需要将两...

2021-11-03 13:57:51 73 2

原创 Java实现快速排序

7.9 快速排序7.9.1快速排序法介绍:快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列7.9.2快速排序法示意图:7.9.3快速排序法应用实例:要求: 对 [-9,78,0,23,-567,70] 进行从小到大的排序,要求使用快速排序法。 ...

2021-11-03 13:53:18 88

原创 Java实现希尔排序

7.8 希尔排序7.8.1简单插入排序存在的问题我们看简单的插入排序可能存在的问题. 数组 arr = {2,3,4,5,6,1} 这时需要插入的数 1(最小), 这样的过程是: {2,3,4,5,6,6} {2,3,4,5,5,6} {2,3,4,4,5,6} {2,3,3,4,5,6} {2,2,3,4,5,6} {1,2,3,4,5,6} 结论: 当需要插入的数是较小的数时,后移的次数明显增多,对效率有影响.7.8.2希尔排序法介绍希尔排序是希尔(Don...

2021-10-28 15:19:16 61

原创 Java实现插入排序

7.7 插入排序7.7.1插入排序法介绍:插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。7.7.2插入排序法思想:插入排序(Insertion Sorting)的基本思想是:把n 个待排序的元素看成为一个有序表和一个无序表,开始时有 序表中只包含一个元素,无序表中包含有n-1 个元素,排序过程中每次从无序表中取出第一个元素,把它的排 序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。7.7.3插入排序

2021-10-28 15:13:49 78

原创 方法区、永久代、元空间的区别

上图为JVM运行时数据区。1、方法区:(逻辑上)是JVM的一个规范,所有虚拟机必须要遵守的。 是JVM所有线程共享的,主要用于存储类的信息、常量池、方法数据、方法代码等。 方法区逻辑上属于堆的一部分(下文会有提及),但是为了与堆区分,通常又叫非堆(Heap)区2、堆堆是JVM中线程共享的,在虚拟机启动的时候就已创建。 所有对象(对象本身)和数据都在堆中存放,也是GC的主要区域3、PermGen(永久代)PermGen, 就是PermGen space,全称是Perma...

2021-10-26 11:37:19 3610 2

原创 Java实现选择排序

7.6.1基本介绍选择式排序也属于内部排序法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。7.6.2选择排序思想:选择排序(select sorting)也是一种简单的排序方法。它的基本思想是:第一次从arr[0]~arr[n-1]中选取最小值, 与arr[0]交换,第二次从arr[1]~arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[2]~arr[n-1]中选取最小值,与arr[2] 交换,...,第i 次从...

2021-10-21 17:09:31 1587

原创 Java实现冒泡排序

7.5.1基本介绍冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较 相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。优化:因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在 排序过程中设置一个标志flag 判断元素是否进行过交换。从而减少不必要的比较。(这里说的优化,可以在冒泡排 序写好后,在进行)...

2021-10-21 16:57:59 1617

原创 Spring MVC中文乱码问题

1.环境介绍 我们在项目开发时,经常会碰到发送请求,返回中文乱码的情况。常规解决方案:在方法体中加入 "request.setCharacterEncoding("utf-8");"但在Spring MVC中我们使用web项目中的解决方法,可能并不能解决其乱码问题。2.解决方案2.1 配置Filter本文不做赘述,与2.2配置相同。如遇问题,详见文章:启动Spring MVC项目报错java.lang.AbstractMethodError_a1489540...

2021-10-20 16:40:21 2178

原创 启动Spring MVC项目报错java.lang.AbstractMethodError

1.环境介绍在Spring MVC项目中,配置自己写的过滤器时发现实现Filter接口时,只强制实现doFilter方法查看Filter源码发现,其他两个方法被default修饰:public interface Filter { default public void init(FilterConfig filterConfig) throws ServletException {} public void doFilter(ServletRequ.

2021-10-20 16:21:22 3414

原创 排序算法的介绍及其时间复杂度和空间复杂度分析

7.1 排序算法的介绍排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。7.2 排序的分类:1) 内部排序: 指将需要处理的所有数据都加载到内部存储器(内存)中进行排序。 2) 外部排序法: 数据量过大,无法全部加载到内存中,需要借助外部存储(文件等)进行排序。 3) 常见的排序算法分类(见右图):7.3 算法的时间复杂度7.3.1度量一个程序(算法)执行时间的两种方法1) 事后统计的方法 这种方法可行, 但是有两个问题:一是要.

2021-10-20 15:39:07 3002

原创 SpringMVC拼接路径跳转时,带有一级路径报404错误

我们在MVC项目中,进行页面跳转时,发现拼接的跳转路径带有一级路径,即带有 "/e" 目录。@Controller@RequestMapping("/e")public class EncodingController { @RequestMapping("/t1") public String test(String name, Model model){ System.out.println(name); model.addAttribute("

2021-10-20 11:40:21 2987 1

原创 Spring MVC执行原理

图解Spring MVC执行原理:首先,我们要了解MVC框架的一个重点:Spring的web框架是围绕DispatcherServlet【调度Servlet】设计,DispatcherServlet的作用是将请求分发到不同的处理器。了解到这个重点之后,我们再来刨析MVC的执行原理及流程1.用户访问页面,发送一个请求,DispatcherServlet接受到请求,前端控制器调用HandlerMapper对应我们在配置文件中配置的:<bean class="...

2021-10-19 10:59:11 3086

原创 Spring MVC或者Web项目中,访问页面报404问题

1、问题我们在初学Java Web 或者Spring MVC 时,配置好起始文件,进行测试时,发现访问页面报404错误:检查配置文件以及代码都没有问题,依然报错。2、分析及解决方案这个时候,我们需要注意的就是项目的jar包有没有导入。我们使用idea开发项目时,可能出现在项目发布时,idea没有自动导入jiar包的情况。1. 打开[File]—>[Project Structure]2.3.4.将项目的依赖包都导入到lib目录下,重启Tomca...

2021-10-19 09:45:12 4173

原创 maven静态资源文件过滤问题

1、问题出现:当我们在使用mybatis时,xml文件在Java或者resources目录下时,maven并不能帮我们主动识别资源文件,会报如下错误:java.lang.ExceptionInInitializerError at com.mam.dao.UserDaoTest.test01(UserDaoTest.java:17) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.r...

2021-10-18 19:14:08 3576

原创 Spring个人学习笔记

一、Spring1、简介 Spring:春天——>给软件行业带来了春天! 2002年:首次推出了Spring框架的雏形:interface21框架。 Spring框架即以interface21框架为基础,经过重新设计,不断丰富其内涵,于2004年3月24号,发布了1.0正式版 Rod Johnson Spring框架的创始人 Spring理念:使现有的技术更加容易使用,本身是一个大杂烩,整合了现有的技术框架! SSH Struct2 + s

2021-10-18 19:06:04 3199

原创 navicat 连接Oracle数据库 报错ORA-28547: connection to server failed, probable Oracle Net admin error的解决方案

问题产生的原因:由于我远程的Oracle是 11g的,但是Navicat本身的Oracle oci.dll文件是10g的,数据库与链接库的版本不一致,所以会报错。打开navicat的安装目录,查看有没有以下文件:解决方案:1、我们去Oracle官网下载对应的Instant Client Package -Version 11.2.0.4.0 - Basic的文件即可下载地址:Instant Client for Microsoft Windows (x64) 64-bit.

2021-10-13 16:20:53 23723 3

原创 MyBatis开启二级缓存时报错java.io.NotSerializableException

我们在Mapper.xml文件中开启二级缓存时:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.mam.mapper.UserMapper">

2021-10-12 19:13:43 6208

原创 Mybatis学习笔记

一、初识Mybatis1、什么是Mybatis?MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。2、发展历程MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由ap

2021-10-09 16:56:35 5794

原创 程序员常用十大算法(上)

1、二分查找算法(非递归实现)1.1 二分查找算法(非递归)介绍 我们以前了解过二分查找算法,但是使用的是递归实现,下面我们了解二分查找算法的非递归实现 (注意) :二分查找算法只适用于有序的数列。对于无序数列,我们需要先进行排序。 二分查找算法1的运行时间为对数时间O(㏒₂n),即查找到目标位置最多只需要㏒₂n 步。 1.2 二分查找算法的非递归代码实现public class BinarySearchNoRecur {​ public static vo..

2021-09-24 11:22:54 7817 1

原创 注解与反射

注解与反射一、注解1、什么是注解?Annotation 是从JDK 1.5 开始引入的新技术作用: 不是程序本身,但可以对程序做出解释(这一点和注释(comment)没什么区别) 可以被其他程序(比如:编译器等)读取 注解还有检查和约束的功能 格式: 注解是以"@注释名"在代码中存在的,还可以添加一些参数值,例如:@SuppressWarnings(value="unchecked") 在哪儿使用? 可以附加在package,class,meth

2021-09-14 15:07:33 6735

原创 EasyExcel学习笔记

一、初识EasyExcel1. Apache POI有过报表导入导出经验的同学,应该有听说或使用过POI。Apache POI是Apache软件基金会的开源函式库,提供跨平台的Java API实现Microsoft Office格式档案读写。但是存在如下一些问题:1.1 学习使用成本较高对POI有过深入了解才知道原来POI还有SAX模式(Dom解析模式)。但SAX模式相对比较复杂,excel有03和07两种版本,两个版本数据存储方式截然不同,sax解析方式也各不一样。想要了解清楚这两

2021-09-13 19:43:32 8337

原创 static关键字详解及拓展

1、static关键字方便在没有创建对象的情况下来进行调用(方法/变量)。只要类被加载了,我们就能调用static修饰的方法/变量1.1 static修饰变量static修饰变量,也被称为静态变量。静态变量和一般的变量有什么区别呢?静态变量是共享的,在内存中只有一个副本,它当且仅当类初次被加载时会被初始化。普通变量既存在多个副本,在创建对象时会被初始化,在被调用时,各个对象拥有的副本互不干扰1.2 static修饰方法static方法一般称作静态方...

2021-09-10 14:15:22 6772

原创 JUC并发编程

1、 什么是jucjuc 其实就是 java.util.concurrent* 这样一个工具包2、线程和进程进程: 一个程序一个进程往往可以包含多个线程,至少包含一个!Java默认有几个线程? 2个,main 和 GC对于Java而言: 开启线程的方式:Thread 、Runnable 、Callable但是java真的可以开启线程嘛?不可以!public synchronized void start() { /** * ...

2021-09-10 09:23:02 6855

空空如也

空空如也

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

TA关注的人

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