自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Docker

Docker问题应用场景1.解决以上问题2.云计算方案Docker架构基本概念1.镜像(Image):类似java中的类模板,一套环境。2.容器(Container):类似java对象,一个类可以new很多对象。3.仓库(Repository):类似maven,有远程仓库和本地仓库。引擎Docker镜像命令镜像是三大组件之一。Docker运行容器前需要本地存在对应的镜像,如果本地不存在会从镜像仓库下载。当下载tomcat不同版本的镜像,占的空间并不是两者之和,因为

2021-12-02 15:23:28 679

原创 Java日志系统

常见的日志框架JUL基本组件用户使用Logger来进行日志的记录,Logger可以持有多个处理器Handler(日志的记录使用的是Logger,日志的输出使用的是Handler)1.自定以日志级别时,记录器和处理器同时设置才生效2.handler可以时consleHandler和fileHandler,输出到控制台和文件中3.日志输出的格式可以simpleFormatter设置(logger.addHandler,handler.setFormatter)4.单例获得Logger logg

2021-11-19 20:16:08 2665 1

原创 Leetcode最长系列

最长递增子序列(输出个数)public int lengthOfLIS(int[] nums) { if(nums.length == 0) return 0; int[] dp = new int[nums.length]; int res = 0; Arrays.fill(dp, 1); for(int i = 0; i < nums.length; i++){

2021-08-16 20:28:28 166

原创 排序,插入算法(冒泡,快速,归并,二分)

归并排序public static void mergeSort(int[]arr, int left, int right){ if (left >= right) return; int mid = (left + right) / 2; //左递归分解数组 mergeSort(arr, left, mid); //右递归分解数组 mergeSort(arr, mid + 1, right); m

2021-07-27 10:54:32 108

原创 redis分布式锁

1.0redis配置类package com.xrh.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;import org.springframe

2020-12-29 18:12:20 202 1

原创 JUFuntion和JUStream

四大函数式接口juf包下的package com.xrh.juf;import java.util.function.Consumer;import java.util.function.Function;import java.util.function.Predicate;import java.util.function.Supplier;public class HanShuShiJieKou { public static void main(String[] args

2020-12-17 15:25:23 111

原创 JUC

卖票复习教学模板

2020-12-16 17:15:40 132

原创 JVM内存模型

类加载器ClassLoader负责加载class文件,class文件在文件开头有特定的文件标示,将class文件字节码内容加载到内存中,并将这些内容转换成方法区中的运行时数据结构并且ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定启动类加载器(Bootstrap)C++编写的,加载rt.jar加载java,javax,sun开头的包的类扩展类加载器(Extension)Java编写的 加载ext/*.jar应用程序类加载器(A.

2020-12-10 16:00:12 141

原创 JVM垃圾回收

什么是垃圾?垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾为什么需要GC?1.如果不进行垃圾回收,内存迟早都会被消耗完,因为不断地分配内存空间而不进行回收,就好像不停地生产生活垃圾而从来不打扫一样。2.除了释放没用的对象,垃圾回收也可以清除内存里的记录碎片。碎片整理将所占用的堆内存移到堆的一端,以便JVM将整理出的内存分配给新的对象。3.随着应用程序所应付的业务越来越庞大、复杂,用户越来越多,没有GC就不能保证应用程序的正常进行。而经常造成STW的GC又跟不上实际的需求,

2020-12-08 16:08:33 134

原创 Mysql高级4

SQL执行顺序SQL编写顺序:SELECT DISTINCT <select list>FROM <left_table> <join_type>JOIN <right_table>ON <join_condition>WHERE <where_condition>GROUP BY <group_by_list>HAVING &lt

2020-12-03 16:55:33 97

原创 常用算法

分支算法把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)……分治算法可以求解的一些经典问题二分搜索大整数乘法棋盘覆盖合并排序快速排序线性时间选择最接近点对问题循环赛日程表汉诺塔动态规划算法背包问题:有一个背包,容量为4磅 , 现有如下物品1.要求达到的目标为装入的背包的总价值最大,并且重量不

2020-12-02 19:39:19 180

原创 Mysql高级3

数据库应用优化之前介绍了从sql语句层面进行优化,但是在实际生产环境中,由于数据库本身的性能局限,就必须要对前台的应用进行一些优化,来降低数据库的访问压力。1.使用连接池对于访问数据库来说,建立连接的代价是比较昂贵的,因为我们频繁的创建关闭连接,是比较耗费资源的,我们有必要建立 数据库连接池,以提高访问的性能2.减少对MySQL的访问2.1 避免对数据进行重复检索2.2 增加cache层3.负载均衡利用某种均衡算法,将固定的负载量分布到不同的服务器上, 以此来降低单台服务器的负载,达到优化的

2020-12-02 15:33:50 118

原创 Mysql高级2

Mysql的体系结构概览1) 连接层最上层是一些客户端和链接服务,包含本地sock 通信和大多数基于客户端/服务端工具实现的类似于 TCP/IP的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。2) 服务层第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化,部分内置函数的执行。所有跨存

2020-12-01 17:28:30 321 1

原创 Mysql高级1

索引索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。索引优势劣势优势:提高数据检索的效率,降低数据库的IO成本通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗劣势:索引也是一张表,该表中保存了主键与索引字段,并指向实体类的记录,所以索引列也是要占用空间的。索引大大提高了查询效率,同时却也降低更新

2020-11-30 22:04:41 108

原创 算法

递归打印问题递归用于解决什么样的问题各种数学问题如: 8 皇后问题 , 汉诺塔, 阶乘问题, 迷宫问题, 球和篮子的问题(google 编程大赛)各种算法中也会使用到递归,比如快排,归并排序,二分查找,分治算法等.将用栈解决的问题–>递归代码比较简洁递归需要遵守的重要规则执行一个方法时,就创建一个新的受保护的独立空间(栈空间)方法的局部变量是独立的,不会相互影响, 比如 n 变量如果方法中使用的是引用类型变量(比如数组),就会共享该引用类型的数据.递归必须向退出递归的条

2020-11-27 14:34:44 164

原创 数据结构

稀疏数组稀疏数组存储的值不是第几行第几列是多少,而是原来数组的arr[][]=多少,比如这里,不是第一行第二列是1,而是原来数组arr[1][2]=1队列先进先出数组模拟队列问题分析并优化:1 目前数组使用一次就不能用, 没有达到复用的效果2) 将这个数组使用算法,改进成一个环形的队列 取模:%数组模拟环形队列分析说明:1)尾索引的下一个为头索引时表示队列满,即将队列容量空出一个作为约定,这个在做判断队列满的时候需要注意 (rear + 1) % maxSize == front

2020-11-27 14:34:21 256

原创 SpringCloud

什么是微服务架构在系统架构与设计的实践中,有两种集中式系统和分布式系统。集中式系统:集中式系统也叫单体应用,就是把所有的程序、功能、模块都集中到一个项目中,部署在一台服务器上,从而对外提供服务。分布式系统:分布式系统就是把所有的程序、功能拆分成不同的子系统,部署在多台不同的服务器上,这些子系统相互协作共同对外提供服务。分布式强调系统的拆分,微服务也是强调系统的拆分,微服务架构属于分布式架构的范畴。微服务:简单地说, 微服务是系统架构上的一种设计风格, 它的主旨是将一个原本独立的系统拆分成多个小型

2020-10-29 10:19:36 265 1

原创 FastDFS,RabbitMQ

概述FastDFS整体架构FastDFS文件系统由两大部分构成,一个是客户端,一个是服务端。客户端通常指我们的程序,比如我们的Java程序去连接FastDFS、操作FastDFS,那我们的Java程序就是一个客户端,FastDFS提供专有API访问,目前提供了C、Java和PHP几种编程语言的API,用来访问FastDFS文件系统。服务端由两个部分构成:一个是跟踪器(tracker),一个是存储节点(storage)跟踪器(tracker)主要做调度工作,在内存中记录集群中存储节点storage

2020-10-23 15:20:08 374 1

原创 nginx

Nginx反向代理会出现多入口问题,用nginx利用负载均衡算法转发给tomcat处理请求Nginx主要应用 静态网站部署 负载均衡 静态代理 动静分离 虚拟主机静态网站部署Nginx是一个HTTP的web服务器,可以将服务器上的静态文件(如HTML、图片等)通过HTTP协议返回给浏览器客户端。这能是静态文件 修改配置文件下的location负载均衡请求上限负载均衡通常是指将请求"均匀"分摊到集群中多个服务器节点上执行,这里的均匀是指在一个比较大的统计范围内是基本均匀

2020-10-20 20:52:15 183 1

原创 Thymeleaf

概述:Thymeleaf 对网络环境不存在严格的要求,既能用于 Web 环境下,也能用于非 Web 环境下。在非 Web 环境下,他能直接显示模板上的静态数据;在 Web 环境下,它能像 Jsp 一样从后台接收数据并替换掉模板上的静态数据。它是基于 HTML 的,以 HTML 标签为载体,Thymeleaf 要寄托在 HTML 标签下实现。变量表达式th:text="" 是 Thymeleaf 的一个属性,用于文本的显示标准变量表达式${…} 语法${变量名} 的方式获取 Controller 中

2020-10-20 15:52:14 146

原创 redis

后台启动:redis-server &默认端口号:6379关闭redis:./redis-cli shutdown(推荐) 第二种,杀掉进程 ps -ef | grep redis kill PID服务启动后还要启动客户端:1.命令行,./redis-cli-h 127.0.0.1 -p 63792.rdm,一个cpp写的图形化客户端。远程客户端,通过网络访问redis,首先linux有防火墙,其次redis有安全策略,默认情况下,只有安装redis的服务器才能访问redis(本机

2020-10-14 20:22:12 180

原创 Linux-常用命令

磁盘管理:pwd 查看当前目录的路径su 切换用户,root切别的用户不用输密码?ll 查看当前目录下的文件和文件夹(目录)看第一列,-是文件,d是目录,l表示软连接(快捷方式)ls 跟ll一样,只显示ll的最后一列,文件名和目录名ll /root/ 查看其他目录下的文件和目录cd /usr/local/ 进入其他目录 ,有/就是绝对路径文件管理:mkdir test 创建一个目录echo “hello linux” 在屏幕上输出这个字符串echo “hello” > a.txt

2020-10-14 20:12:58 129

原创 SSM---SMVC

SpringMVC是基于spring的一个框架, 实际上就是spring的一个模块, 专门是做web开发的。理解是servlet的一个升级。web开发底层是servlet , 框架是在servlet基础上面加入一些功能SpringMVC就是一个Spring。 Spring是容器,ioc能够管理对象,使用<bean>, @Component, @Repository, @Service, @Controller,SpringMVC能够创建对象, 放入到容器中(SpringMVC容器), sp

2020-10-11 15:22:26 340

原创 SSM---S

概述减轻对项目模块之间的管理, 类和类之间的管理, 帮助开发人员创建对象,管理对象之间的关系。spring核心技术 ioc , aop 。能实现模块之间,类之间的解耦合。java中创建对象有哪些方式:构造方法 , new Student()反射序列化克隆ioc :容器创建对象动态代理ioc控制反转IoC (Inversion of Control) : 控制反转, 是一个理论,概念,思想。把对象的创建,赋值,管理工作都交给代码之外的容器实现, 也就是对象的创建是有其它外部资源完成。

2020-10-07 12:03:47 502

原创 SSM---M

第一章1.三层架构界面层: 和用户打交道的, 接收用户的请求参数, 显示处理结果的。(jsp ,html ,servlet)业务逻辑层: 接收了界面层传递的数据,计算逻辑,调用数据库,获取数据数据访问层: 就是访问数据库, 执行对数据的查询,修改,删除等等的。三层对应的包界面层: controller包 (servlet)业务逻辑层: service 包(XXXService类)数据访问层: dao包(XXXDao类)三层中类的交互用户使用界面层–> 业务逻辑层—>数据访问层

2020-09-27 17:23:00 276

原创 框架基础---Maven

Maven能干什么1.管理1)maven可以管理jar文件2)自动下载jar和他的文档,源代码3)管理jar直接的依赖, a.jar需要b.jar , maven会自动下载b.jar4)管理你需要的jar版本5)帮你编译程序,把java编译为class6)帮你测试你的代码是否正确。7)帮你打包文件,形成jar文件,或者war文件8)帮你部署项目2.构建: 项目的构建构建是面向过程的,就是一些步骤,完成项目代码的编译,测试,运行,打包,部署等等。maven支持的构建包括有:1.清理,

2020-09-22 17:43:26 99

原创 框架基础---动态代理

代理你有a类, 本来是调用c类的方法, 完成某个功能。 但是c不让a调用。a -----不能调用 c的方法。在a 和 c 直接 创建一个 b 代理,c让b访问。 a --访问b---访问c使用代理模式的作用1.功能增强: 在你原有的功能上,增加了额外的功能。 新增加的功能,叫做功能增强。2.控制访问: 代理类不让你访问目标,例如商家不让用户访问厂家。实现代理的方式1.静态代理 :1) 代理类是自己手工实现的,自己创建一个java类,表示代理类。2) 同时你所要代理的目标类是确定的。

2020-09-21 20:31:07 349

原创 web进阶---jQuery

jQuery是js库库:相当于java的工具类,库是存放东西的, jQuery是存放js代码的地方, 放的用js代码写的functiondom对象和jquery对象dom对象,使用javascript的语法创建的对象叫做dom对象, 也就是js对象。var obj= document.getElementById(“txt1”); obj是dom对象,也叫做js对象obj.value;jquery对象: 使用jquery语法表示对象叫做jquery对象, 注意:jquery表示的对象都是数

2020-09-21 20:27:09 95

原创 web进阶---ajax

全局刷新和局部刷新全局刷新: 整个浏览器被新的数据覆盖。 在网络中传输大量的数据。 浏览器需要加载,渲染页面。局部刷新: 在浏览器器的内部,发起请求,获取数据,改变页面中的部分内容。其余的页面无需加载和渲染。 网络中数据传输量少, 给用户的感受好。ajax是用来做局部刷新的。局部刷新使用的核心对象是 异步对象(XMLHttpRequest)这个异步对象是存在浏览器内存中的 ,使用javascript语法创建和使用XMLHttpRequest对象2.ajax:Asynchronous JavaSc

2020-09-18 21:03:51 139

原创 JavaWeb---JSP1

JSP规范介绍来自于JAVAEE规范中一种JSP规范制定了如何开发JSP文件代替响应对象将处理结果写入到响应体的开发流程JSP规范制定了Http服务器应该如何调用管理JSP文件响应对象存在弊端适合将数据量较少的处理结果写入到响应体JSP文件优势JSP文件在互联网通信过程,是响应对象替代品.降低将处理结果写入到响应体的开发工作量降低处理结果维护难度在JSP文件开发时,可以直接将处理结果写入到JSP文件不需要手写out.print命令,在Http服务器调用JSP文件时,根据JSP规范要求自动的

2020-09-17 11:41:38 103

原创 JavaWeb---Servlet1

Servlet规范Servlet规范介绍:1.servlet规范来自于JAVAEE规范中的一种2.作用:1)在Servlet规范中,指定【动态资源文件】开发步骤2)在Servlet规范中,指定Http服务器调用动态资源文件规则3)在Servlet规范中,指定Http服务器管理动态资源文件实例对象规则Servlet接口实现类:1.Servlet接口来自于Servlet规范下一个接口,这个接口存在Http服务器提供jar包2.Tomcat服务器下lib文件有一个servlet-api.jar存

2020-09-14 12:01:37 2260

原创 JavaWeb---互联网通信协议服务器基础

网络通信流程什么是互联网通信两台计算机通过网络实现文件共享行为,就是【互联网通信】互联网通信过程角色划分1.客户端计算机:用于发送请求,来索要资源文件的计算机2.服务端计算机:用于接收请求,并提供对应的资源文件计算机互联网通信模型1.C/S通信模型:优点: 1.安全性较高 2.有效降低服务端计算机工作压力缺点: 1.增加客户获得服务的成本 2.更新较为繁琐2.B/S通信模型:优点: 1.不会增加用户获得服务的成本 2.几乎不需要更新浏览器

2020-09-10 20:44:07 115

原创 JavaScript入门简介1

概述JavaScript是运行在浏览器上的脚本语言,简称JS。JavaScript的出现让网页更加的生动了,不再是单纯的静态页面了。页面更具有交互性。JavaScript这个名字中虽然带有“Java”但是和Java没有任何关系,只是语法上有点类似。他们运行的位置不同,Java运行在JVM当中,JavaScript运行在浏览器的内存当中。JavaScript的“目标程序”以普通文本形式保存,这种语言都叫做“脚本语言”。Java的目标程序已.class形式存在,不能使用文本编辑器打开,不是脚本语言。

2020-09-07 11:26:16 71

原创 CSS入门简介1

CSS1、什么是CSS,有什么作用?CSS(Cascading Style Sheet):层叠样式表语言。CSS的作用是:修饰HTML页面,设置HTML页面中的某些元素的样式,让HTML页面更好看。CSS好比是HTML的化妆品一样。HTML还是主体,CSS依赖HTML。CSS的存在就是修饰HTML,所以新建的文件还是xx.html文件。2、CSS我们要求掌握到什么程度?* 常见的CSS样式要求会写。* 别人写的CSS样式要能看懂。3、在HTML页面中嵌套使用CSS的三种方式:第一种方式

2020-09-02 11:52:02 50

原创 HTML入门简介1

概述什么是HTML?怎么开发HTML?怎么运行HTML?* HTML: Hyper Text Markup Language (超文本标记语言) 由大量的标签组成,每一个标签都有开始标签和结束标签。 <标签> <标签> <标签 属性名="属性值" 属性名="属性值"> </标签> </标签> </标签> 超文本: 流媒体、图片、声音、视频....HTML开发的时候使用普通的文本编辑器就行,创建的文件

2020-09-02 10:30:23 68

原创 JavaSE学习总结---反射机制

概述反射机制有什么用通过反射机制可以操作字符码文件(就是编译后的那个class文件),在java.lang.reflect包下。相关的类:java.lang.class :代表字节码文件java.lang.reflect.Method:代表字节码中的方法字节码java.lang.reflect.Constructor:代表字节码中的构造方法字节码java.lang.reflect.Field:代表字节码中的属性字节码获取字节码文件的三种方式package a.b;public clas

2020-09-01 10:24:29 138

原创 JavaSE学习总结---多线程1

概述线程与进程的关系一个进程相当于一个应用程序一个线程是进程处理中会启用多个线程完成这个进程进程A和进程B内存独立不共享。线程A和线程B,堆内存和方法区内存共享,但是栈内存独立,一个线程一个栈main方法结束之后主栈结束了,主栈空了,但其他栈(线程)可能还在压栈弹栈单核cpu表示只有一个大脑,不能做到真正的多线程并发,但是给人做到一种“多线程并发的感觉”,处理速度极快,多个线程之间频繁切换执行。实现线程的两种方式第一种方式:编写一个类继承java.lang.Thread,重写run方法s

2020-08-29 16:38:46 261

原创 JavaSE学习总结---IO流

概述

2020-08-27 10:04:25 108

原创 JDBC---java语言连接数据库1

1、JDBC是什么?Java DataBase Connectivity(Java语言连接数据库)2、JDBC的本质是什么?JDBC是SUN公司制定的一套接口(interface)java.sql.*; (这个软件包下有很多接口。)接口都有调用者和实现者。各大数据库管理系统厂家去实现这些接口,我们负责调用这些接口面向接口调用、面向接口写实现类,这都属于面向接口编程。为什么要面向接口编程?解耦合:降低程序的耦合度,提高程序的扩展力。多态机制就是非常典型的:面向抽象编程。(不要面向具体编程)

2020-08-16 11:11:47 189

原创 JavaSE学习总结---集合

集合概述什么是集合?有什么用?数组其实就是一个集合,集合是一个容器,是一个载体可以容纳多个对象。在实际开发中,假设连接数据库,数据库当中有十条记录,把这十条记录查出来,java将这十条数据封装成十个对象放到集合传到前端,遍历集合,将数据展示出来集合不能直接存储基本数据类型,另外集合也不能直接存储java对象,集合当中存储的都是java对象的内存地址。(或者说集合中存储的是引用。)list.add(100); //自动装箱Integer注意:集合在java中本身是一个容器,是一个对象。集合中

2020-08-14 16:54:47 362

空空如也

空空如也

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

TA关注的人

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