java
文章平均质量分 57
java学习
所谓远行Misnearch
心中栽桃树,灼灼映桃花
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
缓存穿透击穿和解决代码示例
策略方案是:参数校验 -》布隆过滤前置拦截 -》空值缓存兜底例如电商商品查询接口,攻击者会用不存在的商品id高频请求,缓存和数据库都没有数据,导致每次请求都直达数据库,导致DB被打垮。原创 2026-10-22 11:18:17 · 200 阅读 · 0 评论 -
Java岗笔试示例题
答案:C解析:String 是不可变对象(A错);“abc” 会先在字符串常量池创建对象,而 new String(“abc”) 会在堆和常量池各创建一个(或复用常量池),对象数量不同(B错);拼接大量字符串应使用 StringBuilder 或 StringBuffer(D错)。要掌握字符串的内存分配:主要涉及两个区域:字符串常量池和Java堆内存。使用new关键字JVM会强制在普通内存中创建一个新的String对象,所以new String(“abc”)是创建了两个对象答案:B。原创 2026-07-01 14:04:17 · 208 阅读 · 0 评论 -
Java异常处理
关键字并不能用来“捕获”异常,它的作用是**“声明”和“抛出”异常**。真正用来**“捕获”异常的是 try-catch 语句块。**原创 2026-06-30 15:04:44 · 230 阅读 · 0 评论 -
Jemeter
大多测试接口,软件工程领域,接口(API ,Application Programming Interface)是一组预先定义的规则、协议和工具,用于构建软件和应用程序。明确规定了不同软件组件之间如何进行交互和数据交换。接口测试则是一种直接对应用程序的编程接口进行测试的软件测试类型,绕过了用户界面UI,。原创 2026-06-17 22:54:23 · 929 阅读 · 0 评论 -
【Java从入门到项目开发实战】阅读记录
AQS,AbstractQueueSynchonizer,队列同步器,用来构建锁或者其他同步的基础,使用一个int成员变量来表示同步状态,通过内置的FIFO队列完成竞争资源的线程排列工作。需要注意的是,在实际开发过程中,一般会在此基础上将该模式进一步细分为更多层的架构。很多锁,可重入锁,读写锁,互斥锁,悲观锁,乐观锁,公平锁,锁消除,独享锁,共享锁等。了解内部类,这里了解一下匿名内部类,这是一种没有构造器的类,匿名内部类一般用于继承其他类或实现接口,其不需要增加额外的方法,只是对继承方法的实现或重写。原创 2026-06-16 16:58:49 · 192 阅读 · 0 评论 -
Java Lambda表达式, Lambda Expressions in Java
/ 按字符串长度进行升序排序。原创 2026-06-16 15:13:03 · 369 阅读 · 0 评论 -
Java中方法返回一个空数组
注意不要返回null,返回null会将空指针异常的风险转移给调用方,调用方每次执行前都必须进行if (result!= null)的判断。Java提供了专门的工具类来生成空数组,这种方式代码更简洁,且能避免手动指定数组类型。这是最直接的写法,直接创建一个指定类型、长度为0的数组。原创 2026-06-16 09:02:13 · 188 阅读 · 0 评论 -
为什么List<int[]> ans = new ArrayList<>()能成功创建
在Java开发或刷题时能够遇到这行代码能够完美通过编译并成功运行,但稍作修改,写成编译器就会报错。同样是类型,int[]可以作为泛型参数,而int却不行,原创 2026-06-14 14:10:53 · 285 阅读 · 0 评论 -
Java中创建Map的做法
这是最直接的方式,通过new关键字实例化具体的Map实现类。原创 2026-06-09 22:13:24 · 279 阅读 · 0 评论 -
N+1:程序员必知的“性能杀手”
N+1查询问题是ORM框架(如Hibernate、MyBatis等)中常见的性能问题。当需要获取主实体及其关联的多个子实体时,如果不进行优化,会执行:1次查询:获取主实体列表N次查询:为每个主实体单独查询关联数据结果就是执行了 1 + N 次数据库查询。例如:1、查询用户及其所有订单产生N+1问题SQL执行过程,原创 2025-12-24 20:30:05 · 376 阅读 · 0 评论 -
SSE技术原理及应用场景详解
*Server-Sent Events(SSE)**是一种允许服务器向客户端实时推送更新的技术。与之前讲到的不同,SSE 基于,提供了一种简单的方式来实现服务器到客户端的。原创 2025-12-21 22:08:47 · 654 阅读 · 0 评论 -
Java中判断两个字符串是否相等
equals()这是一个很基础但重要的操作。Java中字符串是一个对象,不能简单的使用==判断内容是否相等。原创 2025-09-15 10:43:34 · 488 阅读 · 0 评论 -
卫语句 Guard Clause
卫语句 Guard Clause 是一种编程模式用于在函数或方法开始时检查前置条件,如果条件不满足就提前返回或抛出异常。可以使代码更清晰、减少嵌套层次,并提高可读性。原创 2025-08-01 10:53:25 · 234 阅读 · 0 评论 -
spring切面
例如一个案例就是添加用户,重复的代码包含了记录日志、事务提交和事务回滚等,都是重复的,为了简单,交给AOP来做。回到添加用户的案例,把不同面的代码单独抽出去,当程序运行到方法时,例如方法前,可以动态将该面的程序动态的切进去,方法运行完也可以动态的切进去。通过代理对象调用原来对象的方法。代理对象方法前后都可插入代码,这些代码就是增强处理。动态代理的经典实现。所谓面向切面编程,即一种通过预编译和运行期动态代理的方式,实现在不修改源代码的情况下给程序动态添加功能的技术。原创 2025-05-30 17:56:25 · 740 阅读 · 0 评论 -
更换node版本
使用node.js官方安装程序,升级到v20.18.0。查看当前node版本。原创 2025-02-22 20:31:39 · 290 阅读 · 0 评论 -
枚举Enum用法
枚举非常适合用于定义错误状态码。通过枚举,可以将错误码集中管理,提高代码的可读性和可维护性。// 定义常见的错误状态码// 定义属性// 错误码// 错误信息// 构造函数// 获取错误码// 获取错误信息// 根据错误码查找对应的枚举实例// 遍历枚举常量进行查找。原创 2025-02-15 20:04:20 · 578 阅读 · 0 评论 -
Java版本与JDK版本
Java版本指的Java语言和平台的版本,例如Java8、Java11、Java17等,每个版本会引入新特性、改进和修复。JDK(Java Development Kit)版本则是开发工具包,包含编译器、调试器等工具,通常与Java版本对应,例如JDK8对应Java8,JDK11对应Java11。原创 2025-02-08 17:06:54 · 1490 阅读 · 0 评论 -
Java、python标识符命名规范
驼峰命名:原创 2024-12-08 18:43:00 · 368 阅读 · 0 评论 -
idea中新建一个空项目
经查,这是因为java编译器中默认使用的JD版本太低导致的。在文件->设置中切换即可,如下图所示,切换为较高点的,我这里切换为。目的,为了在同一个目录下有多个小的项目:使用IDE为idea2022。原创 2024-12-08 18:25:26 · 848 阅读 · 0 评论 -
反射机制了解
Reflection被视为动态语言的关键。允许程序在运行期间借助Reflection API 取得任何类的内部信息,并能直接操作任何对象的内部属性和方法。例如下面的案例,获取类的属性和方法,两种都是可行的。@Test// 创建Person类的实例// 调用Person类的属性和方法// 调用属性// 调用方法/*使用反射完成上述的操作*/@Test// 调用构造器方法// 调用属性,先获取age属性。原创 2024-11-30 22:31:50 · 542 阅读 · 0 评论 -
java中的最小堆
最小堆minHeap指的级别n的每个节点存储的值小于或等于级别n+1的子节点的值。因此,根就存储了其中最小的值。注意节点的值与其他兄弟节点的值之间没有必然关系。原创 2024-11-24 23:34:51 · 492 阅读 · 0 评论 -
java网络编程
java实现了一个跨平台的网络库,程序员面对的是一个统一的网络编程环境。即里面有类包,直接调用就可以了。原创 2024-11-16 22:38:26 · 993 阅读 · 0 评论 -
FileReader和FileWriter
使用read()方法读取单个字符,下面是如何修改使程序性能更好的过程。但是遇到异常就抛出了,无法进行到close(),因此使用try-catch-finally方法。在读取显示这里,还可以改进,通过每次读取多个字符存到字符数组中,较少与磁盘交互的次数。原创 2024-10-26 16:25:23 · 432 阅读 · 0 评论 -
java中Map及其实现类
java.util.Map:存储一对一对的数据(key-value键值对,(x1,y1)、(x2,y2) --> y=f(x),类似于高中的函数)原创 2024-08-03 01:13:15 · 405 阅读 · 0 评论 -
java获取两个字符串中最大相同子串
比如:提示:将短的那个串进行长度依次递减的子串与较长的串比较。原创 2024-07-22 14:54:10 · 455 阅读 · 0 评论 -
java字符串String
(16)int lastIndexOf(String str, int fromIndex):返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。(14)int indexOf(String str, int fromIndex):返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。(13)int indexOf(xx):从前往后找当前字符串中xx,即如果有返回第一次出现的下标,要是没有返回-1。(2)int length():返回字符串的长度。原创 2024-07-21 22:52:16 · 668 阅读 · 0 评论 -
java多线程
必须保证一个线程a在操作ticket的过程中,其它线程必须等待,直到线程a操作ticket结束以后,其它线程才可以进来继续操作ticket。每个线程都有一定的优先级,同优先级线程组成先进先出队列,使用分时调度。不能用run()代替start()方法,start()要先启动线程,创建一个新的线程。下面的实现,是一个线程不安全的问题。原因是当前进行的线程还没结束,其他线程也参与进来,对ticket进行操作。每个线程的默认优先级与创建他的父线程具有相同的优先级。① 实现的方式,避免的类的单继承的局限性。原创 2024-07-19 23:56:14 · 1757 阅读 · 0 评论 -
自定义异常
继承于现有的异常体系。通常继承于RuntimeException \ Exception通常提供几个重载的构造器提供一个全局常量,声明为:static final long serialVersionUID;如果继承RuntimeException运行时异常,则方法中可以这样用,int id;}else{// 手动抛出异常类对象// throw new RuntimeException("错误");如果继承的不是运行时异常,则方法也要throws,}else{原创 2024-07-17 23:43:32 · 396 阅读 · 0 评论 -
java——Junit单元测试
黑盒测试:不输入代码,给输入值,看程序能够给出期望的值。白盒测试:写代码,关注程序具体执行流程。原创 2024-07-15 11:36:58 · 637 阅读 · 0 评论 -
java面向对象——注解Annotation
从JDK5.0引入,存在方式@注解名。注解可像修饰符一样被使用。注解可以被编译器或其他程序读取,程序可根据注解的不同,作出相应的处理。开发模式是基于注解的,JPA是基于注解的,框架 = 注解 + 反射 + 设计模式。原创 2024-07-15 10:48:41 · 426 阅读 · 0 评论 -
java面向对象——抽象类
final修饰的类,不能有子类。abstract修饰的类,不能实例化。不能用abstract修饰私有方法、静态方法、final的方法、final的类。私有方法不能重写避免静态方法使用类进行调用final的方法不能被重写final修饰的类不能有子类。原创 2024-07-14 13:56:18 · 806 阅读 · 0 评论 -
单例模式Singleton
23种设计模式。原创 2024-07-13 20:45:50 · 586 阅读 · 0 评论 -
constant和enum
特点Constant常量Enum枚举类型任何数据类型一组固定的常量值类型安全否是可扩展性较低(值固定)高(可添加属性和方法)可读性较低高应用场景任意不可变的值固定的,相关的常量集合原创 2024-07-12 09:16:23 · 234 阅读 · 0 评论 -
synchronized (userAccount.intern())知识点
是一种在 Java 中同步代码块的方法,用于确保在多线程环境中对共享资源的安全访问。具体来说,这个语句使用 userAccount.intern() 返回的对象作为锁来同步代码块,以确保同一时刻只有一个线程能够执行该代码块。原创 2024-07-11 19:36:45 · 629 阅读 · 0 评论 -
序列化Serialization
序列化(Serialization)是将对象的状态转换为可存储或传输的格式的过程。通过序列化,可以将对象保存到文件中、数据库中,或者通过网络传输到远程系统。相应地,反序列化(Deserialization)是将这种存储或传输的格式转换回对象的过程。在 Java 中,序列化通常使用 java.io.Serializable 接口。实现了 Serializable 接口的类的对象可以被序列化。为了控制序列化过程中的一些细节,可以使用一些特殊的字段或方法,例如 serialVersionUID。原创 2024-07-11 18:40:30 · 383 阅读 · 0 评论 -
Java定义一个数组的工具类
涉及到的方法有:求最大值、最小值、总和、平均数、遍历数组、复制数组、数组反转\数组排序(默认从小到大排序)、查找等。自定义一个操作int[]的工具类。原创 2024-07-11 18:16:57 · 441 阅读 · 0 评论
分享