自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 网络分层(OSI七层模型、TCP/IC四层/五层模型)

转自:https://blog.csdn.net/yuiop123455/article/details/107486126一、OSI七层模型1、OSI七层模型概念OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型。把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备。OSI七层网络模型最主要的功能使就是帮助不同类型的主机实现数据传输。2、OSI七层模型分别是第一层 (物理层): 是以0 101的二进制数据进行发

2020-09-23 11:19:55 8831 1

原创 Redis基础学习笔记 2 — Redis持久化、Jedis和连接池

目录Reids的持久化RDB机制AOF机制Java客户端 JedisJedis操作各种redis中的数据结构jedis连接池:JedisPoolReids的持久化redis是一个内存数据库,当redis服务器重启,获取电脑重启,数据会丢失,我们可以将redis内存中的数据持久化保存到硬盘的文件中。RDB机制RDB:默认方式,不需要进行配置,默认就使用这种机制该机制的原理是在一定的间隔时间中,检测key的变化情况,然后持久化数据操作过程:1.编辑redis.windwos.conf文件#af

2020-09-16 12:50:24 292

原创 Redis基础学习笔记 1 — 概念、数据结构和基本命令操作

redis入门概念NOSQL和关系型数据库比较非 / 关系型数据库的优势什么是Redis和Redis支持的键值数据类型redis的应用场景命令操作redis的数据结构字符串类型 string哈希类型 hash列表类型 list集合类型 set有序集合类型 sortedset通用命令概念redis是一款高性能的NOSQL系列的非关系型数据库:什么是NOSQL:NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。随着互联网web

2020-09-16 11:31:02 416

转载 synchronized解释用法及原理

转自:HollisChuang’s Blog在再有人问你Java内存模型是什么,就把这篇文章发给他。中我们曾经介绍过,Java语言为了解决并发编程中存在的原子性、可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如synchronized、volatile、final、concurren包等。在《深入理解Java虚拟机》中,有这样一段话:synchronized关键字在需要原子性、可见性和有序性这三种特性的时候都可以作为其中一种解决方案,看起来是“万能”的。的确,大部分并发控制操作都能使用sy

2020-09-11 16:00:46 431

转载 JVM自定义类加载器

转:https://blog.csdn.net/seu_calvin/article/details/52315125首先介绍自定义类的应用场景:(1)加密:Java代码可以轻易的被反编译,如果你需要把自己的代码进行加密以防止反编译,可以先将编译后的代码用某种加密算法加密,类加密后就不能再用Java的ClassLoader去加载类了,这时就需要自定义ClassLoader在加载类的时候先解密类,然后再加载。(2)从非标准的来源加载代码:如果你的字节码是放在数据库、甚至是在云端,就可以自定义类加载器,从

2020-09-07 20:32:03 233

原创 寻找链表中环的入口

题:给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。思路:设置快慢指针, 都从链表头出发,快指针每次走两步,慢指针一次走一步,假如有环,一定相遇于环中某点。接着让两个指针分别从相遇点和链表头出发,两者都改为每次走一步,最终相遇于环入口。证明:设置快慢指针fast和slow,fast每次走两步,slow每次走一步。如果链种有环,两者一定会环内相遇(因为slow一旦进环,可看作 fast 在追赶 slow 的过程,因为快慢的问题,最后 fast 必然追上 slow)。设链表

2020-08-30 12:26:49 123

原创 反转链表

将下图所示链表进行反转:反转前:反转后:我们使用经典的三指针发进行链表的反转:先设置指针 pre = null ; next = null ;pre 指针指向的是 头节点的上一个节点next 指针指向的是头节点的下一个节点head 表示头伪代码: pre = null ; next = null; while(head!=null){ // pre始终指向当前head的前一个节点,这样可以反转节点 head.next = pre;

2020-08-28 18:41:19 116

原创 JVM垃圾回收器汇总

垃圾收集器Serial(串行)收集器ParNew(并行)收集器Parallel Scavenge收集器Serial Old收集器Parallel Old收集器CMS收集器G1收集器如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。虽然我们对各个收集器进行比较,但并非更挑选出一个最好的收集器。因为直到现在为止还没有最好的垃圾收集器出现,更加没有万能的垃圾收集器,我们能做的就是根据具体应用场景选择适合自己的垃圾收集器。试想一下:如果有一种四海之内、任何场量下都适用的完美收集器存在,那

2020-08-13 12:37:49 193

原创 JVM垃圾回收算法

JVM垃圾回收(GC)搜索算法-引用计数器算法(废弃)搜索算法-根搜索算法(使用)回收算法-标记—清除算法(Mark-Sweep)回收算法-标记—整理算法(Mark-Compact)回收算法-复制算法(Copying)回收算法-分代收集算法(Generational Collection)总结GC(Garbage Collector)在回收对象前首先必须发现那些无用的对象,如何去发现定位这些无用的对象?常用的搜索算法如下:搜索算法-引用计数器算法(废弃)引用计数器算法是给每个对象设置一个计数器, 当有

2020-08-13 11:14:31 119 2

原创 JVM类的加载、连接、初始化、双亲委派

类加载实现原理解析Java虛拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的加载机制。Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能,这里就是我们经常能见到的Class类。...

2020-08-12 15:45:28 141

原创 JVM内存模型原理及常用方法

内存模型原理级常用方法运行时数据区域JDK1.8之前JDK1.8线程私有的 / 共享程序计数器Java虚拟机栈本地方法栈堆方法区方法区和永久代的关系常用参数为什么要将永久代(PermGen)替换为元空间(MetaSpace)呢?运行时常量池直接内存运行时数据区域Java虚拟机在执行Java程序的过程中会把它管理的内存划分成若干个不同的数据区域。JDK. 1.8和之前的版本略有不同,下面会介绍到。JDK1.8之前JDK1.8线程私有的 / 共享线程私有的程序计数器虚拟机栈本地方法栈

2020-08-06 14:29:06 163

原创 数据结构——Hash表、Hash冲突及解决

这里写目录标题哈希表概念搜索、插入元素冲突冲突-概念冲突-避免冲突-避免-哈希函数设计* 冲突-避免-负载因子调节冲突-解决-闭散列冲突-解决-开散列/哈希桶冲突严重时的解决办法性能分析Hash表和java类集的关系代码实现Hash表哈希表概念顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较。顺序查找时间复杂度为0(N),平衡树中为树的高度,即O(log2N), 搜索的效率取决于搜索过程中元素的比较次数。搜索、插入元素理想的搜索方法:

2020-08-03 18:17:00 1908

原创 数据结构——红黑树

平衡二叉树(AVL树)平衡因子结点的平衡因子=左子树高度-右子树高度平衡二叉树或者是一颗空树,或者具有以下性质的二叉树:它的左子树和右子树的高度之差(平衡因子)的绝对值不超过1 ,且它的左子树和右子树都是一颗平衡二叉树。问题怎样让平衡二叉树在经过任意的插入和删除后,依然保持平衡?==>红黑树红黑树 R-B Tree (自平衡二叉查找树)红黑树也是二叉查找树,我们知道,二叉查找树这一数据结构并不难,而红黑树之所以难是难在它是自平衡的二叉查找树,在进行插入和删除等可能会破坏树的平衡的操作时

2020-08-03 16:39:51 181

原创 多线程(4)—— 线程协作:生产者、消费者问题、线程池

生产者、消费者问题解决方式1(管程法)解决方式2(信号灯法)线程池线程通信应用场景:生产者和消费者问题假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费.如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品被消费者取走为止.如果仓库中放有产品,则消费者可以将产品取走消费,否则停止消费并等待,直到仓库中再次放入产品为止.线程通信——分析这是一个线程同步问题,生产者和消费者共享同-个资源,并且生产者和消费者之间相互依赖,互为条件

2020-06-30 18:49:54 516

原创 多线程(3)—— 并发、同步、三大安全因素、锁

并发: 两个或多个事件在同一时间间隔发生(同一个对象被多个线程同时操作)同步: 多个任务情况下,一个任务A执行结束,才可以执行另一个任务B。同一时间只存在一个线程并发、同步、锁线程同步三大线程不安全案例不安全的买票问题不安全的银行取款问题线程不安全的集合解决线程不安全问题synchronized关键字Lock (锁)synchronized与Lock的对比死锁线程同步处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象,这时候我们就需要线程同步,线程同步其实就是等待机制 ,多个需要

2020-06-30 17:47:15 229

原创 多线程(2)—— 线程的常用方法

常用方法停止线程线程休眠线程礼让Join(线程强制执行 )设置线程优先级守护(daemon)线程停止线程停止线程建议线程正常停止—>利用次数,不建议死循环。建议使用标志位—>设置一个标志位不要使用stop或者destroy等过时或者JDK不建议使用的方法package com.it//测试停止线程public class ThreadStop implements Runnable { //设置一个标志位 private boolean flag = tru

2020-06-30 15:46:55 168

原创 多线程(1)—— 理解和三种创建方式

多线程进程和线程普通方法和调用多线程方法线程的创建方式方式一:继承Thread类方式二:实现Runnable接口方式三:通过Callable和Future创建进程和线程进程说起进程,就不得不说下程序。程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。进程则是执行程序的一次执行过程,它是一个动态的概念。是系统资源分配的单位。通常在一个进程中可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存在的意义。线程是CPU调度和执行的的单位。注意: 很多多线程是模拟出来的,

2020-06-30 15:06:29 260

原创 复习——反射

反射静、动态语言反射是什么两种加载方式Java反射机制提供的功能Java反射优点和缺点反射相关的主要APIClass类Class类的常用方法获取Class类的实例获取Class类的实例——代码演示哪些类型可以有Class对象所有类型的Class——代码演示Java内存分析、类加载过程类的加载与ClassLoader的理解什么时候会发生类初始化通过反射获取运行时类的完整结构代码演示Classd对象创建类的对象Classd对象创建类的对象——代码演示反射操作泛型反射操作注解视频讲解可关注B站狂神说Java.

2020-06-27 19:45:21 231

原创 SpringSecurity自定义登录页面和注销时遇到的问题

根据 上一篇 的项目和资源解决Security中自定义登录页面和注销时遇到的问题,视频讲解可关注B站 狂神说Java

2020-06-09 19:20:50 1068 2

原创 SpringSecurity用户认证、授权、注销和记住我

视频讲解可关注B站 狂神说JavaSpring Security是针对Spring项目的安全框架,也是Spring Boot底层安全模块默认的技术选型,他可以实现强大的Web安全控制,对于安全控制,我们仅需要引入spring boot-starter-security模块,进行少量的配置,即可实现强大的安全管理!记住几个类:●WebSecurityConfigurerAdapter: 自定义Security策略●AuthenticationManagerBuilder: 自定义认证策略●@Enab

2020-06-09 18:04:25 1533 3

原创 SpringBoot整合Mybatis CRUD小案例

SpringBoot整合Mybatis引入依赖编写User实体类编写UserMapper接口在Resources目录下编写接口配置文件设置User别名,配置配置文件可被识别(yml中整合mybatis)Controller执行查询方法访问引入依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> &lt

2020-06-08 14:33:32 178

原创 SpringBoot-Thymeleaf 实现CRUD小案例

视频讲解可以关注B站狂神说JavaSpringBoot-Thymeleafthymeleaf基本语法thymeleaf和SpringBoot整合首页实现(扩展MVC)页面国际化项目目录thymeleaf基本语法分享好文章thymeleaf和SpringBoot整合导入依赖<!--thymeleaf模板引擎--><dependency> <groupId>org.thymeleaf</groupId> <artifactI

2020-06-06 20:22:45 1316 1

原创 SpringBoot-Thymeleaf 实现页面国际化

在登录一个网站时经常会发现有中英文两种页面,本文将简单陈述如何使用SpringBoot-Thymeleaf 实现登录页面国际化,视频讲解可以关注B站狂神说Java在SpringBoot中引入Thymeleaf 依赖<!--thymeleaf模板引擎--><dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring5</artifac

2020-06-06 17:38:10 604

原创 maven工程中pom.xml配置资源导出

为了防止资源文件和配置信息存放不规范,使我们的资源配置文件读取失败,从而导致我们的项目报错出现异常,我们有必要在项目的pom.xml文件配置资源导出!<!--静态资源导出--> <build> <resources> <resource> <directory>src/main/java</directory> <in

2020-06-01 20:39:59 761

原创 Spring、SpringMVC、Mybatis框架整合回顾

SSM整合mybatis-config的配置信息Spring和dao层的整合配置(spring-dao.xml)Spring和service层的整合配置(spring-service.xml)spring-mvc.xml的配置信息web.xml的配置信息applicationContext.xml的配置信息(引用各级配置)小提示为了学习期间方便理解和记忆,采用分级整合的方式,熟悉后可以再进一步整合SSM整合小案例中的目录结构mybatis-config的配置信息<?xml version="

2020-06-01 20:27:13 181

原创 node.js的安装配置、安装Vue

安装及配置下载安装 node.js检验是否安装成功修改下载和缓存路径配置环境变量安装淘宝镜像(cnpm)cnpm安装vue下载安装 node.js下载链接:https://nodejs.org/en/download/根据自己电脑选择下载:双击安装:检验是否安装成功命令行输入 node –v 显示版本号则安装成功修改下载和缓存路径找到你 node.js的安装路径,新两个文件夹“node_global” , “node_cache”CMD命令行输入两个命令:npm config

2020-05-19 17:55:56 109

原创 Zuul

ZuulZuul介绍路由入门案例编写案例问题分析改进案例改进配置文件Zuul过滤器过滤器主要方法模拟登录案例的过滤测试Zuul中的负载均衡和熔断Zuul高可用Zuul介绍Zuul是Netlix开源的微服务网关,它可以和Eureka、Ribbon、 Hystrix 等组件配合使用。Zuul的核心是一系列的过滤器,这些过滤器可以完成以下功能。身份认证与安全: 识别每个资源的验证要求,并拒绝那些与要求不符的请求。审查与监控: 在边缘位置追踪有意义的数据和统计结果,从而带来精确的生产视图。动态路由: 动态

2020-05-16 21:38:09 94

原创 Spring Cloud Feign

Spring Cliud FeignFeign是什么使用Feign之前Controller调用其他业务使用Feign案例Feign是什么降低远程调用的复杂度Feign 是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求,而不用像Java中通过封装HTTP请求报文的方式直接调用。省去自己获取url、参数类型等,通过SpringMvc注解获取UserController的请求方式、路径、参数、返回结果等使用Feign之前Controller调用其他业务public St

2020-05-15 12:47:12 79

原创 SpringCloud-Hystrix 熔断

熔断A服务的X功能依赖B服务的某个接口,当B服务接口响应很慢时,A服务X功能的响应也会被拖慢,进一步导致了A服务的线程都卡在了X功能上,A服务的其它功能也会卡主或拖慢。此时就需要熔断机制,即A服务不在请求B这个接口,而可以直接进行降级处理。状态机的三个状态Closed: 关闭状态(断路器关闭),所有请求都正常访问。Open: 打开状态(断路器打开),所有请求都会被降级。Hystix会对请求情况计数,当一定时间内失败请求百分比达到阈值,则触发熔断,断路器会完全关闭。默认失败比例的阈值是50%,请求次数

2020-05-14 18:20:37 156

原创 SpringCloud-Hystrix 服务降级

SpringCloud-Hystrix雪崩效应Hystrix解决雪崩效应:案例演示雪崩效应在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的“雪崩”效应。Hy

2020-05-14 15:56:08 204

原创 SpringCloud-Eureka

微服务微服务的特点:简单的微服务业务:微服务的特点: ● 单一职责: 微服务中每一个服务都对应唯一 的业务能力,做到单一职责 ● 微: 微服务的服务拆分粒度很小,例如一个用户管理就可以作为一个服务。每个服务虽小,但”五脏俱全”。 ● 面向服务: 面向服务是说每个服务都要对外暴露Rest风格服务接口API。并不关心服务的技术实现,做到与平台和语言无关,也不限定用什么技术实现,只要提供Rest的接口即可。 ● 自治: 自治是说服务间互相独立,互不干扰  。团队独立: 每个服务都是一个独立的开发团队,

2020-05-10 21:12:21 119

原创 连接数据库时报错Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone

在连接数据库过程中出现下列错误Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value ‘�й���׼ʱ��’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the ‘serverTimezo

2020-05-10 18:44:06 693

原创 SpringBoot初学习(SpringBoot属性注入)

SpringBoot的注入Spring Java类的数据库信息配置SpringBoot属性注入方式1(使用地方较多时)SpringBoot属性注入方式2(单一地方使用时)Spring Java类的数据库信息配置编写JDBC.properties文件jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql:/localhost:3306/testjdbc.username=rootjdbc.password=root配置类:Jd

2020-05-10 18:35:06 168

原创 Mybatis学习总结

Mybatis学习总结环境搭建主配置文件( SqlMapConfig.xml )实体类映射配置文件测试类延时加载注解配置环境搭建主配置文件( SqlMapConfig.xml )<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD ...

2020-05-10 17:28:07 271

空空如也

空空如也

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

TA关注的人

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