自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JavaEE中MVC的发展

MVC架构模式在C层的发展控制器的核心代码1. 接受 client 的请求2. 调用业务对象(Service)3. 跳转处理(流程控制,页面跳转)servlet我们发现这样的servlet是存在问题的:每个请求 uri 都需要有一个servlet来处理,并且要配置servletMapping,如果工程较大,就会很麻烦(虽然我们可以进行一定的封装)SpringMVCSpringMVC 只用配置一个DispatcherServlet,其他请求会经过Dispatche

2021-03-14 12:39:11 213

原创 堆参数调优入门

Java7 和 Java8 堆内存的区别Java7Java8JVM 默认占用内存的大小JVM默认的初始占用内存大小 和 默认的最大占用内存大小# JVM默认的初始占用内存大小 :宿主机的 1/64# JVM默认的最大占用内存大小 :宿主机的 1/4通过 java代码怎么查看 JVM 内存大小public class Test { public static void main(String[] args) { long l = Runtime.get

2020-09-22 23:17:17 305

原创 垃圾回收器

GC 算法和垃圾回收器的关系# GC算法(引用计数/复制/标清/标整)是内存回收的方法论,垃圾回收器是GC算法的落地实现# 目前为止没有完美的收集器,只有最合适的收集器,进行分代收集四种类型的垃圾回收器# Serial 串行# Parallel 并行# CMS 并发# G11、Serial为单线程环境设计且只使用一个线程进行垃圾回收,会暂停所有的用户线程,不适合服务器环境2、parallel多个垃圾收集线程并行工作,此时用户线程是暂停的,适合于科学计算/大数据处理

2020-09-22 23:07:46 196

原创 GC

文章目录GC的基础知识1、什么是垃圾2、如何定位垃圾1)引用计数2)根可达算法2.1)、GC roots对象3、常见的垃圾回收算法1)Mark-Sweep(标记清除)2)Copying(拷贝)3)Mark-Compact(标记压缩)3.2、JVM中GC采用的算法(分代收集算法)4、JVM 内存分代模型5、STW6、常见的垃圾回收器7、四大引用1.8默认的回收器是 Parallel Scavenge + ParallelOldGC的基础知识1、什么是垃圾C语言申请和释放内存:malloc free

2020-09-22 23:07:10 376

原创 springcloud

微服务微服务的关键:服务治理、服务监控Spring Cloud 是一个一站式解决微服务的服务治理和服务监控的工具集框架架构的演变微服务的解决方案1、Dubbo2、Spring CloudSpring CloudSpring Cloud 是一个一站式解决微服务的服务治理和服务监控的工具集框架1、核心组件1. 先要有一个服务注册中心,将所有服务注册 eureka、consul、nacos(alibaba)2. 开发一个一个的微服务

2020-09-03 17:59:50 287

原创 Redis

1、NoSQL 简介NoSQL (Not Only SQL),不仅仅是 SQL ,泛指 非关系型的数据库RDBMS :关系型数据库NoSQL :非关系型数据库2、什么是 RedisRedis 是基于内存数据存储,被用作为 数据库、缓存、消息中间件> Redis 是一个内存型的数据库。为什么数据存储在内存(读写快、断电立即消失)中,还会作为数据库? 因为 Redis 有持久化的机制,内存中的数据会定期写入到磁盘中。3、Redis 的特点Redis 是一个高性能的

2020-09-03 17:57:58 136

原创 SpringBoot

SpringBoot1、SpringBoot 简介设计目的:简化 Spring应用的 初始搭建及开发过程SpringBoot = SpringMVC + Spring2、SpringBoot 的特点1. 嵌入 Tomcat ,无需部署 WAR 文件2. 简化 Maven 配置3. 自动配置 Spring,没有 xml 配置3、SpringBoot 的约定大于配置1. SpringBoot 项目必须在 src/main/resources 中放入 application.yml(.pro

2020-09-03 17:54:14 308

原创 数据库学习(MySQL)【四】【DML、约束、索引、视图、三范式...】

文章目录1、DML2、约束3、存储引擎4、事务5、索引6、视图7、三范式1、DML1、插入数据:insert 语法格式: insert into 表名(字段名1,字段名2,字段名3,....) values(值1,值2,值3,....) 要求:字段的数量和值的数量相同,并且数据类型要对应相同。 字段可以省略不写,但是后面的value对数量和顺序都有要求。 insert into t_student values(1,'jack','0','gaosan2ban','1986-10

2020-07-27 18:45:42 147

原创 IoC 的底层原理(简易版)

IoC 的底层原理读取配置文件,解析 XML。通过反射机制实例化配置文件中所配置的所有的bean。public class MyClassPathXmlApplicationContext implements MyApplicationContext { private Map<String,Object> ioc = new HashMap<>(); public MyClassPathXmlApplicationContext(String pat

2020-07-11 10:00:42 124

原创 AOP编程

文章目录静态代理设计模式1、为什么需要代理设计模式2、代理设计模式1)概念2)名词解释3)代理开发的核心要素3、静态代理编码4、静态代理存在的问题Spring的动态代理开发(编码)1、Spring 动态代理的概念2、搭建开发环境3、Spring 动态代理的开发步骤4、调用动态代理细节分析1、Spring 创建的动态代理类在哪里?2、动态代理编程简化代理的开发3、动态代理额外功能的维护性大大增强Spring 动态代理详解1、额外功能的详解2、切入点详解2.1 切入点表达式2.2 切入点函数2.3 切入点函数

2020-07-11 09:58:22 207

原创 BeanPostprocessor

文章目录后置处理 Bean后置处理 Bean1. BeanPostProcessor 作用:对 Spring 工厂所创建的对象,进行再加工。 AOP的底层实现2. 注意:BeanPostProcessor 是一个接口 注意:在项目中我们很少进行初始化操作,所以没必要区分 Before After,只需要实现其中一个(After)方法即可。 同时,我们必须要写 Before 方法空实现,必须 return bean 对象。开发步骤类实现 BeanPostProcessor

2020-07-11 09:57:34 159

原创 配置文件参数化、类型转换器

文章目录配置文件参数化配置文件参数的开发步骤自定义类型转化器1、类型转换器2、自定义类型转换器为什么需要自定义开发步骤细节配置文件参数化把 Spring 配置文件中需要经常修改的字符串信息,转移到一个更小的配置文件中1. Spring 的配置文件中存在经常修改的字符串吗? 存在,以数据库连接相关的参数为代表2. 经常变化字符串,为什么不在Spring配置文件中直接修改? 不利于项目维护(修改)---》配置文件一般很多,上千行,不易找3. 转移到一个小的配置文件(.properties)

2020-07-11 09:56:41 645 2

原创 Spring创建对象的次数、生命周期

文章目录控制Spring工厂创建对象的次数1、如何控制简单对象的创建次数2、如何控制复杂对象的创建次数3、为什么要控制对象的创建次数对象的生命周期生命周期的3个阶段创建阶段初始化阶段销毁阶段控制Spring工厂创建对象的次数1、如何控制简单对象的创建次数1. <bean id="user" scope="singleton | prototype" class="cf.duanzifan.entity.User"/> singleton:只会创建一次简单对象【默认值】 prototyp

2020-07-11 09:55:35 331

原创 反转控制、依赖注入、创建复杂对象

文章目录反转控制依赖注入Spring工厂创建复杂对象1、什么是复杂对象2、Spring 工厂创建复杂对象的3种方式2.1FactoryBean接口开发步骤一些其他细节FactoryBean 的实现原理(简易版)总结2.2实例工厂2.3静态工厂Spring 工厂创建对象总结反转控制反转控制(IOC Inverse of Control)1. 控制:对于成员变量赋值的控制权2. 反转控制:把对于成员变量赋值的控制权,从代码反转(转移)到 Spring 工厂和配置文件中完成3. 好处:解耦合4. 底

2020-07-11 09:54:09 134

原创 Spring注入

文章目录注入(Injection)什么是注入为什么需要注入如何进行注入【开发步骤】注入好处注入原理分析Set 注入详解Set 注入的简化写法构造注入构造方法重载注入总结注入总结注入(Injection)什么是注入1. 通过 Spring 工厂及配置文件,为所创建对象的成员变量赋值。为什么需要注入通过编码(传统方式),为成员变量进行赋值,存在耦合传统编码,给成员变量赋值ApplicationContext applicationContext = new ClassPathXmlApplica

2020-07-11 09:51:18 171

原创 Spring-IOC

文章目录工厂设计模式简单工厂类来进行解耦合的操作通用工厂设计通用工厂的使用总结Spring环境搭建Spring 的核心 API程序开发Spring 工厂的底层实现简单分析关于对象创建的注意细节开发工厂设计模式1、概念:通过工厂类,创建对象//常规创建对象User user = new User();UserDAO userDAO = new UserDAOImpl();2、好处:解耦合,利于代码的维护new 对象的不好的地方:将接口的实现类,硬编码在程序中public class Serv

2020-07-11 09:49:51 87

原创 JVM-内存结构

文章目录JVM 架构图运行时数据区(内存结构)线程共享1、Java堆2、方法区线程私有1、程序计数器2、Java虚拟机栈3、本地方法栈总结JVM 架构图JVM 被分为三个主要的子系统: 1、类加载子系统 2、运行时数据区(内存结构) 3、执行引擎运行时数据区(内存结构)在 Java 虚拟机规范中,定义了五种运行时数据区 1、Java 堆 2、方法区 3、虚拟机栈 4、本地方法区 5、程序计数器线程共享1、Java堆Java 堆是所有线程共享的,在虚拟机启动的时候就已

2020-07-10 21:10:43 69

原创 JVM(一) Java类的加载及ClassLoader

JVM(一) Java类的加载及ClassLoader1、类的加载# 当程序主动使用某个类的时候,如果该类未被加载到内存中,则 JVM 会通过 加载 ---> 连接 ---> 初始化 3个步骤完成类的初始化,JVM 会连续完成这 3 个步骤,统称为 类加载。1. 类从磁盘加载到内存中会经历三个阶段(加载、连接、初始化)此过程在程序运行期间完成。2、类的生命周期3、接口加载与类加载的区别# 一个类在初始化时,其所有的父类都会先初始化,而接口在初始化的时候,不要求其父接口完成初始化

2020-07-10 19:45:03 470

原创 设计模式【单例、工厂】

文章目录设计模式单例模式==饿汉式(静态常量)====饿汉式(静态代码块)==懒汉式(线程不安全)懒汉式(线程安全,同步方法)懒汉式(同步代码块)==双重检查====静态内部类====枚举方式==单例模式注意事项工厂模式简单工厂模式(静态工厂模式)工厂方法模式抽象工厂模式设计模式是某类问题的通用解决方案设计模式的本质:提高软件的维护性、通用性、扩展性,并降低软件的复杂度。设计模式分为三种类型,共 23 种创建模式(对象的创建应该怎么去设计):单例模式(某个类的实例只有一个)原型模式(怎么去

2020-07-05 12:52:13 390

原创 七大原则、UML类图

文章目录七大设计原则单一职责模式接口隔离原则依赖倒转原则依赖关系传递的3种方式里氏替换原则开闭原则迪米特法则合成复用原则UML 类图依赖关系泛化关系实现关系关联关系聚合关系组合关系各种关系的联系七大设计原则单一职责模式降低类的复杂度,一个类只负责一项职责提高类的可读性,可维护性降低变更引起的风险在类中方法数量足够少时,我们可以在方法级别上保持单一职责原则接口隔离原则一个类对另一个类的依赖应该建立在最小的接口上没有使用接口隔离原则的关系图使用接口隔离原则的关系图依赖倒

2020-07-05 12:49:41 1062

原创 互联网通信流程图

2020-07-05 12:45:37 1113

原创 三层架构--MVC--SSM

文章目录三层架构持久层技术的解决方案MVCMVC 和 三层架构的关系SSM 和 三层架构的关系Web开发大致流程图Web开发大致流程图三层架构表现层(View): 用于展示数据的 ---- 我们也可以将其叫做web层业务层(Service): 是处理业务需求持久层(Dao): 是和数据库交互的持久层技术的解决方案JDBC 技术:ConnectionPreparedStatmentResultSetSpring 的 JdbcTemplate:Spring 中对 jd

2020-07-05 12:44:17 246

原创 xml解析

文章目录XML 解析解析 xml 的方式DOM 解析的步骤SAX:逐行读取,基于事件驱动的。DOM4J (重要******):是对DOM进行了封装XML 解析操作 xml 文档,将文档中的数据读取到内存中一个 xml 示例<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.

2020-07-05 12:40:54 93

原创 数据库连接池

文章目录数据库连接池数据库连接池的实现数据库连接池回顾 JDBC 开发流程加载驱动(只需加载一次)建立数据库连接(Connection)执行 SQL 语句(Statment)ResultSet 接收结果集断开连接、释放资源数据库连接对象是通过 DriverManager 来获取的,每次获取都需要数据库申请获取连接,验证用户名和密码,执行完 SQL 语句后断开连接,这样的方式会造成资源的浪费,数据连接资源没有得到很好的重复利用。我们可以使用数据连接池来解决连接资源浪费的问题。数据库连

2020-07-05 12:37:49 62

原创 JDBC

文章目录JDBCJDBC 体系结构JDBC 的使用PreparedStatement将 JDBC 中的一些信息写入到配置文件中怎么理解 Connection 和 StatementJDBCJava DataBase Connectivity 是一个独立于特定数据库的管理系统,通用的 SQL 数据库存取和操作的公共接口。定义了一组标准,为访问不同数据库提供了统一的途径。JDBC 体系结构JDBC 接口包括两个层面:面向应用的 API,共程序员调用面向数据库的 API,共厂商开发数据库的驱动程

2020-07-05 12:36:12 93

原创 文件上传下载

文章目录文件上传文件下载文件上传JSP(JSP 提供用户操作上传页面)input 的 type 设为 fileform 表单的 method 设置为 postform 表单的 enctype 设置 multipart/form-data,以二进制的形式传输数据<form action="/upload" method="post" enctype="multipart/form-data"> <input type="file" name="img">

2020-07-05 12:33:29 77

原创 过滤器

文章目录过滤器用过滤器的示例Filter 生命周期实际开发中 Filter 的使用场景过滤器Filter功能:1、用来拦截 传入的请求 和 传出的响应。2、修改或以某种方式处理正在客户端和服务端之间交换的数据流。如何使用?与使用Servlet 类似,Filter 是 Java Web 提供的一个接口,开发者只需要定义一个类并且实现该接口即可。小知识点:Java1.8 以后接口的一个新特性​ 在接口中可以存在 default 修饰的方法(带方法体),且带 default 关键字的方

2020-07-05 12:30:56 1391

原创 EL表达式JSTL

文章目录EL表达式JSTLJSTL 的使用:JSTL 优点核心标签库 常用标签set、out、remove、catch条件标签:if、choose迭代标签:forEach格式化标签库常用标签EL表达式EL表达式只能在 JSP 文件中写Expression Language 表达式语言,替代 JSP 页面中数据访问时的复杂编码,可以非常便捷地取出域对象(pageContexe、request、session、application)中保存的数据,前提是一定要先 setAttribute ,EL就相当于在

2020-07-05 12:30:06 120

原创 JSP

文章目录JSPJSP底层原理JSP内置对象(9个)CookieJSP内置对象作用域JSPJSP本质上就是一个Servlet------->Java中只有 Servlet 能处理客户端的请求JSP 主要负责与用户交互,将最终的也面呈现给用户JSP 就是 HTML+JS+CSS+Java 的混合文件JSP底层原理当服务器接收到一个后缀为 jsp 的请求时,将该请求交给JSP引擎去处理,每一个JSP页面第一次被访问时,JSP引擎会将它翻译成一个 Servlet文件,再有Web 容器调用 Se

2020-07-05 12:28:21 157

原创 Servlet

文章目录ServletServlet的生命周期Servlet 的生命周期中所涉及到的方法ServletConfigServlet 的层次结构ServletServlet本身就是一组接口我们可以自定义一个类,并且实现Servlet接口,那么这个类就具备了接收客户端请求以及做出响应的功能。功能1、创建并返回基于客户请求的动态HTML页面2、与数据库进行通信.jsp 主要侧重于页面展示Servlet主要侧重于数据处理关于启动Tomcat后为什么可以直接访问.jsp 不能直接访问Servle

2020-07-05 12:23:18 71

原创 反射

反射通过反射我们可以更好的理解java面向对象的特性例如:Method eat = clazz1.getMethod("eat");此处eat对象就相当于下面的方法public void eat() { System.out.println("I am eating..."); }Dog类package cf.duanzifan;public class Dog implements Animal{ //字段 public String nam

2020-06-20 22:48:32 88

原创 JavaScript

文章目录基础知识弱类型编程语言风格 VS 强类型编程语言风格JavaScript中变量声明方式JavaScript中标识符命名规则:JavaScript数据类型:JavaScript中特殊【值】JavaScript中控制语句JavaScript中函数声明方式JavaScript函数调用方式:应用篇DOM对象DOM对象生命周期:document对象:document对象生命周期:通过document对象定位DOM对象方式:DOM对象对HTML标签属性操作JavaScript监听事件onload监听事件基于D

2020-05-26 10:49:09 172

原创 数据库学习(MySql)【三】【查询语句2】

文章目录连接查询内连接之等值连接:内连接之非等值连接:内连接之自连接:外连接三张表怎么连接查询?连接查询什么是连接查询?在实际开发中,大部分的情况下都不是从单表中查询数据,一般都是多张表联合查询取出最终的结果。在实际开发中,一般一个业务都会对应多张表,比如:学生和班级,起码两张表。 stuno stuname classno classname ------------------------------------------------------------------------

2020-05-18 13:09:32 399

原创 数据库学习(MySql)【二】【查询语句1】

文章目录简单的查询语句(DQL)条件查询模糊查询like简单的查询语句(DQL)基本语法格式:select 字段名1,字段名2... from 表名;给查询结果的列重命名select 字段名1 as 重命名 from 表名;注意1、重命名中有中文,用单引号2、字段可以进行运算3、as可以省略,用空格代替例:select ename,sal*12 as '年薪' from emp;条件查询语法格式:select 字段,字段... from 表名 where

2020-05-15 10:08:08 470

原创 HTML、CSS课堂笔记

文章目录HTML的一些介绍与语法作为服务端工程师必须掌握的知识点控制浏览器发送请求地址控制浏览器发送请求采用请求方式(GET POST)控制浏览器发送请求携带请求参数CSS的一些介绍CSS选择器:ID选择器:标签类型选择器:层级选择器自定义选择器HTML的一些介绍与语法一。介绍: 1.HTML编程语言是一种专门在浏览器编译与执行的编程语言 2.HTML编程语言学称是 超文本标记式编程语言 int a =10; //命令行书写方式 <tr>二。作用: 作用一:

2020-05-14 23:42:09 400 1

原创 JavaSE(Day12)【反射】【注解】

文章目录反射机制反射机制操作Field(属性/成员)注解反射机制反射机制有什么用?1、通过java语言中的反射机制可以操作字节码文件2、有点类似于黑客3、通过反射机制可以操作代码片段(class文件)反射机制的相关类在那个包下?java.lang.reflect.*;反射机制相关的重要的类有哪些?java.lang.Class:代表整个字节码,代表一个类型,代表整个类java.lang.reflect.Method:代表字节码中的方法字节码,代表类中的方法java.lang.ref

2020-05-14 23:22:33 143

原创 JavaSE(Day11)【线程】

文章目录线程线程什么是进程?什么是线程?进程是一个应用程序(1个进程就是一个软件)。线程是一个进程中的执行场景/执行单元。一个进程可以启动多个线程。例如对于java程序来说,当在DOS命令窗口输入:java HelloWorld回车之后。会先启动JVM(就是一个进程),JVM再启动一个主线程调用main方法,同时再启动一个垃圾回收线程负责看护,回收垃圾则Java程序中至少有两个线程并发进程之间是独立的,不共享内存资源同一进程的不同线程,堆内存和方法区内存共享,但是栈内存独立,一个线

2020-05-14 23:09:38 339

原创 数据库学习(MySql)【一】【MySql软件的的一些操作】

文章目录一些概念性的理解mysql使用步骤查看当前的数据库,mysql版本号查看表结构查看表中的数据查看创建表的语句一些概念性的理解1、sql、DB、DBMS分别是什么,他们之间的关系?DB: DataBase(数据库,数据库实际上在硬盘上以文件的形式存在)DBMS: DataBase Management System(数据库管理系统,常见的有:MySQL Oracle DB2 Sybase SqlServer...)SQL: 结构化查询语言,是一门标准通用的语言。标准的sql适

2020-05-14 10:14:17 324

原创 JavaSE学习(Day10)【IO】

文章目录IOIO

2020-05-12 12:13:05 81

原创 JavaSE学习(Day09)【异常】

文章目录异常异常1、什么是异常?,java提供异常处理机制有什么用? 程序执行过程中,发生了不正常的情况,这种不正常的情况就是:异常 Java把异常信息打印到输出的控制台 (JVM打印的),供程序员参考,程序员看到后,会进行修改 让程序更加健壮2、异常在java中以类的形式存在,每一个异常类都可以创建异常对象3、异常在生活中的体现: 火灾(异常类): ...

2020-05-08 12:50:59 169

空空如也

空空如也

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

TA关注的人

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