java
文章平均质量分 93
落啦啦
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【项目问题】CO2管网能耗
我们发现查询单井按时间段的流量AND?非常频繁。于是我们创建了这样一个复合索引。当执行上述查询时,MySQL可以直接在这个索引里找到满足条件的well_id和,并且直接从索引里获取flow_rate,不需要再去查聚簇索引(主表),大大减少了I/O操作,因此查询速度显著提升。我们通过工具查看执行计划,确认查询确实使用了该索引,并且Extra列显示了,证明了覆盖索引生效。原创 2025-04-09 17:56:14 · 758 阅读 · 0 评论 -
【项目问题】在线考试系统
A: “Spring Cloud Gateway 是我们系统的 API 网关,核心功能是请求路由。我们根据请求路径将流量转发到后端的微服务,例如 /api/user/** 的请求会被路由到用户服务。除了基本的路由,我们还实现了一个自定义的全局过滤器 (Global Filter) 来处理统一认证。这个过滤器会拦截所有(或指定路径下的)请求,从请求头中提取 JWT 令牌,进行校验;验证通过后,解析出用户信息(如用户ID、角色),并存储在 ThreadLocal 中,方便后续业务逻辑使用。原创 2025-04-09 15:16:28 · 1166 阅读 · 0 评论 -
【项目面试】
在传统的基于会话和Cookie的身份验证方式中,会话信息通常存储在服务器的内存或数据库中。但在集群部署中,不同服务器之间没有共享的会话信息,这会导致用户在不同服务器之间切换时需要重新登录,或者需要引入额外的共享机制(如Redis),增加了复杂性和性能开销。而JWT令牌通过在令牌中包含所有必要的身份验证和会话信息,使得服务器无需存储会话信息,从而解决了集群部署中的身份验证和会话管理问题。当用户进行登录认证后,服务器将生成一个JWT令牌并返回给客户端。原创 2025-03-16 21:02:04 · 866 阅读 · 0 评论 -
【Java 面试 八股文】计算机网络篇
HTTP(HyperText Transfer Protocol,超文本传输协议)是一种用于客户端(浏览器)和服务器之间通信的协议,主要用于传输网页数据,如HTML、CSS、JavaScript以及API请求等。它是无状态的,即每个请求都是独立的,服务器不会记录之前的请求信息。HTTP 和 HTTPS 的区别:1. 安全性:HTTP:数据是明文传输的,容易被中间人攻击、窃听和篡改。HTTPS:使用SSL/TLS(安全套接层/传输层安全协议)加密数据,提高数据的机密性和完整性,防止信息被窃取或篡改。原创 2025-03-10 19:56:08 · 1144 阅读 · 0 评论 -
【Java 面试 八股文】JVM 虚拟机篇
线程私有的,内部保存的字节码的行号。用于记录正在执行的字节码指令的地址。javap -verbose xx.class 打印堆栈大小,局部变量的数量和方法的参数。难易程度:☆☆☆出现频率:☆☆☆☆线程共享的区域:Java堆 (Heap) 是Java虛拟机中内存管理的一个重要区域,主要用于存放对象实例和数组。当堆中没有内存空间可分配给实例,也无法再扩展时,则抛出OutOfMemoryError异常。原创 2025-02-23 17:40:38 · 1970 阅读 · 0 评论 -
【Java 面试 八股文】并发编程篇
是多线程中的队列同步器(AbstractQueuedSynchronizer)。是一种锁机制,它是做为一个基础框架使用的,像ReentrantLock、Semaphore都是基于AQS实现的AQS内部维护了一个先进先出的双向队列,队列中存储的排队的线程在AQS内部还有一个属性state,这个state就相当于是一个资源,默认是0 (无锁状态),如果队列中的有一个线程修改成功了state为1,则当前线程就相等于获取了资源在对state修改的时候使用的 CAS 操作,保证多个线程修改的情况下原子性。原创 2025-02-18 16:48:23 · 1314 阅读 · 0 评论 -
【Java 面试 八股文】常见集合篇
首先获取key的hashCode值,然后右移16位 异或运算 原来的hashCode值,主要作用就是使原来的hash值更加均匀,减少hash冲突。在putVal方法中,有一个hash(key)方法,这个方法就是来去计算key的hash值的,看下面的代码。在添加或删除节点的时候,如果不符合这些性质会发生旋转,以达到所有的性质,保证红黑树的平衡。(n-1)&hash : 得到数组中的索引,代替取模,性能更好,数组长度必须是2的n次幂。性质5:从任一节点到叶子节点的所有路径都包含相同数目的黑色节点。原创 2025-02-16 11:46:06 · 1049 阅读 · 0 评论 -
【Java 面试 八股文】Spring Cloud 篇
候选人:创建一个类实现IRule接口,这将定义全局的负载均衡策略。在客户端配置文件中指定特定服务调用的负载均衡策略,这将仅对该服务生效。候选人:服务雪崩是指一个服务的失败导致整个链路的服务相继失败。服务降级:在请求量突增时,主动降低服务的级别,确保核心服务可用。服务熔断:当服务调用失败率达到一定阈值时,熔断机制会启动,防止系统过载。原创 2025-02-15 20:37:08 · 1327 阅读 · 0 评论 -
【Java 面试 八股文】框架篇
AOP,即面向切面编程,在Spring中用于将那些与业务无关但对多个对象产生影响的公共行为和逻辑抽取出来,实现公共模块复用,降低耦合。常见的应用场景包括公共日志保存和事务处理。原创 2025-02-13 11:23:01 · 831 阅读 · 0 评论 -
【Java 面试 八股文】MySQL 篇
索引在项目中非常常见,它是一种帮助MySQL高效获取数据的数据结构,主要用来提高数据检索效率,降低数据库的I/O成本。同时,索引列可以对数据进行排序,降低数据排序的成本,也能减少CPU的消耗。聚簇索引(聚集索引)是指数据与索引放在一起,B+树的叶子节点保存了整行数据,通常只有一个聚簇索引,一般是由主键构成。非聚簇索引(二级索引)则是数据与索引分开存储B+树的叶子节点保存的是主键值,可以有多个非聚簇索引,通常我们自定义的索引都是非聚簇索引。原创 2025-02-11 17:23:49 · 1464 阅读 · 0 评论 -
【Java 面试 八股文】Redis篇
缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库。这将导致这个不存在的数据每次请求都要到 DB 去查询,可能导致 DB 挂掉。这种情况大概率是遭到了攻击。解决方案的话,我们通常都会用缓存空对象或者布隆过滤器来解决它。缓存空对象优点:实现简单,维护方便缺点:额外的内存消耗,可能造成短期的不一致布隆过滤优点:内存占用较少,没有多余key缺点:实现复杂,存在误判可能(有穿透的风险),无法删除数据。原创 2025-02-10 20:45:23 · 2670 阅读 · 0 评论 -
【LeetCode Hot100 动态规划】爬楼梯、打家劫舍、分割等和子集、零钱兑换、完全平方数、零钱兑换II、组合总和IV、单词拆分、最长递增子序列、乘积最大子数组
放物品 i:背包空出物品 i 的容量后,背包容量为 j - weight[i],dp[i - 1][j - weight[i]] 为背包容量为 j - weight[i] 且不放物品 i 的最大价值,那么 dp[i - 1][j - weight[i]] + value[i] (物品i的价值),就是背包放物品 i 得到的最大价值。递归公式: dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]);原创 2025-02-08 16:03:09 · 767 阅读 · 0 评论 -
Java多线程机制知识点复习
1,Thread类与线程的创建1)使用Thread的子类2)使用Thread类public class A{ public static void main(String args[]){ Thread speakCar; // 使用Thread声明线程 CarTarget car; // car是目标对象 car = new CarTarget(); // 创建目标对象 speakCar = new Thread(car原创 2020-12-24 12:57:55 · 404 阅读 · 0 评论 -
Java输入、输出流知识点复习
1,File类创建File对象:File file = new File(String filename); // 新建文件与当前应用程序在同一目录删除文件:file.delete();File file = new File(String directoryPath,String filename); // directoryPath为文件路径文件属性:getName() 获取文件名字canRead() 判断文件是否是可读的canWrite() 是否可写ex原创 2020-12-23 20:27:33 · 451 阅读 · 0 评论 -
Java常用实用类
1,String类String类的常用方法①length()获取长度②equals()判断字符串是否相等③startWiths(String s), endsWith(String s)判断当前字符串是否是以s为开头或者结尾,返回值为true / false④compareTo(String s) 按字典序与参数指定的String对象s字符序列进行比较大小,返回值为int,正值>s 负值 < s , 相同返回值0⑤comtains(String s)判断当前字符串是否包含参数指定的原创 2020-12-21 21:09:39 · 288 阅读 · 0 评论 -
Java接口与实现知识点复习
1,接口1)声明:interface 接口名称2)接口体:常量的声明和抽象方法两部分。接口体中只有常量和抽象方法,而且访问权限都是public。(常量可以省略public、final、static修饰符,抽象方法可以省略public、abstract修饰符)2,实现接口1)类实现接口:class A implements interfaceA,interfaceB{ }2)重写接口中的方法。一个抽象类实现了某个接口,必须重写该接口中的所有方法,而且方法的访问权限必须明显的用public来修饰(否则原创 2020-12-21 21:04:34 · 388 阅读 · 0 评论 -
Java子类与继承知识点复习
1,方法重写子类通过重写可以隐藏已继承的方法(隐藏:子类声明的成员变量与从父类继承的同名,就会隐藏所继承的成员变量)要求:方法的名字、参数个数、参数的类型和父类方法完全相同。2,super关键字1)操作被隐藏的成员变量和方法super.x ,super.y();2)调用父类的构造方法super(参数1,参数2) // 参数与所调用的父类的构造方法的参数类型相同3,final关键字final类不能被继承,final方法不允许子类重写,final变量就是常量4,对象的上转型对象用子类创建一原创 2020-12-21 21:02:03 · 540 阅读 · 0 评论 -
Java中如何自定义异常类
基本过程一个方法在声明时可以使用throws关键字声明要产生的若干个异常,并在该方法中具体给出产生异常的操作,即用相应的异常类创建对象,并使用throw关键字抛出异常对象,导致该方法结束执行。程序必须在try-catch 块语句中调用可能发生异常的方法,其中catch的作用就是捕获throw关键字抛出的异常对象。throw和throws是两个关键字,它们的区别是:throw 用在方法体内部 会抛出一个异常对象;throws 用在方法的括号后面 当该方法体内有异常并且不想使用try catch 时原创 2020-12-14 11:09:22 · 3744 阅读 · 0 评论 -
Java中this关键字的用法
this 是Java的一个关键字,表示某个对象。this 可以出现在实例方法和构造方法中,但是不能出现在类方法中。本文中关于实例成员和类成员 (static关键字修饰) 的介绍参考博客类成员与实例成员的区别一张图片搞清楚在实例方法中使用 this1,代表当前对象实例方法只能通过对象来调用,不能通过类名调用。当 this 出现在实例方法中时,this 就代表正在调用该方法的当前对象。实例方法可以操作类的成员变量,当实例成员变量在实例方法中出现时,格式为:this.成员变量;当 static 成员原创 2020-12-04 00:20:35 · 8377 阅读 · 3 评论
分享