自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 log4j 重写DailyRollingFileAppender 自定义日志文件名

log4j 重写DailyRollingFileAppender 自定义日志文件名。

2023-04-14 10:46:19 731

原创 springcloud中feign调用超时问题

项目运行期间报以下错误需要对下面配置进行修改feign: hystrix: enabled: true client: config: default: #默认是代表所有的服务 connect-timeout: 2000 #建立socket连接的时间 read-timeout: 5000 #读取时间 sdd-order:

2020-12-24 10:35:03 1864

原创 spring参数校验返回自定义message

直接上代码 @ApiModelProperty(value = "证件号码") @NotBlank(message = "证件号码不能为空") private String idCode;比如想让参数idCode不合法的情况下,返回自定义的message,返回证件号码不能为空。需要定义一个全局异常处理类@Slf4j@RestControllerAdvicepublic class GlobalExceptionHandler { //当参数不和法的时候就会抛出这个异常,.

2020-12-11 14:18:11 1172

原创 剑指offer面试题7:重建二叉树

题目:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,输入前序遍历序列{1,2, 4, 7,3, 5, 6, 8}和中序遍历序列{4, 7,2, 1,5,3,8,6},则重建如图2.6所示的二叉树并输出它的头节点。package JianZhiOffer;/** * 重建二叉树 * 输入某二叉树的前序遍历和中序遍历的结果,请重建该而擦函数。 * 假设输入的前序遍历和中序遍历的结果中不含重复的数字 */clas..

2020-08-17 13:25:00 175

原创 生产者消费者问题阻塞队列实现

package InterView;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicInteger;class MyResources{ private volatile boolean flag =.

2020-08-12 13:07:59 233

转载 java中序列化实现原理深入代码

1.什么是序列化和反序列化序列化 是指将Java对象保存为二进制字节码的过程。 反序列化 将二进制字节码重新转成Java对象的过程。2.为什么序列化我们知道,一般Java对象的生命周期比Java虚拟机短,而实际的开发中,我们需要 在Jvm停止后能够继续持有对象,这个时候就需要用到序列化技术将对象持久到磁盘或数据库。 在多个项目进行RPC调用的,需要在网络上传输JavaBean对象。我们知道数据只能以二进制的 形式才能在网络上进行传输。所以也需要用到序列化技术。3.序列化的底层原理

2020-08-08 11:56:51 248 1

原创 static静态代码块、普通匿名代码块、构造方法的执行顺序

一、static静态代码块、普通匿名代码块、构造方法的执行时间static静态代码块:随着类的加载而执行,只执行一次普通匿名代码块:随着对象的创建而执行,每new一次对象执行一次。构造方法:在创建对象的时候,new对象的时候执行。二、一个对象创建的过程(简单描述,默认对象的类以及被加载到内存中) Student stu= new Student();这一句的执行过程: 1、在栈区开辟空间保存引用 stu 2、在堆区开辟空间保存实际数据 (给对象在...

2020-08-04 10:17:58 1047

转载 浏览器输入url访问的过程

前言当我们在浏览器中输入一个网址,比如www.google.cn,浏览器就会加载出百度的主页。那么浏览器背后完成的具体是怎么样的呢?总结起来大概的流程是这样的:(1)浏览器本身是一个客户端,当你输入URL的时候,首先浏览器会去请求DNS服务器,通过DNS获取相应的域名对应的IP(2)然后通过IP地址找到IP对应的服务器后,要求建立TCP连接(3)浏览器发送完HTTP Request(请求)包后,服务器接收到请求包之后才开始处理请求包(4)在服务器收到请求之后,服务器调用自身服务,返回HTTP

2020-08-02 21:37:14 4726

原创 二分查找

package search;import java.util.ArrayList;public class BinarySearch { public static void main(String[] args) { int[] arr = {1,1,1,1,8,10,89,89,1000,1000,1000,1234}; System.out.println(binarySearch(arr,0,arr.length-1,11)); .

2020-08-02 08:41:52 86

原创 基数排序

基数排序思路: 将所有待比较数值统一为同样的数位长度,数位较短的数前面补零,然后从最低位开始,依次进行一次排序。这样从最低位排序一直到最到位排序完成以后,数列就变成了一个有序序列。我以一个数组为例:import java.util.Arrays;public class RadixSort { public static void main(String[] args) { int[] arr = {53,3,542,748,...

2020-08-01 18:47:01 97

原创 快速排序

快速排序的思路:首先定主元,一般设置为数组起始位置。然后定义两个指针,一个是左指针l,指向主元,一个右指针r,指向数组最后一个元素先从r开始向前扫描,找到第一个比主元小的元素,然后从l开始向后扫描,找到第一个比主元的大的元素,此时交换left和right位置的元素。直到两个指针交叉之后,结束循环。循环结束之后,l指向的位置就是最后一个小于等于主元的位置,也就是主元应该待的位置. 将主元放在正确的位置。此时就一轮快排结束,主元左侧的元素都小于主元,主元右侧的元素都大于主元。limport j

2020-07-31 23:12:31 83

原创 mysql批量插入数据脚本

#往表里插入50w数据#建数据库CREATE DATABASE bigData;USE bigData;#创建部门表CREATE TABLE dept( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0, dname VARCHAR(20) NOT NULL DEFAULT '', loc VARCHAR(13) NOT NULL DEFAULT '').

2020-07-29 14:49:56 459

原创 安装jdk并配置环境变量

一、首先去oracle官网下载jdkhttps://www.oracle.com/java/technologies/javase-downloads.html下载完成以后就会得到下面的一个.exe文件直接双击.exe文件,傻瓜式的安装,直接下一步下一步直至结束。二、配置环境变量鼠标右击此电脑-->高级系统设置----->环境变量---->新建点击新建----->变量名 : JAVA_HOME 变量值:jdk的安装目录在系统变量中,...

2020-07-27 15:13:11 192

原创 mysql5.6出现中文乱码,修改字符集为utf8

1、首先你可以通过 show variables like 'character%' 查看当前数据库的字符集2、我刚开始在网上百度了很多,基本上都是多直接复制一份my-default.ini 重新命名为my.ini ,但是有时候你发现没有用,那是因为mysql启动加载的文件不是这个。 那么这个时候需要 打开命令窗口(黑框) 输入services.msc ,找到mysql服务,查看属性。需要修改上述路径的 my.ini文件。 我的是那个路径,这个需要自己查看自己的位置。在你my.ini文...

2020-07-27 13:52:13 607

原创 SpringMVC的执行流程

1、常见类及其作用HandlerExecutionChain:Handler执行链对象,包含了请求处理器对象(Handler)以及所有的拦截器对象HandlerMapping:定义了所有的请求(url)与所有的请求处理器之间的映射HandlerAdptor:请求处理器适配器对象,负责完成请求处理器对象(Hander)的调用、方法的执行等2、执行流程①、用户向服务器发出请求,请求被springmvc的前端控制器DispatcherServlet截获。②、Dispatcher...

2020-07-26 11:31:54 102

原创 关于线程池的那些事!你了解吗?

1、为什么要使用线程池?线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后再线程创建时启动这些任务,如果线程数量超过了最大数量,超出最大数量的线程排队等候,等其他线程执行完成,再从队列取出任务来执行。2、线程池的主要特点: 线程复用;控制最大并发数;管理线程第一:降低资源消耗。通过重复利用已创建的线程,来降低线程创建和销毁造成的消耗第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行第三:提高线程的可管理性。线程是稀缺资源,如果无限的创建,不仅.

2020-07-22 18:28:45 208

原创 关于jvm的永久代会发生垃圾垃圾回收吗?进来便知

有些人认为方法区(如Hotspot虚拟机中的元空间或者永久代)是没有垃圾回收行为的,其实不然。一般来说这个区域的回收效果比较令人难以满意,尤其是类型的卸载(类的卸载),条件非常苛刻。但是这部分区域的回收有时又确实是有必要的。方法区的垃圾回收主要回收两部分内容:常量池中废弃的常量和不在使用的类型(类)Hotspot虚拟机堆常量池的回收策略是非常明确的,只要常量池中的常量没有被任何地方引用,就可以回收但是判断一个类型是否属于“不在被使用的类”的条件就非常苛刻了。需要同时满足以下三个条件:.

2020-07-03 09:58:33 2767 2

原创 并发编程中的Synchronized

第一章:并发编程中的三个问题 1、可见性问题 可见性概念 可见性(Visibility):是指一个线程对共享变量进行修改,另一个先立即得到修改后的最新值。 可见性演示 案例演示:一个线程根据boolean类型的标记flflag, while循环,另一个线程改变这个flag变量的值,另 一个线程并不会停止循环。 package com.itheima.demo01_concurent_probl...

2020-05-24 12:29:15 592

原创 Filter过滤器

一、Filter过滤器是什么?1、Filter过滤器它是javaWeb的三大组件之一。三大组件分别是:Servlet程序、Listener监听器、Filter过滤器。2、Filter过滤器它是javaEE的规范,也就是接口。3、Filter过滤器它的作用是:拦截请求,过滤响应。拦截请求常见的应用场景有:①权限检查,②日记操作,③事务管理等等。二、Filter的初体验要求在你的web工程下,有一个admin目录,这个admin目录下的所有资源(html页面,jpg图片,jsp文件)都必

2020-05-18 21:37:13 208

原创 验证码解决表单重复提交问题

一、验证码解决表单重复提交的原理第一次访问regist.jsp的时候,就会生成验证码,并且保存到Session中,第一次提交表单的时候,服务器获取到客户端提交的验证码和获取到存取到Session中的验证码进行比较,如果相等的,允许接下来的操作,不等的话,就阻止接下来的操作。最后要删除Session中验证码,当第二次重复提交的时候,Session中的验证码已经为null,此时的话就阻止用户的操作(解决了表单重复提交的问题)二、谷歌Kaptcha图片验证码的使用 1、导入谷歌验证码的j...

2020-05-17 22:05:04 515 2

原创 Session会话

一、Session介绍 1、Session就是一个接口(HttpSession) 2、Session就是一个会话,用来维护客户端和服务器之间关联的一种技术 3、每个客户端都有自己的一个Session会话 4、Session会话中,我们经常用来保存用户登录之后的信息 5、Session会话是保存在服务器上的二、如何创建和获取Session。 创建和获取Session,他们使用的API是相同的。 ...

2020-05-17 12:54:52 2132

原创 Cookie免用户名登陆

Cookie免用户登陆实现原理代码实现<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>Title</title></head><body> <form action="http://localhost:8080/13_cookie_session/login..

2020-05-17 11:37:37 355

原创 Cookie入门

一、什么是Cookie 1、Cookie翻译过来是饼干的意思。 2、Cookie是服务器通知客户端保存键值对的一种技术。 3、客户端有了Cookie以后,每次请求都发送给服务器。 4、每个Cookie的大小不能超过4kb二、如何创建Cookie protected void createCookie(HttpServletRequest req, HttpServletResponse resp) throws ServletException, I...

2020-05-16 23:15:17 203

原创 文件上传 Servlet实现

实现文件上传 首先需要有一个页面,包含form表单,并且from表单的method必须是post,enctype必须是multipart/form-data<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>Title</title></head><body><form enc.

2020-05-16 13:38:48 292

原创 Servlet解决中文乱码问题

获取请求参数中文乱码问题解决方式 request.setCharacterEncoding("UTF-8"); 并且这句话一定要写在最前面!!响应给客户端中文乱码问题解决方式第一种方式: response.setCharacterEncoding("UTF-8"); -------->设置服务器字符集为UTF-8 response.setHeader("Content-Type","text/html;...

2020-05-14 10:22:25 208

原创 Http协议

什么是协议? 协议是指双方,或多方,相互约定好,大家都需要遵守的规则叫做协议。所谓HTTP协议: 就是指,客户端和服务器端之间通信的时候,发送的数据,需要遵守的规则,叫HTTP协议HTTP协议中的数据又叫做报文。客户端给服务器发送数据叫做请求。服务器给客户端回传数据叫响应。请求又分为GET请求和POST请求两种。一、GET请求 1、请求行(第一行是请求行 包括一下三个部分) (1)请求方式 ...

2020-05-13 16:24:39 101

原创 部署web工程的方式

第一种方式: 将你的web项目的目录拷贝到tomcat的webapps目录下面即可。就可以进行访问 http://localhost:8080/项目名/具体资源第二种方式: 使用配置文件来进行部署,找到你的apache-tomcat-8.0.50\conf\Catalina\localhost这个目录,在这个目录下面创建一个xml文件,一个xml文件代表一个web工程。...

2020-05-12 18:29:46 173

原创 tomcat目录分析

2020-05-12 14:36:55 86

原创 原生js页面加载事件和JQuery页面加载事件

原生js页面加载事件和JQuery页面加载事件: 执行顺序: 1、JQuery页面加载事件先执行 2、原生js页面加载事件后执行 原因:1、JQuery页面加载完成之后是浏览器的内核解析完页面的标签创建好Dom对象之后就会马上执行 2、$(function(){}全写$(document).ready(functio...

2020-05-12 10:06:59 2254

原创 八皇后问题详细思路分析

package com.recursion;public class Queue8 { //定义一个max表示共有多少个皇后 int max = 8; //定义数组array,用于保存皇后放置位置的结果,比如arr = {0,4,7,5,2,6,1,3} int[] array = new int[max]; static int count = 0; //共多少解法 public static void main(String[] args) { //测试 ...

2020-05-11 15:30:19 675

原创 Java NIO总结(长篇警告)

一、Java NIO简介Java NIO(New IO | Non Blocking IO)是从java1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API.NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。二、Java NIO和IO的主要区别传统的IO是面向流的,数据是放在流里面的,并且流是单向的NIO是面向缓冲区的,通道只负责连接,可以把通道理解为铁路,.

2020-05-10 17:53:51 135

原创 Java JUC总结(长篇警告)

1、Java JUC简介在 Java 5.0 提供了 java.util.concurrent (简称JUC )包,在此包中增加了在并发编程中很常用的实用工具类,用于定义类似于线程的自定义子系统,包括线程池、异步 IO 和轻量级任务框架。提供可调的、灵活的线程池。还提供了设计用于多线程上下文中的 Collection 实现等。2、volatile关键字--内存可见性下面由一段程序引出volatile关键字和内存可见性问题package com.juc;/** * * 一、vol

2020-05-10 10:23:03 226

转载 内存溢出和内存泄漏的区别,产生原因以及解决方案

一、概念与区别内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请 了一个integer,但给它存了long才能存下的数,那就是内存溢出。内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但 内存泄露...

2020-03-26 08:00:09 296

原创 linux搭建固定ip

1. 设置虚拟机的网络连接方式点击虚拟机名称->右键->设置修改网络适配器。网络连接方式可以选择“NAT模式”或者“自定义”2. 编辑->虚拟网络编辑器选择VMNet8,点击“更改设置”去掉“使用本地DHCP服务将IP地址分配给虚拟机”前的勾设置子网IP段,设置子网掩码子网IP段尽量和主机的IP段不同点击“NAT设置”...

2020-03-14 12:39:44 197

原创 equals()和hashCode()方法的区别和联系

hashCode和equals方法的区别:1.equal()相等的两个对象他们的hashCode()肯定相等,也就是用equal()对比是绝对可靠的。2.hashCode()相等的两个对象他们的equals()不一定相等,也就是hashCode()不是绝对可靠的。为什么说hashCode()相等的两个对象他们的equals不一定相等,因为不同的对象也可能生成相同的hashCode()...

2020-03-06 20:55:50 463

原创 归并排序

归并排序思路:1、将n个元素分成各含n/2个元素的子序列2、然后对两个子序列进行递归的排序3、最后将两个已排序的子序列进行合并得到最终的排序结果public static int[] arr; public static void main(String[] args) { int[] A = {5,8,9,11,2,5,4,3}; arr = new ...

2020-03-01 15:44:16 90

原创 快排之单向扫描和双向扫描

单向扫描法的思路:第一步首先定主元,一般设置为数组起始位置。然后定义两个指针,一个是扫描指针sp,指向主元的下一个元素一个指右侧指针bigger,指向数组最后一个元素然后sp指针开始向右扫描,如果扫描到的元素小于主元的话sp指针向后移动sp++,否则的话 此时sp指向的元素和bigger指向的元素进行交换,然后bigger向前移动bigger--。直到sp大于bigger的时候,循...

2020-03-01 10:52:03 1877 1

原创 面试题 16.11. 跳水板

public static void main(String[] args) { int[] divingBoard = divingBoard(1,2,0); for (int i : divingBoard) { System.out.println(i); } } //本道题是在递归题里面找到的。但是我找不到递推公式。 所以呢...

2020-02-25 11:26:53 432

原创 面试题10- II. 青蛙跳台阶问题

问题分析:首先这道题我在属于递归题里面找到的。不出意外就是使用递归思想去解决的。 青蛙跳n个台阶,问有几种跳法。 题上说青蛙一次可以跳一级或者两级台阶。那么跳n个台阶的跳法是不是就等于 跳到n-1级的跳法和跳到n-2级的跳法之和呢。也就是numWays(n) =numWays(n-1)+numWays(n-2); 有这个递推公式相信大家就会写程序了。但是在leetcode上...

2020-02-25 10:55:21 183

原创 面试题10- I. 斐波那契数列

上面这道题是我在练习递归算法的时候找到的一道题。但是呢这道题使用递归算法会出现超时的问题。以下我提供两种方法包括递归。//递归算法会出现超时问题 public int fib(int n) { if(n == 0) { return 0; } if(n ==1) { ...

2020-02-25 10:32:36 133

空空如也

空空如也

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

TA关注的人

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