- 博客(85)
- 资源 (7)
- 收藏
- 关注
原创 JVM理解——类加载机制
一、什么是类加载机制把描述类的数据从Class文件加载到内存,并对数据进行验证,准备,解析和初始化,最终形成可以被虚拟机使用的java类型。二、类加载过程(1)加载通过一个全类名获取定义此类的二进制字节流将字节流代表的静态存储结构转化为方法区的运行时数据结构在内存中生成一个代表这个类的java.lang.Class文件(2)验证确保Class文件符合规范,确保不会危害虚拟机自身安全。文件格式验证元数据验证字节码验证符号引用验证(3)准备将类中的静态变量分配内存,设置初始
2021-04-15 15:11:57
196
原创 JVM理解——GC垃圾收集
目录一、判定对象是否存活算法(1)引用计数算法(2)可达性分析二、引用类型三、常见垃圾回收算法(1)标记-复制算法(2)标记-清除算法(3)标记-整理算法(4)分代收集算法四、常见垃圾收集器(1)Serial(2)Serial Old(3)ParNew(4)Parallel Scavenge(5)Parallel Old(6)CMS(7)G1五、GC收集五、内存分配策略一、判定对象是否存活算法(1)引用计数算法在对象中添加一个引用计数器,每有一个引用,计数器就就+1;引用失效,计数器就-1。当计数器为
2021-04-12 11:28:31
221
原创 SpringCloud——GateWay
一、概念Route(路由):路由是构建网关的基本模块,它由ID,目标URI,一系列的断言和过滤器组成,如断言为true则匹配该路由;Predicate(断言):参考的是Java8的java.util.function.Predicate,开发人员可以匹配HTTP请求中的所有内容(例如请求头或请求参数),如果请求与断言相匹配则进行路由;Filter(过滤) :指的是Spring框架中GatewayFilter的实例,使用过滤器,可以在请求被路由前或者之后对请求进行修改。核心逻辑:路由转发 + 执行
2021-03-18 11:22:09
255
原创 SpringCloud——Hystrix断路器
一、概述是一个用于处理分布式系统的延迟和容错的开源库。断路器:是一种开关装置。当某个服务单元发生故障之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回一个符合预期的、可处理的备选响应(FallBack),而不是长时间的等待或者抛出无法处理的异常,这样就保证了调用方的线程不会被长时间、不必要的占用,从而避免了故障在分布式系统中的蔓延,乃至雪崩。(1)服务降级(fallback)当服务器忙时,不让客户端处于一直等待状态,并立刻返回一个友好提示。(2)服务熔断(break)服务不可用时,停止
2021-03-17 14:52:34
154
原创 SpringCloud——服务降级三种实现
一、fallbackymlserver: port: 80spring: application: name: cloud-provider-hystrix-ordereureka: client: register-with-eureka: true #示表不向注册中心注册自己 fetch-registry: true #表示自己就是注册中心,职责是维护服务实例,并不需要去检索服务 service-url: defaultZ
2021-03-15 16:52:26
677
2
原创 SpringCloud——OpenFeign
一、概述与Ribbon类似,都可以实现服务的调用,实现负载均衡。它只需要我们创建一个接口,并添加相对应的注解来完成微服务之间的调用二、使用步骤pom引入 <!-- 引入 spring-cloud-openfeign 依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spri
2021-03-11 17:29:44
116
原创 SpringCloud——Ribbon
一、概述(1)RibbonSpring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过 Spring Cloud 的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。(2)负载均衡集中式负载均衡:在服务的消费方和提供方之间,如Nginx(负责把访问请求转发至服务的提供方)进程内负载均衡:将负载均衡逻辑集成到消费方,如Ribbon(消费方通过它来获取到服务提供方的地址)二、RestTemp
2021-03-11 14:35:06
161
原创 SpringCloud——Eureka
一、概念(1)服务治理在没有服务注册中心时,RestTemplate同样可以帮助我们搭建微服务工程。但当服务很多时,管理每个服务与服务之间的依赖关系非常复杂。所以需要使用服务治理来管理服务与服务之间的依赖关系,从而实现服务调用、负载均衡、容错、服务的注册与发现等(2)服务注册Eureka Server 作为服务注册功能的服务器,它是服务注册中心。而系统中的其他微服务,使用 Eureka 的客户端连接到 Eureka Server,并维持心跳连接。这样系统的维护人员就可以通过 Eureka Serve
2021-03-10 16:34:38
119
原创 SpringCloud——概述
一、概念SpringCloud:分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体,俗称微服务全家桶二、与SpringBoot对应版本官网文档可查这里选择Spring Boot :2.3.8.RELEASESpring Cloud:Hoxton.SR10...
2021-03-05 14:33:03
106
原创 Docker安装
一、下载Docker进入官网下载安装Windows版本二、开启Hyper-V如果没有Hyper-V三、设置加速进入阿里云配置加速
2021-02-26 15:41:44
108
原创 Nginx入门教程
一、概念Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。(1)正向代理和反向代理正向代理:在客户端配置代理服务器,通过代理服务器进行互联网访问反向代理:客户端将请求发送到反向代理服务器,由反向代理服务器选择目标服务器,获取数据后返回给客户端。只暴露了反向代
2021-02-24 13:57:09
143
原创 springboot整合druid+mybatis
一、pom.xml <!-- MyBatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version
2021-02-22 17:35:51
225
原创 swagger
导入依赖 <!-- swagger --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency>
2021-02-03 11:08:11
1166
1
原创 Mybatis——批量插入
Mapper.xml <insert id="insertForeach" parameterType="list"> insert into student(student_name,student_age) values <foreach collection="list" index="index" item="student" separator=","> (#{student.studentName},#{student.stud
2021-02-01 17:16:46
128
原创 Mysql——sql语句
目录数据库与表查询正则表达式数据库与表显示所有数据库:SHOW DATABASES选择数据库:USE 数据库名显示所有表:SHOW TABLES查询按条件查询:SELECT * FROM 表名 WHERE 条件操作符语句说明!= / <>不等于BETWEEN a AND b[a,b]IS NULL为空组合语句说明AND且OR或IN(值1,值2…)包含范围NOT取反,可与IN
2021-01-17 16:40:43
147
原创 java多线程——线程的六种状态
一、操作系统中5种状态二、java中的六种状态New 刚被创建没有调用start()方法RUNNABLE 当调用了 start() 方法之后,注意,Java API 层面的 RUNNABLE 状态涵盖了 操作系统 层面的【可运行状态】、【运行状态】和【阻塞状态】(由于 BIO 导致的线程阻塞,在 Java 里无法区分,仍然认为是可运行)Terminated 线程执行结束@Slf4j(topic = "c.Test1")public class Test1 { public sta
2021-01-12 15:51:00
157
原创 java多线程——常用方法
一、常用方法方法说明start()启动一个新线程,每个线程只能调用一次run()新线程启动后会调用的方法join()等待线程结束getId()获取线程唯一IDget/setName()获取/修改线程名get/setPriority()获取/修改线程优先级getState()获取线程状态isAlive()判断是否存活interrupt()打断线程interrupted判断当前线程是否被打断isInterrup
2021-01-12 11:04:56
105
原创 java多线程——创建和运行线程
一、进程与线程进程:是程序的一个实例。当一个程序需要运行时,从硬盘加载这个程序的代码至内存,这就开启了一个进程。进程之间相互独立。线程:一个进程可以包括多个线程。线程是最小调度单位。线程之间共享资源。二、并发和并行并发:轮流交替做多件事并行:同时做多件事,互不打扰三、同步和异步同步:方法调用者需要等待结果的返回,才能继续执行异步:方法的调用者不需要等待结果的返回,就能继续执行四、创建线程...
2021-01-11 15:20:13
103
原创 【java】浅拷贝与深拷贝
浅拷贝(Shallow Copy)对于基本数据类型的成员变量,会将原对象的值复制一份给新对象(两部分独立存在,一个改变另一个不受影响);对于引用类型的成员变量,只会拷贝引用地址(仍指向原对象,一个改变另一个也会改变)1. 通过拷贝构造方法实现浅拷贝Person@Data@AllArgsConstructor@NoArgsConstructorpublic class Person { private int age; private String name; priv
2021-01-08 18:59:12
115
原创 C语言——指针加减
(1)自增自减*p++等同于 *(p++)先取值,然后指针向后移动一位#include<stdio.h>int main(){ int i[] = {10, 20, 30, 40, 50}; int *p = i;printf("%d",*p++); // 10printf("%d",*p); // 20 return 0;}(*p)++先取值,然后值+1#include<stdio.h>int main(){ int i[] = {10, 2
2020-12-10 17:57:07
905
原创 面试手册总结——java基础
1.java语言的三大特性封装属性可以描述事物特征,方法可以描述事物可做的操作。封装就是将同一事物的属性和方法归到一个类中,使其形成一个不可分割的独立实体。用户无需知道内部方法的实现细节,可以根据对象提供的外部接口访问。继承子类是父类的特殊化实现,父类私有的属性和构造方法不能被继承,静态方法,静态/非静态的属性不能被重写。多态子类以父类的身份出现(向上转型),调用子类的方法2. JDK和JRE的区别jdk为开发工具包,jre为运行环境。jdk包括jre3. 为什么需要包装类泛型使用的
2020-11-25 20:45:21
104
原创 使用SpringBoot+MyBatisPlus可能遇到的错误
Servlet.service() for servlet [dispatcherServlet] in context with path []解决:缺少@Autowired注解Unknown column 'bookId' in 'where clause'解决:使用wrapper.eq(“book_id”, bookId))时,注意应该使用数据库中的“字段名”
2020-11-24 12:22:29
445
1
原创 Layui表格开启分页与修改删除操作
html<!DOCTYPE html><html lang="zh-CN" xmlns:th="http://www.thymeleaf.org"><head> <meta charset="UTF-8"> <title></title> <link href="/layui/css/layui.css" rel="stylesheet" media="all"/></head&g..
2020-11-22 15:56:22
1159
原创 使用Layui上传文件与表单一起提交
一、html <div class="layui-form-item"> <label class="layui-form-label">ID</label> <div class="layui-input-inline"> <input id="bookId" lay-verify="required" type="t
2020-11-19 23:01:00
6902
2
原创 在Thymeleaf中对Script中传递值与layui星星评分
使用[[${}]]进行传值星星评分:<style> .cleanfloat::after{display: block; clear: both; content:""; visibility: hidden; height: 0;} ul li{list-style:none; float:left; font-size:30px; margin:5px; color:#ccc; cursor:pointer;} .hs,.cs{color:
2020-11-05 16:22:21
609
原创 Thymeleaf即时生效
“File” -> “Settings” -> “Build,Execution,Deplyment” -> “Compiler”,选中打钩 “Build project automatically”组合键:“Shift+Ctrl+Alt+/” ,选择 “Registry” ,选中打钩“compiler.automake.allow.when.app.running”修改application.ymlspring: # thymeleaf视图解析器 thyme..
2020-10-25 18:10:17
356
原创 MyBatis Plus——简单入门
目录一、快速创建(1)配置pom.xml(2)一、快速创建(1)配置pom.xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </
2020-10-24 11:51:49
334
原创 SpringBoot开发——整合Spring Data JPA
一、pom.xml配置文件 <!-- 整合Spring Data jpa --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
2020-08-26 11:44:42
166
原创 Hibernate,JPA,Spring Date JPA之间的关系
JPA:一套规范Hibernate:是持久层框架,实现了JPA规范Spring Date JPA:是一种JPA的抽象层,底层通过Hibernate实现
2020-08-26 11:00:24
160
原创 SpringBoot开发——整合MyBatis
一、配置pom.xml <!-- 整合MyBatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.3</version> </de
2020-08-25 21:35:55
203
原创 SpringBoot开发——整合jdbc
一、配置pom.xml <!-- 整合jdbc --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId&
2020-08-25 17:58:28
156
原创 SpringBoot开发——数据校验
一、pom.xml添加依赖 <!-- validation数据校验 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency>二、实体类添加
2020-08-25 11:29:24
151
原创 SpringBoot开发——整合Thymeleaf
一、pom.xml <!-- 继承父包 --> <parent> <artifactId>spring-boot-starter-parent</artifactId> <groupId>org.springframework.boot</groupId> <version>2.3.1.RELEASE</version> </parent> <depen
2020-08-24 18:15:40
160
原创 SpringBoot开发——整合jsp与如何发送put请求
一、pom.xml<!-- 继承父包 --> <parent> <artifactId>spring-boot-starter-parent</artifactId> <groupId>org.springframework.boot</groupId> <version>2.3.1.RELEASE</version> </parent> <depende
2020-08-24 09:33:14
518
原创 MyBatis——动态sql标签
一,where、if标签where 标签:可以自动判断是否要删除语句块中的 and 关键字(若where与and相连接则删除)if 标签:可以自动根据表达式的结果来决定是否将对应的语句句添加到 SQL 中 <select id="findByAccount" parameterType="com.lin.entity.Account" resultType="com.lin.entity.Account"> select * from account &
2020-08-20 20:12:41
193
原创 MyBatis——二级缓存(原生与ehcache)
一、一级缓存SqlSession 级别,默认开启,并且不能关闭。操作数据库时需要创建 SqlSession 对象,在对象中有一个 HashMap 用于存储缓存数据,不同的SqlSession 之间缓存数据区域是互不影响的。当在同一个 SqlSession 中执行两次相同的 SQL 语句时,第一次执行完毕会将结果保存到缓存中,第二次查询时直接从缓存中获取。如果 SqlSession 执行了 DML 操作(insert、update、delete),MyBatis 必须将缓存清空以保证数据的准确性。
2020-08-18 11:53:56
408
原创 MyBatis——延迟加载 解耦
不同的业务需求,需要查询不同的表,根据具体的业务需求来动态减少数据表查询的工作就是延迟加载。(1)在config.xml中开启延迟加载 <settings> <!-- 打印SQL--> <setting name="logImpl" value="STDOUT_LOGGING" /> <!-- 开启延迟加载 --> <setting name="lazyLoadingEnabled".
2020-08-17 19:43:45
128
原创 MyBatis——MyBatis Generator逆向工程
简称 MBG,是一个专门为 MyBatis 框架开发者定制的代码生成器,可自动生成MyBatis 框架所需的实体类、Mapper 接口、Mapper.xml,支持基本的 CRUD 操作,但是一些相对复杂的 SQL 需要开发者自己来完成。(1)配置pom.xml <!-- MyBatis Generator --> <dependency> <groupId>org.mybatis</groupId> <artifactId>
2020-08-06 20:51:36
304
原创 MyBatis——级联查询与Mapper.xml
一对多(1)Student@Data@AllArgsConstructor@NoArgsConstructorpublic class Student { private long id; private String studnetName; private Classes classes;}(2)Classes@Data@AllArgsConstructor@NoArgsConstructorpublic class Classes { priva
2020-08-06 16:51:07
608
jquery-3.4.1.min.zip
2020-05-10
fileupload需要的jar包.zip
2020-05-06
fileupload需要的jar包.zip
2020-05-06
JSTL需要的包.zip
2020-05-05
W3school. 最新版离线api
2020-05-03
JAVAEE 中英对照版
2020-05-03
手写数字数据集.zip
2020-04-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人