自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 30分钟掌握沧湖一体化:flink+hudi(干货,建议收藏)

通过 CDC 进入到 Kafka 的数据除了落一份到离线数据仓库的 ODS 层之外,会同时按照实时数据仓库的链路,从 ODS->DWD->DWS->OLAP 数据库,最后供报表等数据服务使用。从架构图上,可以看到有一步数据修正 (重跑历史数据) 的动作,之所以有这一步是考虑到:有可能存在由于口径调整或者前一天的实时任务计算结果错误,导致重跑历史数据的情况。–它以时间轴的形式维护了在数据集上执行的所有操作的元数据,该时间轴允许将数据集的即时视图存储在基本路径的元数据目录下。时间轴上的操作类型包括。

2024-05-29 11:24:09 624

原创 2019年大厂Java面试真题合辑放送

49、假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如何将它们全部找出来?11、MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据?38、redis 主从复制如何实现的?43、在选择缓存时,什么时候选择 redis,什么时候选择 memcached?36、什么是缓存穿透?34、使用过 Redis 分布式锁么,它是怎么实现的?50、使用 Redis 做过异步队列吗,是如何实现的?

2024-05-29 10:30:55 400

原创 2018年最新Java面试题及答案整理

ArrayList和Vector都是用数组实现的,主要有这么三个区别:Vector是多线程安全的,线程安全就是说多线程访问同一代码,不会产生不确定的结果。而ArrayList不是,这个可以从源码中看出,Vector类中的方法很多有synchronized进行修饰,这样就导致了Vector在效率上无法与ArrayList相比;两个都是采用的线性连续空间存储元素,但是当空间不足的时候,两个类的增加方式是不同。Vector可以设置增长因子,而ArrayList不可以。Vector是一种老的动态数组,是线程同步的,

2024-05-29 10:30:24 233

原创 10分钟搞定OAuth2

userMapper.getUserBaseInfo方法就是一个dao,用来查询数据库的用户信息,因为WebSecurityConfig配置文件,对密码配置了BCryptPasswordEncoder加密,但是数据库存储的是md5生成的密码,所以我们需要对密码进行等价加密。注意:secret是保存在服务器端的,jwt的签发生成也是在服务器端的,secret就是用来进行jwt的签发和jwt的验证,所以,它就是你服务端的私钥,在任何场景都不应该流露出去。载荷就是存放有效信息的地方。

2024-05-29 00:38:07 531

原创 108道互联网大厂Java核心面试真题最新出炉 你能会几道?

STW是什么意思 CMS和G1分别在哪些时期发生的STW 有没有可能避免STW的情况并行和并发的区别说一下sync锁和lock锁的区别 他们都是为了保证什么 除了这两种方式还可以怎么优雅的保证程序运行正常sync锁的底层原理为什么轻量级锁就比重量级锁要快程运行到一半,cpu切换到另一个线程,之后再切换回来执行,是怎么保证在上一次执行点执行的sync锁的锁升级和lock锁的锁降级的区别lock锁的锁降级的优化点是什么,为什么不可以锁升级呢 要是发生了锁升级会导致什么。

2024-05-29 00:37:35 835

原创 (Java)数据结构之队列(Queue),含有三个OJ题(用队列实现栈,用栈实现队列,实现一个最小栈)

/队尾元素的下标为rear-1,如果rear为0,则下标就为-1了,所以需要(rear-1+n)% n。4. 删除栈顶元素:哪一个队列不为空,就将这个队列的元素往另一个为空的队列里放,直到不为空的队列剩余一个元素,最后再将这个元素出队列,用一个变量接收并返回。3. 插入元素:当两个队列都为空的时候,随便选一个队列往里插入元素,当有一个队列不为空的时候,往这个不为空的队列里插入元素。2. 入栈:第一个元素给两个栈都添加,下来的元素如果小于等于s2的栈顶元素,则将元素入栈s2,所有元素都入栈s1。

2024-05-29 00:16:08 899

原创 # git复习:基本命令使用与分支

进行回滚git reset --hard “版本号” //从git log中找到版本号回滚到之前的版本号,其实可以回到去,但此时使用git log会找不到之前的版本号,需要使用下面的命令git reflog工作区间切换命令让未放入暂存区间的红色文件切换回原来已经提交的版本(也就是后退到最新提交的版本)git checkout 文件名让暂存的文件回到未暂存的状态(当需要更新暂存的时候使用)git reset Head 文件名主干与分支其实要知道git生成一个个版本,

2024-05-29 00:15:37 416

原创 数据结构(三)-- 栈、队列

人类最熟悉的一种表达式1+2,(1+2)*3,3+4 *2+4等等都是中缀表示法。对于人们来说,也是最直观的一种求值方式,先算括号里的,然后算乘除,最后算加减,但是,计算机处理中缀表达式却并不方便,因为没有一种简单的数据结构可以方便从一个表达式中间抽出一部分算完结果,再放进去,然后继续后面的计算(链表也许可以,但是,代价也是不菲)。

2024-05-28 21:19:22 903

原创 六十三、Spark-读取数据并写入数据库

注:pom依赖在业务实施中是极其重要的一环,相当于配置文件,例如可能需要的 jar 包,可能需要的 Scala 语言版本都在此处进行配置 等等。

2024-05-28 20:26:19 323

原创 八、springboot 简单优雅的通过docker-compose 构建

还有我查看项目发现竟然没有配置Redis,但是Redis 使用也是很广泛的,我之前的文章有详细的讲解springboot项目怎么使用redis。我这里只是简单的将他配上去确保架构的完整性,就不做更多的讲解,需要详细了解的可以参考好了,前面说了这么多无非是想表达这篇文章分两个大部分,部署Redis和通过docker-compose 搭建。配置Redis增加配置在pom.xml文件中增加Redis的依赖在application.properties 中存在redis 连接信息。#配置redis。

2024-05-28 20:25:48 740

原创 《分布式版本管理工具》git技术分享

项目右键 -> git -> commit file -> 在commit message中写上更改的备注 -> 选择commit and push -> 可以在github中看到更改和提交记录。用户右键 -> settings -> SSH and GPG keys -> new ssh key。在commit file中双击文件,可以查看到修改的内容的(和上一个版本比较)。要通过手动添加的方式——> 项目右键 -> Git -> Add。回退更改 文件右键-> git -> revert -> 确认。

2024-05-28 19:37:57 647

原创 《C游记》 第叁章 - 一朝函数思习得 模块思维世间生(贰)

自定义函数和库函数一样,有函数名,返回值类型和函数参数。但是不一样的是这些都是我们自己来设计。这给程序员一个很大的发挥空间。①写一个函数可以找出两个整数中的最大值。②写一个函数可以交换两个整形变量的内容。错误案例 (下文有详细解析)简单来说:实参a和b,传给形参x,y的时候,形参是实参的一份临时拷贝改变形参x,y并不会影响实参a,b正确案例。

2024-05-28 19:37:25 269

原创 wireshark简明教程,新手专用,挑实在的讲,不搞花里胡哨

我也是新手上来的,在学的过程中看到很多教程,要么千篇一律,要么罗里吧嗦的千篇一律。它可能默认会给你全勾上,没事儿,不用管它,你只要确认你想监听的那个接口被选中,高亮,注意,是高亮,不是打勾,勾肯定是勾上了,看上面的图,蓝色高亮,然后开始。至于想要深入了解这些协议,请移步:《TCP/IP卷一》,书可以自己找,也可以私信我拿,或者下面评论。当然,上面这个图也什么都抓不出来,因为根本没有网络波动,不难猜那条Traffic下面的横线代表的是网络波动,就像心电图一样。甚至还有什么,七八万字的教程,我的天哪。

2024-05-28 19:04:30 1054

原创 websocket+netty实时视频弹幕交互功能(Java版)

3 实现效果。

2024-05-28 19:03:58 769

原创 Spring源码版本命名规则

当 API 的兼容性变化时,X 必须递增,Y 和 Z 同时设置为 0;当新增功能(不影响 API 的兼容性)或者 API 被标记为 Deprecated 时,Y 必须递增,同时 Z 设置为 0;先行版本号(Pre-Release)意味该版本不稳定,可能存在兼容性问题,其格式为:X.Y.Z.[a-c][正整数],如 1.0.0.a1,1.0.0.b99,1.0.0.c1000。X, Y, Z 必须为非负整数,且不得包含前导零,必须按数值递增,如 1.9.0 -> 1.10.0 -> 1.11.0。

2024-05-28 18:27:43 634

原创 Spring框架的三大核心思想与七大模块,深化你的认知,锤炼你的技能

容器全权负责的组件的装配,它会把符合依赖关系的对象通过JavaBean属性或者构造函数传递给需要的对象。这样一来,组件就必须使用容器提供的API来查找资源和协作对象,仅有的控制反转只体现在那些回调方法上(也就是上面所说的 类型1):容器将调用这些回调方法,从而让应用代码获得相关资源。这样可以减少代码量,简化开发的复杂度和耦合度。面向切面是一个概念,通常用来为许多其他的类提供相同的服务,而且是固定的服务,是独立的。提升了代码的复用性,减少了代码的耦合度,减轻程序员的工作负担,把程序的重心放在了核心的逻辑上。

2024-05-28 18:27:13 311

原创 MySQL笔试面试重点—增删改查,手把手解读

需要把已有的 学生数据复制进来,可以复制的字段为name、qq_mail。(1,‘Java’),(2,‘中国传统文化’),(3,‘计算机原理’),(4,‘语文’),(5,‘高阶数学’),(6,‘英文’);(8,‘09527’,‘老外学中文’,‘foreigner@qq.com’,2);(1,‘09982’,‘黑旋风李逵’,‘xuanfeng@qq.com’,1),(4,‘00031’,‘许仙’,‘xuxian@qq.com’,1),(6,‘51234’,‘好好说话’,‘say@qq.com’,2),

2024-05-28 17:39:20 717

原创 MySQL的索引——索引的介绍及其数据结构B+树 & 索引的类型 & 索引的使用及其失效场景 & 相关名词解释_数据库索引结构

因为页9不在内存中,就又会加载页9到内存中,并通过和页8中一样的方式进行数据的查找,直到将页12加载到内存中,发现41大于40,此时不满足条件。如果不存储数据,那么就会存储更多的键值,相应的树的阶数(节点的子节点树)就会更大,树就会更矮更胖,如此一来我们查找数据进行磁盘的IO次数有会再次减少。(2)非聚集索引与聚集索引的区别在于非聚集索引的叶子节点不存储表中的数据,而是存储该列对应的主键,想要查找数据我们还需要根据主键再去聚集索引中进行查找,这个再根据聚集索引查找数据的过程,我们称为。

2024-05-28 17:38:49 651

原创 java中String字符串工具类整理

param strOrigin 原始字符串(中文字符串)将传入的字符串转换为中文字符串,并将空字符串转换为""@param originEncode 原始编码格式。*将字符串的HTML编码的字串转成正常的字符串。@param strOrigin 原始字符串。将字符串从原来的编码格式转换为指定的编码格式。@param strOrigin 原始字符串。@param strOrigin 原始字符串。@param strOrigin 原始字符串。@param strOrigin原始字符串。

2024-05-28 16:55:40 416

原创 Java——JVM篇——收藏系列来啦(三

在信号驱动 IO 模型中,当用户线程发起一个 IO 请求操作,会给对应的 socket 注册一个信号函数,然后用户线程会继续执行,当内核数据就绪时会发送一个信号给用户线程,用户线程接收到信号之后,便在信号函数中调用 IO 读写操作来进行实际的 IO 请求操作。另外多路复用 IO 为何比非阻塞 IO 模型的效率高是因为在非阻塞 IO 中,不断地询问 socket 状态时通过用户线程去进行的,而在多路复用 IO 中,轮询每个 socket 状态是内核在进行的,这个效率要比用户线程要高的多。

2024-05-28 16:55:09 811

原创 1-5年的Java程序员想跳槽涨薪?8年Java老鸟偷偷告诉你

因此在这里我也给那些技术想达到这个高度甚至想往架构师发展的Java程序员提供一份详细的进阶路线图,主要针对1-5年及以上工作经验的Java开发人员,从广度到深度架构图还比较全面的,里面的技术包涵了Java高并发、微服务、源码分析、高性能、分布式等内容,这些也是目前互联网企业比较常用的技术,那么来详细看看。30K的月薪在BAT等一线大厂实在太普遍了,一般是高级工程师和资深工程师的职位,在阿里是p6~p7左右,在百度是t5左右,腾讯是t2-3左右,在京东是t3-1,美团是p6左右,其他的我不了解。

2024-05-28 16:03:15 707

原创 02-Rest学习环境搭建:服务提供者&服务消费者

Data@Accessors(chain = true) //链式写法public class Dept implements Serializable {//orm 类表关系映射//主键//这个数据库存在哪个数据库的字段~微服务,一个服务对应一个数据库,同一个信息可能存在不同的数据库。

2024-05-28 16:02:45 1021

原创 JVM类生命周期概述:加载时机与加载过程

1)遇到new、getstatic、putstatic或invokestatic这四条字节码指令(注意,newarray指令触发的只是数组类型本身的初始化,而不会导致其相关类型的初始化,比如,new String[]只会直接触发String[]类的初始化,也就是触发对类[Ljava.lang.String的初始化,而直接不会触发String类的初始化)时,如果类没有进行过初始化,则需要先对其进行初始化。当初始化一个类的时候,如果发现其父类还没有进行过初始化,则需要先触发其父类的初始化。

2024-05-26 21:42:14 285

原创 Java 独占锁与共享锁、公平锁与非公平锁、可重入锁

举个栗子:共享锁相当于一个大型公共澡堂,一开始就设定了能进去洗澡人的数量,比如是10个人,那么你要进去的时候会检查一下有没有满10个,满了你就在门口排队去吧。希望这些简单的栗子可以帮主你理解java一些锁知识,不要把生硬的文字过度理解,跳出文字本身,设想一些生活中的场景,可以帮助我们更好的理解知识。但是有个保安站在门口,他让后面想进来的人都排好队,出来一个,就从队伍的前面放一个人进去。公平锁就是多个线程去申请锁的使用权的时候,线程会直接进入队列排队,排在前面的可以先获得锁,排在后面的只能等着前面的先用。

2024-05-26 20:00:27 220

原创 Git 学会git,探索GitHub,掌握新知识 (二)

3.哈希算法。

2024-05-26 19:43:00 277

原创 2024Java春招面试指南:JVM+并发+MySQL+网络+Spring(1到5年必看)

跟Synchronized相比,可重入锁Reentrantl ock其实现原理有什么不同?为什么说Synchronized是一个悲观锁?乐观锁的实现原理又是什么?说一下强引用、软引用、弱引用、虚引用以及他们之间和 gc 的关系。你刚才提到获取对象的锁,这个“锁”到底是什么?什么是可重入性,为什么说Synchronized是可重入锁?什么是Spring框架?Spring 框架中的单例Beans是线程安全的么?Reentrantl ock是如何实现可重入性的?Synchronized用过吗,其原理是什么?

2024-05-26 17:14:50 320

原创 Dubbo服务消费者调用过程

Protocol 它会利用注册中心服务Registry来获取最新的服务器端注册的url地址,然后再利用协议Protocol将这些url地址转换成一个具有远程通信功能的Invoker对象,如DubboInvoker。将通过远程通信将Invocation信息传递给服务器端,服务器端接收到该Invocation信息后,找到对应的本地Invoker,然后通过反射执行相应的方法,将方法的返回值再通过远程通信将结果传递给客户端。多个类型2的Invoker聚合成的集群版Invoker(客户端使用)

2024-05-26 15:33:53 319

原创 Dubbo服务治理之灰度发布方案(版本发布控制影响范围)

主要是展示了基于脚步的路由规则,其条件表达式的路由规则请参考其Demo,其核心理论支持是Dubbo提供的Router,在进行负载均衡前,根据路由规则对服务提供者列表进行筛选。上述示例代码,我已经在本地环境,已能成功运行,并达到预期效果,公司项目需要根据自身的特点,特别服务方法的参数(例如合作伙伴ID的获取方式),以及路由需求来定制编写其路由脚本(js脚本)。if(orgId == 1 || orgId == “1”) { // 如果orgId == 1 ,只走最后一个节点,其余的走其他节点。

2024-05-26 15:33:21 286

原创 Centos7固定IP

测试内外网ping/ ping 宿主机。

2024-05-26 03:11:21 264

原创 Alibaba首发“Java成长笔记”,差距原来真的不止一点点

这套题库里面中包含了以下很多个模块:并发编程,多线程,集合框架,设计模式,数据库,性能优化,RabbitMQ消息中间件,ActiveMQ消息中间件,Dubbo,JVM,Kafka,MongoDB,MyBatis,MySQL,Netty,Nginx,Redis,Tomcat,Zookeeper,Spring,SpringBoot,SpringCloud,SpringMVC,…JAVA核心面试题库(1000+题)JAVA常见面试题库(3000+题)互联网一线大厂面试题库(300+题)127页的大厂面试题库。

2024-05-26 03:10:49 369

原创 10分钟认识RocketMQ!想进阿里连这个都不会?

虽然RocketMQ的数据结构是队列,看起来天生支持顺序消息,当只有一个队列的时候,他就天生支持顺序消息,但是Brocket内部有多个队列,发送多条消息的时候,Broker会按照轮询的方式将多个消息放在不同的队列,消费者采用多线程的方式去消费消息,所以无法保证消费消息的方式和发送消息的方式一样的。半事务消息:暂不能投递的消息,发送方已经成功地将消息发送到了RocketMQ服务端,但是服务端未收到生产者对该消息的二次确认,此时该消息被标记成“暂不能投递”状态,处于该种状态下的消息即半事务消息。

2024-05-26 01:04:30 335

原创 MyBatis批量插入为什么比单条插入块?_java批量插入底层是一条一条插入

今天在利用excel处理业务数据的时候开始打算一条一条插入数据库!因为要做数据校验和数据保存返回id之后进行其他表也插入!花了大约3-5分钟,前端也会出现超时请求问题、让我意识到一条一条插入影响性能,但是因为业务逻辑的需要,又不得不一条一条插入,后面改变了思维还是必须批量插入数据!并将其他表也需要保存的数据也临时存在Java对象中!如果是单条执行数据操作,比如有30000条数据,那么你得向数据库服务器发起30000次请求!其实就像前端发送http请求一样,在请求的时候消耗花费了很多时间。

2024-05-25 23:43:27 367

原创 Mybatis执行流程、缓存原理以及相关面试题

Myabtis启动的时候会加载mybatis-config.xml这个核心配置文件,得到要操作的数据库以及我们Mapper文件的的信息,然后将其以数据流的形式保存起来传给SqlSessionFactoryBuilder,创造出对应该数据库的SqlSessionFactory工厂,工厂生产SqlSession,这个SqlSession中包含了对该库的增删改查方法,我们需要通过。不同的会话查询不同的namespace的时候,会将不同namespace中的数据缓存到自己对应的缓存(map)中!

2024-05-25 23:42:56 385

原创 Java项目:基于springboot+vue考研资讯管理网站——计算机毕业设计

2.5 Spring Boot框架 5。2.3 MySQL数据库 4。2.4 Tomcat介绍 4。2.2 Java技术 3。第2章 技术介绍 2。第3章 需求分析 5。

2024-05-25 21:39:50 379

原创 Java项目:基于springboot+vue的汉服交流网站—计算机毕业设计

随着我国文化的不断复兴,很多文化元素也正在不断的出现在街头小巷之中, 其中汉服文化就是一个典型的代表,当前在很多拥有历史沉淀的景点,经常可以看到很多年轻人穿着汉服出游拍照 ,很多时候会聚集大量的游客的眼球,甚至很多旅游景点也会主动的安排这些汉服展示,以吸引更多的游客,为了能够更好的宣传汉服文化我们通过Springboot+Vue开发了本次的汉服交流网站。

2024-05-25 21:39:18 283

原创 Java架构师必会的知识清单,如何让你技术上的提升面试时的丰收

partition的数据文件(offset,MessageSize,data)Supervisor(slave-管理Worker进程的启动和终止)数据存储(CommitLog、MemTable、SSTable)负载均衡(partition会均衡分布到不同broker上)数据文件分段segment(顺序读写、分段命令、二分查找)二级索引(对要索引的value摘要,生成RowKey)编程模型(spout->tuple->bolt)Worker(具体处理组件逻辑的进程)数据文件索引(分段索引、稀疏存储)

2024-05-25 20:08:04 394

原创 Java架构之路:10条做不了架构师的原因及架构师需具备的技能。

细致全面善于沟通,技术上深度广度都没问题, 又喜欢这个工作,还会不时做底层实现,从业务和开发两个角度出发,搭出“架构”来是为了开发效率,为了运行效率,为了开发质量,为了业务灵活和运行稳定,为了维护方便等等这样的人,个人认为可以称为“架构师”。总之,成为架构师,不仅仅是工作上的简单积累,更需要主动接纳工作外的大量知识,同时,对性格上对于非技术能力上也有一定的要求,不仅如此连思维方式都很重要,要不断找准自己定位,不断思考如何搭建架构师知识体系?真的能写不错代码的码农又分为会钻研会不断优化的,以及安于现状的。

2024-05-25 20:07:34 229

原创 IDEA构建JDK源码阅读的环境以及遇到的问题

要让代码运行时自动关联到当前项目src目录下的代码(为了不影响平时使用jdk的源码,我创建了一个1.8study,唯一的差别就是把原来的src.zip换成了jdk1.8-sources-study的src目录)(https://blog.csdn.net/u011837804/article/details/80450809)右键项目copy path,看到绝对路径并不是我说安装的jdk环境中的路径,而是自己构建的代码的路径,即使左侧显示的是在jdk的zip包下面。

2024-05-25 17:44:05 363

原创 idea新手好用的几个插件、让你快速掌握IDEA

Key Promoter (X)其实这里是指2个插件,分别为Key Promoter X 和Key Promoter ,主要功能差不多的,都是一个提示插件,当你在IDEA里面使用鼠标的时候,如果这个鼠标操作是能够用快捷键替代的,那么Key Promoter X会在右下角弹出一个提示框,Key Promoter 会在左上角弹出一个提示框告,安装这个插件很简单,只需要打开Settings,然后找到Plugins那一栏目,然后输入key promoter,点击install就行,安装好会让你重启生效,

2024-05-25 17:43:35 222

原创 2024最新版阿里巴巴Java性能调优速成手册强烈推荐

模块三 多线程性能调优模块四 JVM性能监测及调优模块五 设计模式调优模块六 数据库性能调优模块七 实战演练场

2024-05-25 14:22:57 344

空空如也

空空如也

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

TA关注的人

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