随笔分类 - 【阿肥的基础】
摘要:一、前言 关于Java中的动态代理,我们首先需要了解的是一种常用的设计模式--代理模式,而对于代理,根据创建代理类的时间点,又可以分为静态代理和动态代理。 了解代理模式 定义:代理类和被代理类实现共同的接口(或继承),代理类中存有指向被代理类的索引,实际执行时通过调用代理类的方法、实际执行的是被代理
阅读全文
摘要:一、多态的一些基本概念 简单理解:简而言之就是同一个行为具有多个不同表现形式或形态的能力, 例:比如有一个玻璃杯,当倒入不同的水时,我用手去摸的感觉是不一样的,这就是多态的简单理解。 多态的分类 重写式多态 重载式多态,也叫编译时多态。也就是说这种多态再编译时已经确定好了。重载大家都知道,方法名相同
阅读全文
摘要:一、引言 其实按道理来说,学习Java web应该在前面的篇幅就写有关tomcat相关的知识点,不过近期看了一些资料,觉得以前仅仅只是知道用tomcat去发布我的项目,一些细节的东西也没有好好总结,这里从新写一篇进行tomcat知识点的总结。 二、Tomcat的结构 网上看到一张图片很好的涵盖了To
阅读全文
摘要:文章更新时间:2020/07/24 一、概念 定义 HTTP:超文本传输协议,是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。 HTTP协议:用于定义客户端与web服务器通迅的格式。 版本 通讯中真正使用的http协议一般有两种: HTTP1.0 HTTP1
阅读全文
摘要:文章更新时间:2020/04/21 1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程。 Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个
阅读全文
摘要:一、引言 前面我们学习了JVM的垃圾回收机制,我们知道了垃圾回收是JVM的自发行为;虽然我们可以通过System.gc() 或Runtime.getRuntime().gc()进行显式调用垃圾回收 ,但JVM可以屏蔽掉显式的垃圾回收调用,且JVM也有自己的一套垃圾回收机制,那么我们有没有什么办法可以
阅读全文
摘要:一、引言 上一篇文章学习了java三大器的拦截器,拦截器主要是针对于action请求进行拦截处理的,那么对于requst的一些信息如果在调用前,想先进行过滤和处理,那么就要使用到第二个神器,也就是本文的主角过滤器~那首先先简单了解一下过滤器的基本原理。 概念:拦截request进行处理后再交给下一个
阅读全文
摘要:文章更新时间:2020/04/07 一、引言 既然要用拦截器,首先先得简单了解一下什么是拦截器: 概念:java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可以提取Acti
阅读全文
摘要:一、引言 开发过程中可能会遇到各种各样的异常,这里还是汇总一些比较典型的异常,有些比较直观的异常如空指针这种就不写了,此文可作为异常速查用。 二、异常大军正在来袭~ IllegalArgumentException(方法的参数错误) 描述:这个异常通常发生在参数不符合要求时,程序主动抛出的场景 解决
阅读全文
摘要:一、前言 由于本地练手的小demo用的是vue+spring boot来玩的,所以部署的时候想着用Nginx来实现反向代理【即请求转发,解决前后端分离的跨域请求问题】,既然要用,那么首先得在服务器上面装一个是不咯,下面搞起~ 二、开始安装 下载并安装包 ##1、使用root进入/usr/local目
阅读全文
摘要:一、引言 随着业务量的增加,单机部署已经无法满足日常需求了,我们可能会把代码部署到多台服务器上去来进行服务的扩容,也就是负载均衡,那在这种场景下,怎么能实现锁的概念呢? 那么我们知道如果是一台主机部署的话,我们有很多方式可以实现锁的概念,比如利用synchronized关键字实现同步,或者使用ree
阅读全文
摘要:一、简介 流(stream)也是Java8的一个重要的新特性,主要是对集合(Collector)功能的增强;在上一篇文章我们简单的了解了lambda表达式,现在我们学习下流的概念;使用流可以帮助我们做很多事,并简化我们的代码。 二、名词解释 【stream】流对象 指需要操作的数据, 可以是集合,数
阅读全文
摘要:一、简介 lambda表达式是Java8的一个重要特性,也可以称为闭包,常用于配合Java8的Stream对集合元素进行操作,使得代码更简介紧凑。 二、代码解析 虽说lambda表达式是一个新的特性,但是使用起来还是需要注意的,在对于引用对象来操作时,用lambda表达式可以使代码更简介,不过对于基
阅读全文
摘要:一、简介 前面写过一篇文章介绍了如何使用Mybatis,那么如果我门数据库中有许许多多的表的时候,每张表都手动去写对应的mapper的映射关系,会非常麻烦,那么我们可以使用代码生成器MyBatis-Generator来帮助我们做这些事情,只需要简单的配置就可以实现半自动化的代码生成任务。 二、Spr
阅读全文
摘要:一、前言 由于我使用的是阿里云的服务器,后面会加入配置阿里云的部分,非阿里云的linux系统可以省略后面的步骤,根据自己系统的情况进行配置~ PS:我安装的是mysql5.7.24的版本,其他版本的MySQL不一定适用此文,仅供参考 二、安装前准备 卸载已经安装的MySQL #1、检查是否安装过my
阅读全文
摘要:文章更新时间:2020/09/27 一、Map介绍 Map是Java的一个接口,没有继承,以Key--Value的形式来储存元素信息,常用到的有3个子类实现: HashMap 底层数据结构是散列桶(数组和链表和红黑树)。线程不安全【JDK1.8版本】 TreeMap 底层数据结构是红黑树。线程不安全
阅读全文
摘要:文章更新时间:2020/09/27 一、List介绍 list是Java的一个接口,继承了Collection,常用到的有3个子类实现: ArrayList 底层数据结构是数组。线程不安全 LinkedList 底层数据结构是链表。线程不安全 Vector 底层数据结构是数组。线程安全 下面就这3个
阅读全文
摘要:一、啥是I/O 概念:I/O为输入,输出流的统称,流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。 本质:本质是数据传输,即数据在两设备间的传输称为流,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。 分类: 根据处理数据类型的不同分为: 字符流【字符流以字符为单位,
阅读全文
摘要:一、基础概念 Q:linux是什么? Linux是一种基于UNIX的操作系统,它基于Linux内核,常被用作服务器的操作系统。 Q:UNIX和LINUX有什么区别? Unix:收费的,商用的,拥有许多不同的商业版本。 Linux:免费的,开源的,旨在为大众提供非适当的操作系统。 Q:什么是BASH?
阅读全文
摘要:一、啥是泛型 概述 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,即所操作的数据类型被指定为一个参数。 格式 类名<类型名> 标记符 E - Element (在集合中使用,因为集合中存放的是元素) T - Type(Java 类) K - Key(键) V - Value(值) N
阅读全文