自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL优化

MySQL优化索引简介作用索引是对数据库表中一列或多列的值进行排序的一种结构。MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。索引只是提高效率的一个因素,如果你的MySQL有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。优点索引大大减小了服务器需要扫描的数据量索引可以帮助服务器避免排序和临时表索引可以将随机IO变成顺序IO索引对于InnoDB(对索引支持行级锁)非常重要,因为它可以让查询锁更少的元组。关于InnoDB、索引和

2022-01-06 13:52:16 730

原创 Shiro安全框架

一、权限管理1.1 什么是权限管理?不同身份的用户进入到系统所能够完成的操作是不相同的,我们对不同用户进行的可执行的操作管理称之为权限管理.1.2 如何实现权限管理?权限管理设计基于主页的权限管理(不用用户使用不同的主页,权限通过主页功能菜单进行限制)适用于权限管理比较单一、用户少、没类用户权限固定基于用户和权限的权限管理可以实现权限的动态分配,但是不够灵活基于角色的访问控制RBAC基于角色的访问控制二、Shiro2.1 认证授权流程认证:对用户的身份进行

2022-01-06 11:57:07 252

原创 反向代理机制和正向代理机制

什么是反向代理业务分析说明:图片如果需要展现,则通过网络虚拟地址进行访问虚拟路径: http://image.jt.com/2020/07/11/39ff8758-57bb-4452-bf29-db6061fff24a.jpg磁盘地址: D:\JT-SOFT\images/2020/07/11/39ff8758-57bb-4452-bf29-db6061fff24a.jpg为了让所有的用户都能访问图片信息,则准备虚拟地址,并且实现虚拟地址与本地磁盘地址之间的映射关系.该功能采用反向代理技术实现.

2020-08-08 09:32:32 255

原创 SSO单点登录、伪静态

1.什么是SSO?单点登录(Single Sign On),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不许需要管理员对用户的登录状态或者其他信息进行修改的,就是意味在多个应用系统中,用户只需要登录一次就可访问所有相互信任的应用的系统。这种方式减少了由登录产生的时间消耗,辅助了用户管理,是目前比较流行的。核心思想:1.用户信息共享 2.保证用户信息安全2. SSO核心原则1.所有的登录都在SSO中心认证进行

2020-07-30 17:42:44 246

转载 AOP面向切面

1. 什么是AOPAOP(Aspect Oriented Programming)面向切面编程,是对OOP面向对象编程的补充,它提供了模块化。在OOP中,关键的是单元是对象,AOP的关键单元是切面,或者说关注点。可以简单的理解为,OOP是针对核心的集中业务,AOP是针对非核心的分散的切面业务,例如事务管理、权限、日志、安全等。2. AOP的核心理念3. 切入点表达式1). bean(bean的ID) 按照指定的bean名称拦截用户的请求,之后执行通知方法. 只能匹配单个bean对象2).with

2020-07-30 17:39:16 419

原创 SpringMVC的五大组件和请求响应流程

springMVC的五大组件DispatcherServlet(前端控制器):用来拦截匹配的请求,拦截匹配规则由自己定义,拦截的请求会按照规则发送给Controller处理。HandlerMapping(处理器映射器):根据匹配的请求找到对应的Controller(通过xml配置或者注解)。Controller(控制器):处理请求。ModelAndView(模型数据和逻辑视图名):用来封装数据信息和视图信息的。ViewResolver(视图解析器):根据逻辑视图名(View)定位具体JSP页面

2020-07-25 20:32:49 924

原创 Dubbo基础及原理机制

1.什么是Dubbo?Dubbo是 阿里巴巴公司开源的一个高性能RPC 分布式服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成,现已成为 Apache 基金会孵化项目。2.为什么要用Du...

2020-07-24 21:54:36 2872

原创 IDEA汉化包安装和卸载

idea 终于更新了2020.1版本(推荐使用2020的版本),新增了好多的特性,官方也终于支持了中文语言包在设置之前先查看版本号:安装方式一:1.打开设置2.选择插件选项,搜索Chinese ​(Simplified)​ Language Pack EAP3.下载完成后重启IDEA4.最终效果安装方式二1.去IDEA插件中心 (https://plugins.jetbrains.com/idea) 搜索 Chinese ​(Simplified)​ Language Pack

2020-07-24 08:52:29 20263 1

原创 跨域实现

1. 跨域访问测试案例1:页面网址:http://manage.jt.com:80/test.htmlajax请求: http://manage.jt.com:80/test.json结论: 当请求协议://域名:port端口号都相同时 访问正常的.案例2:页面网址:http://www.jt.com:80/test.htmlajax请求:http://manage.jt.com:80/test.json结论: 当浏览器的地址与ajax地址不同时,请求不能正常执行.2. 同源策略说明说明

2020-07-22 20:33:39 160

原创 关于静态页面访问问题

1.关于静态页面访问问题说明: 浏览器通过网址查询静态页面时,需要在后端服务器中准备固定的页面.才能正确的访问.准备页面:疑问: 京东家的商品有上千万.如果采用上述的方式进行访问,则必须准备上千万的.html页面,才能实现商品的展现. 这样的方式不合理.正确的方式: 应该准备一个公共的页面,之后根据商品的ID进行查询.之后在同一个页面中展现不同的商品信息即可.2. 开启后缀类型匹配问题:如何能够拦截.html为结尾的请求,之后实现由mvc通过视图解析器实现程序的页面跳转解决方案: 添加配

2020-07-22 19:42:49 1163

原创 mysql数据库存储过程和触发器

一、存储过程存储在数据库服务器上的一段程序代码,可以反复调用1. 创建测试表create table employees(id int primary key auto_increment,name varchar(20),age int,updated datetime,created datetime)engine=innodb charset=utf8;insert into employees values(null,'周杰伦',38,now(),now());insert

2020-07-21 20:46:55 263

原创 Redis集群

1 为什么要搭建集群通常,为了提高网站响应速度,总是把热点数据保存在内存中而不是直接从后端数据库中读取。Redis是一个很好的Cache工具。大型网站应用,热点数据量往往巨大,几十G上百G是很正常的事儿。 由于内存大小的限制,使用一台Redis 实例显然无法满足需求,这时就需要使用多台Redis作为缓存数据库。但是如何保证数据存储的一致性呢,这时就需要搭建redis集群.采用合理的机制,保证用户的正常的访问需求.采用redis集群,可以保证数据分散存储,同时保证数据存储的一致性.并且在内部实现高可

2020-07-20 20:10:29 176

原创 Redis内存策略

1 内存策略说明redis服务器运行在内存中,数据也在内存中保存. 如果一直往里存,总有一天内存资源不够用,所以需要研究如何优化内存.2 LRU算法维度:T 时间LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面(数据)置换算法,选择最近最久未使用的页面(数据)予以淘汰。该算法赋予每个页面(数据)一个访问字段,用来记录一个页面(数据)自上次被访问以来所经历的时间 t,当须淘汰一个页面(数据)时,选择现有页面(数据)中其 t 值最大的,即最近最少使用的页面(数据)予

2020-07-20 19:17:34 285

原创 Redis持久化策略

1 Redis持久化策略说明说明: Redis的数据都保存在内存中,如果断电或者宕机,则内存数据将擦除,导致数据的丢失.为了防止数据丢失,Redis内部有持久化机制.当第一次Redis服务启动时,根据配置文件中的持久化要求.进行持久化操作.如果不是第一次启动,则在服务启动时会根据持久化文件的配置,读取指定的持久化文件.实现内存数据的恢复.2 RDB模式特点:1.rdb模式是redis中默认的持久化策略.2.rdb模式定期持久化.保存的是Redis中的内存数据快照.持久化文件占用空间较小.3.r

2020-07-20 19:12:36 282

原创 一致性hash算法

1. 一致性hash算法介绍一致性哈希算法在1997年由麻省理工学院提出,是一种特殊的哈希算法,目的是解决分布式缓存的问题。在移除或者添加一个服务器时,能够尽可能小地改变已存在的服务请求与处理请求服务器之间的映射关系。一致性哈希解决了简单哈希算法在分布式哈希表( Distributed Hash Table,DHT) 中存在的动态伸缩等问题 。2.一致性hash原理说明目的:解决数据如何在分布式环境下进行存储!!!hash取值区间: 8位16进制数 共有 2^32种可能性!!! (24)8=2^3

2020-07-20 19:03:47 485

原创 java JDBC编程流程步骤

java JDBC编程流程步骤JDBC:Java Data Base ConnectionJDBC是用于运行sql语句并从数据库中获取新新的java API.JDBC是用来(让我们的程序)通过网络来操作数据库的,作用非常重要;JDBC技术也是Java核心技术之中的一个。是使用JDBC驱动程序訪问数据库的首选方式通过JDBC操作数据库——步骤:第1步:注冊驱动 (仅仅做一次)第2步:建立连接(Connection)第3步:创建运行SQL的语句(Statement)第4步:运行语句第5步:处

2020-07-18 08:49:48 161

原创 Redis基础常用命令

Redis命令1.1 String类型 命令 说明 案例 set 添加key-value set username admin get 根据key获取数据 get username strlen 根据key获取值的长度 strlen key exists 判断key是否存在 exists name返回1存在0不存在 del 删除redis中的key del key Keys

2020-07-17 16:22:08 161

原创 虚拟机网络模式

1.桥接模式相当于将虚拟机直接接入局域网中,这时会独占IP地址.可以与本机通过局域网通信.特点:所有的在局域网中的IP都可以访问虚拟机.依赖:如果设置桥接模式,则必须有物理设备的支持.2.NAT模式相当于在网络环境中会开辟一块全新的网络空间.只有主机能够访问.特点:NAT模式只有主机访问,其他人通过IP地址禁止访问....

2020-07-14 16:56:22 101

原创 Linux小白常用命令

1 Linux命令说明:Linux全部都是基于文件的. 并且Linux中的目录都是树形结构1.1cd命令集ifconfig/ip addr 检查IP地址pwd 检查当前的位置tab键 自动补齐(注意唯一性)cd命令是linux中最基本的命令语句,必须熟练掌握cd / 返回根目录cd ~ 用户主目录cd . 当前目录cd …返回到上一级目录cd /usr/ 进入到usr目录cd – 返回上一个目录cd 直接回家1.2ls目录和文件*ls –l 详细格式,文件

2020-07-14 16:25:22 184

原创 sql优化的几种方法

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=03.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎

2020-07-14 16:08:55 148

原创 桥接模式和NAT模式的区别

桥接模式说明:1).使用桥接模式相当于虚拟机直接接入当前局域网.并且独占IP2).如果采用桥接模式,则必须有第三方的设备进行支持.3).凡是在局域网中的设备,都可以与虚拟机进行通讯.NAT模式说明:1).NAT模式相当于在本机开辟一块网络空间地址.2).只有本机能够访问,其他服务器不能访问...

2020-07-13 19:22:13 1602 2

原创 Nginx负载均衡

1.Nginx负载均衡策略1.1 什么是负载均衡说明:在分布式条件下,为了提高用户请求的响应能力,准备多台服务器.一起抗击高并发.需要用户通过同一个网址访问不同服务器的技术称之为负载均衡机制.1.2 准备多台tomcat服务器1.2.1 规划说明准备3台tomcat服务器,并且端口号依次为8081/8082/8083,之后完成项目Windows部署.1.2.2 编辑MsgController说明:动态获取当前服务器端口号信息@RestController public class Ms

2020-07-13 19:19:04 175

原创 get提交和post提交的区别

**get把请求的数据放在url上,post把数据放在Request body内get提交的数据最大是2k,post理论上没有限制。get在浏览器回退时是无害的,post会再次提交请求。get产生的URL地址可以被Bookmark,而post不可以。get请求参数会被完整保留在浏览器历史记录里,而post中的参数不会被保留。参数的数据类型,get只接受ASCII字符,而post没有限制。**...

2020-07-08 09:40:50 228

原创 cookie和Session的工作原理,联系和区别

**Cookie是一种客户端状态管理技术: cookie由客户端创建,由浏览器保存 1.创建Cookie ①当用户第一次浏览某个使用Cookie的网站时,该网站的服务器就为该用户生成一个唯一的识别码(Cookie id),创建一个Cookie对象; ②默认情况下它是一个会话级别的cookie,存储在浏览器的内存中,用户退出浏览器之后被删除。 ③将Cookie放入到HTTP响应报头,将Cookie插入到一个 Set-Cookie HTTP请求报头中。 ④发送该HTTP响应报文。 2.设置存

2020-07-08 09:38:56 274

原创 servlet的生命周期

**加载类—>实例化(为对象分配空间)—>初始化(为对象的属性赋值)—>请求处理(服务阶段)—>销毁Servlet 通过调用 init() 方法进行初始化。Servlet 调用 service() 方法来处理客户端的请求。Servlet 通过调用 destroy() 方法终止(结束)。**...

2020-07-08 09:37:43 168

原创 四大域对象及其作用域

**pageContext:当前jsp页面;request:一次请求范围内,转发有效重定向失效;Session:存活时间内(默认30分钟),一次会话内有效,转发和重定向都有效;servletContext:整个web应用;**

2020-07-08 09:36:52 547

原创 jsp的9大隐式对象

**1.request对象 主要用于处理客户端的请求,包含了所有的请求信息。2.response对象 主要用于处理jsp生成的响应,然后将响应结果发送给客户端。3.out对象 输出流,输出到客户端。4.Session对象 表示用户的会话状况,用此项机制可以轻易识别出每一个用户,能保存和跟踪用户的会话状态。5.application对象 作用于整个应用程序,所有的客户端窗口都可以共享该对象。从服务器开始就存在,直到服务器关闭为止。6.pageContext对象 使用户可以访问当前页面作用

2020-07-08 09:36:17 197

原创 死锁

**死锁:当两个线程或两个以上的线程互相等待对方释放资源时,就会发生死锁。产生死锁的条件: 线程:t1,t2. 共享资源:s1,s2 1.互斥条件。某个资源在一段时间内只能被一个进程占有。例:s1,s2 2.占有且申请条件。进程至少已经占有一个资源,但又申请新的资源;由于该资源已被另外进程占有,此时该进程阻塞;但是,它在等待新资源之时,仍继续占用已占有的资源。例:线程 t1 已经取得共享资源 s1,尝试获取共享资源 s2 的时候,不释放共享资源 s1 3.不可抢占条件。进程所获得的资源在未使用完

2020-07-08 09:35:05 140

原创 冒泡排序,选择排序,快速排序(了解)

**冒泡排序: 1.将要排序的一组数进行遍历 2.第一次遍历,取第一个数和第二个数比较,大的数向后放,之后依次比较后续数字,将最大的数放在最后。 3.第二次遍历,取第一个数和第二个数比较,大的数向后放,之后依次比较后续数字,将最大的数放在倒数第二位。 4.重复上述操作,直到排序完成。选择排序: 1.将要排序的一组数进行遍历 2.第一次遍历,将第一个位置上的数字与后面的数字进行比较,如果后面的数字比第一个位置上的数字小,则将两个数字的位置进行交换。 3.第二次遍历,将第二个位置上的数字与后面的

2020-07-08 09:33:27 253

原创 抽象类和接口的区别

**抽象类使用abstract修饰;被子类继承;只能继承一个抽象类;可以有具体的方法和属性;可以有构造方法;抽象方法可以是public,protected 接口使用interface修饰;被子类实现;可以实现多个接口;只能有抽象方法和不可变常量;不能有构造方法;抽象方法只能是public类型有了抽象类为啥还要接口? 根据区别选用不同的方式。 1.优先使用接口,尽量少用抽象类 2.需要定义子类的行为,又要为子类提供共性功能时才选用抽象类;**...

2020-07-08 09:32:35 499

原创 线程创建/线程阻塞

**线程创建: 1.继承Thread类 2.实现Runable接口 3.实现Callable接口线程阻塞: sleep()和wait() 区别:sleep()是Thread类的方法,必须指定时间,不释放同步锁,可以在任意地方使用,必须捕获异常 wait()是Object类的方法,可以指定时间也可以不指定时间,释放同步锁,只能在同步代码方法或者同步代码块中使用,可以捕获/抛出异常**...

2020-07-08 09:31:06 283

原创 stringBuilder和stringBuffer的区别

**stringBuilder和stringBuffer对象都是可变字符序列。stringBuffer:线程安全,性能低。stringBuilder:线程不安全,性能高。单线程推荐使用。**

2020-07-08 09:28:43 167

原创 集合框架下的各种接口和实现类

**Java集合框架:Iterable:顶级接口Collection:List:LinkedListArrayListSet:HashSetTreeSetCollection接口是最基本的接口,List和Set接口都是继承了Collection接口List接口里的数据是有序,可重复的。可以有多个null元素LinkedList:有序集合,以链表形式实现List接口,适合插入和移除元素。ArrayList:底层是数组,是对数组的升级。适合查找元素。Set接口里的数据是无序,不可重复的。只

2020-07-08 09:28:03 454

原创 JVM的内存区及其GC算法

**JVM把内存进行了划分,分别为:(1)方法区 方法区存放了要加载的类的信息(如类名、修饰符等)、静态变量、构造函数、final定义的常量、类中的字段和方法等信息。方法区是全局共享的,方法区中很少执行GC,因为在方法区中执GC的条件很苛刻。所以方法区又被称为持久代。 方法区执行GC的条件: 1. Java堆中不存在该类的任何实例对象; 2. 加载该类的类加载器已经被回收; 3. 该类对象的java.lang.Class对象不在任何地方被引用,且无法在任何地方通过反射访问该类的方法 满

2020-07-08 09:26:09 398

原创 我对面向对象的理解

面向对象是相对与变相过程而言的。面向过程注重每一个功能的步骤,面向对象注重的是对象,由对象去调用功能java是真正的面向对象语言,在java中的世界中,所有的东西都是对象,哪怕声明一个变量也要放在一个类中。是用这个变量就必须new 对象,然后调用这个变量面向对象就是把所有共性的东西放在一个类中,这个类就是一个对象。面向对象的特点:1)面向对象是一种常见的思想,比较符合人们的思考习惯。2)面向对象将复杂的业务逻辑简单化,增强代码复用性。3)面向对象的三大特征:封装、继承、多态。举例:面向过程

2020-07-08 09:23:49 196

原创 javascript 三种for循环方式:

三种for循环方式:var array = [1,2,3,4,5,6];// 优势:1)可读性好 2)性能好// 劣势:1)结构复杂 2)i变量的作用域不严谨for(var i=0;i<array.length;i++){ console.log(array[i]);}// 优势:结构简单// 劣势:1)可读性差,性能相对也不太好 2)i的作用域不严谨for(var i in array){ console.log(array[i]);}以上使用var定义的变量i,

2020-06-13 10:47:04 400

原创 JavaScript中var let const的区别

使用var修饰变量代码演示:var array = [1,2,3,4,5,6];for(var i in array){ console.log(array[i]);}console.log("for循环外:i="+i);输出结果:123456for循环外:i=5代码演示:var array = [1,2,3,4,5,6];for(var i=0;i<array.length;i++){ console.log(array[i]);}console.log

2020-06-13 10:38:54 211

原创 Spring Boot 常用注解解析

@SpringBootApplication@SpringBootApplication:这个注解是 Spring Boot 最重要的一个注解。被这个注解标注的类为Spring Boot的主配置类,Spring Boot 会运行这个类的main方法来启动Spring Boot应用。这样的启动类一个项目只能有一个,此类运行时,回启东项目的自动配置并扫描此类所在包以及子包中的资源,然后进行加载(将类读到内存中)使用场景:启动类。@SpringBootTest@SpringBootTest:这个注解用来

2020-06-09 19:25:52 176

原创 STS 工具常用快捷键

Alt+/:内容辅助(这个用的相当频繁。省了很多代码)Ctrl+1:快速修复(这个快捷键也是我常用的快捷键之一)Ctrl+Shift+F:格式化当前代码(这个快捷键让我的代码看起来更漂亮)Ctrl+Shift+O:导包(导包的时候用它很方便)Ctrl+Alt+↓、Ctrl+Alt+↑:复制当前行到下(上)Alt+↓、Alt+↑:当前行和下(上)一行交换位置(省去了剪切粘贴的麻烦)Shift+Enter:换行(不必收到鼠标的限制)Ctrl+D:删除当前行或者多行Ctrl+Z:撤销Ctrl+Y

2020-06-09 19:24:46 1689

原创 SSM框架简单总结

**SSM框架:MyBatis、spring、springmvc**MyBatis框架:对JDBC的操作数据库进行封装.spring框架:本质:管理软件中的对象,即创建对象和维护对象之间的关系.核心:IOC和AOP.提供了表现层SpringMVC和持久层SpringJDBC以及业务层事务管理.SpringMVC框架:他是属于spring框架的一个模块.MVC:是一种设计模式,MVC设计模式认为任何软件(项目)都可以分为三个部门:控制程序流转的控制器(Controller):如:接收浏览器请求,调

2020-05-29 19:57:52 679

空空如也

空空如也

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

TA关注的人

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