自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (14)
  • 收藏
  • 关注

转载 Spring IOC容器 源码分析

Spring IOC 容器源码分析Spring 最重要的概念是 IOC 和 AOP,本篇文章其实就是要带领大家来分析下 Spring 的 IOC 容器。既然大家平时都要用到 Spring,怎么可以不好好了解 Spring 呢?阅读本文并不能让你成为 Spring 专家,不过一定有助于大家理解 Spring 的很多概念,帮助大家排查应用中和 Spring 相关的一些问题。本文采用的源码版本是 4.3.11.RELEASE,算是 5.0.x 前比较新的版本了。为了降低难度,本文所说的所有的内容都是基于 xm

2021-01-29 10:08:45 491

原创 Spring依赖注入

1、依赖注入1.1、构造器注入默认无参构造,有参构造采用3种方式:下标index赋值、类型type赋值、构造函数参数名称name1.2、set方式注入「重点」依赖注入:Set注入依赖:bean对象的创建依赖于容器注入:bean对象中的所有属性,有容器来注入「环境创建」1.复杂类型public class Address { private String address; public String getAddress() { return ad

2021-01-28 01:08:35 234 2

原创 Spring官方文档下载

1、API下载方式一:直接给网址:https://repo.spring.io/libs-release-local/org/springframework/spring/选择自己需要的版本,以最新版本5.3.3为例,点击进入详细页面-dist:distribution n. 分布; 分配; 分发; 分送; 表示是最终放到服务器上的发布版本,通常都是压缩优化过的 存放的是Spring jar包、文档、项目; dist包含了docs和schema的内容;-docs:docum

2021-01-20 09:27:56 1090 4

原创 Leetcode算法题逐一击破—No.001

[每日一道算法题]# 题号:001# 题名:两数之和# 难度:简单题目描述:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应 一个 答案。但是,数组中同一个元素 不能使用两遍。你可以按 任意顺序 返回答案。解题思路(一):双层循环遍历数组,在数组中寻找target - nums[i],找到时输出两数的下标解题代码:class Solution { pub

2021-01-05 15:24:15 150

转载 Serializable序列化深度解析

前言相信大家日常开发中,经常看到Java对象“implements Serializable”。那么,它到底有什么用呢?本文从以下几个角度来解析序列这一块知识点~什么是Java序列化?为什么需要序列化?序列化用途Java序列化常用API序列化的使用序列化底层日常开发序列化的注意点序列化常见面试题一、什么是Java序列化?序列化:把Java对象转换为字节序列的过程反序列:把字节序列恢复为Java对象的过程二、为什么需要序列化?Java对象是运行在JVM的堆内存中的,如果J

2020-12-30 16:18:27 1781 4

原创 StringBuffer与StringBuild的区别

StringBuffer与StringBuild的区别前言:What?Why?hoW?1.StringBuffer和StringBuild是什么?它们之间的区别又在哪?2.StringBuffer为什么线程安全?为什么StringBuild更快?3.StringBuffer和StringBuild怎么使用?1、StringBuffer和StringBuild是什么?它们之间的区别又在哪?都是java.lang包里面的一个公共类(public class)都继承自AbstractSt

2020-12-30 12:51:52 1456

原创 「笔记」学会学习

【笔记】【复习】【变薄】「CM100-1」学习的秘密:1.如何学习?拆分知识模块,概念打磨清楚,形成知识体系2.重复有针对性练习,持续做不会做的事,脱离舒适区3.创造好的学习环境,得到及时且正向的反馈4.不断学习提高认知,扩宽自己能接触的知识面「CM100-2」战胜拖延症:1.拖延原因?①干扰太多②借口太多③没有目标2.方法:①手机静音②允许不完美③制定计划3.注意:①计划不能改,留出机动时间②新的想法加入待办,不影响计划③不拿不重要的事情麻痹自己,假装很忙④排除干扰,坚持执行计划4.制

2020-12-28 23:26:41 359 2

原创 SpringBoot入门之helloworld

SpringBoot入门环境准备:jdk 1.8Maven 3.6.3IDEA 2020.3创建一个hellworldSpring官网:https://start.spring.io/只需要配置项目名,选择相应的jdk版本和依赖包等选项即可,选择GENERATE选在helloworld.zip包,解压并导入idea运行IDEA创建new project新建一个spring项目运行helloworld4. 打开浏览器,输入localhost:8080访问

2020-12-27 20:37:28 90

原创 排序算法之计数排序

[非比较排序-计数排序]1.算法思想计数排序要求数据必须是有确定范围的整数需要定义一个新的数组,用于存放原数组中元素的个数2.流程分析直接上例子:int[] array = {12, 9, 3, 7, 5, 8, 5}先循环遍历array数组,获取数组元素中的最大值[12]和最小值 [3]定义一个新的数组bucket,长度为[最大值 - 最小值 + 1] = 10调用Arrays.fill(bucket, 0)将bucket中的所有元素用0填充,用于计数bucket:{0,0,0,

2020-12-27 00:58:33 178 4

原创 [已解决]阿里云安全组开放端口,宝塔面板仍无法访问

前言:1.购买阿里云轻量应用服务器,系统镜像为CentOS8.22.安装宝塔面板,参考【宝塔面板手册】# Centos安装脚本yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh安装完成后,获得面板访问地址和用户名密码============================================

2020-12-25 21:47:55 19072 6

原创 Docker入门到熟练掌握

Docker安装Docker的基本组成镜像(image):docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像===>run()===>tomcat01容器(提供服务器),通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)容器(container):Docker利用容器技术,独立运行一个或者一组应用,通过镜像来创建的。启动,停止,删除,基本命令!目前可以把这个容器理解为一个简易的linux系统仓库(repository):仓库

2020-12-24 01:47:06 409

原创 排序算法之选择排序

[选择排序]简单选择排序1.算法思想:按数组顺序依次选定一个元素作为比较值,遍历数组,找出最小值,与比较值交换2.流程分析:直接上例子:int[] array = {3, 2, 10, 4, 8, 5, 7, 9, 6, 1}以 array[0] = 3 作为比较值,记录下标minIdx = 0遍历array[1]~array[9],与3比较array[1]=2<3,然后更新minIdx = 1array[9]=1<2,更新minIdx = 9交换array[9]、arr

2020-12-23 17:13:20 67

原创 排序算法之希尔排序

[插入排序-希尔排序]前言(不重要):希尔排序是希尔这个人提出的,又名缩小增量排序,是改进版的插入排序1.算法思想优先比较距离远的元素,将数组元素拆分之后再进行插入排序以length/2作为增量n,比较a[i + n]、a[i],若a[i + n]较小,交换a[i + n]与a[i]缩小增量n /= 2 ,比较a[i + n]、a[i]、a[i - n]…,若a[i + n]比其他都小,则提到最前面当n = 1时,即对整个数组进行插入排序2.流程分析直接上例子:int[] a = {6

2020-12-23 16:57:14 65

原创 排序算法之插入排序

[插入排序-普通插入排序]1.算法思想将元素a视为基序列,遍历数组将元素a右边的元素依次插入序列中,找到比自己小的数置于其后,保证序列一直处于已排序的状态。2.流程解析将元素a作为基序列向序列中插入元素b,比较a、b若b < a,将a向后移动一个位置,b赋值给a,序列:[b、a]若b > a,则不变插入元素c,比较c与a、b若c < b < a,将b后移,a后移,c前置,序列:[c、b、a]若b < c < a,将b后移,a不变,

2020-12-23 16:09:31 84

原创 排序算法之快速排序

[交换排序-快速排序]1.算法思想:选择一个元素作为基准,先从右向左遍历数组寻找比基准小的数a,然后从左向右寻找比基准大的数b,交换a和b的值,当左右会面时,与基准数交换值。目的是让基准数处于数组中间位置可以将基准理解为分数线,选取60作为及格线,通过左右交换的方式确定左边都是不及格的元素,右边则都是及格的元素,然后对不及格和及格部分再进行细分,例如及格可以分为优和良,以90和70作为基准;不及格可以分为中和差,以50和30作为判断基准,将元素置于对应的区间内。2.流程解析定义数组:int[]

2020-12-23 15:15:40 357 6

原创 排序算法之冒泡排序

[交换排序-冒泡排序]1.算法思想相邻元素进行数值比较,当前一个元素大于后一个元素时,交换两个元素的值,每次遍历都能将最大的值置于数组末尾。2.流程解析定义int型数组array,包含10个元素int[] array = {85, 88, 47, 13, 54, 4, 34, 6, 78, 48};定义int型变量i,表示数组下标int i = 0; //初始值为0,(i >= 0 且 i < 10 )循环遍历数组,若array[i] > array[i + 1],交

2020-12-23 12:59:51 99 2

原创 深入理解排序算法

用最通俗易懂的语言,深入解读排序算法**前言:**什么是排序,算法又是什么?排序:将杂乱无章的数据元素,通过一定的方法按关键字顺序排列的过程叫做排序。目的是将一组“无序”的记录序列调整为“有序”的记录序列,比如说升序、降序、奇偶排序(奇升偶降、奇降偶升)等。算法(Algorithm):是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令。代表着用系统的方法描述解决问题的策略机制。一个算法的优劣可以用空间复杂度与时间复杂度来衡量,常用的算法有递推法、递归法、穷举法、贪心算法、分治法、动态规

2020-12-17 17:41:14 306

原创 如何生成随机数、随机数去重

随机数序言:复习排序算法时,想要通过生成随机数为数组赋值,了解到java中产生随机数的方法主要有三种,new Random(),通过java.util.Random类实现random():以当前时间(System.currentTimeMillis)为默认种子,每次生成的随机数是不同的public static void main(String[] args) { Random random = new Random(); for (int i = 0; i < 10;

2020-12-15 17:18:55 1335 2

原创 理解Java反射原理:Reflection

Reflection反射:java反射机制概述动态语言是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构主要动态语言:Object-C、C#、JavaScript、PHP、Python等静态语言:与动态语言相对应的,运行时结构不可变的语言就是静态语言。如Java、C、C++Java不是动态语言,但可称为“准动态语言”。即Java有一定的动态性,我们可以利用反射

2020-12-11 01:05:09 193

原创 理解Java注解原理:Annotation

Annotation注解jdk1.5开始引入的新技术作用:不是程序本身,可以对程序作出解释,可以被其他程序读取,如编译器格式:"@注释名",可以添加参数值例如@SuppressWarnings(value=“unchecked”)使用:可以附加在package,class,method,field等上面,可相当于添加了额外的辅助信息,可以通过反射机制编程实现对这些元数据的访问内置注解@Override:定义在java.lang.Override中,只适用于修辞方法,表示

2020-12-10 23:24:42 79

原创 Mac使用技巧、快捷键、终端命令

Mac使用技巧⌘:command⌥:option⌃:control⇧:shift⌫:删除Space:空格????:音量键????️:使用鼠标????️:废纸篓⌘+Space:聚焦搜索⌃+⌘+Q:锁屏⌘+N:多开窗口,如QQ窗口,浏览器窗口,访达窗口等打出特殊符号:如⌘「系统便好设置」->「键盘」->勾选在菜单栏中显示虚拟键盘及表情检视器->点击桌面右上角输入法选择显示表情与符号->点击「小齿轮」选择自定列表->勾选「⌘技术符号

2020-12-09 19:27:48 656

原创 Mac:“xxx已损坏,打不开“的解决方法

一、问题分析:通常在非 Mac App Store下载的软件都会提示“xxx已损坏,打不开。您应将它移到废纸篓”或者“打不开 xxx,因为它来自身份不明的开发者”。二、原因:Mac电脑启用了安全机制,默认只信任Mac App Store下载的软件以及拥有开发者 ID 签名的软件,但是同时也阻止了没有开发者签名的 “老实软件”三、解决方法:macOS Mojave 10.14及以下系统:打开「终端」,输入sudo spctl --master-disable并回车,输入开机密码回车ma

2020-12-08 20:17:22 2508 1

转载 FTP与SFTP的区别

[FTP与SFTP]文章来源:https://www.cnblogs.com/greencollar/p/13672353.html在实际项目开发中最常使用的文件传输的方式有ftp和sftp两种,但是这两个传输方式各有什么特点呢?本文接下来将讨论SFTP、FTP的区别。一、FTP协议FTP是TCP/IP协议组中的协议之一,TP协议由两个部分组成:FTP服务器(用来存储文件)FTP客户端(用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源)默认情况下FTP协议使用TCP端口中

2020-12-03 09:35:50 6137

原创 自学编程误区

思维导图内容根据视频整理来的点击观看原视频

2020-11-29 11:45:32 60

原创 写博客必会:MarkDown常用语法

MarkDown常用语法Markdown:纯文本标记语言,开源笔记平台,支持Markdown和笔记直接发为博文推荐使用Typora文本编辑器:轻量、简洁Typora官网百度云网盘:提取码sw7s新建.txt文本文档,修改为.md文件(需要提前勾选文件扩展名选项),用Typora打开【1】分级标题(#必须占首位,中间有空格) # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题效果预览:一级标题二级标题三

2020-11-29 10:52:01 122

原创 Centos7:firewall常用操作命令

firewall常用命令://启动防火墙 systemctl start firewalld//关闭防火墙 systemctl stop firewalld//查看防火墙状态 systemctl status firewalld //开机禁用 systemctl disable firewalld//开机启用systemctl enable firewalld//添加端口单个端口:firewall-cmd --zone=public --add-port=80/tcp --perma

2020-06-22 16:03:28 194

原创 SecureCRT下载、安装、激活

SecureCRT的下载一、官方下载地址:SecureCRT.二、网盘下载地址:SecureCRT.提取码: x742安装过程下载安装完成界面如下:

2020-06-22 10:31:41 10167 6

原创 搭建虚拟机Tomcat环境启动报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

linux启动tomcat报错:问题分析:启动tomcat的时候调用了tomcat安装文件中的startup.bat,vi查看startup.bat,发现里面调用了catalina.bat[root@host bin]# vi startup.bat再用vi查看catalina.bat,发现里面又调用了setclasspath.bat[root@host bin]# vi catalina.bat禁止套娃,在setclasspath.bat中添加JAVA_HOME和JRE_HOME两个

2020-06-16 11:10:13 483 1

原创 mvn -v报错:bash: /opt/maven/apache-maven-3.5.3/bin/mvn: Permission denied

这个报错是权限问题导致的解决方法:执行以下命令chmod a+x /opt/apache-maven-3.6.1/bin/mvn此命令的作用:chmod是权限管理命令change the permissions mode of a file的缩写chmod a+x 就表示所有人的权限中,增加可执行权限Linux系统中的每个文件和目录都有访问许可权限,分为只读、只写、可执行三种r :Read,读,权限值为4w :Write,写,权限值为2x :eXecute,执行,权限值为1-rwx

2020-06-15 17:34:18 1991

原创 Git工具安装报错:autoconf: command not found

在执行make configure时报错:autoconf: command not found[root@localhost ~]# cd git-2.26.2/ [root@localhost git-2.26.2]# make configure [root@localhost git-2.26.2]# ./configure --prefix=/usr/local/git [root@localhost git-2.26.2]# make profix=/usr/local/git [ro

2020-06-15 15:39:27 837

原创 Linux环境下快速安装Docker,并配置镜像加速

linux环境下直接执行下面的命令yum install -y docker耐心等待一会,安装完成开启DOCKER服务,查看docker版本及安装情况systemctl start docker.servicedocker version设置开机启动systemctl enable docker.service配置DOCKER镜像下载加速默认安装后的 Docker 环境在拉取 Docker 镜像时速度很慢,因此就需要⼿动配置镜像加速源,提升获取 Docker 镜像的速度。配置⽅法

2020-06-12 15:40:19 363

原创 Nginx安装完成,没有生成sbin目录

错误描述:在linux系统(CentOS 7 64)上安装Nginx(nginx-1.18.0.tar.gz)完成后,没有生成sbin启动目录,用nginx -v查看版本

2020-06-12 11:33:49 23083 1

原创 CentOS7_64:No rule to make target build,needed by default . Stop.

在linux虚拟机上安装Nginx服务器时报错.错误描述:执行如下命令编译安装Nginx//进入Nginx目录cd nginx-1.18.10//编译参数./configure //生成Makefilemake && make install报错信息如下:错误翻译过来就是:./configure:错误:HTTP gzip模块需要zlib库。您可以使用–without-http_gzip_module选项禁用该模块,或者将zlib库安装到系统中,或者使用–with-zl

2020-06-11 22:42:42 1393

原创 WEB服务器NGINX下载、安装及部署

NGINX下载地址:download1).进入下载页面:选择其中一个版本进行下载2).安装步骤:这⾥下载的是 nginx-1.18.10.tar.gz 安装包,启动linux虚拟机并通过ftp工具将安装包上传至workspace⽬录下(存放路径可以自己选择)在 /usr/local/ 下创建 nginx ⽂件夹并进⼊ cd /usr/local/ mkdir nginx cd nginx将 Nginx 安装包解压到 /usr/local/nginx 中即可解压完之后, /

2020-06-11 22:31:25 396

原创 java文件操作报错:java.io.FileNotFoundException:D:\..(拒绝访问)

import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.Outpu...

2019-03-05 09:53:20 95173 9

java面试题02.java

java面试题

2020-12-31

java面试题01.java

java面试题

2020-12-31

zoro(索隆)桌面壁纸图片

壁纸

2020-12-31

java集合.java

javase基础之集合

2020-12-31

常用markdown语法.md

markdown常用语法

2020-12-31

Java自学编程误区.pdf

自学java误区 思维导图

2020-12-31

面向对象.xmind

javase之面向对象编程 思维导图

2020-12-31

集合框架.xmind

javase之集合框架 思维导图

2020-12-31

javase继承.md

javase基础之继承

2020-12-31

Reflection反射.md

javase基础之反射

2020-12-31

java注解思维导图

javase学习

2020-12-31

StringBuffer、StringBuilder、String

javase基础学习

2020-12-31

Docker入门学习

java开发、运维

2020-12-31

java后端学习路线思维导图

java初学者、进阶

2020-12-31

空空如也

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

TA关注的人

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