- 博客(54)
- 收藏
- 关注
原创 Java泛型的使用和原理
Java泛型作为抽象的必备神奇,是成长为高级Java程序员必备的技能之一,本文希望达到两点:1、系统完整的介绍Java泛型的使用2、由原理推泛型的使用限制,由使用限制了解泛型原理
2022-12-10 20:57:21
1535
原创 关于索引必须知道的知识
在学习索引的时候,常常会看到回表、覆盖索引、前缀索引、最左匹配、索引下推、页分裂等等概念,本篇就常见概念进行介绍和总结,希望能帮助大家快速掌握这些“高大上”的概念。
2021-01-03 20:38:17
303
原创 MySQL的锁机制
MySQL中的锁按照分类标准不同,有多种锁定义。本文从全局锁、表级锁、行级锁、乐观锁、悲观锁和意向锁几个方面全面介绍MySQL的锁机制。
2020-12-27 22:27:07
165
原创 Java线程的使用
## 1\. 前言线程使用是个很有意思的概念,他让一个程序可以分多路并发的执行。在Java学习最初,说到线程脑海里呈现的概念就是Thread类和Runable接口。这里整理下Thread类和Runable是怎么实现多线程的。## 2\. Thread类和Runable接口的使用——快速入门**Thread类和Runable接口的关系:**Thread实现了Runable接口,主要是要来集成Runable中的run方法,让Thread自带个了Runable,同时Runable也可以作为参数传递进T
2020-08-04 21:19:11
312
原创 网络层之路由选择
前言网络层的功能是什么?在在网络之间选择合适的网间路由和交换节点,确……那你说说网络层是怎么选择合适的路由的?使用分组转发算法分组转发算法路由表每一条路由的格式:(目的网络地址,下一跳地址) 或 (目的主机所在的网络,直接交付,接口号) 转发流程: 从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N 若N为此路由器直接相连的某个网络地址,则进行直接交付() 不能直接交付 3.1 若路由器表中有目的地址为D的特定主机路由,传送给指明的下一跳路
2020-08-04 21:14:17
1898
原创 得知道的快速排序
1.概述在找实习的多次面试中,在数据结构与算法的面试题中,手写快排就跟计算机网络的三次握手一般是被问烂了也肯定得会的知识点(千万别以为被问烂了就不会被问到,在面腾讯提前批一面的时候最后就用腾讯文档手写了快排,只有简单的玩熟练了才能有机会去展示那些“深奥”的)。快排的思想简单,实现的代码却各异,且可能稍有不同就满盘皆崩。2.快排的思想快排采用的是分治的思想。快速排序(Quick Sort)是对冒泡排序的一种改进,基本思想是选取一个记录作为枢轴,经过一趟排序(更应该说是划分Partition)将整段
2020-07-11 23:31:07
475
原创 MySQL更新过程
1. 前言一条简简单单的更新操作涉及到太多的知识点了,首先我们要1.了解MySQL各个功能模块,然后在MySQL更新时不仅仅是操作表数据还要操作2.日志系统redo log、binlog和undo log,更新操作也不是实时更新到磁盘的而是通过3.Write-Ahead Logging机制先刷到内存再刷到磁盘,要刷到内存写日志的顺序又涉及到4.二阶段提交。文章目录1. 前言2. MySQL日志系统2.1 redo log 和 binlog2.2 undo log3. Write-Ahead Loggin
2020-07-02 22:49:03
1254
1
原创 TCP的可靠传输
前言面试官:你知道TCP吗?李三:知道的,TCP是面向连接的可靠的……面试官:那你说说TCP它是怎么保证可靠的?李三:what???我三次握手四次挥手贼溜,要不你问问这个?面试官:没关系的,那今天就到这吧!天天说TCP是可靠的可靠的,我们怎么能连它是怎么保证可靠的都不知道了。这个时候你就应该告诉面试官:所谓可靠传输,即要保证接收方从缓存区收到的字节流和发送方发出的字节流是一致的。一是需要建立连接来保证(这个我贼溜,要不你问问我这个?)。二是要有能检测到出数据是否出错并在出
2020-06-26 13:21:40
428
原创 TCP和UDP的基础知识
前言运输层两个协议TCP和UDP,真正做到主机进程到主机进程的传输,它的上层应用层定义的是和端到端无关的规定,它的下层网络层定义的是数据在网络间的转发。学习首部格式的意义:运输层就两个协议:TCP和UDP。UDP功能较少,用的也较少(幸运的是要学的也少)。TCP用的多,主要原因是他功能强大,如建立连接、保证可靠、实现流量控制和拥塞控制,所以要学的也多。TCP和UDP的这些功能能够实现是基于他们的首部数据,所以我们这节将先学习首部格式。TCP和UDP的定义和区别传输控制协议TCP是一.
2020-06-25 17:07:53
267
原创 单例模式
什么是单例模式单例模式是确保一个类只有一个对象实例,并提供访问它的全局访问点。常用于工具类或需要控制实例数量节省资源的场景。单例模式的实现关键是构造方法私有,并提供一个获取唯一对象的接口。单例模式有五种实现方式:懒汉式、饿汉式、双重校验锁(DCL)、静态内部类(推荐使用)、枚举。饿汉式为啥叫饿汉式的单例模式了?这是因为饿汉式的单例模式会在类加载时就创建唯一实例,跟个饿汉似的上来就吃。public class Singleton { // 唯一实例...
2020-06-23 13:20:51
176
原创 彻聊DNS
先得聊聊什么是域名域名是什么?我会连域名都不知道?别着急,先看看嘛。我们以www.fanyi.baidu.com为例。域名结构划分为根域名、顶级域名、二级域名、三级域名等。做过开发的都知道,在创建项目时,一般是com.xxx.xxx,这就是域名的正确顺序,按com→baidu→fanyi的顺序。com是顶级域名,baidu是二级域名,fanyi是三级域名。还有一个被隐藏了的根域名,完成的域名应该是 www.fanyi.baidu.com. 。什么是域名服务器域名服务器正如其..
2020-06-19 21:12:12
946
原创 你真的了解MySQL的四大特性吗?
面试官:你了解MySQL的四大特性吗?李三:知道的,MySQL的四大特性即ACID。原子性、一致性、隔离性、持久性。面试官:嗯,然后了?李三: 原子性(atomicity)是指一个事务不可分割,要么全部提交成功,要么全部失败回滚; 一致性(consistency)是指一个事务能保证数据库从一个有效(正确)的状态“转移”到另一个有效(正确)的状态。 隔离性(isolation)指一个事务所做的修改在最终提交以前,对其他事务是不可见的。 持久性(durability)是指事务提交成功,所.
2020-05-30 22:20:40
1194
原创 得知道的时间复杂度计算
1. 概述从大一到大三,迷迷糊糊看了时间复杂度三年多,今天终于把它搞清楚了。首先,我们需要知道的是 时间复杂度要计算的是一个程序大致执行了多少个语句(之前我认为是要计算到底执行了多少秒,是我天真了,怎么可能了),时间复杂度的计算允许省去一些影响小的因素(比如说后面会提到的n对n2的影响小,这时我们就只要考虑n2就行)。2. 时间复杂度的计算步骤关于时间复杂度的计算可以分为三类:简单由执行次数得到时间复杂度通过分析和数学运算得到时间复杂度递归算法的时间复杂度2.1 简单由执行次数得到时间复
2020-05-23 16:10:17
557
原创 Java为什么使用异常?
Java为什么使用异常?为什么使用异常一:为什么要这样了?这就得首先明白,Java的编程往往是多人之间合作的,每个人负责一个或几个模块,从最开始学习Java时你就有使用别人的模块(你调用的任何Java基础语法都是由JDK的公司写好了给你的),你在后面的使用中肯定也会写模块给别人调用。现在就可以举个例子了,假如说你现在写一个带参方法 printf(int num)给你的同事调用,他调用时传...
2020-03-05 16:17:49
562
原创 日志记录:LogBack结合SSM或SpringBoot
1 Logback的引入所谓日志框架是一套能实现日志输出的工具包,而所有能够描述系统运行状态的事件都可以算作日志。目前常用的日志框架包括Log4j,Log4j 2,Commons Logging,Slf4j,Logback,Jul等等,但是由于种种原因,比较常用的组合使用方式是Slf4j与Logback组合使用,Commons Logging与Log4j组合使用。Commons Log...
2020-02-19 22:54:17
201
原创 springboot优雅的做全局异常处理(完整代码+已运行使用)
首先我们需要知道的是,java异常的基础知识和springboot对异常处理是如何支持的。Java异常的基础知识大家可以参考菜鸟教程的java教程。springboot对异常处理的支持在springboot中,我们只需要定义一个全局异常处理类(用@ControllerAdvice),不需要在每个controller类重复定义。在全局异常处理类中,我们使用@ExceptionHandler指定...
2020-01-25 22:39:44
3381
2
原创 springboot项目打包部署和删除
在四处都在讲微服务、分布式的今天,作为约定犹豫配置的spring的升级框架springboot可谓是火的一塌糊涂。这篇文章我们对springboot的打包、部署到服务器、删除并重新部署做个一站式的总结介绍。前提提要:我使用的是IDEA+maven打包,部署到阿里云的轻量级服务器上,服务器系统是centos。1、Springboot的打包1.1、需知首先我们要知道的是springbo...
2020-01-24 22:10:37
2446
原创 阿里云轻量级服务器开放端口号
要知道,服务器对端口号默认是不开放的。这个时候我们访问项目或者远程访问软件是访问不到的。所以我们要开放端口号。1、在阿里云控制台添加防火墙规则 1)进入控制台服务器界面点击防火墙 2)点击添加规则,输入对应端口号2、在Linux服务器内开放端口号 通过systemctl status firewalld查看FirewalID状态,发现当前是de...
2020-01-24 09:30:29
9945
4
原创 springboot整合swagger后api无法正确显示
根据网上教程,导入swagger的包,创建swagger的配置文件后,启动项目,访问swagger-ui.html。结果页面没有显示。自然是一顿百度谷歌,也尝试了直接在启动类配置@EnableSwagger2,启动后我在配置类中配置的标题都没有,显然这是调用了swagger最原始的一个默认配置类。这么蠢的界面我可不要,我还是要我自己配置的有标题的界面。于是又是一番操作。...
2020-01-13 21:39:22
2052
转载 IDEA将某个目录放置为放网页的webapp文件夹
新建的maven项目,webapp文件夹也是在创建完项目后手动添加的,出现了webapp文件夹不能被识别的情况,如下图:解决方法:只需要配置一下,将webapp文件夹关联上就可以了,如下图:...
2019-12-29 19:00:19
2794
原创 LogBack结合SSM或SpringBoot做日志记录
最短最有效的介绍在spring和springboot环境下怎么结合logback实现日志记录功能
2019-12-28 17:09:34
276
原创 AOP开发入门知识
这篇文章将从AOP的简介、AOP有关的术语(必要)、AOP的XML方式开发、AOP通知的类型、切入点表达式语法、AOP的注解开发六个部分带领你完整走过所有AOP基础开发知。且这个学习顺序是经过反复推敲,我认为最能由浅入深、循序渐进明白AOP的线路。
2019-12-27 20:27:41
396
转载 AOP的实现原理
Spring用代理类包裹切面,把他们织入到Spring管理的bean中。也就是说代理类伪装成目标类,它会截取对目标类中方法的调用,让调用者对目标类的调用都先变成调用伪装类,伪装类中就先执行了切面,再把调用转发给真正的目标bean。现在可以自己想一想,怎么搞出来这个伪装类,才不会被调用者发现(过JVM的检查,JAVA是强类型检查,哪里都要检查类型)。Spring的AOP实现的两种方式:...
2019-12-27 13:06:23
462
原创 IOC的注解开发
文章介绍:在前面,我们使用在applicationContext.xml文件中写<bean>标签的方式完成Bean对象的管理,并在<bean>标签下通过<property>等标签完成属性注入,还有init-method、estroy-metho等属性为一个Bean类配置初始化方法和构造方法。这一切都是在applicationContext.xml这个配置文件下完...
2019-12-19 18:40:36
340
原创 结合现实例子带你入门IOC
IOC全称控制反转(Inversion of Control)IOC是什么我们以一个故事来介绍IOC。一天,你想喝杯果汁。你该怎么做?按照正常的搞法是去买杯果汁或者自己做杯果汁放入自己的杯子里,然后你就可以开始喝了。也就是Juice juice = new Juice(400,"orange");juice.drink();但是,我们的IOC就不同了,他的理念是:让别...
2019-12-19 18:34:52
294
原创 IOC的两种容器对比
Spring的IOC容器是一个提供IOC支持的轻量级容器。Spring提供了两种容器类型:BeanFactory和ApplicationContext。BeanFactory:基础类型IOC容器,提供完整的IOC支持,默认采用延迟初始化策略(lazy-load)。只有当客户端对象需要访问某个受管对象的时候,才对受管对象进行初始化以及依赖注入操作。ApplicationContext:它在B...
2019-12-19 18:26:58
1372
原创 IOC的底层实现
第一部分开篇直接给答案:IOC的底层是有工厂+反射+配置文件实现的。第二部分我将从个人创建一个Bean对象的方式的变迁来引出IOC的底层实现(可跳过直接看第三部分:IOC的底层实现详解)。以UserDao为例,在最初开始学习javaweb创建一个UserDao对象是直接new的,即UserDao userDao = new UserDao();再到后来实训中老师对代码规范的稍作规...
2019-12-19 18:23:25
848
原创 Cooike和session
Cooike 和 Session的区别Cooike保存在客户端,Session保存在服务端Cooike保存时间较短,默认浏览器关闭就销毁;Session保存时间较长,默认30分钟。Cooike保存个数有限制;Session可以大量保存(但不要存储大数据,会给服务器带来负担)##Cooike对象1.Cooike对象的属性name cookie的名称value cookie的...
2019-08-07 23:11:51
390
原创 XML解析
XML是什么eXtendsible markup language 可扩展的标记语言XML的用途可以用来保存数据可以用来做配置文件数据传输载体XML解析方式总概Java中有Dom和Sax这两种标准解析方式。还有jdom、jaxp、dom4j等常用的第三方扩展解析方式。目前在实际开发中常用的是dom4j。下面我们已将以domj讲解XML的解析。dom4j的基本用法...
2019-08-07 19:26:54
159
原创 AJAX结合jquery使用
前言对于什么是ajax,首先请看我的前一篇文章AJAX的简单使用 ,ajax的普通使用中,用的是js代码,我们都知道或者下面你将知道:jQuery是js优秀的开源框架,它的原则是 “写的更少,做的更多”。自然,在jQuery中也提供了ajax的使用方法。下面就跟我们一起看看总概在jQuery中,常用的使用ajax的方法有 1.load() 2.get() 3....
2019-08-02 15:54:29
345
原创 AJAX的简单使用
ajax是什么ajax的全称是AsynchronousJavascript AndXML(异步传输+js+xml)所谓异步,在这里简单地解释就是:向服务器发送请求的时候,我们不必等待结果,而是可以同时做其他的事情,等到有了结果我们可以再来处理这个事。(当然,在其他语境下这个解释可能就不对了)这个很重要,如果不是这样的话,我们点完按钮,页面就会死在那里,其他的数据请求不会往下走了。这样比等...
2019-08-02 09:24:07
233
原创 javaweb学习——EL和JSTL
总概作用:EL和JSTL都是服务jsp,是为了使JSP写起来更加简单。一般EL用于取值等操作,JSTL用于判断、循环等操作EL表达式是什么:全称是: Expression Language作用:为了简化咱们的 jsp 中的 java 代码(一般是做取值操作)怎么用:所有EL表达式的格式都是以“${}”表示,例如,${ userinfo)代表获取变量userinfo的...
2019-07-24 12:46:14
234
原创 javaweb——jsp
灵魂三问什么是jspjsp:java server pages(java服务器页面),由早前的 sun 公司倡导,很多企业一起参与研发的动态网页技术。有什么用html 多数情况下用来显示静态内容 , 一成不变的。 但是有时候我们需要在网页上显示一些动态数据, 比如: 查询所有的学生信息, 根据姓名去查询具体某个学生。这些动作都需要去查询数据库,然后在网页上显示。 html是不支...
2019-07-24 11:39:08
203
原创 javaweb的http数据传输中文乱码问题解决
背景在前端与后台进行数据交互的过程,我们常遇到一种问题:中文乱码。追根到底这是因为中文的特殊性,在编码和解码过程中,可能用到的是两种编码方式,导致编码后再解码就乱码了(英语优势在哪,所以人家没有这方面的问题,我也一直在想,为啥不统一一下,解决这个乱码问题了。)回到正题,有问题那我们就得解决问题啊。总不能有问题我就不干了不是。所以本篇文章闲扯了这么久,开始总结中文乱码问题解决方法。总概...
2019-07-23 15:44:22
3031
原创 javaweb基础——一些相对路径
背景初次接触javaweb是在大二的软件系统开发实训,当时老师给我们培训了几节课,一些路径啥的也都是模模糊糊就那么跟着些了,对一些相对路径的理解就是:我也不知道,我也没地方问。为了加深对相对路径的理解,也方便后来人,总结了一下javaweb中的一些相对路径。还有一个重点:就是希望能通过这一篇文章,举一反三,以后能大概推导相对路径大概是怎样?为什么是那样?总概页面跳转的相对路径 ...
2019-07-20 21:28:11
249
原创 java异常初理解
为什么用异常:异常处理使得程序可以处理非预期的情景,并且继续正常的处理。在这个世界不可能存在完美的东西,不管完美的思维有多么缜密,细心,我们都不可能考虑所有的因素,这就是所谓的智者千虑必有一失。同样的道理,计算机的世界也是不完美的,异常情况随时都会发生,我们所需要做的就是避免那些能够避免的异常,处理那些不能避免的异常。这里我将记录如何利用异常还程序一个“完美世界”。异常处理最根本的优势就...
2019-05-26 19:38:26
1170
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人