自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 策略模式在工作中的运用

基类/**/*** name = "alertType", value = "告警类型"/*** 业务/**/*** name = "alertType", value = "告警类型"/*** 业务阿里云/*** 阿里云监控告警/*** name = "alertName", value = "报警名称"/*** name = "alertState", value = "报警状态"/**

2024-01-18 17:15:31 1194

原创 提升项目TPS优化手段

项目要求单接口TPS为1w,为了达到这个目标,需要尽量减少请求的响应时间。

2022-12-28 16:05:36 3084

原创 Git常用命令

git上传代码到github

2022-02-21 19:55:41 325

原创 数据库开发

大纲JDBC基础数据库连接池SQL注入与防范事务MyBatis

2022-01-26 21:05:03 985

原创 Servlet技术

大纲Servlet技术接口及实现类servlet配置cookie&session转发与重定向过滤器与监听器Servlet并发技术Jsp

2022-01-23 19:15:15 311

原创 版本控制系统

版本控制系统分支模型Git

2022-01-19 11:00:09 290

原创 Java进阶之设计原则

消除代码复制封装可扩展性框架+数据

2021-12-27 21:03:27 202

原创 Java进阶之对象集合

1. 记事本1.1. 功能描述添加日志删除日志查看指定日志查看所有日志获取日志数量1.2. 代码展示import java.util.ArrayList;public class NoteBook { private ArrayList<String> note; public NoteBook(){ note = new ArrayList<>(); } public void addNote(String s)

2021-12-26 13:42:59 394

原创 2022网易校招易计划在线课程

1. 2022校招网易职前培训课程安排线上课程:https://mooc.study.163.com/course/2001217001#/info课程整理:https://blog.csdn.net/weixin_448041082. 各课程所占比例3. 课程安排学习:1~2周大作业:1周

2021-12-24 16:48:07 153

原创 议equals与==

我们都知道,equals是比较值是否相同;而==是判断地址是否相同。但是,又是怎么实现的呢?我们自己创建的类,如果没有重写hashCode和equals,那么equals是比较值,还是比较地址呢?

2021-08-23 15:21:29 96

原创 设计模式----简述

1. 代码无错就是优?— 简单工厂模式工厂模式属于创建型模式,他提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。简单工厂模式的最大特点是,工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。比如,我们有一个生产辣条的工厂,我们需要卫龙的时候传入这个参数,就可以得到了。Main.javapublic class Main { public

2021-08-02 22:15:39 96

原创 Linux+Shell编程

1. Linux常用命令1.1. 目录切换命令cd … :切换到上一层目录cd ~ :切换到用户主目录cd / :切换到系统根目录1.2. 目录的操作命令mkdir : 创建文件夹ls :显示当前目录下的文件mv 文件名 新的路径:移动文件mv 文件名 新的文件名:修改文件的名称cp -r 目录名 目标位置:拷贝文件到新的目录rm -rf 文件名:删除文件1.3. 文件的操作命令touch 文件名:创建文件cat 文件名:查看文件vim 文件名:修改文

2021-07-31 19:37:14 94

原创 最不全排序算法

Main函数public class Main { public static void main(String[] args) { int[] nums = new int[]{1,4,5,2,3,6,9,7,8,0}; JdkSort jdkSort = new JdkSort(); jdkSort.sort(nums); nums = new int[]{1,4,5,2,3,6,9,7,8,0}; Bubble

2021-07-24 15:02:29 121

原创 设计模式的七大原则

Abstract:设计模式的目的就是 高内聚、低耦合,以及可维护性,可扩展性和灵活性。设计模式的七大原则:是设计模式设计的理论基础。1. 单一职责原则一般是指类的单一职责原则(单一职责,不是只有一个方法)。如果,逻辑特别简单,可以用方法的单一职责原则来简写。一个类负责一个功能。即类的单一职责原则。在类中每个方法负责一个功能。即方法的单一职责原则。例子:如,汽车/火车在陆地上跑,轮船/木筏在水上跑,飞机/飞艇在天上飞。要实现一个交通工具与运行场景的联系。基于类的单一职责原则:.

2021-07-16 15:53:43 473

原创 MySQL数据库索引比较

本文主要探索创建索引和不创建索引对查找效率的影响。

2021-07-15 11:32:08 174

原创 Springboot+MyBatis+Redis+MySQL实现课程交流论坛

1. 项目介绍1.1. 前后端介绍后端框架:SpringBoot+MyBatis前端框架:Thymeleaf数据库:3.1. 关系型数据库:MySQL3.2. 内存型数据库:Redis1.2. 项目结构1.2.1. 后端结构 com | |-—— ling | |-—— LearningApplication.java | |-—— config(配置类) | | | |-—— LoginHa

2021-07-14 21:17:47 198

原创 计算机网络---上三层

1. 应用层1.1. 域名系统DNSDNS是一个分布式数据库,提供了主机名和ip地址之间互相转换的服务。域名系统具有层次结构,从上到下依次为:根域名、顶级域名、二级域名。DNS可以使用UDP或者TCP进行传输,使用的端口号都为53。大多数情况下DNS使用UDP进行传输,这就要求域名解析器和域名服务器都必须自己处理超时和重传保证可靠性。在两种情况下会使用TCP进行传输:如果返回的响应超过512字节(UDP最大只支持512字节的数据)区域传送:主域名服务器向辅助域名服务器传送变化的那部分数据

2021-07-11 16:07:41 295 2

原创 读者-写者问题

package Process;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Semaphore;public class RW { /*** * 读者-写者问题 * 可以有多个读者进行读操作,读的时候,不允许进行写操作 * 写的时候既不能进行其他的写操作,也不能进行读操作。

2021-07-09 19:49:30 113

原创 人间处处是线程不安全---生产者-消费者问题

1. 生产者-消费者问题问题描述:/*** * 生产者-消费者问题 * 临界资源:缓存区! * 生产者:缓存区不满,可以放; * 消费者:缓存区不空,可以拿。 */public static Semaphore mutex = new Semaphore(1); // 互斥量public static int maxCapacity = 10; // 最大容量public static int curCount = 0;

2021-07-09 17:14:23 89

原创 操作系统简述

1. 什么是操作系统?2. 系统调用?3. 进程与线程3.1. 进程与线程的区别?3.2. 进程有哪些状态?3.3. 进程间的通信方式?3.4. 线程间的同步方式?3.5. 进程的调度算法?3.6. 死锁3.6.1. 什么是死锁?3.6.2. 死锁的四个条件?4. 内存管理4.1. 内存管理介绍4.2. 内存管理机制4.3. 快表和多级页表4.4. 分页机制和分段机制4.5. 逻辑地址和物理地址4.6. CPU寻址5. 虚拟内存5.1. 什么是虚拟内存?5.2. 局部

2021-07-09 15:01:14 373

原创 最近最久未使用--LRU算法

1. 什么是LRU?1.1. 简介Least Recently Used: 最近最久未使用算法用途:页面置换算法当要访问的页(数据)不在内存中,从内存中选一个页换出去,把要访问的页加入进来。LRU是一种筛选 置换页 的算法。1.2. 动机如果一个页经常被访问,那么大概率之后还会被访问;而如果一个页很久不被访问,那么大概率之后也不会被访问。1.3. 算法流程 当访问一个页时: // insert 如果 该页在内存中: // exist 移动到队首

2021-07-09 11:38:26 1792

原创 并发与多线程

1. 基础篇1.1. 什么是线程和进程?线程是程序运行的最小单位;进程是资源调度的最小单位,是程序的一次执行过程。一个进程可以包含多个线程,线程共享进程的堆和方法区资源,同时每个线程有自己的程序计数器、虚拟机栈和本地方法栈。比如,在IDEA中,我们可以启动多个程序。打开IDEA就相当于开启一个进程;而运行程序就相当于一个线程。1.2. 线程的生命周期?6种New ==》 Runnable ==》Wait / Time_Wait/ Blocked ==》 Terminated1.3. 什么

2021-07-06 21:27:33 71

原创 创建线程的4种方法

1. 继承Thread类package thread;public class T extends Thread{ public void run(){ System.out.println("这是一个继承了Thread类的线程"); }}2. 实现Runnable接口package thread;public class R implements Runnable{ @Override public void run() {

2021-07-05 14:53:56 291

原创 SpringCloud初探

1. 微服务1.1. 什么是微服务?1.2. 微服务面临的4个问题?2. SpringCloud2.1. SpringCloud与SpringBoot的关系SpringBoot专注于快速方便的开发单个微服务SpringCloud关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个微服务整合并管理起来,为各个微服务提供:配置管理,服务发现,断路器?、路由、微代理,事件总线、全局锁、决策竞选、分布式会话等集成服务。SpringBoot可以离开SpringCloud独立使用、

2021-07-01 17:32:13 94

原创 String+StringBuilder+StringBuffer

1. String1.1. 类图1.2. String类的特性因为String类经常用到,所以JVM在堆中有一个区域存储:字符串常量池。每当创建字符串常量时,JVM会首先检查字符串常量池,如果该字符串已经存在常量池中,那么就直接返回常量池中的实例引用。如果字符串不存在常量池中,就会实例化该字符串并且将其放到常量池中。由于String字符串的不可变性,常量池中一定不存在两个相同的字符串。2. StringBuilder2.1. 类图3. StringBuffer3.1. 类图3.2

2021-06-30 15:25:03 98

原创 SSM开发web再议+404排错

1. 大体流程step 1. 创建数据库step 2. 利用IDEA创建一个maven程序,引入web框架支持step 3. 导入MySQL数据库step 4. 引入相关依赖 pom.xmlstep 5. 编写配置文件5.1 database.properties5.2 mybatis-config.xml5.3 applicationContext.xml5.4 spring-dao.xml5.5 spring-service.xml5.6 spring-mvc.xmlste

2021-06-26 21:46:29 220 1

原创 SpringBoot自定义Redis的模板和工具类

1. 应用 @Autowired RedisUtil redisUtil; @Test public void testUtil() throws JsonProcessingException { redisUtil.set("姓名","灵均"); System.out.println(redisUtil.get("姓名")); User user = new User(1, "灵均"); String jsonUser = new ObjectMapp

2021-06-25 14:38:15 123

原创 MyBatis初探

0. 重点 配置MyBatis环境 CRUD操作 1.使用xml配置文件 2.使用注解 利用Lombok插件简化对象实例的基本操作,e.g.,getter/setter/… 查询结果处理:一对多、多对一 动态SQL:类似多态,可以根据输入的不同条件,生成对应的SQL语句1. 简介1.1什么是MyBatis? MyBatis 是一款优秀的持久层框架 它支持自定义 SQL、存储过程以及高级映射 MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结

2021-06-25 11:06:08 164

原创 SpringBoot自动装配原理

1. 原理初探1.1 自动配置pom.xmlspring-boot-dependencies:核心依赖在父工程中。我们在写或者引入一些SpringBoot依赖的时候,不需要指定版本,就是因为有这些版本仓库。 <parent> <!-- lookup parent from repository --> <groupId>org.springframework.boot</groupId> <art

2021-06-22 17:07:17 85

原创 Synchronized and Lock

1. Synchronized1.1 synchronized关键字synchronized给对象obj进行加锁。线程A给对象obj加锁后,其他线程处于阻塞状态。1.2 Java对象布局对象头:- Mark Word:8字节- Klass Pointer:默认4字节。表示这个实例是属于哪个类的。属性(实例数据)填充数据对象头包含哪些信息?锁状态、GC信息、哈希码等基本信息age,有4bit用来存放S1和S2互移次数,最大15次。sychronized锁 状态 。

2021-06-22 15:46:30 64

原创 HTTPS

1. HTTPS为什么会出现?HTTP(80端口)明文传输。在HTTP的传输过程中,任何人都可能截取、修改或者伪造请求发送。HTTP不支持用户验证。在HTTP在传输过程中不会验证通信方的身份,因此,HTTP信息交换的双方可能会遭到伪装。接收方和发送方都不会验证报文的完整性。综合上述三个原因,认为HTTP传输协议是不安全的。故,引出HTTPS(443端口)。2. 什么是HTTPS?HTTPS:Hypertext Transfer Protocol Secure,即 安全的超文本传输协

2021-06-16 11:20:48 3445 1

原创 Redis

1. NoSQL介绍为什么使用NoSQL(Not Only SQL)?有些数据不需要固定的格式。比如,社交图谱。可以动态变化。什么是NoSQL?Not-Only SQLKey-value键值对:Redis文档型数据库:MongoDB 最像关系型数据库的非关系型数据库列存储数据库:HBase 分布式文件系统图关系数据库:不是存图形,是存关系!社交网络和广告推荐。方便扩展(数据之间没有关系,易扩展)大数据量高性能(Redis:写8w/s,读11w/s)数据类型多样(不需要事先设

2021-06-13 21:01:57 183 1

原创 MySQL与锁

1. 表锁—MyISAM1.1 读锁(共享锁)Session1 对一个表加了读锁之后,则,Session1就不能更新该表和读取其他的表。当Session1对表加读锁之后,其他的Session可以读这个锁,如果想写这个表,则会处于阻塞状态!1.2 写锁(排它锁)Session1 对表加了写锁,可以读写自己加锁的表,但是不能读别的表。其他Session操作这张表的时候,会发生阻塞。1.3 语法加锁语法:lock table 表名 read(write),表名 read(writ

2021-06-09 22:34:35 65

原创 MySQL与索引

1. 索引是什么?MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。即,索引本质上是数据结构。索引的目的是提高查询效率,类比字典。=====>Index:可以简单理解为 排好序的用于快速查找的数据结构!!!(重点!!!)在数据之外,数据库系统还维护这满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据。这样就可以在这些数据结构上实现高效查找算法。这种数据结构,就是索引。删除数据:伪删除,给数据一个标志位,删的话,就置激活位

2021-06-08 15:33:40 64

原创 MySQL与事务

1. 什么是事务?一个或一组sql语句组成一个执行单元,在这个单元中,每个MySQL语句是相互依赖的。2. 存储引擎InnoDBMyISAM事务支持不支持外键支持不支持行表锁行锁(锁特定行,适合高并发)表锁缓存索引和数据索引表空间大小关注点事务性能(偏读,查的快)MySQL默认存储引擎是InnoDB!3. 事务的特性:ACIDA (Atomicity):原子性,一个事务不可再分割,要么都执行要么都不执行。

2021-06-07 20:13:03 84

原创 SSM+MySQL实现简易图书管理系统

1. 项目介绍1.后端框架:SSM Spring + SpringMVC + MyBatis2.前端框架:BootStrap3.数据库: MySQL 5.74.功能描述: 实现简易的图书管理系统 1) 图书展示功能 2) 图书查询功能 3) 图书增加功能 4) 图书修改功能 5) 图书删除功能2. 开发步骤按照三层架构MVC,即Model、View和Controller。2.0 准备工作2.0.1

2021-06-06 20:47:23 934 1

原创 SpringMVC初探

1. 什么是SpringMVC?M-model 模型(dao、service)Dao层:连接数据库(实体)Service层:调用dao层,执行具体地业务V-view 视图(jsp)负责模型展示,一般就是我们看到的用户界面C-controller 控制器(Servlet)接收前端(jsp/html)数据,交给service层处理数据,处理完毕后把返回的数据返回给视图,由视图负责展示2. SpringMVC的执行原理(重点)2.1 原理图2.2 细节主要分为三部分:

2021-06-04 09:08:28 120

原创 Spring初探

1. 介绍1.1 优点Spring是一个开源的免费的框架(容器)Spring是一个轻量级的、非入侵式的框架控制反转(IOC),面向切面编程(AOP)支持事务的处理,对框架整合的支持1.2. 官网https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#spring-core2. IOC(控制反转)2.1 介绍对象的创建、管理和赋值操作,从原来的由程序员控制,交到了Spring框架控制。是

2021-06-03 18:19:15 126

原创 注解与反射

注解元注解负责注解其他注解。常用元注解,如下:// Target 表示我们的注解可以用在哪些地方@Target(value={ElementType.METHOD,})// 方法前// Retention:表示注解在什么地方生效:生命周期// RUNTIME>CLASS>SOURCE@Retention(value = RetentionPolicy.RUNTIME)// Documented: 表示是否将我们的注解生成在JavaDoc中@Documented// In

2021-05-31 15:54:23 60

原创 JVM内存

JVM运行时数据区数据对应存储区域局部变量:基础类型:引用和值都存在栈中;引用类型:对象引用存在栈中,对象存在堆中;成员变量:存在堆中。new的对象:存在堆中。字符串常量:jdk1.7之前是存在方法区的运行时常量池;jdk1.7及之后字符串常量池从方法区中移出,在堆中开辟了一块区域存放字符串常量。区域对应数据:JVM栈每个Java方法在执行的同时会创建一个栈帧用于存储局部变量表,操作数栈,动态链接和方法出口等信息。每一个方法从调用直至结束,就对应一个栈帧从虚拟机栈中入栈到出

2021-04-27 10:07:37 127

空空如也

空空如也

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

TA关注的人

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