自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Tomcat基础篇-核心启动流程

  前面给大家介绍了Tomcat中的生命周期的设计,掌握了这块对于我们分析Tomcat的核心流程是非常有帮助的,也就是我们需要创建相关的核心组件,比如Server,Service肯定都绕不开生命周期的方法。你可以通过脚本来启动Tomcat服务(startup.bat),但如果你看过脚本的命令,你会发现最终调用的还是Bootstrap中的main方法,所以我们需要从main方法来开始,然后我们去看main方法中的代码中主要做了什么事情?...

2022-06-16 09:00:00 289 1

原创 Tomcat基础篇-架构设计分析

  Servlet是JavaEE规范中的一种,主要是为了扩展Java作为Web服务的功能,统一定义了对应的接口,比如Servlet接口,HttpRequest接口,HttpResponse接口,Filter接口。然后由具体的服务厂商来实现这些接口功能,比如Tomcat,jetty等。...

2022-06-15 10:30:00 155

原创 Tomcat基础篇-项目源码结构介绍

在分析Tomcat源码之前,我们先来看下Tomcat源码的结构组成,这样会更加的有利于我们更好的来分析源码。

2022-06-14 14:30:00 687 1

原创 Tomcat基础篇-生命周期

  在上篇文章中我们看到了Tomcat架构中的核心组件,而且各个组件都有各自的作用,各司其职,而且相互之间也有对应的父子关系,那么这些对象的创建,调用,销毁等操作是怎么处理呢?也就是在Tomcat中的组件的对象生命周期是怎么管理的呢?......

2022-06-14 10:21:38 731

原创 Tomcat基础篇-环境搭建

工欲善其事必先利其器,为了学好Tomcat源码,我们需要先在本地构建一个Tomcat的运行环境。

2022-06-14 10:06:50 790

原创 docker:WORKDIR ‘cannot normalize nothing‘ error

Docker中WORKDIR使用env变量构建失败原因

2022-01-13 15:05:21 1614

原创 腾讯薪选面试分享

1、List集合的简单介绍,hashmap和hashtable区别2、多线程的创建(四种方式)3、ThreadLoacl简单介绍以及应用场景4、幂等性简单介绍和实现方式;分布式锁实现幂等性以及使用redis zookerper如何实现分布式锁5、JVM的内存模型以及作用(答:垃圾回收器算法+垃圾回收器+cms三色标记)6、mysql索引数据结构,索引失效,如何优化?7、spring的核心理解(IOC+AOP)8、schema实现多租户9、悲观锁和乐观锁实现10、如何实现.

2021-11-08 22:29:41 675 1

原创 字节一面试题分享

自我介绍Java中什么是不可变类,如何设计不可变类?String是不可变的;除了string还有哪些不可变类?所有基本类型的包装类都是不可变类不可变类:使用private修饰,不提供setter方法Java中常用的集合?ArrayList、Vector、LinkedList、HashSet、TreeMap、HashMap、HashTable、ConcurrentHashMap;分别解释各个类的数据结构和区别LinkedBlockQueue的实现原理?put和tak

2021-11-08 22:23:19 752

原创 工作中Linux常用命令---持续更新中

下载软件yum -y install 软件名apt-get -y install 软件名登录服务器ssh root#@ip免密登录ssh root@免密登录的服务器IP cat '>>' '~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pubid_rsa.pub :本地的公钥,如果没有可通过 `ssh-keygen -t rsa -C "[email protected]" 生成`压缩、解压文件tar -czf a.tar

2021-06-01 18:41:29 207

原创 JS日期时间的格式化

功能需求:将日期时间转换为指定格式,如:YYYY-mm-dd HH:MM表示2019-06-06 19:45function dateFormat(fmt, date) { let ret; let opt = { "Y+": date.getFullYear().toString(), // 年 "m+": (date.getMonth() + 1).toString(), // 月 "d+": date.getDat

2020-08-22 16:16:46 121

原创 web项目中使用的图片放到项目外的目录下的访问

1.打开tomcat目录下的config目录中找到server.xml2.打开后找到 Host 标签`<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> --> <Valve cl

2020-08-20 19:20:27 866

原创 js中map()和jquery中map()处理数组和对象数据区别

一、原生map()  map()是数组的一个方法,它创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。map()里面的处理函数接受三个参数,分别指代当前元素、当前元素的索引、数组本身。(IE9以下不支持,对老旧浏览器的兼容性方法参考这里)/**** 原生map() ****/var arrTmp = [1,2,3];var arrDouble = arrTmp.map(function(num){ return num*2;})// arrDouble -&gt

2020-08-16 16:57:42 596

原创 IntelliJ IDEA 中常用DeBug使用教程

常用的IDEA中DeBug图标解释:直接看图,详细解释,每一个按钮(按钮对应图中的数字)都是什么功能。1,rerun ‘项目名’:这个就是直接重新Debug某个程序2,‘Resume Program’: 放行当前的断点,直接跳到下一个断点停下,如果后面没有断点的话就直接跑完程序。3,‘Stop 项目名’:停止DuBug的项目或者程序。要是自己的main,点一下就停下了,要是Java web项目,则点2下,就把服务器给停了。4,‘View BreakPoints’:查看所有的断点设置情况。具体详情

2020-08-03 13:54:18 548 1

原创 URL和URI的自己的理解

我们拿一个web地址来解释:http://localhost:8080/myweb/hello.html以上web地址,红色字体部分+绿色字体部分=URL;绿色字体部分=URIURL输入到浏览器地址栏可以直接找到资源,但是URI不能做到URL:统一资源定位符 主要用来定位网络中唯一一个资源的位置,我们可以通过它在网络中找到这个资源 例如:相当于一个人的具体居住地址,山东省济宁市张三URI:统一资源标识符 主要用来标识一个资源,但是我们不能...

2020-07-01 11:16:25 141

原创 设计模式--SOLID四大原则,KISS和YAGNI笔记

单一职责原则:S 1.如何理解(SRP): 一个类只负责完成一个职责的功能,不要设计大而全的类,单一职责原则是为了实现代码的高内聚,低耦合,提高代码的可读性和复用性 2.如何判断一个类是否符合单一职责原则: 不同的应用场景,不同的阶段的需求背景,对同一个类的职责是否单一有不同的判定结果。 我们可以使用以下的小技巧来判断: 1.类中的代码行数,函数或者属性过多 2.类依赖的其他类过多,或者依赖类的其他类过多 3.私有方法过多 4.比较难给一个类起一个合适的名字,起的名字

2020-05-13 21:28:04 1038

原创 关于按字寻址和按字节寻址的理解

关于存储器按字节寻址和按字寻址的理解近日在学习MOOC上学习哈工大刘宏伟老师的“计算机系统组成原理”课程,在4.1节提到主存的时候简单地提到一下关于按字节寻址和按字寻址的寻址空间问题个人对按字、按字节寻址的理解自己的理解: 字长度可为8的整数倍,如32,8位,按字寻址的话,32位存储字包含4个字节,地址线需留出2跟来区分四个字节的位置。按字节寻址的话,则不需要留出地址线来分区了,因为就一个字节。什么是位、字节、字、KB、MB?  位(b):”位(bit)”是电子计算机中最小的数据单位。每一位的

2020-05-11 15:56:01 2494

原创 intelliJ IDEA在body标签里写java代码没有提示解决方案

把jsp页面中的改为 就可以,具体原因也不知道为啥。

2020-05-10 18:28:08 1318 3

原创 JDBC高级使用----连接池技术

今日内容1. 数据库连接池2. Spring JDBC : JDBC Template数据库连接池1. 概念:其实就是一个容器(集合),存放数据库连接的容器。 当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。2. 好处: 1. 节约系统资源 2. 用户访问高效(不用等待系统分配资源)3. 实现: 1. 标准接口:DataSource javax.sql包下的 1. 方法:

2020-05-09 22:26:53 115

原创 JDBC的基础

今日内容1. JDBC基本概念2. 快速入门3. 对JDBC中各个接口和类详解JDBC:1. 概念:Java DataBase Connectivity Java 数据库连接, Java语言操作数据库 * JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。2. 快速入门: * 步骤: 1. 导入驱动jar包(里面都是c

2020-05-09 22:25:06 82

原创 java基础学习笔记

java基础:小知识点: **double和float使用注意: 2.0的类型是double,如果使用float类型需要在后面加上f/F,例:2.0F **如果一个类中有静态代码块,加载到内存的时候会自动执行 例如: StaticTest类: public class StaticTest { static { System.out.println("静态代码块执行成功"); } } StaticDemo类

2020-05-09 22:23:06 107

原创 Comparator的compare方法如何定义升序降序

https://www.cnblogs.com/lzxin/p/11326481.html

2020-05-07 19:54:49 418

原创 算法与设计分析笔记

一、问题及实例 1.问题:需要回答的一般性提问,通常含有若干的参数 2.问题的描述:(数学建模) 1):定义问题参数(集合,变量,函数,序列等) 2):说明每个参数的取值范围及参数间的关系定义问题的解 3):说明解满足的条件(优化目标或约束条件) 3.问题实例:参数的一组赋值可得到问题的一个实例二、算法中一些概念 1...

2020-03-21 12:13:10 478

转载 微信小程序总结1--display:none和visible:hidden

1。display:none和visible:hidden都能把网页上某个元素隐藏起来。2、但两者有区别:●display:none —不为被隐藏的对象保留其物理空间,即该对象在页面上彻底消失,通俗来说就是看不见也摸不到。●visible:hidden— 使对象在网页上不可见,但该对象在网页上所占的空间没有改变,通俗来说就是看不见但摸得到。1、visibility: hidden----将...

2020-02-24 12:14:08 2681

转载 sql语句中any和all的用法

这两个都是用于子查询的any 是任意一个all 是所有any表示有任何一个满足就返回true,all表示全部都满足才返回true**感觉这句很清楚比如select * from student where 班级=’01’ and age > all (select age from student where 班级=’02’);就是说,查询出01班中,年龄大于 02...

2019-05-25 09:03:08 635

转载 游标的使用笔记

USE sample_db;create TABLE fruits(f_id int IDENTITY(1,1) PRIMARY KEY,--水果ids_id int not null, --供应商idf_name varchar(255) not null,--水果名称f_price decimal(8,2) not null --水果价格);insert int...

2019-05-17 13:03:11 138

转载 GROUP BY与Having使用笔记

一、GROUP BYGROUP BY语句用来与聚合函数(aggregate functions such as COUNT, SUM, AVG, MIN, or MAX.)联合使用来得到一个或多个列的结果集。语法如下:SELECT column1, column2, ... column_n, aggregate_function (expression) F...

2019-05-17 10:01:55 536

转载 SQL中GROUP BY语句与HAVING语句的使用学习笔记

一、GROUP BYGROUP BY语句用来与聚合函数(aggregate functions such as COUNT, SUM, AVG, MIN, or MAX.)联合使用来得到一个或多个列的结果集。语法如下:SELECT column1, column2, ... column_n, aggregate_function (expression) F...

2019-05-14 17:16:06 106

转载 SQL Server的学习笔记

一、定义变量--简单赋值declare @a intset @a=5print @a--使用select语句赋值declare @user1 nvarchar(50)select @user1='张三'print @user1declare @user2 nvarchar(50)select @user2 = Name from ST_User where ...

2019-05-14 16:04:55 96

转载 C语言---八大排序算法

目录一.交换排序1.冒泡排序2.快速排序二.插入排序1.直接插入排序2.希尔(shell)排序三.选择排序1.直接选择排序2.堆(Heap)排序四.归并排序 正文简介  其中排序算法总结如下:回到顶部一.交换排序  交换排序的基本思想都为通过比较两个数的大小,当满足某些条件时对它进行交换从而达到排序的目的。1.冒泡排序  基本思想:比较相邻的两个数,如果前者比后者大,则进行交换。每一轮排序结束,选...

2018-06-24 20:38:02 4351

转载 选择排序

【分类】 选择类排序【基本思想】 每一趟从待排序的数据元素中选出最小(最大)的元素,顺序放在待排序的数列最前,直到全部待排序的数据元素全部排完。【特点】 数据结构:数组 稳定性:不稳定【过程】 初始关键字:『 8,5,2,6,9,3,1,4,0,7 』 第一趟排序后:0,『5,2,6,9,3,1,4,8,7』 第二趟排序后:0,1,『2,6,9,3,1,4,8,7』 第三趟排序后:0,1,2,『6...

2018-06-24 20:18:18 95

转载 快速排序

高快省的排序算法有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。假设我们现在对“6  1  2 7  9  3  4  5 10  8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大...

2018-06-24 19:39:12 360 1

原创 DevC++出现[Error] ld returned 1 exit status,如何解决才好呢?

DevC++出现[Error] ld returned 1 exit status,如何解决才好呢?程序是没有问题的,可能的问题最有可能是以下2个1.是你的程序已经在运行,关闭原来的程序就可以正常了2.你机器上有杀毒(安全)软件阻止了你程序的生成,退出杀毒(安全)软件再试下。...

2018-06-23 10:56:21 43896 1

原创 为什么不能用赋值语句将一个字符串常量直接赋给一个字符数组?

不能直接赋值,这是一定的,因为有太多的不确定性,容易发生错误赋值可以使用strcpy函数,strncpy函数,或者sprintf函数都行,直接等于是不行的~~~~规定不能整体引用,只能单个引用赋值除了按字符串输入赋给字符数组,或者初始化为字符串外,一般只能单个元素赋值数组名是一个地址常量,不允许改变,但是数组中的元素是变量,可以改变赋值(数组名这个地址[常量]就是元素[变量]的存放位置)a[]是一...

2018-06-23 10:25:10 14582 1

原创 结构体中char类型赋值的常用两种措施:

在声明结构体变量时初始化,如—— #include "stdio.h" struct stu{ int x; char name[10]; }; int main(void){ struct stu s={8,"123"};//这样初始化 printf("%d %s\n",s.x,s.name); return 0; }向数组里直接拷贝字符串,如—— #incl...

2018-06-23 10:21:08 5528

转载 C语言中字符串与各数值类型之间的转换

c语言的算法设计中,经常会需要用到字符串,而由于c语言中字符串并不是一个默认类型,其标准库stdlib设计了很多函数方便我们处理字符串与其他数值类型之间的转换。首先放上一段展示各函数使用的代码,大家也可以copy到自己的机器上运行观察#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;int main(int argc, char *argv[]...

2018-06-23 10:12:07 1099

原创 c语言中的类型转换

数据类型转换: 自动转换顺序表    高        double    ←←    float    ↑          ↑                 ↑         long         ↑          ↑    ↑        unsigned    ↑          ↑    低         int      ←...

2018-06-23 10:07:06 540

原创 git添加公钥后报错sign_and_send_pubkey: signing failed: agent refused operation的解决办法

在服务器添加完公钥后报错1sign_and_send_pubkey: signing failed: agent refused operation  这个时候我们只要执行下12eval "$(ssh-agent -s)"ssh-add  就可以了

2018-06-22 16:39:19 210

转载 两台linux服务器之间的文件传输

scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点...

2018-06-22 16:20:58 7315

转载 Hadoop分布式集群安装在三台Ubuntu系统电脑

前段时间搭建Hadoop分布式集群,踩了不少坑,网上很多资料都写得不够详细,对于新手来说搭建起来会遇到很多问题。以下是自己根据搭建Hadoop分布式集群的经验希望给新手一些帮助。当然,建议先把HDFS和MapReduce理论原理看懂了再来搭建,会流畅很多。 准备阶段:系统:Ubuntu Linux16.04  64位 (下载地址:https://www.ubuntu.com/download/de...

2018-06-22 16:20:15 2475

转载 String和StringBuffer的区别

在java中有3个类来负责字符的操作。1.Character 是进行单个字符操作的,2.String 对一串字符进行操作。不可变类。3.StringBuffer 也是对一串字符进行操作,但是可变类。String:是对象不是原始类型.为不可变对象,一旦被创建,就不能修改它的值.对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.String 是final类,即不能被继...

2018-06-12 09:49:37 120

空空如也

空空如也

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

TA关注的人

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