自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (2)
  • 收藏
  • 关注

原创 常见网络攻击及防御方法总结(XSS、SQL注入、CSRF攻击)

  从互联网诞生之初起,无时无刻不存在网络攻击,其中XSS攻击和SQL注入攻击是网站应用攻击的最主要的两种手段,全球大约70%的网站应用攻击都来自XSS攻击和SQL注入攻击。此外,常用的网站应用攻击还包括CSRF、Session劫持等。1、 XSS攻击  XSS攻击即跨站点脚本攻击(Cross Site Script),指的是攻击者通过篡改网页,注入恶意的HTML脚本,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。  常见的XSS攻击类型有两种,一种是反射型,攻击者诱使用户点击一个嵌入恶

2021-04-05 20:54:46 3661 4

原创 基于javaEE的校园兼职平台系统的设计与实现

基于javaEE的校园兼职平台系统的设计与实现1、简介该项目是一个大学生校园兼职平台。该平台使用Java语言开发后台业务逻辑,运用了SpringMVC+Spring+MyBatis框架进行搭建,前台使用jQuery、layUI框架,数据库服务器采用MySQL5.6+对数据进行持久化。其主要功能有:兼职招聘、论坛交流、在线聊天、个人中心、信箱留言、登录注册等功能。2、项目部分页面展示首页论坛交流在线聊天个人中心后台管理3、项目码云地址https://gitee.com/xiaoh

2021-02-06 20:42:34 3986 4

原创 常用排序算法及代码实现(java)

1、常用排序算法插入排序:直接插入排序、二分法插入排序直接插入排序:从第i个开始,假设前i个元素构成的子序列是排序的,然后第i个元素从子序列中找到位子插入(顺序查找),算法稳定二分法插入排序:从第i个开始,假设前i个元素构成的子序列是排序的,然后第i个元素从子 序列中找到位子插入(二分法查找),算法稳定交换排序:冒泡排序、快速排序冒泡排序:每跑一趟把最大的元素交换到最后面(反之),算法稳定快速排序:每跑一趟把第一个元素作为基准值,1小于基准值的放前面,2大于基准值的放后面,在基准值前面和后面的序

2020-08-12 18:10:25 324

原创 Dockerfile指令详解教程

1、Dockerfile指令详解教程

2020-08-11 19:22:15 162

原创 Spring Cache简单教程

1、spring缓存抽象的实现方式(1)spring自带的cache,底层也是通过map实现的(2)RedisCache,EhCacheCache ,ConcurrentMapCache等提示:另外可以通过自建map实现缓存,独自使用redis实现缓存(jedis操作)。2、重要概念和缓存注解Cache:缓存接口,定义缓存操作。实现有:RedisCache、EhCacheCache、ConcurrentMapCache等。CacheManager:缓存管理器、管理各种缓存(Cache)组件。@

2020-08-09 20:39:48 279

原创 ActiveMQ入门教程总结

1、消息队列的使用场景异步处理、应用解耦、流量削峰、日志处理ActiveMQ是一种分布式消息中间件,APACHE出品,历史悠久,实现JMS规范。2、ActiveMQ支持两种模型点对点(quene):每个消息只能有一个消费者。消息的生产者和消费者之间没有时间上的相关性.可以由多个发送者,也可以有多个消费者,但一个消息只能被一个消费者消费。即使消费者服务挂了,重启后,依赖能够获取到消息,不会丢消息。发布订阅(topic):每个消息可以有多个消费者。生产者和消费者之间有时间上的相关性。订阅一个主题的消

2020-08-08 14:46:56 282

原创 JVM常用参数及调优教程(Java8)

1、 为什么要进行JVM参数调优发挥服务器的最大性能,节约运营成本。在调优之前需要对JVM的各数据区的作用及原理进行学习。2、 导致OOM的常见原因(1)请求创建一个超大对象,通常是一个大数组。(2)超出预期的访问量/数据量,通常是上游系统请求流量飙升,常见于各类促销/秒杀活动,可以结合业务流量指标排查是否有尖状峰值。(3)过度使用终结器(Finalizer),该对象没有立即被 GC。(4)内存泄漏(Memory Leak),大量对象引用没有释放,JVM 无法对其自动回收,常见于使用了 File

2020-08-06 16:47:57 1133 3

原创 性能测试指标及优化方案

1、 性能测试的目的性能测试的目的就是要知道系统的各项性能指标是否能够满足要求,如不能满足要求,则需要找出系统的瓶颈,并进行针对性的优化加强。2、 常用的性能测试工具(1) Apache JMeter(2) LoadRunner(3) NeoLoad等等3、 性能测试指标(系统指标)(1) 响应时间、平均响应时间分别指的是每个请求的响应时间、所有请求的响应时间。(2) 并发请求数同一时间向系统发起的请求数。(3) 吞吐率系统每秒能处理的请求数,请求数/秒。(4) TPSTPS,T

2020-08-05 10:48:59 1693

原创 Tomcat参数配置和性能调优测试

1、tomcat常用配置参数<Connector port=“8080" protocol=“org.apache.coyote.http11.Http11NioProtocol”maxThreads=“600”minSpareThreads=“100”maxSpareThreads=“500”acceptCount=“700”connectionTimeout=“20000”redirectPort=“8443” />参数说明:protocol=“org.apache.coy

2020-08-03 20:20:23 595 1

原创 JVM基础知识总结及参数配置

1、JVM体系结构图2、类加载器Java类加载器基于三个机制:委托、可见性和单一性。委托机制是指将加载一个类的请求交给父类加载器,如果这个父类加载器不能够找到或者加载这个类,那么再加载它。可见性的原理是子类的加载器可以看见所有的父类加载器加载的类,而父类加载器看不到子类加载器加载的类。单一性原理是指仅加载一个类一次,这是由委托机制确保子类加载器不会再次加载父类加载器加载过的类。类加载器负责加载文件系统、网络或其他来源的类文件。有三种默认使用的类加载器(jvm自带):Bootstrap类加载器、Exte

2020-08-01 17:53:30 301

原创 Docker的特点与微服务的优缺点

1、Docker的特点(1)更快的交付和部署(主要特点)(2)更高效的虚拟化(3)更轻松的迁移和扩展(4)更简单的管理(5)适合与面向服务的架构配合使用等特点2、单体的不足(1)随着时间的推移,单体系统无法支撑起较高的并发量(2)不利于技术的选型更新(3)应用的可靠性低,一个bug可导致整个系统崩溃3、微服务的优点(1) 复杂度可控(2) 技术选型灵活(3) 易扩展等等4、微服务的缺点(1) 服务之间的协调和测试更加复杂(2) 项目的部署变得更加复杂(3) 增加了内存消耗

2020-07-31 20:31:32 1603

原创 CentOS7搭建带验证的Docker本地镜像仓库教程

1、创建用户名、密码$ yum install httpd-tools -y$ mkdir /opt/registry-auth/ -p$ htpasswd -Bbn xiaohui 123456 > /opt/registry-auth/htpasswd这里的用户名/密码是:xiaohui/1234562、启动带有验证功能的registry容器(同时参照第4步,配置仓库地址)$ docker run -d -p 5000:5000 -v /opt/registry-auth/:/aut

2020-07-31 16:42:38 404

原创 Docker常用命令总结

1、 批量删除镜像容器命令(1)删除所有容器docker rm docker ps -a -q(2)删除所有镜像docker rmi docker images -q(3)按条件删除镜像删除不打标签:docker images|grep none|awk ‘{print $3}’|xargs docker rmi镜像名包含关键字:docker rmi $(docker images | grep “none” | awk ‘{print $3}’) 说明:这里的关键字为none2、do

2020-07-29 22:26:42 142

原创 微服务SpringCloud相关组件

一、SpringCloud的相关组件1、 Eureka一个基于 REST 服务的,服务注册与发现的组件,它主要包括两个组件:Eureka Server 和 Eureka Client。2、 Ribbon主要是用于实现负载均衡,可配合服务发现和断路器使用。3、 Hystrix熔断器,容错管理工具,通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。4、 ZuulZuul网关,在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netfl

2020-07-29 15:29:40 221

原创 SpringBoot工作机制教程

1、 SpringBoot工作机制

2020-07-29 11:52:08 172

原创 CentOS7环境中安装Docker教程

1、 查看内核版本Docker 要求 CentOS 系统的内核版本高于 3.10,查看命令:uname -r2、 卸载老版本的docker(1)查询docker安装过的包:yum list installed | grep docker(2)删除安装包:yum remove docker-ce.x86_64 docker-ce-cli.x86_64 -yyum remove containerd.io.x86_64 -y(3)删除镜像、容器等rm -rf /var/lib/docker

2020-07-28 18:28:20 289 1

原创 SpringSecurity权限框架学习总结

1、 Spring Security图解,总的来说就是一堆的过滤器。在没有Spring Security的时候,我们直接访问REST APi可以得到结果,但是当我们的应用加入了Spring security之后,相当于加上了过滤器,其实Spring Security本身就是一个过滤器链,所有的请求在访问REST API时都要经过Spring Security的过滤器链,当返回应答的时候,也会走一遍这个过滤器链,然后返回给用户。2、 Spring Security 核心组件(1)spring secu

2020-07-28 11:03:10 517

原创 mysql分库分表概念文章

1、 数据库瓶颈(1)IO瓶颈第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 ->分库第二种:网络IO瓶颈,请求的数据太多,网络带宽不够 ->分库(2)CPU瓶颈第一种:SQL问题,如SQL中包含join,group by,order by,非索引字段条件查询等,增加CPU运算的操作 -> SQL优化,建立合适的索引,在业务Service层进行业务计算。第二种:单表数据量太大,查询时扫描的行太多,SQL效率低,CPU率先出现瓶颈

2020-07-26 11:57:09 230 1

原创 大型网站架构的要素总结

1、 性能(1) 前端性能优化主要方式:浏览器缓存、CDN加速、反向代理(2) 应用服务器性能优化主要方式:代码优化、做缓存、异步操作、使用集群(3) 数据服务器优化主要方式:升级硬件配置、视图索引、读写分离、分库分表2、 可用性(1) 高可用的服务主要方式:服务集群(2) 高可用的数据主要方式:CPA原理、数据备份、失效转移(3) 高可用的保证主要方式:自动化测试、自动化发布3、 伸缩性(1) 弹性设计的类别(2) 应用服务器集群的伸缩性设计(3) 分布式缓存集群的伸缩性

2020-07-25 11:16:14 107

原创 Spring框架学习笔记总结

1、 核心容器BeanFactoryo:基础类型的IoC容器,管理Bean的工厂,负责初始化各种Bean,并调用它们的生命周期方法。ApplicationContext:是BeanFactoryo的子接口,也被成为应用上下文,是另一种常用的Spring核心容器。2、 IoC控制反转:对象的实例不再由调用者来创建,而是由Spring容器来创建,Spring容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。这样,控制权由应用代码转移到了Spring容器,控制权发生了反转,这就是Spring

2020-07-24 11:29:48 148

原创 mysql索引及其实现原理笔记

1、 mysql索引的类型Mysql主要有以下几种索引类型:FULLTEXT,HASH,BTREE,RTREE。HASH:只能用于等值查询,不能用于范围查询。BTREE,RTREE:可用于等值查询、范围查询,BTREE为mysql的默认索引类型。2、 索引种类普通索引、唯一索引、主键索引、组合索引、全文索引3、 B+树结构说明:一个B+Tree大概可以存储2000多万的索引元素4、存储引擎的索引实现原理5、关于自增主键和uuid(1)单实例或者单节点组经过500W、1000W的单机表测

2020-07-23 18:58:57 184

原创 数据结构基础教程

1、 数据结构简介数据结构与算法、程序设计之间的关系:数据结构 + 算法 = 程序设计数据的逻辑结构:线性结构、树结构、图数据的存储结构:顺序存储结构、链式存储结构数据结构种类:串(String),数组(Array)、链表(Linked List)、队列(Queue)、栈(Stack)、哈希表(Hash),堆(Heap),图(Graph),树(Tree)2、 线性表(1)顺序表:基于数组,每个存储单元的地址是连续的;查询、更改较快,新增和删除较慢(2)链表:基于链表,每个存储单元的地址是不连续

2020-07-23 12:11:48 373

原创 windows下mysql的主从同步配置

一、 新增mysql实例1、复制主数据库的文件夹2、进入my.ini文件修改相关信息[mysqld]设置端口port = 3307设置mysql的安装目录basedir = C:\Program Files\MySQL\MySQL Server 5.6-s2设置mysql的数据存储目录datadir = C:\Program Files\MySQL\MySQL Server 5.6-s2\data3、进入从库的bin目录,打开命令行,将从库安装为windows服务mysqld inst

2020-07-22 16:43:01 282

原创 Java日志框架Logback配置总结

Java日志框架Logback配置总结1、 常见的日志框架j.u.l、Log4j 、Logback、Log4j2等等。2、 logback日志级别等级从低到高分别是:TRACE < DEBUG < INFO < WARN < ERROR1.如果logger没有被分配级别,name它将从有被分配级别的最近的父类那里继承级别,默认级别是DEBUG。2. 日志输出的时候,级别大的会输出,根据当前ROOT 级别,日志输出时,级别高于root默认的级别时会输出,比如如果root的级

2020-07-21 16:54:50 243

原创 MyBatis-Plus框架学习笔记

MyBatis-Plus框架学习笔记1、学习MyBatis-Plus,MyBatis-Plus比较好的地方(1)CRUD接口,MyBatis-Plus中的CRUD接口对单表的增删查改操作非常方便,CRUD接口和nutz中的dao接口差不多。(2)代码生成器,代码生成器可以根据数据库的表结构,生成相应的controllor、service、mapper、pojo,可以极大的提高开发效率。(3)条件构造器,MyBatis-Plus中的条件构造器,主要是对sql添加相应的条件,和nutz中的Cnd 类差不

2020-07-20 19:15:40 180

原创 linux系统安装相关问题

linux系统安装相关问题1、 确保系统安装了 openssh-server,用于远程(1)在终端中输入:yum list installed | grep openssh-server(2)安装:yum install openssh-server(3)开启ssh服务:service sshd start2、 配置防火墙firewall(1) 查看状态:systemctl status firewall(2) 开启:service firewalld start,重启:service fi

2020-07-20 17:20:50 176

原创 git命令教程

git命令教程git init //初始化本地git仓库git clone //克隆一份代码到本地仓库git pull //把远程库的代码更新到工作台 git add . //把本地的修改加到stage中git commit -m ‘here’ //把stage中的修改提交到本地库git push //把本地库的修改提交到远程库中git branch -r/-a //查看远程分支/全部分支git checkout master //切换到

2020-07-20 14:43:53 83

原创 软件开发步骤开发流程

一般软件开发步骤开发流程(1) 需求分析分析系统都需要哪些功能,对功能进行详细需求分析。(2) 概要设计按功能对系统进行模块划分,并且根据功能需求对数据库进行设计。(3) 详细设计根据功能定义每个模块的接口,包括接口名称、访问地址、输入输出的内容等等。(4) 编码编码,用编程语言对设计阶段的实现。(5) 测试写测试用例,对系统进行相关的测试,包括白盒测试和黑盒设计。(6) 部署系统部署,上线运行。...

2020-07-20 14:35:28 346

原创 Java集合框架泛型

Java集合框架1、集合框架List集合的主要实现类:ArrayList,LinkedList,Vector(允许重复,记录添加顺序)ArrayList:顺序表,基于数组,查询,更改较快,新增和删除较慢.LinkedList:链表,基于链表,查询,更改较慢,新增和删除较快.Vector:底层是基于Object数组(线程安全,但是性能较差)Set集合主要实现类:HashSet,TreeSet(不允许元素重复,不会记录元素的先后添加顺序)HashSet:底层才用的是哈希表算法,等值查询效率极高。判

2020-07-19 19:23:10 153

原创 计算机网络基础总结

计算机网络基础总结1、 物理层传输的数据单位:比特设备:集线器、网线知识点:信道复用技术、宽带接入技术、传输介质等等。2、 数据链路层传输的数据单位:帧设备:网卡、交换机知识点:PPP协议、CSMA/CD协议三个基本问题:封装成帧、透明传输、差错检测3、 网络层传输的数据单位:数据包设备:路由器、防火墙知识点:IP协议(地址解析协议ARP/网际控制报文协议ICMP/网际组管理协议IGMP)、IPv6、IP多播、虚拟专用交换网VPN、网络地址转换NAT4、 运输层传输的数据单位:

2020-07-19 16:39:33 116

原创 Java多线程基础和线程池

Java多线程基础1、 简介(1)线程是比进程更小的执行单位,一个进程在执行的过程中会产生多个线程。多线程的优势:线程之间可以共享内存,进程不行;能实现多任务并发,而且代价小。2、 创建线程的方式(1)使用Thread类的子类(2)使用Thread类,但目标对象类必须实现runnable接口(3)通过线程池创建3、 线程的常用方法启动线程:start(),线程操作:run(),线程休眠:sleep(),线程状态:isAlive(),返回正在使用CPU的线程:currentThread(),吵

2020-07-19 11:34:20 81

原创 Java常用实用类的总结

1.String类  (1)对字符串的操作,正则表达式,字符串的替换和分解2.StringToKenizer类  (1)对字符串的分解以及数量统计3.Scanner类  (1)解析字符串4.Date与Calendar类  (1)时间日期操作5.日期的格式化  (1)使用SimpleDateFormat对日期格式化6.Math、BigInteger、Random  (1)Math数学计算  (2)BigInteger用于处理大整数  (3)Random生产随

2020-07-15 16:07:49 791

java开发文档(jdk1.8中文版java8.zip

java开发文档(jdk1.8中文版java8

2021-03-24

阿里Java开发手册(华山版和泰山版).zip

阿里巴巴开发手册,这里包含了两个最新的版本,一个是华山版一个是泰山版,希望对大家有帮助,祝大家学业进步、升职加薪哦!

2020-07-26

空空如也

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

TA关注的人

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