- 博客(15)
- 收藏
- 关注
原创 高级工程师面试大全- 数据库篇
skiplist是一种以空间换时间的数据结构。由于链表无法进行二分查找,因此借鉴数据库索引的思想,提取出链表中的关键姐点(索引),现在关键节点上查找,在进入下层链表查找提取多层关键节点,就形成了跳表。但是由于索引要占据一定的空间,所以索引添加的越多,占用的空间越多。对于一个单链表来讲,即便链表中存储的数据是有序的,如果我们要想在其中查找某个数据,也只能从头到尾遍历链表。这样查找效率就会很低,时间复杂度会很高O(N)
2025-05-13 15:14:27
1047
原创 高级工程师面试大全- 消息中间件篇
Producer API:允许应用程序将记录流发布到一个或多个Kafka主题。Consumer API:允许应用程序订阅一个或多个主题并处理为其生成的记录流。Streams API:允许应用程序充当流处理器,将输入流转换为输出流。消息 MessageKafka的数据单元称为消息。可以把消息看成是数据库里的一个“数据行”或一条“记录”。批次为了提高效率,消息被分批写入Kafka。提高吞吐量却加大了响应时间。主题Topic通过主题进行分类,类似数据库中的表。分区 Partition。
2025-05-13 15:13:37
1029
原创 高级工程师面试大全- java基础篇
红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。红黑树的性质1. 每个结点不是红色就是黑色2. 根节点是黑色的3. 如果一个节点是红色的,则它的两个孩子结点是黑色的4. 对于每个结点,从该结点到其所有后代叶结点的简单路径上,均 包含相同数目的黑色结点5. 每个叶子结点都是黑色的(此处的叶子结点指的是空结点)
2025-05-13 15:12:43
1550
原创 高级工程师面试大全- spring篇
实例化 Instantiation --> 属性赋值 Populate --> 初始化 Initialization --> 销毁 Destruction。
2025-05-13 15:11:05
723
原创 实现线程的三种方式
这就涉及到Java线程的调度机制了,该程序包含两个线程一个是主线程也就是main线程,另外一个是用户创建的p线程,当类加载完成后,主线程启动,开始执行main方法栈帧,按照代码自上而下的执行顺序,先创建Processor的实例化对象p,接着是执行p.start();方法还没有执行,此时两个线程均已经启动,按照Java线程调度的规则,两个线程开始抢夺执行程序的时间片(即CPU的执行权),注意,这种抢夺是随机的,也就是说,不一定输出结果就是method1方法先执行,for循环语句后执行。
2025-05-13 15:10:22
498
原创 CSV文件导出详细讲解
中间处理业务数据就可以了,放入到保存的list中,输出格式一致就可以成功导出了!一、准备jar 如下所以放入maven配置文件中。二、controller层。四、CsvUtil文件。三、SERVICE层。
2025-05-13 15:05:46
284
原创 java中的几种锁
重量级锁是指当锁为轻量级锁的时候,另一个线程虽然是自旋,但自旋不会一直持续下去,当自旋一定次数的时候,还没有获取到锁,就会进入阻塞,该锁膨胀为重量级锁。可重入锁又名递归锁,是指同一个线程在外层方法获取锁后执行方法,此方法又调用了另一个加锁的方法,但是上次和这次需要获取的锁对象是一样的,可重新再次获得一次已经获取并且未释放的锁。分段锁其实是一种锁的设计,并不是具体的一种锁,对于ConcurrentHashMap而言,其并发的实现就是通过分段锁的形式来实现高效的并发操作。非公平锁的优点在于吞吐量比公平锁大。
2025-05-13 15:03:31
364
原创 @RestControllerAdvice注解使用
在spring 3.2中,新增了@ControllerAdvice,@RestControllerAdvice 注解,可以用于定义@ExceptionHandler、@InitBinder、@ModelAttribute,并应用到所有@RequestMapping中。@RestControllerAdvice 是组件注解,他使得其实现类能够被classpath扫描自动发现,如果应用是通过MVC命令空间或MVC Java编程方式配置,那么该特性默认是自动开启的。
2025-05-13 15:02:21
326
原创 NACOS+OpenResty+keepalived集群部署服务
nacos很熟悉的伙伴应该直到nacos是集配置中心,命名服务,注册和发现于一身的组件,比其他的注册组件要方便许多,支持ap和cp.由自己的客户端向服务端请求心跳,极大的减小了服务端的压力。如果想测试,可以在你的nacos中修改discover.server-addr的地址为当前这个,也就是openresty的访问地址。默认会安装到 /usr/local/openresty/ 目录下, 目录下包含了 luajit, lualib, nginx, openssl, pcre, zlib 这些组件。
2023-06-26 15:13:59
754
原创 linux安装mysql
使用yum方式(如果有依赖会自动下载相关依赖,会直接添加mysql环境变量和启动服务)# 最后授权 MySQL,允许远程用户登录访问 MySQL。MySQL 8.0+ 版本为以下方式:(密码修改)安装 community-server。至此yum方式安装mysql结束.第三步 启动服务并查看服务状态。# 改表法 # 选择数据库。第五步 登录并求改密码。首先修改密码验证规则。
2023-06-26 13:57:06
144
原创 解决VMware Workstation 与 Device/Credential Guard冲突设置
VMware Workstation 与 Device/Credential Guard 冲突
2022-07-24 10:56:37
1561
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅