- 博客(30)
- 收藏
- 关注
原创 简单了解微服务!!!
什么是微服务?微服务,又叫微服务架构,是一种软件架构方式它将应用构建成一系列按业务领域划分模块的、小的自治服务在微服务架构中,每个服务都是自我包含的,并且实现了单一的业务功能简单来说,就是将一个系统按业务划分成多个子系统,每个子系统都是完整的,可独立运行的,子系统间的交互可通过HTTP协议进行通信(也可以采用消息队列来通信,如RoocketMQ、Kafaka等)所以,不同子系统可以使用不同的编程语言实现,使用不同的存储技术,但是,因为子系统服务数量越多,管理起来越复杂,因此,需要采用集中化管理,例
2021-10-09 17:36:33
224
原创 数据库的三范式
范式是具有最小冗余的表结构第一范式(列都是不可再分)确保每列的原子性如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式第二范式(每个表只描述一件事)首先满足第一范式,并且表中非主键列不存在对主键的部分依赖。 第二范式要求每个表只描述一件事情第三范式(不存在对非主键列的传递依赖)第三范式定义是,满足第二范式,并且表中的列不存在对非主键列的传递依赖。除了主键订单编号外,顾客姓名依赖于非主键顾客编号。...
2021-10-05 18:04:19
162
原创 JVM内存调优
JVM内存调优在对JVM调优的过程中,很大一部分工作就是对于FullGC的调节对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数,过多的GC和Full GC是会占用很多的系统资源(主要是CPU),影响系统的吞吐量。特别要关注Full GC,因为它会对整个堆进行整理,导致Full GC一般由于以下几种情况:旧生代空间不足调优时尽量让对象在新生代GC时被回收、让对象在新生代多存活一段时间和不要创建过大的对象及数组避免直接在旧生代创建对象System.gc()被显示调用
2021-10-04 22:28:41
995
原创 Java垃圾收集器
本文只涉及垃圾收集器,对垃圾回收算法感兴趣请戳垃圾回收算法垃圾收集器的实现,跟厂商有很大关系。这里讨论的HotSpot是较新的Java虚拟机JVM是一个进程,垃圾收集器就是一个线程(守护线程、优先级低)新生代收集器还是老年代收集器?新生代收集器:Serial、ParNew、Parallel Scavenge;老年代收集器:Serial Old、Parallel Old、CMS;整堆收集器:G1吞吐量优先、停顿时间优先吞吐量优先:Parallel Scavenge、Parallel Old
2021-10-03 19:00:09
236
原创 Java垃圾回收机制及算法
Java的垃圾回收是不需要程序员去手动操控的,而是由JVM自己完成首先我们要确定哪些对象是需要回收的?引用计数法在对象中添加一个引用计数器,新加一个引用时,计数器就加1,当引用失效时,计数器就减1。任何时刻只要计数器为0就代表对象没有引用可以被回收。缺点:无法解决循环引用问题、额外内存来计数、额外开销可达性分析目前主流的算法为了解决引用计数法的循环引用问题基本思路:通过一系列被称为GC Roots的根对象作为起始节点集,从这些结点开始,通过引用关系向下搜寻,搜寻路径成为引用链,如果
2021-10-02 16:07:46
514
原创 HTTP常见状态码!!!
HTTP状态码状态码的职责是当客户端向服务器发送请求时,描述返回的请求结果,借助状态码,用户可以知道服务器端是正常处理了请求还是出现了错误类别:1XX Informational(信息性状态码)接受的请求正在处理2XX Success(成功状态码)请求正常处理完毕3XX Redirection(重定向状态码)需要进行附加操作以完成请求4XX Client Error(客户端错误状态码)服务器无法处理请求5XX Server Error(服务器错误状态码)服务器处理
2021-09-29 10:07:55
121
原创 ssm框架整合,图文详解!!!
ssm框架整合所需依赖pom.xml在本文最下面创建spring_mvc.xml文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springf
2021-09-29 00:17:32
491
原创 SpringMVC的简单使用
SpringMVC的简单使用创建maven项目(不使用webapp模板的情况,使用则忽略)pom中加<packaging>war</packaging>在src/main下面建个文件夹webapp 并添加为web会自动生成/WEB-INF/和web.xml文件修改webapp路径,和建webapp文件夹路径一样导入需要的pom依赖 <!-- springMVC所需依赖 --> <dependency>
2021-09-18 19:02:40
147
原创 SpringBoot中JdbcTemplate和事务的实现(配置类 不用xml文件)
SpringBoot中JdbcTemplate和事务的实现首先导入pom依赖配置类@Configuration@ComponentScan(basePackages = "org.ljw")//扫描基准包@EnableTransactionManagement(proxyTargetClass = true)//开启事务管理 解析注解@Transactional true开启cglib代理public class SpringConfig { //通过druid链接池获取数据源
2021-09-17 18:53:30
914
原创 spring和mybatis整合使用,全部pom依赖
spring和mybatis整合使用导入pom依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 ht
2021-09-17 00:26:43
1237
原创 spring声明式实现事务管理
spring实现事务管理事务(Transaction)是面向关系型数据库(RDBMS)企业应用程序的重要组成部分,用来确保数据的完整性和一致性。事务的ACID 特性原子性(Atomicity):一个事务是一个不可分割的工作单位,事务中包括的动作要么都做要么都不做。一致性(Consistency):事务必须保证数据库从一个一致性状态变到另一个一致性状态,一致性和原子性是密切相关的。隔离性(Isolation):一个事务的执行不能被其它事务干扰,即一个事务内部的操作及使用的数据对并发的其它事务是隔
2021-09-16 19:50:53
137
原创 Spring中JdbcTemplate 类 对数据库操作
Spring JdbcTemplate类的使用Spring 针对数据库开发提供了 JdbcTemplate 类,该类封装了 JDBC,支持对数据库的所有操作。- 添加依赖 <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <!-- jdbc连接池druid --> <dependency> <groupId>com.aliba
2021-09-16 18:48:09
119
原创 Spring AOP--基于AspectJ XML开发
基于AspectJ XML开发基于 XML 的声明式是指通过 Spring 配置文件的方式来定义切面、切入点及通知,而所有的切面和通知都必须定义在 aop:config 元素中。在使用 aop:config 元素之前,我们需要先导入 Spring aop 命名空间- 基本bean@Datapublic class Users { private Integer id; private String name; private String password;}- da
2021-09-15 23:20:11
172
原创 SpringAOP基于AspectJ注解开发
基于AspectJ注解开发在 Spring 中,尽管使用 XML 配置文件可以实现 AOP 开发,但是如果所有的相关配置都集中在配置文件中,势必会导致 XML 配置文件过于臃肿,从而给维护和升级带来一定的困难。为此,AspectJ 框架为 AOP 开发提供了一套注解。AspectJ 允许使用注解定义切面、切入点和增强处理,Spring 框架可以根据这些注解生成 AOP 代理。常用的注解:@Aspect 用于定义一个切面。@Pointcut 用于定义一个切入点。@Before 用于定义前置通知@
2021-09-15 19:07:08
304
原创 Spring基于注解装配Bean,以及不使用配置文件只使用注解编程
Spring基于注解装配BeanJava 从 JDK 5.0 以后,提供了 Annotation(注解)功能Spring 默认不使用注解装配 Bean,因此需要在配置文件中添加 context:annotation-config/,启用注解。Spring 中常用的注解如下@Component可以使用此注解描述 Spring 中的 Bean,但它是一个泛化的概念,仅仅表示一个组件(Bean),并且可以作用在任何层次。使用时只需将该注解标注在相应类上即可。@Repository用于将数据访
2021-09-14 19:24:08
593
原创 spring使用druid数据库连接池
引入外部的properties文件(使用jdbc数据库连接池—druid)1>先写properties文件druid.propertiesdriver:com.mysql.cj.jdbc.Driverurl:jdbc:mysql://localhost:3306/shopping_system?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements
2021-09-14 16:55:26
634
原创 spring理论知识大全,想要的都有,下方还有链接!!!
spring是什么?spring是开源的轻量级框架,是为解决企业应用开发的复杂性而创建的是一个三层架构,也为J2EE应用程序开发提供集成的框架Web层:Spring MVC;业务层:Spring的IoC;持久层:Spring的JDBC、ORM、等持久层框架;Spring的核心是控制反转(IoC)和面向切面编程(AOP)特点?方便解耦,简化开发1>通过spring提供的IoC容器,我们可以将对象之间的依赖关系交由spring进行控制,避免硬编码所造成的过度程序耦合2>有
2021-09-14 00:17:53
196
原创 spring的基本使用图文详解
spring的基本使用建一个基本的maven java项目添加依赖 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</sc
2021-09-13 18:19:39
222
原创 MySQL B+Tree索引和Hash索引的区别?
MySQL B+Tree索引和Hash索引的区别?底层实现原理:hash索引:底层就是hash表,进行查询时,调用一次hash函数就可以获取到相应的键值,之后进行回表查询获得实际数据。B+树:底层实现原理是多路平衡查找树,对于每一次的查询都是从根节点出发,查询到叶子节点方可以获得所查键值,然后查询判断是否需要回表查询。区别:hash索引 :1)hash索引进行等值查询更快(一般情况下)但是却无法进行范围查询。因为在hash索引中经过hash函数建立索引之后,索引的顺序与原顺序无法保持
2021-09-13 01:20:42
494
原创 MySQL常用语句
MySQL常用语句建库–create database 库名;建表–create table 表名(字段名 字段类型 约束, 字段名 字段类型 约束, 字段名 字段类型 约束);- 更改表结构改表名– alter table taboldname rename to newname;改类型 alter table tabname modify colname coltype;改列 alter table tabname change oldcolname newcoln
2021-09-11 19:12:44
58
原创 mybatis逆向工程的简单使用
mybatis逆向工程的简单使用该工具可以根据数据表自动生成针对单表的 po 类、mapper 映射文件和 mapper 接口。推荐使用maven首先导入依赖<!-- mybatis逆向工程依赖2个--> <!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --> <dependency> <groupI
2021-09-07 14:40:40
786
原创 简单了解JVM基础知识
JVM原理- 什么是JVM?基于栈的体系结构1)Java Virtual Machine 缩写、是一种基于计算设备的规范,是一台虚拟机,即虚构的计算机。2)JVM屏蔽了与具体操作系统平台相关的信息Java语言在不同平台运行时不需要重新编译,只需要在该平台上部署JVM就可以了。因而能实现一次编译多处运行。3)当然,JVM执行字节码时实际上还是要解释成具体操作平台的机器指令的。4) JVM本质上就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。- JRE/JDK/JV
2021-09-06 22:27:54
134
原创 线程池的原理、创建方式、常见问题
线程池的原理及创建方式- 首先我们说说什么是线程池?java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行的程序都可以使用线程池。线程是一个重资源,JVM 中的线程与操作系统的线程是一对一的关系,所以在 JVM 中每创建一个线程就需要调用操作系统提供的 API 创建线程,赋予资源,并且销毁线程同样也需要系统调用。为什么有线程池?因为线程数太少无法充分利用 CPU ,太多的话由于上下文切换的消耗又得不偿失所以需要控制线程数量。需要避免线程频繁地创建与销毁,所以要缓存一批线程-
2021-09-06 00:20:51
425
原创 MyBatis配置文件详解
了解Config配置文件1. properties标签自定义properties文件,将关于数据库的配置放入该文件中。数据源引入该文件properties文件中所定义的配置properties:属性有俩,一个是resource:用于执行本项目中的配置文件,也可以是url:一般引入本地资源文件或网络资源文件<configuration> <!--引入外部的properties文件中的值--> <properties resource="jdbc.pro
2021-09-03 23:53:06
865
原创 maven的基本使用(IDEA)
1、使用maven构建一个项目(IDEA):普通项目1、 找到并选maven,普通项目不用勾选红框2、直接点击下一步,填写 GroupId , ArtifactId,Version 自己定义3、点击完成,就创建成功了项目目录结构pom配置文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http
2021-09-02 23:36:18
605
原创 MyBatis的基本使用
MyBatis的基本使用步骤:第一步,添加所需jar包第二步,配置文件XML 配置文件包含对 MyBatis 系统的核心设置,包含获取数据库连接实例的数据源和 决定事务范围和控制的事务管理器。第三步,映射文件CRUD操作第四步,调用过程1、从xml配置文件中构建SqlSessionFactory InputStream stream = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFac
2021-09-01 19:19:12
88
原创 python入门--容器定义以及常见方法
**python入门–容器定义以及常见方法1.什么是容器,为什么学习容器?容器:可以存放多个元素的一种数据类型补充变量无法存储大量数据的缺陷2.python提供的容器:列表(list)、集合(set)、元组(tuple)、字典(dict)3.列表–list线性表:数组:数组是连续内存的结构,python是没有数组的,数组查询速度特别快、增删改效率比较差栈:LIFO–last i...
2020-03-27 23:18:26
465
原创 Python入门-常见的运算符及程序控制流程
Python入门-常见的运算符及程序控制流程算数运算符:加法运算 +,减法运算 –,乘法运算 *,除法运算 /,整除(地板除法–只要整数部分) //,求模(取余) %,幂次方 **,等等……关系(比较)运算符:大于 >,小于 <,大于等于 >=,小于等于 <=,两个变量的值相等 ==,不等于...
2020-03-13 15:35:51
185
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人