自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ping的工作原理

一面试就各种知识盲区,扎心

2021-09-07 21:25:15 1336

原创 如何避免消息队列的消费方重复消费消息(如何保证消息不丢失)

关于使用消费队列需要知道的一些常识性问题。

2021-09-07 21:20:46 2476

原创 MySQL性能优化相关知识整理

MySQL性能优化MySQL的日志文件(1)binlog二进制日志文件:5.1之前,所有的binlog都是基于SQL语句级别的。应用这种格式的binlog进行数据恢复时,如果SQL语句带有rand或uuid函数,恢复出来的数据会出现数据不一致问题。5.1之后,引入了binlog_format参数。这个参数有可能选值statement和row,statement就是之前5.1的格式。row记录则是行更改的情况,可以避免之前出现的数据不一致的问题。做主从复制时,就需要使用row格式。并且还需要借助mysq

2021-08-12 11:53:36 179 1

原创 回溯算法题目练习

回溯算法题目练习给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。class Solution { List<List<Integer>> list = new ArrayList<>(); List<Integer> track = new ArrayList<>(); public List<List<Integer>> combine(int n, int

2021-08-11 09:26:05 176

原创 MySQL相关基础知识整理

MySQL相关基础知识整理1. MySQL备份保证重要的数据不丢失数据转移MySQL数据备份的方式直接拷贝物理文件在可视化工具中手动导出在想要导出的表或库,点击右键,选择备份与导出使用命令行导出 mysqldump# mysql -h 主机 -u 用户名 -p 密码 数据库 表名 物理磁盘位置/文件名mysql -h localhost -u root -p 1234556 school student >D:/a.sql#导出多张表# mysql

2021-08-07 16:35:30 114 1

原创 MySQL相关知识整理和复习

MySQL相关知识整理和复习MySQL数据管理1. 外键---外键---方式1:在创建表的时候,增加约束(比较复杂和麻烦)CREATE TABLE `grade`( `gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '年级id', `gradename` VARCHAR(50) NOT NULL COMMENT '年级名称', PRIMARY KEY(`gradeid`))ENGINE = INNODB DEFAULT CHAR

2021-08-07 16:33:20 89

原创 阻塞队列:BlockingQueue

阻塞队列:BlockingQueue—使用阻塞队列可以解决线程间的通信问题阻塞方法:put,take经典实现场景:生产者消费者模式—>N个线程进行生产,N个线程进行消费,两个角色通过内存缓冲区进行通信。生产者:产生数据的线程消费者:使用数据的线程实现类:ArrayBlockingQueue, LinkedBlockingQueue, PriorityBlockingQueue生产者生产数据放在阻塞队列中class Producer implements Runnable { p

2021-07-27 17:45:22 273

原创 简要精炼概括Spring的启动流程

简要精炼概括Spring的启动流程Spring最基本的功能就是创建对象及管理这些对象之间的依赖关系,实现低耦合,高内聚。还提供通用日志记录,性能统计,安全控制,异常处理等面向切面的能力。还提供了一套简单的JDBC访问实现,提供与第三方数据访问框架集合(如Hibernate,JPA),与各种JavaEE技术整合(如Java Mail, 任务调度等等),提供一套web层框架Spring MVC,而且还能非常简单与第三方web框架集成。Spring的启动过程是IOC容器启动的过程,本质是创建和初始化Bean工

2021-07-27 17:44:05 633

原创 计算机网络的一些常考知识点(持续更新)

计算机网络的一些常考知识点(持续更新)谈谈你对TCP/IP四层模型,OSI七层模型的理解?为了增强通用性和兼容性,计算机网络都被设计成层次结构,每一层都遵守一定的规则。**物理层:**通过网线,光缆等这种物理方式将电脑连接起来。传输的是比特流,0101010100.数据链路层:首先将比特流封装成数据帧的格式,对0,1进行分组。电脑连接起来之后,数据都经过网卡来传输,而网卡定义了全世界唯一的MAC地址。然后再通过广播的形式向局域网内所有的电脑发送数据,再根据数据中MAC地址和自身对比判断是否是发给自己

2021-07-27 17:43:29 191

原创 服务器socket编程

服务器socket编程BIO同步阻塞IO,服务器实现的模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的开销。NIO同步非阻塞IO,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有IO请求时才启动一个线程进行处理。普通socket编程使用线程池并行处理客户请求使用 Java NIO异步处理客户请求单客户服务器实例同时只能响应一个客户请求,客户退出了,服务器就退出了。线

2021-07-27 17:41:33 124

原创 单机、集群和分布式相关概念理解

单机、集群和分布式相关概念理解单机一个系统业务量很小的时候所有的代码都放在一个项目中就好了,然后把这个项目部署在一台服务器上就可以了。整个项目的所有服务都由这台服务器提供。这就是单机结构。但是单机结构的缺点非常明显,当业务量增加到一定程度的时候,单机的硬件资源无法满足业务要求(单机容量问题),此时出现了集群模式。集群单机处理达到瓶颈的时候,将单机复制几份,这样就构成了一个集群。集群中每台服务器就叫做这个集群的一个节点,所有节点构成一个集群。每个节点都提供相同的服务,这样系统的处理能力就相当于提升了好

2021-07-27 17:40:18 432

原创 经典的排序算法

排序算法冒泡排序:每次比较相邻两个数的大小,调整顺序。先比较第一个数和第二个数,调整完顺序再比较第二个和第三个,再比较第三个和第四个,依次比较,比较完第一轮将会把最大的数排序到最后。每一轮比较完就会把一个大的数冒泡到最后,冒泡好的数据将不用再排序比较。public static void bubbleSort(int[] arr) { for(int i = 0; i < arr.length - 1; i++) { for(int j = 1; j < arr.l

2021-07-23 23:03:37 128 1

原创 比较经典的几道链表相关算法题

思路:使用容量为K的最小堆优先队列,把链表的头节点都放进去;然后出队当前优先队列中最小的,放入链表;再判断出队的那个节点是否有下一个节点,有,就将出队那个节点的下一个入队,再出队当前优先队列中的最小的,直到优先队列为空。Class Main { public ListNode mergeKLists(ListNode[] lists) { if(lists.length == 0) return null; ListNode dummy = new ListNode

2021-07-22 22:40:37 120

原创 长地址,短地址与重定向

长地址,短地址与重定向1. 为什么需要将长地址映射成短地址一个长URL地址(PATH,各种参数和追踪标识)会很长,会受到字数限制,导致粘贴地址时漏掉部分数据,因此我们需要使用短地址。2. 实现原理① 将长地址与一个整数建立映射(一对多)可以使用int64,保存映射关系。可以使用MySQL数据库,如果为了更好的并发存储,还可以使用NoSQL库或者数据分库分表。CREATE database yang;USE yang;CREATE TABLE 'yang_table'( 'id' bigin

2021-07-21 11:26:09 1469

原创 Spring&Spring MVC&Mybatis框架相关知识点

Spring&Spring MVC&Mybatis框架相关知识点Spring是一个轻量级的IOC和AOP容器框架。是为JAVA应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需关注业务需求。常见的配置方式有:基于XML的配置,基于注解的配置。主要由几个模块组成:Spring core: 核心类库,提供IOC服务Spring context:提供框架式的Bean访问方式Spring AOP:AOP服务Spring DAO:对JDBC的抽象,简化了数

2021-07-19 11:33:08 284

原创 Java面试题(含答案)

1.请说说java中类的加载过程?类加载机制:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被jvm直接使用的Java类型。类加载:将类的.class文件中的二进制数据读入到内存,将其放入到运行时数据区的方法区内,然后在堆区创建一个java.lang.class对象,用来封装类在方法区内的数据结构。类的加载最终产品是位于堆区中的class对象,class对象封装了类在方法区类的数据结构,并且向我们提供了访问方法区内的数据结构的接口。类加载过程:(1)

2021-07-15 17:22:28 229

原创 Redis随笔记录

Redis随笔记录选用redis原因?传统关系型数据类已经不能适应于所有场景了,比如秒杀扣减库存,App首页的访问流量高峰等等,都容易让数据库崩溃,所以需要引入缓存中间件。目前比较常用的缓存中间件由redis和memcached,结合其优缺点,最终选择redis。redis的数据结构?(了解其使用场景)redis自身是一个map类型的存储方式,其中所有的数据都是采用key:value的形式存储我们讨论的数据类型只的是存储的数据类型,也就是value部分的类型,key部分永远都是字符串

2021-07-11 23:13:58 142

原创 谈谈对Java虚拟机的认识(二)

谈谈对Java虚拟机的认识(二)运行时数据区程序计数器:线程私有,记录当前线程的执行地址①CPU需要不停的切换各个线程,这时候切换回来以后,就需要知道指着从哪开始继续执行;JVM的字节码解释器就需要通过改变PC寄存器的值来明确下一条应该执行什么样的字节码指令。(存储字节码指令地址的作用)②所谓的多线程是,在一个特定的时间段内只会执行其中某一个线程的方法,CPU会不停的做任务切换,这必然导致经常中断和恢复,那怎样保证分毫无差呐-----因此,为了能够准确记录各个线程正在执行的当前字节码的指令地址

2021-07-10 09:38:51 130 1

原创 谈谈对JAVA虚拟机的认识

谈谈对JAVA虚拟机的认识(一)JVM组成JVM由类加载子系统,运行时数据区,执行引擎以及本地方法接口组成。Java源文件经过编译器,编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行。JVM class文件Java编译器先把Java代码编译成存储字节码的class文件,再通过class文件进行类加载class类文件的结构class文件采用一种类似C语言结构体的伪结构来存储数据。这种伪结构只有两种数据类型:无符号数和表。其实class文件本质上就是一张表。无符号

2021-07-09 09:10:37 115

原创 JVM GC

JVMJVM组成JVM由类加载子系统,运行时数据区,执行引擎以及本地方法接口组成。JVM运行原理java源文件经编译器,编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行。Java垃圾回收区域Java垃圾回收只针对堆和方法区的内存程序计数器,虚拟机栈,本地方法栈的内存随线程产生,随线程而灭如何确定垃圾引用计数法统计有多少人引用了,如果0人引用,则判断为垃圾。缺点:引用很多时,消耗太大;A引用B,B引用A,其实A,B都是垃圾,但是他们引用永远都是1,

2021-07-08 10:52:39 101

原创 Java中锁的种类

Java中锁的种类公平锁公平锁是指多个线程按照申请的顺序来获取锁。如果阻塞队列中有线程了,那么新进入竞争的线程一定要在休眠队列上排队。非公平锁非公平锁指的是多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程先获得锁。这有可能会造成优先级反转或者饥饿现象。新进入的线程是无视阻塞队列直接去抢占锁的。因此占有锁的线程放弃锁后,唤醒线程需要时间,此时被唤醒的线程就会与新进入的线程争锁。注意:对于Java ReentrantLock 而言,通过构造函数指定该锁是否是公平锁,默认是

2021-07-07 16:31:30 70

原创 Mysql主从同步原理

Mysql主从同步原理一句话概括就是:slaver读取master的binlog并顺序执行MySQL的主从复制是一个异步复制过程。在master于slave之间实现整个主从复制的过程是由三个线程参与完成的。其中两个线程(SQL线程和IO线程)在slave端,另一个线程(IO线程)在master端。要实现master的主从复制,首先必须打开master端的binlog记录功能,否则就无法实现。因为整个复制过程实际上就是slave从master端获取binlog日志,然后再在slave上以相同的执行顺序

2021-07-07 16:29:50 504

原创 数据库的索引

数据库的索引引入B树和B+树(B树,B+树都是平衡树)这两种实现索引方式最常见Mysql的innodb用B+树做索引Mysql的myisam的索引有两种:主索引和辅助索引,主索引使用具有唯一性的键值,辅助索引键值可以重复。和innodb不同的是,最后的叶子节点存的是地址,而innodb最后的叶子节点村的是完整的数据。InnoDB聚簇索引平时建表的时候都会为表加上主键, 在某些关系数据库中, 如果建表时不指定主键,数据库会拒绝建表的语句执行。一个没加主键的表,它的数据是无序的放置在磁盘存储上,一

2021-07-06 11:17:45 69

原创 数据库基础知识学习

关系型数据库和非关系型数据库非关系型数据库的优势:1 非关系型数据库是基于键值对的,可以想象成表中的主键和值的对应关系,并且不需要经过sql层的解析,因此性能非常高。2 可扩展性同样也是基于键值对,数据之间没有耦合性,所有非常容易水平扩展。关系型数据库的优势:1 复杂查询可以用sql语句,可以在一个表及多个表之间做非常复杂的数据查询。2 事务的支持----安全性能高Innodb和Myisam引擎区别:1 innodb是事务安全的,myisam是非事务安全的2 innodb是行级锁,myi

2021-07-05 22:12:06 110

原创 回溯法

魏老师的回溯课堂

2021-04-23 11:22:11 2356 3

空空如也

空空如也

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

TA关注的人

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