- 博客(22)
- 收藏
- 关注
原创 非递归实现二叉树遍历
非递归实现二叉树遍历前、中、后序遍历改动都很小前序遍历/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, Tree
2022-03-28 23:23:48
540
原创 StringUtils.isBlank和StringUtils.isEmpty的区别
StringUtils.isBlank和StringUtils.isEmpty的区别StringUtils.isEmpty(String str)源码public static boolean isEmpty(String str) { return str == null || str.length() == 0; }所以,isEmpty的作用为:判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0StringUtils.isE
2020-12-18 17:48:06
227
1
原创 Spring学习——理解IOC
Spring学习——理解IOC1、通俗的理解IOC(控制反转)和DI(依赖注入)之前看到过一个很形象的解释,但没有找到原文,大概是这样说的:我们可以将电脑当做我们的应用程序,电脑有许多USB接口,相当于应用程序要依赖的类。每一个USB接口具体要做什么,取决于用户插入的是什么(可能是鼠标、键盘,也有可能是U盘),USB接口要做什么,控制权不在电脑上,在用户身上,在应用程序上就是该应用依赖的类具体要做什么,控制权不在应用,而在Spring容器,这就是控制反转。依赖注入其实和控制反转差不多,只不过角度不
2020-08-04 15:56:29
79
原创 Spring学习——Bean和容器
Spring学习——Bean和容器1、Bean1.1、Bean是什么简单概括,一个Bean对应Spring容器里的一个Java实例1.2、Bean的作用域当通过Spring容器创建一个Bean实例时,不仅可以完成Bean实例的实例化,还可以为Bean指定特定的作用域。Spring支持5种作用域:Singleton:单例模式。在整个SpringIoC容器中,使用singleton定义的Bean将只有一个实例,这是默认的配置。Prototype:原型模式。每次通过容器的getBean方法获取p
2020-08-04 15:50:50
227
原创 Spring学习——AOP
Spring学习——AOP1、AOP是什么DI能够让相互协作的软件组件保持松散耦合,面向切面编程(aspect-oriented programming,AOP)允许你把遍布应用各处的功能分离出来形成可重用的组件。DI有助于应用对象之间解耦,而AOP可以实现横切关注点与他们所影响的对象之间的解耦在软件开发中,散布于应用多处的功能被称为横切关注点(cross-cutting concern)。通常来讲,这些横切关注点从概念上是与应用的业务逻辑相分离的(但是往往会嵌入到应用的业务逻辑中)。把这
2020-08-04 15:49:00
158
原创 线程安全的七种解决方法
文章目录一、前言二、线程安全(一)多线程特性1)原子性2)可见性3)有序性(二)线程安全的定义(三)线程安全问题产生的原因(四)解决方法——线程同步1、同步代码块(synchronized)2、同步方法(synchronized)3、Lock类3.1Lock接口关系图3.2Lock类同步锁方法:3.3不可重入锁:3.4可重入锁3.5读写锁4、特属域变量(volatile)4.1作用4.2应用场景5...
2020-04-19 19:03:15
452
原创 线程创建的四种方式及其生命周期
文章目录多线程一、进程和线程二、线程创建1、继承Thread类1)创建自定义线程类,重写run方法2)测试类,创建自定义线程,调用其start方法来开启线程2、实现Runable接口1)创建自定义类实现Runable接口2)测试类,创建自定义线程,传入Runable接口实现类的对象3、实现Callable接口1)创建自定义类实现Callable接口2)测试类,需要FutureTask类帮助4、线程...
2020-04-19 18:57:34
1278
2
原创 线程死锁的产生及处理方式
线程死锁一、什么是死锁所谓死锁是指多个线程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。二、死锁产生的必要条件1、互斥条件进程要求对所分配的资源(如打印机)进行排他性控制,即在一段时间内某资源仅为一个进程所占有。此时若有其他进程请求该资源,则请求进程只能等待。2、不可剥夺条件进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走,即只能由获得...
2020-04-19 18:51:21
534
原创 idea配置Tomcat后页面404
问题随心所欲的一配:控制台也正常:可是:解决选择Deployment点击右侧+号选择Artifacts然后选择:这里如果选第一个会报错(我也不知道为什么)ok,apply至此,大功告成...
2020-04-17 17:03:58
561
原创 idea中使用mybatis逆向工程生成的文件出不来?
问题idea使用mybatis逆向工程,没报错,文件也完美的没出来解决上网查了一下,说是MAC和Windows的路径表示不一样:windows 下的路径是.\srcmac下路径是./src路径没问题,我都没用过MAC,怎么可能出问题!等等!我现在用的Ubantu啊!那,改一下试试~ok了...
2020-04-17 16:42:23
490
原创 CentOS8安装NGINX
由于第一次安装不太熟练,所以遇到了一些小插曲,后来看到一篇博客,才发现原来如此简单!在此记录一下原博客链接:点我前提条件请确保你以具有sudo特权的用户身份登录,并且你没有在端口80或443上运行Apache或任何其他进程。从CentOS 8开始,Nginx软件包在默认的CentOS存储库中可用。步骤$ sudo yum install nginx安装完成后,使用以下命令启用并...
2020-03-19 18:56:21
300
原创 vim编辑器
vim编辑器一、vim编辑器的三种模式1、命令行模式vim 文件名 打开的就是命令行模式命令行可以进行一些基本的复制、删除、跳转、撤销、移动等操作命令含义备注yy复制光标所在行3yy表示复制3行p(小写p)光标所在行后面粘贴P(大写P)光标所在行前面粘贴gg光标快速跳到文件首行,并且定位到首字符3gg表示快速跳到文件第3行行首字符...
2020-03-10 19:44:06
302
原创 Linux下用户组管理
一、Linux下用户管理1、用户概念及作用用户:指的是Linux操作系统中用于管理系统或者服务的人注意:Linux下一切皆文件,所以用户管理管理的是相应的文件如何管理文件?1.文件基本管理:文件的创建、删除、复制、查找、打包压缩等;文件权限的改变等;2.文件高级管理:程序文件的安装、卸载、配置等。终极目的是对外提供稳定的服务。2、用户的基本管理1.创建用户(useradd)(1)...
2020-03-09 18:17:47
309
原创 Web应用体系结构
Web应用体系结构容器Servlet没有main()方法。它们受控于另一个Java应用,这个Java应用称为容器。Tomcat就是一个容器。如果向服务器请求一个Servlet,此时服务器会把请求交给部署该Servlet的容器,容器向Servlet提供HTTP请求和响应,且由容器调用Servlet方法,如doGet()或doPost()。容器能作甚?1.通信支持。容器知道自己与web服...
2020-03-09 17:29:19
542
原创 初涉Servlet&HTTP
Servlet&HTTP之前看了一些Servlet的视频,但总感觉云里雾里不踏实,索性买本书看看,《Head First Servlet&JSP》,看漫画一样的了解一下吧。以下是对第一章的小总结。什么是HTTP协议HTTP是TCP/IP的上层协议。TCP负责确保从一个网络节点向另一个网络节点发送的文件能作为一个完整的文件到达目的地,尽管在传送过程中这个文件可能会分解为小块传...
2020-03-09 17:27:46
129
原创 URL地址最后的反斜杠到底是个啥
URL地址最后的反斜杠之前也注意过这个问题,发现有的URL地址最后有反斜杠有的没有,甚是费解,今天又一次遇到,查了一下,做一下记录。是否带有反斜杠,其实是告诉服务器你要访问的是一个目录还是一个具体的文件,for example:http://shangxiaoying.cn/articleshttp://shangxiaoying.cn/articles/如果以第一种方式访问的话,服务...
2020-03-09 17:12:15
808
原创 static记录
static将static汇总一下吧,以后遇见也写在这,以防到处都有太混乱。static关键字通常来说,当创建类时,就是在描述那个类的对象的外观与行为。除非用new来创建那个类的对象,否则,实际上并未获得任何对象。执行new来创建对象时,数据空间才被分配,其方法才供外界调用。但是,当声明一个事物是static时,就意味着这个域或方法不会与包含它的那个类的任何对象实例关联在一起。所以,即使...
2020-03-09 17:10:50
97
原创 Java编程思想第二章总结
Java编程思想第二章用引用操作对象一般的这是我刚学Java时最搞不清的,什么是引用?什么是对象?书中用遥控器和电视机来举例子,原文如下:尽管将一切都看作对象,但操纵的标识符实际上是对象的一个“引用(reference)”。可以将这一情形想象成用遥控器(引用)来操纵电视机(对象)。只要握住这个遥控器,就能保持与电视机的连接。当有人想改变频道或减小音量时,实际操控的是遥控器(引用),再由遥...
2020-03-09 16:59:20
68
原创 Linux下的文件操作
文章目录一、Linux下文件查找命令1、命令查找2、文件查找(find)用法1:找出来输出到屏幕用法2:找出来执行命令二、Linux下文件压缩工具1、常见的压缩与解压缩工具2、工具的用法1.zip2.gzip3.bzip24.xz三、Linux下文件打包工具四、Linux日期相关指令1、date命令1.打印日期或时间2.设置系统日期或时间3.应用案例2、cal命令一、Linux下文件查找命令1...
2020-02-29 17:03:28
186
原创 Linux基础操作及命令
Linux基础一、Linux目录树结构1.目录树结构目录说明:2.文件路径表示方法绝对路径一定是以"/"(根)开头,它是唯一一个绝对能够描述文件所在路径的方式。“/” 根目录是linux操作系统最顶级的目录,没有任何路径比它还要靠前。相对路径路径是相对的,文件所在的路径是相对于当前所在路径而言的。当前路径使用 .或./ 表示;当前目录的上一级目录使用 …...
2020-02-27 10:59:38
568
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人