自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mac 搭建 Spring 源码阅读环境

参考文章:

2024-04-29 15:33:41 106 2

原创 MacOs 安装thrift-0.5.0

thrift-0.5.0

2024-04-16 17:04:49 594

原创 Docker部署kafka并使用Java客户端连接

docker部署kafka(单机)注意:ip 换成你宿主机的真实ip !!!环境搭建第一步 搭建zookeeper环境docker pull zookeeperdocker run -d --name zookeeper -p 2181:2181 -t zookeeper第二步 创建kafka环境 (ip换成你宿主机的真实ip)docker pull wurstmeister/kafka docker run -d --name kafka -p 9092:9092 --env KAF

2021-09-13 23:38:54 1703 2

原创 Guava中的缓存(Cache Builder)实现

Guava中的缓存(Cache Builder)实现概念缓存在很多场景中是必不可少的,例如,计算或检索一个只的代价很高,并且对同样的输入需要不止一次获取值的时候,就应当考虑使用缓存。Guava中的缓存是本地缓存的实现,与ConcurrentMap相似,但不完全一样。最基本的区别就是,ConcurrentMap会一直保存添加进去的元素,除非你主动remove掉。而Guava Cache为了限制内存的使用,通常都会设置自动回收。在某些场景下,尽管LoadingCache不回收元素,但它还是很有用的,因为它

2021-07-25 20:53:41 5816 1

原创 SpringBoot实现邮件发送

第一步肯定是导入相关依赖了,所需依赖如下:<!-- 支持发送邮件 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>第二步是要进行配置啦,配置(

2021-04-13 11:16:14 181

原创 springboot中连接数据库时报出的时区异常

在做Springboot的项目中,需要在application.yml中配置数据库连接的属性,可能会遇到如下情况,解决方法:这是数据库和系统时区差异导致的,解决方法就是在连接数据库的url后加上?serverTimezone=UTC&characterEncoding=utf-8,同时解决了时区差异报错和输入中文报错。...

2020-12-11 20:54:22 293

原创 SpringMVC解决乱码问题

SpringMVC解决乱码问题在web.xml中配置,SpringMVC自己提供的过滤器<filter> <filter-name>encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name

2020-11-30 16:58:20 120

原创 SpringMVC接收各种传参方式配合对应注解

Restful接口传参方式1.get/delete请求使用RequestParam请求的url类似于http://localhost:8080/springmvc/passValue/rest/param?name=root&password=123,接收方法@GetMapping("/param")public String getByParam(@RequestParam String name, @RequestParam String password) (PS:@Requ

2020-11-30 11:17:39 529

原创 亲测有效:IDEA sun.misc.BASE64Encoder报错

方法一:将jdk从12换回8即可从 java 8 开始,就用 java.util.Base64 工具类来替换 sun.misc.BASE64Encoder 了方法二:import sun.misc.BASE64Encoder;import sun.misc.BASE64Decoder;在项目中,设计到64位编码的。有时开发会用到JDK中自带的BASE64工具。但sun公司是建议不这样做的。尤其是更新了JDK版本,项目甚至还存在保存的信息。可引用import org.apache.com.

2020-11-23 13:53:41 1039

原创 做项目的大体步骤

前端:页面的样式,需要什么数据数据库:设计数据库前端可以在自动运行,独立化工程(脱离后端)后端:数据接口如何对接:json,对象all in one前后端联合调试

2020-11-15 19:02:09 257

原创 简单易懂的Mybatis环境的搭建

思路:搭建环境 --> 导入MyBatis --> 编写代码 --> 测试新建项目创建一个普通的maven项目导入maven依赖<!--导入依赖--><dependencies> <!--mysqlq驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-

2020-10-11 11:41:18 140

原创 手把手教你搭建Spring开发环境(IDEA)

首先打开IDEA,HAHAHA创建Maven项目,我一般习惯用使用maven-archetype-webapp骨架。(为啥使用骨架: maven骨架的使用能够帮我们快速的构建结构一致的项目,省时省力。)改下项目名称和GroupId在pom.xml中添加依赖(记得刷新maven) <dependencies><!-- 单元测试的依赖--> <dependency> <groupId>junit</grou

2020-09-18 10:43:34 758

原创 【面试不迷路】集合

注:自己的总结,有错误希望各位大佬指出迭代器:迭代器(Iterator)模式,又叫做游标模式,它的含义是,提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。**Iterable:**实现这个接口的集合对象支持迭代,是可以迭代的。实现了这个可以配合foreach使用~**Iterator:**迭代器,提供迭代机制的对象,具体如何迭代是这个Iterator接口规范的。当Iterator迭代访问Collection集合中元素时,Collection的元素不能改变(多

2020-08-03 10:01:56 196

原创 【详解】计算机网络从总到细——HTTP

1.HTTP简介HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dBgTiNzq-1591801

2020-06-10 23:14:17 291

原创 【详解】计算机网络从总到细——UDP与TCP

重点协议TCP与UDP1. 认识传输层的两个协议传输层功能: 为相互通信的应用进程提供逻辑通信TCP(Transmission Control Protocol,传输控制协议) :需要将要传输的文件分段进行传输,在传输之前需要建立会话,他的传输过程是可靠传输,同时要进行流量控制;[QQ传文件]UDP(User Data Protocol,用户数据报协议):一个数据包就能够完成数据通信,不分段,也不需要建立会话,不需要流量控制,是一种不可靠传输;[DNS域名解析;QQ聊天]查看会话:

2020-06-03 23:05:15 499 1

原创 阿里云开放端口【配置安全组】

2020-05-31 21:38:11 428

原创 内存溢出 内存泄漏 StackOverflowError

StackOverflowError内存溢出内存泄漏1. StackOverflowError定义:函数调用栈帧太深了,注意代码中是否有了循环调用方法而无法退出的情况原因:StackOverflowError 是一个java中常出现的错误:在jvm运行时的数据区域中有一个java虚拟机栈,当执行java方法时会进行压栈弹栈的操作。在栈中会保存局部变量,操作数栈,方法出口等等。jvm规定了栈的最大深度,当执行时栈的深度大于了规定的深度,就会抛出StackOverflowError错误.

2020-05-25 23:02:00 382

原创 TCP三次握手期间的发送序号和确认序号

TCP第一次握手期间:客户机向服务器发送请求报文段,发送序号为xTCP第二次握手期间:服务器向客户机发送请求+确认报文段,发送序号为y,确认报文段为x+1TCP第三次握手期间:客户机向服务器发送确认报文段,发送序号为x+1,确认序号为y+1...

2020-05-20 09:17:34 2760

原创 为什么报异常要打印的是堆栈信息

为了方便跟踪最先抛出异常的地方,又可以看到该程序的异常从哪些方法中层层抛出的。例如: main()方法中按顺序调用了a()方法和b()方法,其中b()方法中又调用了c()方法,c()方法中产生了一个异常,打印后的结果类似c():产生异常的行号b():c方法调用的行号main():b方法调用的行号有了这个线索查找异常产生的原因是不是很轻松呢...

2020-05-11 22:33:04 331

原创 【详解】计算机网络从总到细——网络数据传输流程

本篇介绍从网络互联到局域网再到广域网介绍网络数据传输流程网络数据传输协议网络互联局域网交换机连接交换机+路由器 广域网网络数据传输流程-1.网络互联(集线器)集线器的作用:只做数据的转发ARP协议:建立IP与MAC的映射主机ARP缓存表场景:主机A发送FTP”下载某个文件”数据包------>主机C查找目的主机MAC地址:查找本地ARP缓存表,...

2020-04-19 15:55:45 2421

原创 【详解】计算机网络从总到细——网络分层

本篇先介绍主体目标,再重点介绍网络分层以及一些基础概念丶名词等;学习重点网络分层 TCP/IP五层模型数据的封装和分用MAC和IP地址及相关知识网络设备的功能网络传输协议重点协议学习一门知识得知道重点在哪里SO,重点来了网络分层:OSI七层模型(了解),TCP/IP四层或五层模型,每一层的代表协议,代表硬件和技术网络传输流程:网络互联(了解),局域网(了解),...

2020-04-19 15:37:17 910

原创 学排序看这一篇就够了

排序排序概念1.插入排序1.1直接插入排序1.2希尔排序2.选择排序2.1 直接选择排序2.2 堆排序冒泡排序快速排序归并排序总结对比排序概念稳定性:两个相等的数据,经过排序后,如果相对位置没有变化则为稳定排序,反之,为不稳定排序。内部排序与外部排序:如果一次性可以将所有数据加载到内存中进行排序则为内部排序;反之,为外部排序1.插入排序1.1 直...

2020-04-09 21:38:41 195

原创 成天路由器,路由器究竟是什么

成天路由器,路由器究竟是什么路由器的主要作用是:连通不同的网络选择信息传送的线路路由器的构成:路由器结构可划分为两个部分:路由选择部分+分组转发部分路由部分:也称为控制部分,核心部件是路由选择处理机,路由选择处理机的任务是根据所选定的路由选择协议构造出路由表,同时经常或定期的和相邻路由信息而不断地更新和维护路由表分组转发部分:由三个部分组成:交换结构丶一组输入...

2020-04-07 10:25:52 189

原创 剑指Offer:构建乘积数组

对于拿到这道题的我,只想到了暴力求解:当看到大佬们的思路时,我只想说兄弟们咱们题做的还是太少,奋键盘刷题(奋笔图书)吧;方法一:暴力求解import java.util.*;public class Solution { public int[] multiply(int[] A) { int[] B = new int[A.length]; Arr...

2020-03-20 21:20:15 155

原创 Linux学习笔记

Linuxinux介绍虚拟机Linux目录结构vi和vim编辑器开机,重启和用户登录注销用户管理实用指令组管理和权限管理RPMYUM1. Linux介绍Linux是一款操作系统,免费,开源,安全,高效,稳定,处理高并发非常强悍,现在很多企业级的项目都部署到Linux/unix服务器运行主要发行版本:CentOSE,Redhat,Ubuntu,Suse,红旗Linux...

2020-03-13 18:24:29 267 1

原创 Integer对象初始化过程[缓存机制]

首先我们先来看一个代码,关于Integer通过 ‘=’ 直接赋值:public class Main { public static void main(String[] args) { Integer f1 = 100; Integer f2 = 100; Integer f3 = 200; Integer f4 =...

2020-03-05 10:24:23 387

原创 【详细】二叉树的基本操作

基本操作前序遍历(递归)private void preOrder(TNode root){ if(root != null){ System.out.print(root.val+" "); preOrder(root.left); preOrder(root.right); } ...

2020-02-29 11:25:08 341

原创 重建二叉树

题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。我们来看一下前序遍历,和中序遍历的结果看到树我们“一般”想想到递归。基本思想就是确定根节点然后再添加左右子树,而左右子树又是一个独立的树,来看代...

2020-02-27 10:31:03 136

原创 动态代理

动态代理特点:字节码随用随创建,随用随加载作用:不修改源码的基础上对方法增强分类:基于接口的动态代理基于子类的动态代理基于接口的动态代理涉及的类:Proxy提供者:JDK官方使用Proxy类中的newProxyInstance方法创建代理对象被代理的类最少实现一个接口,如果没有则不能被使用newProxyInstance方法的参数:ClassLoader:类加...

2020-02-14 14:34:17 162

原创 Java堆排序

直接代码附上,如果需要思路,推荐视频:https://www.bilibili.com/video/av47196993?from=search&seid=11104628614194650826import java.util.Arrays;public class HeadSort { public static void main(String[] args) { ...

2020-02-09 15:14:12 135

转载 反射机制

反射:框架设计的灵魂* 框架:半成品软件。可以在框架的基础上进行软件开发,简化编码* 反射:将类的各个组成部分封装为其他对象,这就是反射机制 * 好处: 1. 可以在程序运行过程中,操作这些对象。 2. 可以解耦,提高程序的可扩展性。* 获取Class对象的方式: 1. Class.forName("全类名"):将字节码文件加载进内存,返回Class对象 * 多用于配置文...

2020-02-06 15:34:12 166

原创 加载配置文件

//1.加载配置文件//1.1创建properties对象Properties pro = new Properties();//1.2加载配置文件,转为一个集合ClassLoader classLoader = ReflectTest.class.getClassLoader();//获取类加载器InputStream resourceAsStream = classLoader.g...

2020-01-30 12:50:56 261

原创 Java中long数据类型转换字节数组

long转换为字节数组//long转换为字节数组long n = 909090L;ByteArrayOutputStream baos = new ByteArrayOutputStream();DataOutputStream dos = new DataOutputStream(baos);dos.writeLong(n);byte[] buf = baos.toByteArra...

2020-01-23 21:54:45 2475

原创 Java手写死锁

一个对象只能锁一次public class TestDeadLock implements Runnable { public int flag = 1; static Object o1 = new Object(),o2 = new Object(); @Override public void run() { System.out.print...

2020-01-22 20:27:20 311 1

原创 LeetCode 189.旋转数组

问题:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数解法一:也就是我拿到题想到的解法,旋转k次,每次旋转1个元素public class Soultion{ public void rotate(int[] nums,int k){ int temp,tail; for(int i = 0;i < k;i++){ tail = nums[nums...

2020-01-10 23:06:12 122

原创 约瑟夫问题2

问题描述:约瑟夫问题是一个著名的趣题。这里我们稍稍修改一下规则。有n个人站成一列。并从头到尾给他们编号,第一个人编号为1。然后从头开始报数,第一轮依次报1,2,1,2…然后报到2的人出局。接着第二轮再从上一轮最后一个报数的人开始依次报1,2,3,1,2,3…报到2,3的人出局。以此类推直到剩下以后一个人。现在需要求的即是这个人的编号。给定一个int n,代表游戏的人数。请返回最后一个人的编号...

2020-01-09 17:35:08 281

原创 如何在HTML标签内嵌入一个HTML页面

关于iframe标签用法就不提了,现在很少人用了吧。直接js实现很舒服,用异步请求的方法加载为标签内添加内容,看代码吧://为header标签中加载header.html页面//通过向header.html页面发出请求,将其所有内容返回,添加到标签内$(function () { $.get("header.html",function (data) { $("#...

2020-01-03 09:55:09 4194

原创 划重点:自定义类型数组/集合利用sort排序

在集合框架与数组中sort()这个方法非常好用,对我之前的我来说也只是用,今天研究了一下,发现了好多好多东西,与您分享:Collections.sort()与Arrays.sort()的关系:Collections.sort()底层是由Arrays.sort()来实现的。有图有真相:关于sort()是如何排序的?不知道大家遇到是不是遇到这种问题才来查的,我们使用sort()方法进行排序对...

2019-12-26 21:30:03 370

原创 划重点:try/finally

不管try怎样,finally都会执行在try中return,在finally执行前会把结果保存起来,即使在finally中有修改也以try中保存的值为准,但如果是引用类型,修改的属性会以finally修改后的为准如果try/finally都有return,直接返回finally中的return...

2019-12-23 23:02:23 143

原创 LeetCode 6. Z字形变换

将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。最重要的是两个转折点,在不断变化行的过程中给以此给每一行添加元素。当在首行时:接下来就是行就应该给未行走,行需要+;当在未行是则相反给首行走,行需要-class Solution { public String convert(String s, int numRows) { if(numRo...

2019-12-23 21:07:56 129

空空如也

空空如也

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

TA关注的人

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