Java
文章平均质量分 93
el psy congroo
为世界上所有的美好而战
展开
-
JVM机制
JVM 是 Java Virtual Machine 的简称,意为 Java虚拟机。JVM 是 Java 运行的基础,也是实现一次编译到处执行的关键。虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。常见的虚拟机:JVM、VMwave、Virtual BoxVMwave与VirtualBox是通过软件模拟物理CPU的指令集,物理系统中会有很多的寄存器JVM则是通过软件模拟Java字节码的指令集,JVM中主要保留了PC寄存器,其他的寄存器都进行了裁剪。原创 2024-10-27 01:31:21 · 858 阅读 · 0 评论 -
JUC(java.util.concurrent)中的常见类
JUC放了和多线程有关的组件。原创 2024-07-06 19:58:49 · 861 阅读 · 0 评论 -
CAS(compare and swap)
CAS的机制是"比较-发现相等-交换"假设存在两个线程 t1 和 t2. 有⼀个共享变量 num, 初始值为 A.接下来, 线程 t1 想使用 CAS 把 num 值改成 Z, 那么就需要先读取 num 的值, 记录到 oldNum 变量中.使用 CAS 判定当前 num 的值是否为 A, 如果为 A, 就修改成 Z.但是, 在 t1 执行这两个操作之间, t2 线程可能把 num 的值从 A 改成了 B, 又从 B 改成了 A (A->B->A)原创 2024-07-04 23:44:24 · 805 阅读 · 0 评论 -
常见锁策略
读写锁就是把读操作和写操作分别进行加锁.读锁和读锁之间不互斥.写锁和写锁之间互斥.写锁和读锁之间互斥.读写锁最主要用在 “频繁读, 不频繁写” 的场景中.如果获取锁失败, 就会立即再尝试获取锁, 无限循环, 直到获取到锁为止. ⼀旦锁被其他线程释放, 就能第⼀时间获取到锁.优点: ⼀旦锁被释放就能第⼀时间获取到锁, 更高效. 在锁持有时间比较短的场景下非常有用.缺点: 如果锁的持有时间较长, 就会浪费 CPU 资源.原创 2024-07-03 15:31:07 · 1043 阅读 · 0 评论 -
进程以及多线程编程
一个程序运行起来,在操作系统中,就会出现一个对应的进程。也就是说,进程就是一个跑起来的应用程序我们可以在任务管理器中就把当前运行的所有进程都列出来除了自己运行的程序是进程外,还有一些系统自带的程序也是进程右边显示的那些CPU,内存,磁盘…就是当前进程占用了多少对应的系统资源。要想让一个程序运行,就必须给这个进程分配系统资源,包括不限于CPU,内存,硬盘,网络带宽,显卡…所以在操作系统内部,进程又是操作系统进行资源分配的基本单位。而进程多了就需要进行管理,做法则是先描述,再组织。原创 2024-07-02 16:59:10 · 390 阅读 · 0 评论 -
Clonable 接口和深拷贝
Object 类中存在一个 clone 方法, 调用这个方法可以创建一个对象的 “拷贝”.但还是会报错要想合法调用 clone 方法, 必须先实现 Clonable 接口, 否则就会抛出 CloneNotSupportedException 异常,而它是空的,没有需要重写的方法如果一个类实现了这个空接口/标记接口,那么证明当前类是可以被克隆的。原创 2023-12-20 19:32:47 · 375 阅读 · 0 评论 -
Java的异常
Java 中虽然已经内置了丰富的异常类, 但是并不能完全表示实际开发中所遇到的一些异常,此时就需要维护符合我们实际情况的异常结构我们可以基于已有的异常类进行扩展(继承), 创建和我们业务相关的异常类.自定义异常类,继承自Exception 或者 RunTimeException实现一个带有String类型参数的构造方法,参数含义:出现异常的原因仿照NullPointerException创建自定义异常类(含两个构造方法)if(!原创 2023-12-19 20:45:26 · 945 阅读 · 0 评论 -
Java的String类常用方法 |StringBuilder和StringBuffer
由于String的不可更改特性,为了方便字符串的修改,Java中又提供StringBuilder和StringBuffer类。这两个类大部分功能是相同的,这里介绍 StringBuilder常用的一些方法方法说明在尾部追加,相当于String的+=,可以追加:boolean、char、char[]、double、float、int、long、Object、String、StringBuff的变量获取index位置的字符获取字符串的长度获取底层保存字符串空间总的大小扩容。原创 2023-12-13 22:40:40 · 1055 阅读 · 0 评论 -
java的多态
在子类构造方法中,并没有写任何关于父类构造的代码,但是在构造子类对象时,先执行父类的构造方法,然后执行子类的构造方法,因为:子类对象中成员是有两部分组成的,父类继承下来的以及子类新增加的部分。父子父子肯定是先有父再有子,所以在构造子类对象时候 ,先要调用父类的构造方法,将从父类继承下来的成员构造完整,然后再调用子类自己的构造方法,将子类自己新增加的成员初始化完整。总结:成员方法没有同名时,在子类方法中或者通过子类对象访问方法时,优先访问自己的,自己没有时再到父类中找,如果父类中也没有则报错。原创 2023-12-10 14:05:18 · 863 阅读 · 0 评论 -
Java的内部类
只能在方法里面实例化对象.不能被public、static等访问限定符修饰局部内部类只能在所定义的方法体内部使用编译器也有自己独立的字节码文件,命名格式:外部类名字$数字内部类名字.class。原创 2023-11-25 23:59:51 · 1450 阅读 · 0 评论 -
JDK的配置及运行过程
【面试题】JDK、JRE、JVM之间的关系?JDK(Java Development Kit):Java开发工具包,提供给Java程序员使用,包含了JRE,同时还包含了编译器javac与自带的调试工具Jconsole、jstack等。JRE(Java Runtime Environment):Java运行时环境,包含了JVM,Java基础类库。是使用Java语言编写程序运行的所需环境。JVM(Java vitual machine):Java虚拟机,运行Java代码。原创 2023-10-23 18:33:54 · 351 阅读 · 0 评论
分享