- 博客(31)
- 收藏
- 关注
原创 Java集合
集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表包含 Queue)和 map(映射)。Collection:Collection 是集合 List、Set、Queue 的最基本的接口。Java 的 List 是非常常用的数据类型。List 是有序的 Collection。Java List 一共三个实现类:分别是 ArrayList、Vector 和 LinkedList。ArrayList 是最常用的 List 实现类,内部是通过数组实现的,它允许对元素进行快速随机
2021-11-21 16:45:01
647
原创 Java基础多线程
进程与线程1、进程进程是资源(CPU,内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。2、线程线程是一条执行路径,是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。线程由CPU独立调度执行,在多CPU环境下就允许多个线程同时运行。同样多线程也可以
2021-11-20 16:49:07
634
原创 数据库索引详解
1、什么是索引?为什么要用索引?1.1、索引的含义数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询,更新数据库中表的数据。索引的实现通常使用B树和变种的B+树(MySQL常用的索引就是B+树)。除了数据之外,数据库系统还维护为满足特定查找算法的数据结构,这些数据结构以某种方式引用数据,这种数据结构就是索引。简言之,索引就类似于书本,字典的目录。1.2、为什么用索引?打个比方,如果正确合理设计使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。
2021-11-20 11:03:23
57335
4
原创 Redis
简介背景现在的项目架构中,基本上是Web服务器(Tomcat)和数据库独立部署,独占服务器资源,随着用户数的增长,并发读写数据库,会加大数据库访问压力,导致性能的下降,严重时直接导致系统宕机,例如:此时我们可以在Tomcat同服务器上增加本地缓存,并在外部增加分布式缓存,缓存热门数据。也就是通过缓存能把绝大数请求在读写数据库前拦截掉,大大降低数据库压力。例如:...
2021-10-28 11:14:18
671
原创 Redis常用数据类型
简介概述Redis作为一种key/value结构的数据存储系统,为了便于对数据进行管理,提供了多种数据类型。然后,基于指定类型存储我们项目中产生的数据,例如用户的登录信息,购物车信息,商品详情信息等等。常用数据类型Redis中基础数据结构包含字符串、散列、列表、集合、有序集合。工作中具体使用哪种类型要结合具体场景。String类型操作实践字符串类型是redis中最简单的数据类型,它存储的值可以是字符串,其最大字符串长度支持到512M。基于此类型,可以实现博客的字数统计,将日志不断追加到指定key
2021-10-28 11:13:50
803
原创 Windows下使用命令行操作MySQL数据库
一、运行数据库1、启动服务:net start mysql2、连接数据库:mysql -h[IP地址] -u [数据库] -p;mysql -u [数据库] -p; --如:mysql -u root -p;-- mysql -h127.0.0.1 -u root -p;二、查看1、查看数据库:show databases2、查看表:show tables--先选择数据库USE [数据库]USE root --查看表 SHOW TABLES;3、查看表中的
2021-10-27 09:57:27
4492
原创 2021-10-25
获取URL Scheme服务端接口:urlscheme.generate获取小程序scheme码,适用于短信、邮件、外部网页、微信内等拉起小程序的业务场景。通过该接口,可以选择生成到期失效和永久失效的小程序码,有数量限制。调用方式: POST调用请求地址: https://api.weixin.qq.com/wxa/generatescheme?access_token=ACCESS_TOKEN请求参数:属性类型默认值必填说明access_tokenstring
2021-10-26 13:19:47
1557
原创 设计模式之中介者模式
中介者模式定义定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。中介者模式又叫调停模式,它是迪米特法则的典型应用。中介者模式是一种对象行为型模式,其主要优点如下:1、降低了对象之间的耦合性,使得对象易于独立地被复用2、将对象间的一对多关联转变为一对一的关联,提高系统的灵活性,使得系统易于维护和扩展其主要缺点是:当同事类太多时,中介者的职责将很大,它会变得复杂而庞大,以至于系统难以维护模式结构和代码示例1、抽象中介者(Mediator)角色
2021-10-22 17:53:24
641
原创 设计模式之访问者模式
访问者模式定义:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。它将对数据的操作与数据结构进行分离。访问者(Visitor)模式是一种对象行为型模式,其主要优点如下:1、扩展型好。能够在不修改对象结构中元素的情况下,为对象结构中的元素添加新的功能2、复用性好。可以通过访问者来定义整个对象结构通用的功能,从而提高系统的复用程度3、灵活性好。访问者模式将数据结构与作用于结构上的操作解耦使得
2021-10-22 17:12:01
519
原创 设计模式之备忘录模式
备忘录模式定义:在不被破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式备忘录模式是一种对象行为型模式,其主要优点如下:1、提供了一种可以恢复状态的机制,当用户需要时能够比较方便地将数据恢复到某个历史的状态。2、实现了内部状态的封装。除了创建它的发起人之外,其他对象都不能够访问这些状态信息。3、简化了发起人类,发起人不需要管理和保存其内部状态的各个备份,所有状态信息都保存在备忘录中,并由管理者进行管理,这符合单
2021-10-22 16:00:40
553
原创 设计模式之状态模式
状态模式定义在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的context对象。简单理解,一个拥有状态的context对象,在不同的状态下,其行为会发生改变意图允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类主要解决对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。何时使用代码中包含大量与对象状态有关的条件语句如何解决将各种具体的状态类抽象出来关键代码通常命令模式的接口中只有一个方法。而状态模式的接口中有一个或
2021-10-22 15:26:16
109
原创 设计模式之命令模式
命令模式定义将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存,传递,调用,增加和管理。意图将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。主要解决在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录,撤销或重做,事务等处理时,这种无法抵御变化的紧耦合的设计就不太合适。何时使用在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的
2021-10-22 14:40:04
131
原创 设计模式之责任链模式
责任链模式定义如果有多个对象有机会处理请求,责任链可使请求的发送者和接受者解耦,请求沿着责任链传递,直到有一个对象处理了它为止。主要解决职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无需关心请求的处理细节和请求的传递,所以职责链将请求的发送者和请求的处理者解耦了。何时使用在处理消息的时候以过滤很多道如何解决拦截的类都实现统一接口关键代码Handler里面聚合它自己,在HandlerRequest里判断是否合适,如果没达到条件则向下传递,向谁传递之前set进去...
2021-10-21 15:20:47
80
原创 设计模式之迭代器模式
迭代器模式定义提供一种方法顺序访问一个聚合对象中各个元素,而又无须暴露该对象的内部表示。简单来说,不同种类的对象可能需要不同的遍历方式,我们对每一种类型的对象配一个迭代器,最后多个迭代器合成一个主要解决不同的方式来遍历整个整合对象何时使用遍历一个聚合对象如何解决把在元素之间游走的责任交给迭代器,而不是聚合对象关键代码定义接口:hasNext,next应有实例JAVA中的iterator优点1、它支持以不同的方式遍历一个聚合对象2、迭代器简化了聚合类3、在同一个聚合上可以有多
2021-10-20 17:13:50
202
原创 设计模式之观察者模式
观察者模式定义定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。何时使用一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知。如何解决使用面向对象技术,可以将这种依赖关系弱化。关键代码在抽象类里有一个ArrayList存放观察者们。优点1、观察者和被观察者是抽象耦合的。2、建立一套触发机制。缺点1、如
2021-10-20 15:36:19
79
原创 设计模式之适配器模式
适配器模式概述将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。解决的问题即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。模式中的角色目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。需要适配的类(Adaptee):需要适配的类或者适配者类。适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接口。实现方式类的适配器模式(采用继承
2021-10-18 13:45:40
136
原创 设计模式之原型模式
原型模式定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。类型创建类模式类图原型模式主要用于对象的复制,它的核心就是类图中的原型类Prototype。Prototype类需要具备以下两个条件:1、实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法。在java虚拟机中,只有实现了这个接口的类才可以被拷贝,否则在运行时会抛出CloneNotSupportedExcepti
2021-10-18 13:39:24
152
原创 设计模式之工厂设计模式
工厂设计模式定义工厂模式是java中最常用的设计模式之一,这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式,工厂模式主要是为了创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到一高灵活性的目的工厂模式根据抽象程度的不同分为三种:简单工厂模式(也叫静态工厂模式)工厂方法模式(也叫多形性工厂)抽象工厂模式(也叫工具箱)简单工厂模式实质是由一个工厂类根据传入的参数,动态决定应该去创建哪一个产品类(这些产品继承自一个父类或接口)的实例。简单工厂模式的创建目标,所有创建的
2021-10-18 13:24:36
106
原创 设计模式之单例模式
单例模式特点1、单例类只能有一个实例2、单例类必须自己创建自己的唯一的实例3、单例类必须给所有其他对象提供这一实例懒汉式单例//懒汉式单例类,在第一次调用的时候实例化自己public class Singleton { private Singleton() {} private static Singleton single = null; //静态工厂方法 public static Singleton getInstance() { if
2021-10-18 10:09:54
187
原创 java面试总结
面试问题1 Bean的生命周期class => BeanDefinition => BeanFactoryPostProcessor => new User() => 填充属性 => Aware => 初始化 => AOP => 单例池(ConcurrentHashMap<BeanName,Bean对象>)知识点:BeanDefinition、BeanFactoryPostProcessor、BeanPostProcessor2 声明式事
2021-09-11 20:48:19
207
原创 java实习生面试总结java基础篇
Java基础面向对象和面向过程的区别面向过程:面向过程性能比面向对象高面向对象:面向对象易维护、易复用、易扩展Java语言特点简单易学;⾯向对象(封装,继承,多态);平台⽆关性( Java 虚拟机实现平台⽆关性);可靠性;安全性;⽀持多线程( C++ 语⾔没有内置的多线程机制,因此必须调⽤操作系统的多线程功能来进⾏多线程程序设计,⽽ Java 语⾔却提供了多线程⽀持);⽀持⽹络编程并且很⽅便( Java 语⾔诞⽣本身就是为简化⽹络编程设计的,因此 Java 语⾔不仅⽀持⽹络编程⽽
2021-08-20 19:48:25
679
原创 java实习生面试SpringBoot篇
SpringBootSpring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,它的产⽣简化了框架的使⽤,所谓简化,是指简化了 使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手,所以 SpringBoot 是⼀个服务于框架的框架,服务范围是简化配置⽂件。Spring Boot 优点,如:(1)独立运行(2)简化配置(3)自动配置(4)无代码生成和 XML 配置(5)应用监控(6)上手容易SpringBoot 工程的使用特点
2021-08-19 16:29:29
796
原创 java实习生面试MyBatis篇
谈谈 MyBatisMybatis 是一个半自动化的 ORM 框架,它对 jdbc 的操作数据库的过程进行封装,使得开发者只需要专注于 SQL 语句本身,而不用去关心注册驱动,创建 connection 等,Mybatis 通过 xml文件配置或者注解的方式将要执行的各种 statement 配置起来,并通过 java 对象和 statement 中的sql 进行映射成最终执行的 sql 语句,最后由 Mybatis 框架执行 sql 并将结果映射成 java 对象并返回。每个 MyBatis 应
2021-08-19 14:23:13
582
原创 java实习生面试SpringMVC篇
Spring MVC是⼀个基于 MVC 架构的⽤来简化 web 应⽤程序开发框架,它是 Spring 的 ⼀个模块,⽆需中间整合层来整合,它和 Struts2 ⼀样都属于表现层的框架,在 web 模型中, MVC 是⼀种很流⾏的框架,把 Model,View,Controller 分离,把较为复杂的 web 应⽤分为 逻辑清晰的⼏部分,简化开发,减少出错,⽅便组内开发⼈员之间的配合。SpringMVC 的流程1.⽤户发送请求 ⾄前端控制器 DispatcherServlet 。2. Dispatch
2021-08-17 20:35:13
271
原创 java实习生面试Spring框架篇
什么是 Spring 框架?Spring 是⼀种轻量级开发框架,旨在提⾼开发⼈员的开发效率以及系统的可维护性。Spring的6个特征:核⼼技术 :依赖注⼊(DI),AOP,事件(events),资源,i18n,验证,数据绑定,类型转换,SpEL。测试 :模拟对象,TestContext框架,Spring MVC 测试,WebTestClient。数据访问 :事务,DAO⽀持,JDBC,ORM,编组XML。Web⽀持 : Spring MVC和Spring WebFlux Web框架。集成 :远
2021-08-17 20:12:13
444
原创 Session与Cookie
Session与CookieSession介绍Session:在计算机中,尤其是网络应用中,成为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的Web页时,如果该用户还没有会话,则Web服务器将自动创建一个Session对象。当会话过期或被放弃后,服务器将终止该会话。Session对象最为常见的一个用法就是存储用户的首选项。例如,如果用户指
2021-08-16 09:44:11
103
原创 Nginx
NginxNginx介绍Nginx(engine x)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔er.赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2011年6月1日,niginx1.0.4发布。Nginx是一款轻量级的web服务器/反向代理服务器及电子邮件(I
2021-08-16 09:42:26
143
原创 SpringMVC流程
SpringMVC流程Servlet机制Servlet(Server Applet)是Java Servlet的简称,称为小服务器或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容总结:Servlet是Java实现前后端数据交互的一种机制核心对象1、Request对象2、Response对象SpringMVC调用流程图重要的组件1、前端控制器DispatcherServlet:实现请求的流转2、处理器映射器:实
2021-08-14 14:56:39
150
原创 Java总结(API)
Java总结——APIJAVA API Object String StringBuffer/StringBuilderAPI(Application Programming Interface,应用程序接口)是一些预先定义的函数。目的是提供应用程序与开发人员基于某软件可以访问的一些功能集,但又无需访问源码或理解内部工作机制的细节。API是一种通用功能集,有时公司会将API作为其公共开放系统,也就是公司制定自己的系统接口标准,当需要进行系统整合,自定义和程序应用等操作时,公司所有成员都可以通过该接口标
2021-08-05 11:50:43
384
原创 JAVA总结
JAVA总结JAVA语言特性简单性、高性能、编译性、解释性、分布式处理、健壮性、安全性、面向对象、开源、跨平台(可移植性)跨平台性(通过java语言编写的应用程序可以在不同的系统平台上运行)注意:JVM是java语言能够跨平台的前提,但是JVM本身不跨平台。JDK概述JDK是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备商的java应用程序。JDK是整个java开发的核心,包含了JAVA开发工具(jdk\bin);基础开发库(jdk\jre\lib\rt.jar);基础开发库的源码
2021-07-19 19:53:44
300
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人