
java
文章平均质量分 86
java面试以及常见问题分享
Gary董
路漫漫其修远兮,吾将上下而求索
展开
-
Mysql 函数解析
一般形式为:列名 [NOT ] LIKE ‘%关键字%’like '%北京%'列名包括北京的字样like ‘北京%’ 列名北京开头like ‘%北京’ 列名北京结尾。原创 2025-02-10 16:07:13 · 264 阅读 · 0 评论 -
springboot四大核心组件
autoconfigure内容是配置Bean实例到Spring容器的实际代码实现包,然后提供给starter依赖。配置Bean实例到Spring容器中实际是autoconfigure做的,因为是starter依赖它,所以也可以说是starter干的。autoconfigure在我们的开发中并不会被感知,因为它是存在与我们的starter中的。官方提供的starter是这样的:spring-boot-starter-xxx。非官方的starter是这样的:xxx-spring-boot-starter。原创 2025-01-06 15:14:44 · 1186 阅读 · 0 评论 -
JAVA反射
Java是先编译再运行的语言,程序中对象的类型在编译期就确定下来了;而当程序在运行时需要动态加载某些类时(这些类因为之前用不到没有被加载到JVM),通过反射可以在运行时动态地创建对象并调用其属性,我们不需要提前在编译期知道运行的对象是谁。Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。Java反射机制的本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取t对象的各种信息。java反射详解。原创 2025-01-03 14:48:22 · 805 阅读 · 0 评论 -
分布式事务
2PC/3PC:依赖于数据库,能够很好的提供强一致性和强事务性,但延迟比较高,比较适合传统的单体应用,在同一个方法中存在跨库操作的情况,不适合高并发和高性能要求的场景。TCC:适用于执行时间确定且较短,实时性要求高,对数据一致性要求高,比如互联网金融企业最核心的三个服务:交易、支付、账务。本地消息表/MQ 事务:适用于事务中参与方支持操作幂等,对一致性要求不高,业务上能容忍数据不一致到一个人工检查周期,事务涉及的参与方、参与环节较少,业务上有对账/校验系统兜底。原创 2024-12-25 11:11:56 · 1420 阅读 · 0 评论 -
Redis经典面试题
为了解决只有加锁的线程才能进行相应的解锁操作的问题,那么,我们就需要将加锁和解锁操作绑定到同一个线程中,可以使用ThreadLocal来解决这个问题 , 加锁的时候生成唯一标识保存到ThreadLocal , 并且设置到锁的值中 , 释放锁的时候, 判断线程中的唯一标识和锁的唯一标识是否相同, 只有相同才会释放。早期我们在进行定时任务的时候我们采用的是SpringTask实现的 , 在集群部署的情况下, 多个节点的定时任务会同时执行 , 造成重复调度 , 影响运算结果, 浪费系统资源。原创 2024-12-12 17:29:32 · 755 阅读 · 0 评论 -
CountDownLatch、Semaphore和Cyclicbarrier
countDownLatch是在JAVA1.5被引入,跟它一起被引入的工具类还有CyclicBarrier、Semaphore、concurrentHashMap和BlockingQueue,存在于java.util.cucurrent包下。都可以作用同步手段来实现多线程之间的同步效果。CyclicBarrier,直译为“循环栅栏”,是 Java 并发编程中的一种同步工具。CyclicBarrier 之所以被称为“循环”栅栏,是因为它具有循环使用的特性。原创 2024-12-05 18:26:00 · 684 阅读 · 0 评论 -
线程池相关要点
线程池(ThreadPool)是一种用于管理和复制线程的机制。在项目启动时预先创建一定数量的线程,将这些线程放入池子里,并对其进行有效的使用和管理;在执行任务时,从线程池中取一个线程来执行任务,使用完毕后不会销毁而是重现放入线程池留待后用。原创 2024-11-28 15:51:29 · 594 阅读 · 0 评论 -
ArraList和LinkedList区别
LinkedList:它基于双向链表。每个元素(我们叫它节点)不仅存储数据,还存储了指向前后元素的两个指针。ArrayList:它基于动态数组。这意味着它需要一段连续的内存来存储数据📦,而不是像LinkedList那样通过指针相互连接。每个元素都通过索引快速访问如下图所示:LinkedList:因为数据是通过链表存储的,要访问某个特定位置的元素,你需要从头(或尾)开始,逐个走过每个节点才能找到目标。这个过程就像翻找一个很长的链子,一环一环地往下走,所以速度会很慢。源码:ArrayList:因为数组是连原创 2024-11-26 15:44:20 · 911 阅读 · 0 评论 -
HashMap底层原理
本章内容主要介绍HashMap随着java版本升级,在数据结构、数据安全以及新函数衍生等方面的优化和进步。原创 2024-11-25 18:30:56 · 1016 阅读 · 0 评论 -
JVM垃圾回收
简单介绍下jvm的垃圾回收器以及触发full gc的场景。原创 2024-11-14 17:41:41 · 777 阅读 · 0 评论 -
Netty
Netty 是由 JBOSS 提供的一个 Java 开源框架。Netty 提供异步的、基于事件驱动的网络应用程序框架,用以快速开发高性能、高可靠性的网络 IO 程序。Netty 是一个基于 NIO 的网络编程框架,使用Netty 可以帮助你快速、简单的开发出一 个网络应用,相当于简化和流程化了 NIO 的开发过程。原创 2024-11-12 14:51:18 · 785 阅读 · 0 评论 -
stream流的实际应用
stream流的实际应用,仅供参考.String sex;String age;原创 2024-01-25 11:29:24 · 580 阅读 · 0 评论 -
List分割
对list进行批量操作,可以参考.如有疑问,可在评论区探讨。原创 2024-01-26 18:20:52 · 833 阅读 · 0 评论 -
Java创建线程的几种方法
优势是:编写简单,如果需要访问当前线程,则无需使用Thread.currentThread()方法,直接使用this即可获得当前线程。劣势是:线程类已经继承了Thread类,所以不能再继承其他父类。原创 2024-01-26 18:27:57 · 1391 阅读 · 0 评论 -
java日志脱敏
在开发中,我们经常会处理一些敏感数据,比如:身份证号、手机号、银行卡、邮箱等等。为了保护用户的数据安全,我们需要对这些数据进行脱敏处理。JAVA提供了一些工具,可以让我们更加便捷的去处理。@Retention(RetentionPolicy.RUNTIME):运行时生效。@Target(ElementType.FIELD):可用在字段上。@JacksonAnnotationsInside:此注解可以点进去看一下是一个元注解,主要是用户打包其他注解一起使用。原创 2024-02-20 17:44:58 · 2544 阅读 · 0 评论 -
Java正则表达式
正则表达式(Regular Expression)又称正规表示法、常规表示法,在代码中常简写为 regex、regexp 或 RE。正则表达式是一个强大的字符串处理工具,可以对字符串进行查找、提取、分割、替换等操作,是一种可以用于模式匹配和替换的规范。一个正则表达式就是由普通的字符(如字符 a~z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的一个或多个字符串。String 类里也提供了如下几个特殊的方法。原创 2024-02-21 18:34:59 · 1522 阅读 · 1 评论 -
spring cache 详解
伴随信息量的爆炸式增长以及构建的应用系统越来越多样化、复杂化,特别是企业级应用互联网化的趋势,缓存(Cache)对应用程序性能的优化变的越来越重要。将所需服务请求的数据放在缓存中,既可以提高应用程序的访问效率,又可以减少数据库服务器的压力,从而让用户获得更好的用户体验。定义了 org.springframework.cache.Cache 和 org.springframework.cache.CacheManager 接口来统一不同的缓存技术,并支持使用 JCache(JSR-107)注解简化我们开发。原创 2024-04-15 15:53:35 · 4047 阅读 · 1 评论 -
Java中类的初始化顺序
在日常使用Java的时候,我们都接触过new这个关键字,那你是否知道在我们的对象真正创建出来之前都做了哪些事情呢?实际上要去判断一个类的初始化的顺序,需要分一下情况,一种是没有继承关系的类(不考虑Object类),一种是有继承关系的类。大家可以手动执行下代码做分析,如果疑惑可评论区讨论。原创 2024-04-17 15:08:33 · 325 阅读 · 0 评论 -
Java Long类型对比
在开发的到一个很基础的问题在代码中,两个Long类型数据比较用“==”,结果有时候true有时候false,让我们来一探究竟。原创 2024-04-17 16:55:28 · 1369 阅读 · 0 评论 -
BIO和NIO
简述BIO和NIO的原理和应用。提示:以下是本篇文章正文内容,下面案例可供参考最后用一个例子进行总结,在一节课堂中,服务端比作收作业的老师,客户端比作交作业的同学BIO: 老师先收A同学的作业,再去收B,C同学的作业,如果A同学一直做不完就不会去收B,C老师的试卷,虽然可以加几个老师去同时收作业,但是这样开销肯定会变大NIO: 老师这个时候不会因为A同学作业写不完而阻塞,而是继续去收一下同学的作业select/poll: 同学写完作业会举手,但是老师不知道是谁举的手,于是就把所有的同学轮询一遍。原创 2024-11-12 14:20:35 · 823 阅读 · 0 评论