- 博客(43)
- 收藏
- 关注
原创 第一篇 桥接模式(Bridge Pattern)
第一篇 桥接模式(Bridge Pattern)文章目录第一篇 桥接模式(Bridge Pattern)一、概述二、原理类图三、实际应用1.手机操作问题一、概述桥接模式指的是将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。桥接模式是一种结构型设计模式桥接模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展二
2021-04-18 16:40:01
250
原创 第五篇 Java垃圾回收相关算法 - 应用阶段
第五篇 Java垃圾回收相关算法 - 应用阶段文章目录第五篇 Java垃圾回收相关算法 - 应用阶段前言一、分代收集算法1.概述2.基本思想3.例子二、增量收集算法1.概述2.基本思想3.缺点三、分区算法1.概述前言前面所有这些算法中,并没有一种算法可以完全替代其他算法,它们都具有自己独特的优势和特点。一、分代收集算法1.概述分代收集算法,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。一般是把Java堆分为新生代和老年
2021-03-21 22:12:58
267
原创 第四篇 Java垃圾回收相关算法 - 清除阶段
第四篇 Java垃圾回收相关算法 - 清除阶段文章目录第四篇 Java垃圾回收相关算法 - 清除阶段前言一、标记清除算法1.概述2.执行过程3.缺点4.什么是清除前言当成功区分出内存中存活对象和死亡对象后,GC接下来的任务就是执行垃圾回收,释放掉无用对象所占用的内存空间,以便有足够的可用内存空间为新对象分配内存。目前在JVM中比较常见的三种垃圾收集算法是标记-清除算法(Mark-Sweep)、复制算法(Copying)、标记-压缩算法(Mark-Compact)一、标记清除算法1.概述标
2021-02-27 23:15:53
284
原创 第三篇 Java垃圾回收 - 对象的finalization机制
第三篇 Java垃圾回收 - 对象的finalization机制文章目录第三篇 Java垃圾回收 - 对象的finalization机制一、概述二、机制1、对象的三种状态2.对象标记为垃圾的具体过程三、注意事项一、概述Java语言提供了对象终止(finalization) 机制来允许开发人员提供对象被销毁之前的自定义处理逻辑。当垃圾回收器发现没有引用指向一个对象,即:垃圾回收此对象之前,总会先调用这个对象的finalize()方法。finalize()方法允许在子类中被重写,用于在对象被回收时进
2021-02-21 23:11:58
289
原创 第二篇 Java垃圾回收相关算法 - 标记阶段
第二篇 Java垃圾回收相关算法 - 标记阶段文章目录第二篇 Java垃圾回收相关算法 - 标记阶段一、引用计数算法1.对象存活判断2.概述3.优点4.缺点5.Java中是否使用了引用计数器6.总结二、可达性分析算法1.概念2.GC Roots3.在Java中,哪些元素算GC Roots三、备注1.判断GC Roots的小技巧2.注意事项一、引用计数算法1.对象存活判断在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象。只有被标
2021-02-21 21:54:13
132
原创 第一篇 Java垃圾回收概述
第一篇 Java垃圾回收概述文章目录第一篇 Java垃圾回收概述一、什么是垃圾?二、为什么需要GC三、早期垃圾回收四、Java垃圾回收机制1.优点2.缺点:一、什么是垃圾?垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。如果不及时对内存中的垃圾进行清理,那么,这些垃圾对象所占的内存空间会一直保留到应用程序结束,被保留的空间无法被其他对象使用。甚至可能导致内存溢出。二、为什么需要GC对于高级语言来说,一个基本认知是如果不进行垃圾回收,内存迟早都会被消耗完,因为不断地
2021-02-19 22:39:42
151
原创 SpringBoot的配置文件加载顺序
一、加载顺序上的区别SpringBoot中有以下两种配置文件bootstrap (.yml 或者 .properties),application (.yml 或者 .properties)(1)bootstrap.yml(bootstrap.properties)先加载(2)application.yml(application.properties)后加载(3)同一种类型的.yml的配...
2020-04-27 17:42:32
3197
原创 ActiveMQ之初体验
一、下载ActiveMQ并在Linux上安装1.到官网下载,网址为http://activemq.apache.org/components/classic/download/2.在Linux虚拟机中解压即可,前提需要Java环境,然后进入解压后的bin目录执行./activemq start > /opt/tool/ActiveMQ/run_activemq.log启动ActiveM...
2019-11-27 21:17:49
221
原创 SpringBoot项目中的视图解析器问题
前言:SpringBoot官网推荐使用HTML视图解析器,但是根据个人的具体业务也有可能使用到JSP视图解析器,所以这里我给大家简单介绍一下这两种视图解析器的具体使用一、解析成JSP页面1.在pom.xml文件中添加相关依赖 <dependency> <groupId>javax.servlet</groupId> ...
2019-10-31 11:17:18
10064
2
原创 使用SpringBoot快速整合SSM框架
一、使用IDE创建一个SpringBoot工程1.右键新建一个Spring Starter Project,这里一律打成Jar包2.选择JDBC API、Spring Web、MyBatis Framework和MySQL Driver等项目依赖3.这一步可以根据个人需求选择Spring Boot的版本号二、创建项目所需的包,并配置对应的yml以及注解1.项目架构2.由于Dao层...
2019-10-30 19:11:14
520
原创 SpringSecurity整合到SSM框架中
一、在pom.xml导入SpringSecurity对应的jar包1. 在父工程中引入spring-security依赖 <properties> ...... <!-- 控制引入spring-security依赖的版本号 --> <spring-security.version>4.2.10.RELEASE</spring-securi...
2019-10-29 21:17:05
922
1
原创 如何解决创建SpringBoot项目时pom.xml的首行出错的问题
一、打开pom.xml文件找到18行左右的properties标签,然后在其中加上<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>二、右键点击项目,选择Maven选项,然后选择Update Project选项即可...
2019-10-24 14:15:23
1589
原创 Redis之搭建一个集群
一、安装集群所需的环境1.安装ruby环境方式一:执行yum install ruby和yum install rubygems(前提要能上网)方式二:(1)进入镜像中的package目录:/run/media/root/CentOS 7 x86_64/Packages(路径跟centos6不同),获取下图rpm包 ,然后拷贝到/opt/tool/rpmruby/目录下(2)并cd到/o...
2019-10-18 19:56:44
195
原创 SSM框架的快速搭建
一、创建一个动态Web工程二、导入框架所需的jar包1.com.springsource.net.sf.cglib-2.2.0.jar2.com.springsource.org.aopalliance-1.0.0.jar3.com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar4.commons-logging-1.1.1.jar...
2019-10-14 18:47:44
162
原创 MyBatis整合缓存EhCache(纯Java的进程内缓存框架)
一、导入jar包1.ehcache-core-2.6.8.jar2.mybatis-ehcache-1.0.3.jar3.slf4j-api-1.6.1.jar4.slf4j-log4j12-1.6.2.jar二、编写ehcache.xml配置文件<?xml version="1.0" encoding="UTF-8"?><ehcache xmlns:xsi="ht...
2019-10-11 20:40:11
251
原创 MyBatis中SQL映射文件中foreach的具体使用
一、SQL映射文件 <select id="queryEmployeeByForeach" resultType="Employee"> select * from employee where id in <!-- 入参类型为List集合类型 --> <foreach collection="list" item="id" open="(" separ...
2019-10-11 18:37:03
827
原创 使用SpringMVC实现JSON数据的传输
一、导入jar包1.jackson-annotations-2.1.5.jar2.jackson-core-2.1.5.jar3.jackson-databind-2.1.5.jar4.commons-logging-1.1.1.jar5.spring-aop-4.0.0.RELEASE.jar6.spring-beans-4.0.0.RELEASE.jar7.spring-cont...
2019-10-08 20:24:39
229
原创 通过SpringMVC实现文件的上传和下载
一、导入jar包1.commons-fileupload-1.3.1.jar2.commons-io-2.2.jar3.commons-logging-1.1.1.jar7.spring-aop-4.0.0.RELEASE.jar8.spring-beans-4.0.0.RELEASE.jar9.spring-context-4.0.0.RELEASE.jar10.spring-co...
2019-10-08 19:16:52
287
原创 Spring——声明式事务管理二
一、事务的传播行为1.简介 当事务方法被另一个事务方法调用时,必须指定事务应该如何传播。例如:方法可能继续在现有事务中运行,也可能开启一个新事务,并在自己的事务中运行。事务的传播行为可以由传播属性指定。Spring定义了7种类传播行为。2.主要的传播行为(1)REQUIRED传播行为 当purchase()方法被另一个事务方法checkout()调用时,它默认会在现有的事务内运行...
2019-09-28 20:57:55
178
原创 Spring——声明式事务管理一
一、事务概述 1.在JavaEE企业级开发的应用领域,为了保证数据的完整性和一致性,必须引入数据库事务的概念,所以事务管理是企业级应用程序开发中必不可少的技术。 2.事务就是一组由于逻辑上紧密关联而合并成一个整体(工作单元)的多个数据库操作,这些操作要么都执行,要么都不执行。 3.事务的四个关键属性(ACID) ①原子性(atomicity):“原子”的本意是“不可再...
2019-09-28 18:55:04
192
原创 Spring——JdbcTemplate之操作数据库CRUD
一、概述 为了使JDBC更加易于使用,Spring在JDBC API上定义了一个抽象层,以此建立一个JDBC存取框架。 作为Spring JDBC框架的核心,JDBC模板的设计目的是为不同类型的JDBC操作提供模板方法,通过这种方式,可以在尽可能保留灵活性的情况下,将数据库存取的工作量降到最低。 可以将Spring的JdbcTemplate看作是一个小型的轻量级持久化层框架,和我们之前...
2019-09-28 18:30:04
432
原创 Spring——AOP之基于XML方式
一、概述 除了使用AspectJ注解声明切面,Spring也支持在bean配置文件中声明切面。这种声明是通过aop名称空间中的XML元素完成的。正常情况下,基于注解的声明要优先于基于XML的声明。通过AspectJ注解,切面可以与AspectJ兼容,而基于XML的配置则是Spring专有的。由于AspectJ得到越来越多的 AOP框架支持,所以以注解风格编写的切面将会有更多重用的机会。二、...
2019-09-27 22:04:56
228
1
原创 Spring——AOP之切入点表达式
一、作用通过表达式的方式定位一个或多个具体的连接点,即切入点(被通知的方法的位置)。二、语法细节1.切入点表达式的语法格式execution([权限修饰符] [返回值类型] [简单类名/全类名] [方法名][参数列表])2.举例说明表达式含义execution(* com.atguigu.spring.ArithmeticCalculator.*(..))Arit...
2019-09-27 20:30:27
717
2
原创 Spring——AOP之基于注解方式
一、AOP概述1.AOP(Aspect-Oriented Programming,面向切面编程):是一种新的方法论,是对传统 OOP(Object-Oriented Programming,面向对象编程)的补充。(1)面向对象 纵向继承机制(2)面向切面 横向抽取机制2.AOP编程操作的主要对象是切面(aspect),而切面用于模块化横切关注点(公共功能)。3.功能应用在哪里,以什么...
2019-09-27 19:58:13
364
1
原创 Spring——AOP之通知
一、概述1.在具体的连接点上要执行的操作。2.一个切面可以包括一个或者多个通知。3.通知所使用的注解的值往往是切入点表达式。二、当前连接点细节1.切入点表达式通常都会是从宏观上定位一组方法,和具体某个通知的注解结合起来就能够确定对应的连接点。那么就一个具体的连接点而言,我们可能会关心这个连接点的一些具体信息,例如:当前连接点所在方法的方法名、当前传入的参数值等等。这些信息都封装在Join...
2019-09-27 19:17:57
329
转载 Spring自动装配Bean——xml方式与注解方式
一、自动装配的概念在Spring使用中,我们在xml配置文件通过元素或元素的ref属性向bean注入另外的依赖bean。如果使用自动装配(autowiring) ,就可以减少甚至消除配置元素和元素。设置元素的autowire属性就可以设定bean的自动装配模式。自动装配有5种模式。注意:自动装配功能和手动装配要是同时使用,那么自动装配就不起作用。二、在xml中使用自动装配首先假设Us...
2019-09-26 14:11:58
510
1
原创 Spring之自动装配
一、需求Controller组件中往往需要用到Service组件的实例,Service组件中往往需要用到 Repository组件的实例。Spring可以通过注解的方式帮我们实现属性的装配。二、实现依据在指定要扫描的包时,context:component-scan 元素会自动注册一个bean的后置处 理器:AutowiredAnnotationBeanPostProcessor的实例。该后...
2019-09-26 11:25:41
308
原创 使用Servlet实现文件的上传和下载
一、文件的上传1.创建一个form表单表单的method属性必须为post表单的enctype属性必须为multipart/form-data上传文件的控件是intput,type属性为file,即文件域<form action="FileUploadServlet" method="post" enctype="multipart/form-data"> 用户名:&l...
2019-09-23 19:33:53
549
原创 使用Filter实现事务
一、创建Filter,在web.xml中拦截所有请求进行过滤 <!-- 在实际开发中会将所有的请求过滤(开启事务功能) --> <filter> <display-name>TransactionFilter</display-name> <filter-name>TransactionFilter</fil...
2019-09-22 11:52:23
767
原创 Java中批处理MySQL语句
一、首先需要在JDBC配置文件中的URL设置批处理权限driverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=trueusername=rootpassw...
2019-09-22 11:26:40
552
原创 Web三大组件之Listener
一、什么叫ListenerListener用于监听JavaWeb程序中的事件。例如:ServletContext、HttpSession、ServletRequest的创建、修改和删除。Listener和JS中的事件处理机制类似。在JS中,当我们触发某个事件后(例如:点击一个按钮)程序会调用一个响应函数来处理事件。同样的,在JavaWeb中,我们可以为某些事件来设置监听器,当事件被触发时,监听器...
2019-09-20 21:06:00
238
原创 Web三大组件之Servlet
一、Servlet简介Servlet(Server Applet)服务器端的三大组件之一,它的本意是“服务器端的小程序”。 Servlet指的是实现javax.servlet.Servlet接口,我们称之为Servlet(广义),如果把Web应用比作一个餐厅,Servlet就是餐厅中的服务员**——负责接待顾客、上菜、结账。二、实现Servlet步骤 Servlet是单例模式。1.实现Se...
2019-09-20 20:34:28
512
原创 Web三大组件之Filter
一、什么叫FileterFilter中文意思为过滤器,他可以截取|过滤客户端和WEB资源之间的请求和响应信息。Filter也是web三大组件之一(Servlet、Listener)。二、Filter与Servlet和Listener的共同点1.实现某个接口2.注册三、创建Filter步骤1.实现Filter接口(继承自己编写的HttpFilter,见七) public void do...
2019-09-20 20:10:41
456
原创 Cookie和Session的区别(面试必备)
一、共同之处:cookie和session都是用来跟踪浏览器用户身份的会话方式。二、区别:cookie数据保存在客户端,session数据保存在服务端。session简单的说,当你登陆一个网站的时候,如果web服务器端使用的是session,那么所有的数据都保存在服务器上,客户端每次请求服务器的时候会发送当前会话sessionid,服务器根据当前sessionid判断相应的用户数据标志,...
2019-09-17 20:43:26
167419
41
原创 快速搭建SSM框架(分页查询)
本次项目使用的IDE是Eclipse、JDK1.8、Maven、MySQL、Tomacat7、Bootstrap-3.3.7、jquery-3.4.1、STS3.9.4、分页插件(PageHelper)1.创建Maven工程,并在pom.xml文件中引入框架所需的jar包<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:x...
2019-09-11 21:23:47
277
原创 解决新建maven工程没有web.xml的问题
1.问题:创建maven项目时,选择的是创建web-app项目,但是结果配置之后,却没有web.xml文件。2.解决办法如下三点:(1)手动创建web.xml在 src/main/webapp 下web.xml:<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2...
2019-09-10 13:18:55
4110
原创 Maven配置详解
1.去Maven官网http://maven.apache.org/download.cgi#下载安装包(根据自己的系统去安装相应的版本)2.在STS中的Preferences中,找到Maven的Installations选项,配置刚才安装好的Maven路径,然后将勾选项打上3.选择Maven中的conf文件,打开文件然后双击settings.xml配置本地仓库路径4.选择User ...
2019-09-10 10:37:26
165
原创 JSP页面中获取并显示从后端得到的值(不使用EL标签)
输出一表格,表格中有5个学生的信息,表格包含学号,姓名,年龄,性别,地址的信息。这里的学生对象及集合对象,在Servlet中创建,转发给jsp显示。(注意:Servlet使用的是Request域传值,所以跳转方式为转发形式,JSP使用的是"原生态"语法,没有使用EL表达式,直接与Html拼接而成)后端代码:package com.atguigu.servlet;import java.io...
2019-09-09 19:16:53
8039
原创 vue项目目录讲解
1、build:构建脚本目录1)build.js ==> 生产环境构建脚本;2)check-versions.js ==> 检查npm,node.js版本;3)utils.js ==> 构建相关工具方法;4)vue-loader.conf.js ==> 配置了css加载器以及编译css之后自动添加前缀;5)webpack.base.con...
2019-09-06 13:51:24
338
原创 vue如何新建一个项目(超详细哦)
一、安装node环境与npm1、首先:先从https://nodejs.org/en/中下载node.js2、配置环境变量(注意区别用户变量与系统变量)(1)用户变量:D:\Develop\nodejs\node_modules(2)系统变量:D:\Develop\nodejs;D:\Develop\nodejs\node_global3、检查是否安装成功:如果输出版本号,说明我们安...
2019-09-06 13:47:05
29695
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人