- 博客(12)
- 收藏
- 关注
原创 List详解
首先检查是否数组越界,然后确保容量是否足够,不够则会触发扩容机制,只有调用Native方法。首先检查数组是否越界,之后判断删除的数据是否在数组尾部,若不在则需要调用。方法根据索引位置决定从头或尾遍历(减少遍历次数),删除数据。int destPos, // 目标数组起始位置。之后在添加时,会判断容量是否超出,若超出则执行扩容方法。int srcPos, // 源数组起始位置。中间插入\删除需要遍历索引,但无需复制操作,比头尾慢。中间插入\删除需要复制数组操作,较慢,拷贝数组后,在对应位置插入数据。
2025-02-25 11:37:27
1387
原创 Java集合类基本框架接口
1、Collection:所有单值对象的根接口,代表一组对象,定义基础操作(如添加、删除、遍历)3、Set:继承Collection,不允许重复元素,无序(具体实现可以有序,如TreeSet)4、Queue:继承Collection,队列,支持 FIFO(先进先出)或优先级操作。2、List:继承Collection,有序集合,允许重复。4、Map:存储键值对,键唯一。
2025-02-24 15:18:57
115
原创 Java作用域、访问修饰符
用于控制类、变量、方法和构造方法的可见性和访问范围,是面向对象编程中**封装性(Encapsulation)**的核心机制。(Scope)指变量、方法或类的可访问性和生命周期,即他们在代码中的可见范围。2、构造方法使用private修饰时,就是单例模式的要求之一,即不允许外部实例化。1、子类重写父类方法时,
2025-02-22 09:41:11
980
原创 Java是否有全局变量
1、静态变量 static:静态变量属于类,不是对象实例,所有实例共享一份数据,通过 类名.变量名访问,该方式受到访问权限限制,使用public修饰时,可以模拟全局变量。Java没有传统意义上的全局变量(可以在任何地方无需引用可直接访问的变量),但可以通过两种方式模拟。2、单例模式:通过一个类唯一实例,提供全局访问点。
2025-02-21 16:14:29
115
原创 throw和throws的区别
可以抛出检查型异常(Checked Exception)或非检查型异常(Unchecked Exception)2、非检查型异常:非检查性异常(也称为运行时异常或错误),是那些在编译时期不需要显式处理的异常。检查型异常(Checked Exception)或非检查型异常(Unchecked Exception)如果方法可能抛出检查型异常,必须用。1、throw:主要用于在代码块中抛出异常对象(可以使已定义对象或自定义异常),1、检查型异常:检查型异常是那些在编译时期需要显式处理的异常。声明,否则编译报错。
2025-02-20 09:13:43
168
原创 Mybatisplus更新某个字段为null
使用@TableField(updateStrategy = FieldStrategy.IGNORED)注解要更新的字段。@TableField注解。
2025-02-19 16:12:46
1208
原创 java finally代码块和finalize()方法的区别
1、finally是异常处理的一部分,用于异常处理,确保一段代码是否发生异常都会执行。通常和try-catch一起使用,在。执行清理操作,由垃圾回收器(JVM)在回收对象内存时调用,不可靠(jvm不一定保证其会执行),已过时。块结束后立即执行,一般用来释放资源(关闭文件、数据库链接、网络链接)类的一个方法,用于在对象被垃圾回收(GC)2、finalize()是。
2025-02-19 09:00:42
107
原创 Java每日一问-什么是线程安全
线程安全是指在多线程环境下,代码、方法能正确的、一致的处理共享数据,不会因为线程的交替执行导致数据错误或者逻辑混乱,其行为可预测,数据保持完整。2、可见性:一个线程修改变量后,其他线程可立即看到最新值。3、有序性:代码执行顺序不被编译器或处理器优化打乱。1、原子性:操作要么全部完成,要么全部不执行。
2025-02-17 09:39:05
106
原创 每日一问-String, StringBuffer与StringBuilder区别
String和StringBuffer是线程安全的,前者因为其不可变性,后者所有方法被synchronized修饰。StringBuffer和StringBuilder是可变的,需要修改时,会直接在原对象上修改。String 适合少量字符串或者不考虑线程安全的情况下使用(配置信息、常量)String类被final修饰,是不可变的,进行修改时,会创建新的对象。三者都是用于处理字符串,主要区别在于可变性、线程安全和性能。String频繁修改时性能较低,因其会不断创建新的对象。
2025-02-17 09:21:29
161
原创 每日一问-==与equals的区别
2、equals是object类的一个方法,所有都继承了它,该方法默认行为与==一致,但许多类比如String、Integer等包装类会重写这个方法,重写后会用来比较内容是否相同。3、自定义类重写equals方法时,需要连同hashCode()方法一起重写,因为通过equals()方法相等时,其返回的hashCode也必须一样。1、==是在Java中是进行比较的运算符,在基本数据类型中,比较的是值本身,在引用类型中比较的是内存地址。
2025-02-14 09:24:38
67
原创 Java每日一问-JDK和JRE
2、JRE(Java Runtime Environment):Java运行时环境,提供Java运行所需环境。3、JDK包含JRE,若需要开发Java程序则需要安装jdk,若只需要运行Java程序,则只用安装jre。1、JDK(Java Development Kit):Java开发工具包,提供开发和运行环境。
2025-02-13 13:56:21
86
原创 Java每日一问-值传递和引用传递
1.本质都是值传递,值传递传递的是值的拷贝,引用传递传递的是对象的内存地址的值,即Java中只有值传递。3.可以通过返回修改后的对象引用,或者修改对象的内部状态来返回修改后的对象。2.方法内操作值的拷贝不会影响原来的值。
2025-02-12 09:26:41
74
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人