自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL面试知识汇总

当某个SQL在从库中执行的时间稍长,或者由于某个SQL要进行锁表就会导致主从同步延迟,主库的SQL大量积压,未被同步到从库里。就会导致主从不一致,即主从延迟。原因:当数据库主库有较大更新并发操作时,可能会导致主从同步延迟,因为。从库里面读取binlog的线程只有一个。第一步:在线双写,查询走老库。第二步:在线双写,查询走新库。

2024-09-27 18:26:35 743

原创 跟着B战学习JAVA面试八股文

发现创建的队列为LinkedBlockingQueue,是一个无界阻塞队列(最大是21亿个任务),如果使用该线程池执行任务,如果任务过多就会不断的添加到队列中,任务越多占用的内存就越多,最终可能耗尽内存,导致OOM。另外,不管是公平锁还是非公平锁,一旦没竞争到锁,都会进行排队,当锁释放时,都是唤醒排在最前面的线程,所以非公平锁只是体现在了线程加锁阶段,而没有体现在线程被唤醒的阶段。ReentrantLock是可重入锁,不管是公平锁,还是非公平锁都是可重入。首先不管是公平锁和非公平锁,他们的。

2024-09-24 19:49:06 1005

原创 redis常见问题

内存淘汰策略是允许reids在内存资源紧张时,根据一定策略主动删除一些键值对,已释放内存空间并保持系统的稳定性。缓存击穿:热点数据失效,大量请求打到DB。缓存雪崩:大规模缓存失效,或者缓存宕机。缓存穿透:查询不存在的数据。

2024-09-20 18:57:31 528

原创 Redis学习笔记

redis是一个基于内存的,key-value键值对的、支持持久化的非关系型数据库。并且提供了非常丰富的数据结构和功能特性。

2024-09-20 13:47:10 561

原创 阿里1688一面总结

发布-订阅模式,即当实验发生变更时,就发出一个变更事件,然后,每台机器感知到这个变更事件后,清空本地缓存,触发reload操作。为了避免大量请求打到DB,可以对查询请求进行加锁,保证相同的实验只有一个线程去查,然后更新到缓存中,其他的请求,走缓存查询结果。运维团队将扩缩容事件投递在kafka中,容量平台起一个线程去订阅变更事件,当有事件时,更新公共缓存中的数据。kafka单broker的消息是可以保证顺序性的,但是kafka集群的消息实际是无序的。首先,面试官进行对业务进行介绍,然后,候选人进行自我介绍。

2024-09-19 15:53:35 756

原创 JAVA-集合相关

为什么计算hash值是,是将hash地址的值右移16取异或?核心目的:减少hash冲突的概率。hashMap什么时候扩容?大于当前容量的75%时,执行扩容操作当 HashMap 元素个数达到扩容阈值,默认是 12 的时候,会触发扩容。默认扩容的大小是原来数组长度的 2 倍,HashMap 的最大容量是 Integer.MAX_VALUE,也就是 2^31-1。

2024-09-18 14:08:52 417

原创 频控限流设计---云信方案

频控限流是一种非常重要的技术手段,它主要用于控制对服务器或服务的访问频率,以防止服务器因请求过多而崩溃,同时也能够保护系统不会因为过载而影响服务质量。频控限流通常用于等多种场景。

2024-09-14 13:27:41 338

原创 JAVA相关知识

在Java中,ThreadLocal 为每个线程提供了一个独立的变量副本,这意味着每个线程访问自己的 ThreadLocal 变量时,都是访问自己的副本,不会与其他线程共享。内存分配:ThreadLocal 的内存分配是在线程的栈上进行的,每个线程都有自己的栈,因此 ThreadLocal 变量的存储也是线程独有的。线程隔离:每个线程通过自己的 ThreadLocalMap 存储数据,因此每个线程都有自己独立的副本,实现了线程隔离。事务处理:在处理事务时,每个线程可以有自己的事务对象,互不干扰。

2024-09-13 19:30:10 538

原创 八股文知识汇总(常考)

八股文知识汇总(常考)语言特性相关JAVA知识JDK动态代理为什么只能代理有接口的类?说一下对象创建的过程?wait和notify为什么要在sync代码块里面?ThreadLocal是什么?他的实现原理是什么?ThreadLocal会出现内存泄露吗?String、StringBuilder和StringBuffer的区别ArrayList的自动扩容机制?为什么重写equals方法必须重写hashCode方法?JAVA反射的优缺点?集合相关HashMap如何解决哈希冲突?Ha

2024-09-13 17:01:10 2868

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

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

2024-01-18 17:15:31 1240

原创 提升项目TPS优化手段

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

2022-12-28 16:05:36 3276

原创 Git常用命令

git上传代码到github

2022-02-21 19:55:41 382

原创 数据库开发

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

2022-01-26 21:05:03 1027

原创 Servlet技术

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

2022-01-23 19:15:15 336

原创 版本控制系统

版本控制系统分支模型Git

2022-01-19 11:00:09 325

原创 Java进阶之设计原则

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

2021-12-27 21:03:27 226

原创 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 441

原创 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 185

原创 议equals与==

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

2021-08-23 15:21:29 121

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

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

2021-08-02 22:15:39 117

原创 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 119

原创 最不全排序算法

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 145

原创 设计模式的七大原则

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

2021-07-16 15:53:43 515

原创 MySQL数据库索引比较

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

2021-07-15 11:32:08 219

原创 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 239

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

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

2021-07-11 16:07:41 378 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 149

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

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

2021-07-09 17:14:23 121

原创 操作系统简述

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 411

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

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

2021-07-09 11:38:26 1839

原创 并发与多线程

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

2021-07-06 21:27:33 87

原创 创建线程的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 314

原创 SpringCloud初探

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

2021-07-01 17:32:13 131

原创 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 118

原创 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 304 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 141

原创 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 177

原创 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 121

原创 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 75

原创 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 3660 1

空空如也

空空如也

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

TA关注的人

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