![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA基础
文章平均质量分 64
JAVA基础内容
一介草民丶
共同学习,共同进步.
展开
-
Java | sleep、wait、yield、join、notify、notifyAll
wait(): 是Object 的方法, wait()方法在线程休眠的同时会释放掉锁,其他线程可以访问.需要其他线程调用notify 唤醒,wait 使用时必须先获取对象锁,必须在synchronized 修饰的代码块中使用.依赖锁,线程变为阻塞状态。yield(): 停止当前线程,线程重回就绪状态,不会让线程进入阻塞状态 让同等或者高于当前线程优先级的线程运行,低于当前线程优先级的线程 yield() 将不会起作用 也是Thread 的静态方法. 线程变为就绪状态;...原创 2022-08-17 18:05:19 · 178 阅读 · 0 评论 -
阿里巴巴Java开发手册详细版本
开发规范原创 2022-06-27 17:55:26 · 274 阅读 · 0 评论 -
Java锁 | synchronized、Lock与CAS详解
Synchronized与Lock1. 锁-简介2. synchronized3. Lock 悲观锁4. CAS 自旋锁4.1 ABA 问题原创 2022-02-24 20:44:27 · 1218 阅读 · 0 评论 -
Java | volatile关键字
volatile1. volatile的作用2. 怎么保证可见性2.1 JMM (Java Memory Model)2.2 解决方法2.3 总线嗅探机制3. 如何保证有序性3.1 禁止指令重排序3.2 内存屏障1. volatile的作用volatile:是Java修饰符 用来修饰变量。volatile 保证了变量的内存可见性、有序性(禁止指令重排序);注意:volatile 不能保证原子性。volatile 属性的读写操作都是无锁的,它不能替代 synchronized,因为它没有提供原子性和互斥原创 2022-01-25 17:16:50 · 522 阅读 · 0 评论 -
Java线程 | 进程、线程、多线程
进程、线程、多线程原创 2022-01-24 17:55:55 · 289 阅读 · 1 评论 -
Java集合 | Map
Java集合(二)-MapMap介绍Map 是最常用的集合类型之一,Map 是K V 形式的每一个原创 2021-12-08 20:21:45 · 325 阅读 · 0 评论 -
Java集合 | List与Set
集合-List与SetList 集合ArrayListLinkedListVectorSet 集合 -(无序不重复的集合)HashSetLinkedHashSetTreeSetList 与Set 的区别List 集合List 是一个接口 他继承与Collection的接口;有序可重复的集合实现List 的对象有 ArrayList 、LinkedList 和 VectorArrayListArrayList 底层是用数组实现的,有下标 查询快增删慢,在每次进行增删操作时都会移动元素;线程异原创 2021-11-28 21:10:10 · 193 阅读 · 0 评论 -
JDK、JRE、JVM
JDK->JRE->JVMJDK包含 JRE JRE包含JVMJDK: 开发类库+JREJRE: 运行类库+JVMJVM: 虚拟机 它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,以便在虚拟机上运行。 JVM 虚拟机: 主要是由 类加载器...原创 2021-11-28 16:55:49 · 413 阅读 · 0 评论 -
Java | 基本类型 四类八种
Java的基本类型 四类八种 整数类型: byte 1个字节 8bit short 2个字节 16bit int (默认) 4个字节 32bit long 8个字节 64bit 小数类型: float 4个字节 32bit double (默认) 8个字节 64bit 字符类型: char 2个字......原创 2020-03-26 23:17:46 · 290 阅读 · 0 评论 -
ThreadLocal详细介绍以及原理分析
ThreadLocal这里写目录标题ThreadLocal一级目录二级目录三级目录一级目录二级目录三级目录原创 2021-11-02 14:10:41 · 130 阅读 · 0 评论 -
synchronized关键字与lock 接口
synchroniezd 可以修饰在方法上 与代码块上; 被synchronized 修饰的方法不能被继承; synchroinzed static 修饰的方法 是锁住的是类, 当一个类中 类方法有多个时 只要一个线程访问其中一个被 synchronized 修饰的类方法,其他线程就不能同时访问其他被 synchroinzed修饰的类方法; synchroinzed 修饰非static方法 锁住的是这个对象实例, 当一个对象实例中有多个 被syn...原创 2020-06-26 22:56:58 · 176 阅读 · 0 评论 -
final、finally、finalize的区别
final 修饰符 被final 修饰的类不能被继承 被final 修饰的变量不能被改变, 被final修饰的方法不能被重写finally 异常处理机制 finally 是异常处理机制 , finally 中的代码 不管有无异常发生都会被执行, 经常用来作为关闭连接使用 try{ } catch(Exception ...原创 2020-03-30 23:42:49 · 123 阅读 · 0 评论 -
设计模式-单例模式
懒汉式普通实现代码 线程安全的public class Singleton { public static Singleton singleton = null; private Singleton() { } public static Singleton getSingleton() { if (singleton == null...原创 2020-03-30 23:32:58 · 111 阅读 · 0 评论 -
【Java8】Lambda表达式-简单聊
Lambda表达式 Lambda表达式: Lambda允许将函数作为一个方法的参数进行传递; 语法: (parameters) -> expression 或 (parameters) ->{ statements; } ...原创 2020-04-14 16:14:21 · 120 阅读 · 0 评论 -
【排序】— 冒泡排序与选择排序
冒泡排序是相邻的两个元素作比较代码:/** * 冒泡排序法 * * @param array */ public static int[] maopao(int[] array){ for (int i = 0;i<array.length-1;i++) { for (int j = 0; ...原创 2020-04-14 16:35:36 · 73 阅读 · 0 评论 -
JVM 新生代、 老年代、 永久代
新生代: 新生代分为三个区域 一个eden区两个survivor区(from 与 to); 通常情况下 新创建的对象分配在新生代的 eden区上 ,少数情况下也可能直接分配到老年代中; java虚拟机每次使用新生代中的eden区和其中的一块survivor(from)区, 在经过一次gc垃圾回收后 会将eden区与survivor(from)区中的存活的对象 复制到另一块 survivor(to) 区中(这里使用的是复制算法进行GC),最后清理掉eden 与刚才用过的surviv...原创 2020-06-28 18:04:42 · 313 阅读 · 0 评论