- 博客(51)
- 收藏
- 关注
原创 kafka初识
在数据驱动的时代,实时数据流转已经成为企业运营的关键。Apache Kafka,作为一个高吞吐量、可扩展、分布式的流处理平台,为处理大规模实时数据提供了强有力的支持。基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等。
2024-03-12 09:15:40
838
原创 缓存框架Ehcache的介绍,且与Springboot的集成
缓存技术在现代软件开发中扮演着越来越重要的角色,作为一个成熟的开源Java缓存库,Ehcache在提高应用性能、减少数据库负载、加速用户体验方面占有一席之地。本篇博客将全方位多角度地深入理解Ehcache,帮助大家把握其核心功能、实现原理及应用实例。Ehcache是一个纯Java的进程内缓存框架,具有速度快、简单、可伸缩、可配置及提供多级缓存功能等优点,因此成为了许多开发者的首选缓存方案。
2024-01-14 21:04:21
1121
原创 麻将之胡牌
基础胡牌:市面上的麻将相关游戏应该有更加高效的判断算法,这里实现一种比较容易理解,回溯的方式来依次遍历所有可能性,以此看看有没有符合胡牌牌型。用数组来表示各种类型的牌,即下标0-33分为代表1-9万,1-9筒,1-9条,以及东西南北中发白。最近打麻将有点频繁(有点罪恶),结合得发一篇博客的情况,因此这里小水一篇文章,用回溯的方式实现一下胡牌的判定。在回溯过程中,每遍历一张牌,会先尝试将其作为对子,如果不符合,再尝试作为刻子,或者顺子。基础胡牌:三副刻子或者顺子加上一对子,即可胡牌。
2023-11-26 21:16:43
656
原创 双亲委派机制
当一个Hello.class要被加载时,**在不考虑自定义类加载器的情况下,**首先会在AppClassLoader中检查是否已经被加载过了,如果没有被加载过,会交由上层父加载器进行处理,同样,父加载器也是先判断是否已经被加载过了,如果没有进一步交由上一层类加载器,直到BootstrapClassLoader,此时已经没有类加载器了,这时候考虑自己是否能够加载,如果无法加载,就会下沉交由子加载器,一直到最底层。通过前面的知识,我们不妨来思考思考。,奇怪,main方法不都有吗。那么为什么要有这种机制呢?
2023-01-31 10:39:13
543
原创 Failed to install the following Android SDK packages as some licences have not been accepted.
Failed to install the following Android SDK packages as some licences have not been accepted.
2023-01-06 17:25:55
1027
1
原创 进程间的通信方式(六种)
进程之间的通信参考文章:https://blog.csdn.net/qq_34827674/article/details/107678226前提知识:每个进程都有自己的用户空间,而内核空间是每个进程共享的。因此进程之间想要进行通信,就需要通过内核来实现。管道:管道是最简单,效率最差的一种通信方式。管道本质上就是内核中的一个缓存,当进程创建一个管道后,Linux会返回两个文件描述符,一个是写入端的描述符,一个是输出端的描述符,可以通过这两个描述符往管道写入或者读取数据。如果想要实现两个进程通过
2022-05-12 11:57:31
60981
5
原创 集合和数组的正确转换方式(可能有你不知道的坑哦)
文章目录一、集合转数组二、数组转集合1. Arrays.asList():2. 正确的转换方式:一、集合转数组《阿里巴巴 Java 开发手册》中写道:使用集合转数组的方法,必须使用集合的toArray(T[] array)方法,并且传入的是类型一致,长度为0的空数组。toArray(T[] array)方法的参数是一个泛型数组,如果toArray方法中没有传递任何参数,那么方法返回值是一个Object数组。List<String> strList = new ArrayList<&
2022-05-01 15:38:48
6639
1
原创 fail-fast 机制是什么?(详解)
1. 介绍:fail-fast:快速失败系统,通常设计用于停止有缺陷的过程,这是一种理念,在进行系统设计时优先考虑异常情况,一旦发生异常,直接停止并上报。举一个最简单的fail-fast例子:public int divide(int divisor, int dividend){ if (dividend == 0) { throw new RuntimeException("被除数不能为0"); //这里就是fail-fast的体现 } return
2022-04-30 17:19:10
8339
1
原创 Mysql详解——InnoDB的数据存储结构
更多关于数据库的知识可点击我的主页哦文章目录一、InnoDB数据存储结构1. 数据库的存储结构:页1.1 磁盘和内存交互的基本单位:页1.2 页的上层结构2. 页的内部结构2.1 文件头和文件尾(1)文件头:(2)文件尾:2.2 用户记录、最大最小记录、空闲空间行格式的记录头信息:最大最小记录:2.3 页目录、页头(1)页目录:(2)页头:3. 行格式3.1 Compact变长字段长度列表NULL值列表记录头信息:记录的真实数据:3.2 Dynamic和Compressed行溢出:3.3 Redundan
2022-04-27 11:22:02
896
原创 Mysql详解——索引优化
本篇文章是对Mysql索引的创建以及优化进行一个介绍,关于索引的底层原理可以看我另一篇文章:Mysql详解——索引详解文章目录一、索引的创建和设计原则1. 索引的声明和使用1.1 索引的分类:1.2 索引的创建:在创建表时创建索引:在已经存在的表上创建索引:1.3 索引的删除:2. MySQL8.0中索引新特性2.1 支持降序索引2.2 支持隐藏索引3. 索引的设计原则3.1 数据准备:3.2 哪些情况适合创建索引1. 字段值有唯一性的限制2. 频繁作为WHERE查询条件的字段3. 经常GROUP BY和
2022-04-26 21:02:25
3801
1
原创 Mysql详解——索引详解
文章目录一、索引1. 索引的介绍优点:缺点:2. InnoDB中索引的推演2.1 没有索引之前的查找在一页中查找:在很多页中查找:2.2 索引的设计1. 一个简单的索引设计方案2. InnoDB中的索引方案:**(1)第一次迭代** :目录项记录的页(2)第二次迭代:多个目录项记录的页(3)第三次迭代:目录项记录的目录页(4)B+Tree:2.3 常见索引概念:1. 聚簇索引:2. 非聚簇索引:3. 联合索引:2.4 InnoDB的B+树的补充说明:1. 根页面位置往年不动2. 内节点中目录项记录的唯一性3
2022-04-26 20:45:09
1868
3
原创 Mysql详解——范式
文章目录一、数据库的设计规范1. 范式1.1 第一范式1.2 第二范式1.3 第三范式1.4 小结2. 反范式化3. 巴斯范式4. 第四范式5. 第五范式一、数据库的设计规范1. 范式在关系型数据库中,关于数据库表设计的基本原则,规则被称为范式,范式的英文名称为Normal Form,简称NF。要想设计一个合理的关系型数据库,就需要满足一定的范式。目前关系型数据库有六种常见范式,按照范式级别,从低到高有:第一范式(1NF),第二范式(2NF),第三范式(3NF),巴斯科德范式(BCNF),第四范式(
2022-04-26 20:34:07
5072
1
原创 Mysql详解——事务与日志
一、事务基本知识1. 事务基本概述1.1 存储引擎支持情况通过 SHOW ENGINES 命令来查看MySQL支持的存储引擎有哪些,以及这些存储引擎是否支持事务。从下图可知,在MySQL中只有InnoDB支持事务。1.2 基本概念事务:一组操作逻辑单元,使数据从一个状态变为另一个状态。事务执行的原则:保证事务中的操作作为一个工作单元来完成,要么整个事务被提交,要么放弃所有的修改,回滚到最初的状态。1.3 事务的ACID特性原子性(atomicity):原子性指事务是不可分割的工作单
2022-04-24 09:59:19
2390
1
原创 Java篇 之 序列化与反序列化
一、什么是序列化和反序列化序列化:指把内存中的Java对象,通过某种方式存储到磁盘中或者传递给其他网络节点,通俗来说就是将对象转化为二进制串。反序列化:把磁盘中的对象数据或者网络节点上的对象数据,恢复成Java对象模型的过程。通俗来说就是将序列化生成的二进制串转化为对象。二、为什么要进行序列化在分布式系统中,微服务之间进行数据传输,就得将对象转换为二进制形式。服务器钝化:如果服务器发现某些对象好久没活动了,服务器会把这些内存中的对象持久化在磁盘中;如果服务器发现某些对象需要活动时,先去内存找,找
2021-10-21 16:11:30
1389
原创 一篇文章搞定IO流(超级详细!!!)
文章目录一、IO流的分类:(1)根据流向分为输入流和输出流:(2)根据传输数据单位分为字节流和字符流:(3)根据流的角色分为节点流和处理流:二、IO流的四大基类(1)InputStream(2 )Reader(3)OutputStream(4)Writer三、节点流(1)FileReader(2)FileWriter(3)FileInputStream& FileOutStream四、处理流(1)缓冲流(2)转换流(3)输入输出流(4)打印流(5)数据流(6)对象流(7)随机存取文件流一、IO流的
2021-10-21 16:04:03
771
原创 一篇文章搞定File类
文章目录一、File的构造方法:二、File的相关方法和属性三、File小技巧一、File的构造方法:示例://不使用Java提供的分隔符,以下是针对windows平台File file1 = new File("D:\\IO\\a.txt");System.out.println(file1); //输出:D:\IO\a.txt//使用Java提供的分隔符File file2 = new File("D:" + File.separator + "IO" + File.separa
2021-10-14 20:42:54
366
2
原创 一文搞定深拷贝和浅拷贝!!!!
本文目录1. 创建对象的5种方式:(1)通过new关键字(2)通过Class类的newInstance方法(3)通过Constructor类的newInstance方法(4)利用clone方法(5)反序列化2. clone方法3. 浅拷贝4. 深拷贝实现深拷贝的两种方式:(1)让每个引用类型属性都重写clone方法(2)利用序列化1. 创建对象的5种方式:(1)通过new关键字Object obj = new Object()(2)通过Class类的newInstance方法这种方式默认时调用类的
2021-10-14 15:52:46
356
原创 一篇文章学习Spring5!!
本篇文章是学习完b站尚硅谷Spring5所做的笔记,希望对大家有所帮助!一、Spring框架概述Spring 是轻量级的开源的 JavaEE 框架。Spring 可以解决企业应用开发的复杂Spring 有两个核心部分:IOC 和 Aop(1)IOC:控制反转,把创建对象过程交给 Spring 进行管理(2)Aop:面向切面,不修改源代码进行功能增强Spring 特点 :(1)方便解耦,简化开发(2)Aop 编程支持(3)方便程序测试(4)方便和其他框架进行整合(5)方
2021-09-03 11:02:54
11682
9
原创 SpringMVC知识详解,包含重点源码分析!!!
本篇文章是对b站尚硅谷SpringMVC2021的学习笔记,希望对大家的学习有所帮助!!!一、SpringMVC简介1、什么是MVCMVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分M:Model,模型层,指工程中的JavaBean,作用是处理数据JavaBean分为两类:一类称为实体类Bean:专门存储业务数据的,如 Student、User 等一类称为业务处理 Bean:指 Service 或 Dao 对象,专门用于处理业务逻辑和数据访问。V:View,视图层,指工程中的
2021-09-03 10:40:39
2640
4
原创 计算机组成原理——存储系统(超详细,必看!!)
本篇文章是对王道考研的2021计算机组成原理学习笔记,希望对大家有所帮助。三、存储系统3.1 基本概念知识总览:1.存储器的层次结构主存——辅存:解决了主存容量不够的问题。Cache——主存:解决了主存与CPU之间速度不匹配的问题。2.存储器的分类(1)按层次进行分类(2)按传输介质进行分类半导体:主存、Cache磁表面存储器: 磁盘,磁带光存储器(3)按存取方式进行分类相联存储器:可以按照内容检索到存储位置进行读写。随机存取存储器(RAM):读写任何一个存储.
2021-07-26 21:42:48
30353
3
原创 计算机网络总结——运输层
本篇文章是对 湖科大计算机网络微课堂 中运输层的笔记总结,希望对大家有所帮助。文章目录5.1运输层概述5.2运输层端口号、复用与分用的概念1.端口号2.发送方的复用和接收方的分用3.应用层常用协议使用的端口号4.举例说明端口号的作用5.3 UDP和TCP的对比5.4 TCP的流量控制5.5 TCP的拥塞控制1.基本概念2.拥塞控制算法(1)拥塞窗口和慢开始门限(2)慢开始算法(3)拥塞避免算法(4)快重传(5)快恢复算法5.6 TCP超时重传时间的选择5.1运输层概述在计算机网络中进行通信的真正实.
2021-07-26 21:06:09
2204
原创 计算机网络总结——网络层
4.1网络层概述网络层的主要任务是实现网络互连,进而实现数据包在各网络之间的传输。要实现网络层的任务,需要解决以下问题:网络层向运输层提供怎样的服务(可靠传输还是不可靠传输)。网络层寻址问题路由选择问题因特网:是目前全世界用户最多的互联网,它使用TCP/IP协议栈。由于TCP/IP协议栈中的网络层使用网际协议IP,它是整个协议栈的核心协议,因此在TCP/IP协议栈中网络层常称为网际层。4.2网络层提供的两种服务:1.面向连接的虚电路服务核心思想:可靠通信应由网络来保证当两台计算机
2021-07-26 17:42:05
566
原创 计算机网络总结——数据链路层
3.1数据链路层概述链路:从一个结点到相邻节点之间的一段物理线路,而中间没有其他的结点。数据链路:是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。数据链路层传输的数据包称为帧,数据链路层以帧为单位传输和处理数据。数据链路层需要探讨的问题:(1)对于使用点对点信道的数据链路层来说,数据链路层的三个重要问题:封装成帧:数据链路层给网络层交付的网络协议数据单元加上帧头和帧尾,该操作称为封装成帧。以下是以太网版本2的MAC帧格式:差错检测:发送方将封转好的帧通过物
2021-07-26 17:15:29
902
原创 计算机网络总结——物理层
2.1物理层的基本概念物理层要解决的问题:如何在各种传输媒体上实现0和1的比特流传输,进而为数据链路层提供透明传输比特流的服务。计算机网络中,用来连接各种网络设备的媒介有很多,大致可以分为两类:物理层为了解决在各种传输媒介上传输比特0和1的问题,主要任务有以下四个方面:机械特性:指明接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置。电气特性:指明接口电缆的各条线上出现的电压范围。功能特性:指明某条线上出现的某一电平的电压表示何种意义。过程特性:指明对于不同功能的各种可
2021-07-26 16:33:39
409
原创 01 基础架构:一条SQL语句是如何被执行的?
很多时候,我们对于数据库的使用,仅仅停留在输入一条mysql语句,返回一个结果集,却不知道这条语句在MYSQL内部是怎么实现的,所以本篇将介绍MYSQL最基本的架构组成,通过对MYSQL的拆解,使得我们对MYSQL能有一个更好的认识。 下图是MYSQL的基本架构示意图: 大体来说,MYSQL可以分为 Server层 和 存储引擎层 两部分。 Server层包括连接器,查询缓存,分析器,优化器,执行器等,涵盖了MySQl大部分核心服务功能,以及所有的内置函数(如日期,时间,数学和加密函数)。
2021-05-18 20:25:29
208
1
原创 请求及响应时出现中文乱码问题
(1)处理响应的乱码:response.setContentType("text/html;charset=UTF-8");(2)处理请求时的乱码(请求有两种方式:POST方式和 GET方式)POST方式请求:request.setCharacterEncoding("UTF-8");GET方式请求:name=new String(name.getBytes("ISO-8859-1"),"UTF-8");...
2021-05-09 11:13:30
198
原创 org.apache.tomcat.util.modeler.BaseModelMBean.invoke Exception invoking method [manageApp]
原因:web.xml文件中Servlet路径前面缺少 /
2021-05-07 22:04:51
744
转载 catalina.home和catalina.base
Tomcat目录结构如下bin (运行脚本)conf (配置文件)lib (核心库文件)logs (日志目录) temp (临时目录)webapps (自动装载的应用程序的目录)work (JVM临时文件目录[java.io.tmpdir])其中只有bin和lib被多个tomcat示例共用,其它目录conf、logs、temp、webapps和work 每个Tomcat实例都拥有独自一份。所以:catalina.home(安装目录):指向公用信息的位置,就是bin和lib的父目录。catalin
2021-05-02 10:22:56
1771
原创 HTTP Status 500 - Error instantiating servlet class com.oymn.web.LoginServlet
记一次找了很久的错误报错场景是点击注册登录按钮后进行登录,但是点击后却报500错误,报错原因把我误导到servlet类,但是经过多次检查没发现serlvet类的错误,上网查询后都说是web.xml文件路径问题或者是包名写错问题,但是一再确认没有错误,接着看到报错中显示的代码行数对应代码是private UserService userService = new UserServiceImpl();但是可以之前在测试类中是没有问题的,经过多次上网和思考,误打误撞才发现lib下的各种jar包需要放在WEB-
2021-05-01 21:54:47
1476
1
原创 init datasource error, url: jdbc:mysql://localhost:3306/book?characterEncoding=utf8&useSSL=false&ser
错误信息:init datasource error, url: jdbc:mysql://localhost:3306/book?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=truejava.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)错误原因
2021-05-01 12:35:53
1782
原创 Loading class `com.mysql.jdbc.Driver‘. This is deprecated. The new driver class is `com.mysql.cj.jdb
报错信息:Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.com.mysql.cj.jdbc.Conne
2021-04-02 10:29:11
120
原创 java.lang.ClassCastException: class com.mysql.cj.jdbc.ConnectionImpl cannot be cast to class com.sun
报错:java.lang.ClassCastException: class com.mysql.cj.jdbc.ConnectionImpl cannot be cast to class com.sun.jdi.connect.spi.Connection (com.mysql.cj.jdbc.ConnectionImpl is in unnamed module of loader 'app';com.sun.jdi.connect.spi.Connection is in module jdk
2021-04-02 10:25:52
4273
2
原创 Establishing SSL connection without server‘s identity verification is not recommended. According to
报错:Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existin
2021-04-02 09:34:43
151
原创 试题 基础练习 十六进制转八进制
问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输
2021-02-06 17:31:48
576
原创 试题 基础练习 字母图形
问题描述 利用字母可以组成一些美丽的图形,下面给出了一个例子:ABCDEFGBABCDEFCBABCDEDCBABCDEDCBABC 这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。输入格式 输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。输出格式 &
2021-02-06 11:54:43
267
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人