Java基础
文章平均质量分 78
JungleCoding
学海无涯苦作舟
展开
-
【Java】对象的实例化过程
在之前的阶段中,除了加载阶段通过自定义的类加载器可以干预虚拟机的加载过程外,其他的阶段都是虚拟机完全主导,而在初始化阶段才开始根据程序员的意愿执行类的初始化,这个阶段主要完成的工作是执行类构造器方法(),同时虚拟机会保证执行该类的类构造器方法时,其父类的类构造器方法已经被正确的执行,同时,由于类的初始化只进行一次,当多个线程并发的进行初始化时,虚拟机可以确保多个线程只有一个可以完成类的初始化工作, 保证线程安全工作。这样做的目的是为了确保在对象创建时,成员变量都有一个合理的初始值,以防止潜在的运行时错误。原创 2024-05-02 02:25:22 · 995 阅读 · 2 评论 -
【Java】CAS底层原理和自旋锁的使用
CAS 的全称为 Compare-And-Swap,它是一条 CPU 并发原语。它的功能是判断内存某个位置的值是否为预期值,如果是则更新为新的值,这个过程是原子的。CAS 并发原语体现在 Java 语言中就是 sun.miscUnSafe 类中的各个方法。调用 UnSafe 类中的 CAS 方法,JVM 会帮我们实现 CAS 汇编指令。这是一种完全依赖于硬件功能的指令,通过它实现了原子操作。原创 2023-12-13 15:05:38 · 361 阅读 · 0 评论 -
【Java】原子类常用方法
通过调用AtomicReferenceFieldUpdater.newUpdater(Dog.class,String.class,"name")静态方法生成Dog类的String类型的name字段的原子修改器updater,然后调用它的compareAndSet方法判断dog1对象的name值是否为dog1,若是则返回true并修改其值。也可调用getAndSet方法直接修改dog1属性的name字段值,并返回该字段原来的值。上述语句并不会将 atoimicInteger 更新为 2;原创 2023-12-13 15:02:38 · 44 阅读 · 0 评论 -
mybatis 中 #{} 和 ${}
推荐到我语雀文档中阅读,格式友好:mybatis 中 #{} 和 ${} (语雀)singleDoc# 《mybatis 中 #{} 和 ${}》MyBatis 排序时使用 order by 动态参数时需要注意,用 $ 而不是 #,#{} 和 ${} 的区别以及 order by 注入问题必读!!!原创 2023-10-13 18:08:23 · 267 阅读 · 0 评论 -
【Java基础】泛型总结1 基本用法与类型擦除
Java 的泛型使用了类型擦除机制,这个引来了很大的争议,以至于 Java 的泛型功能受到限制,只能说是”伪泛型“。什么叫类型擦除呢?简单的说就是,类型参数只存在于编译期,在运行时,Java 的虚拟机 ( JVM ) 并不知道泛型的存在。} }上面的代码有两个不同的ArrayList和。在我们看来它们的参数化类型不同,一个保存整性,一个保存字符串。但是通过比较它们的Class对象,上面的代码输出是true。这说明在 JVM 看来它们是同一个类。转载 2023-05-26 10:27:42 · 328 阅读 · 1 评论 -
【Java】Java 的异常处理机制
一天一道面试题,Java 面经原创 2023-04-26 17:20:46 · 81 阅读 · 0 评论 -
【Java】谈谈Spring的常用注解
一天一道面试题,Spring 常用注解原创 2023-04-24 17:05:33 · 99 阅读 · 0 评论 -
如何理解Java只有值传递?
相信学习过C++和Java的同学肯定会在值传递和引用传递这两种传递方式上纠结一番,我之前也是傻傻分不清,今天就来说说它俩的区别。原创 2022-12-21 17:54:10 · 567 阅读 · 1 评论 -
hashCode() 和 equals() 的区别、为什么重写hashCode() 就要重写 qeuals()
hashCode() 用途、equals() 用途hashCode()、equals() 约定标准hashCode() 方法的主要用途是获取哈希码,equals() 主要用来比较两个对象是否相等。二者之间有两个约定,如果两个对象相等,它们必须有相同的哈希码;但如果两个对象的哈希码相同,他们却不一定相等。也就是说,equals() 比较两个对象相等时 hashCode() 一定相等,hashCode() 相等的两个对象 equqls()不一定相等,这就是哈希冲突,为了解决 hash 冲突,必须一定重写。原创 2023-02-09 15:20:27 · 440 阅读 · 0 评论 -
final 有哪些用法?
final 是很多面试官喜欢问的问题,但这个问题其实很无聊,通常能回答以下5点就很不错了原创 2023-04-13 10:01:30 · 65 阅读 · 0 评论 -
【Java】接口和抽象类
系统与外界交互的窗口,更多体现的是一种规范。抽象类则不一样,抽象类作为系统中多个子类的共同父类,它体现的是一种模板式设计。原创 2023-04-18 14:35:07 · 319 阅读 · 1 评论 -
【Java】自动拆箱与自动装箱
自动装箱是把一个基本类型的数据直接赋值给对应的包装类型;自动拆箱是把一个包装类型的对象直接赋值给对应的基本类型;原创 2023-04-23 09:35:44 · 113 阅读 · 0 评论