![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
文章平均质量分 60
爱吃猫的鱼101
记录学习过程
展开
-
深入理解volatile
一.概念volatile是JVM提供的轻量级的同步机制,它有如下三大特性:保证可见性不保证原子性禁止指令重排(保证有序性)二.JMM之可见性JMM(Java内存模型Java Memory Model 简称JMM)本身就是一种抽象的概念并不真实存在,它描述的是一组规范或规则,通过这组规范定义了程序中的各个变量(包括实例字段、静态变量、构成数组对象的元素)的访问方式。JMM关于同步的规定:线程解锁前,必须把共享变量的值刷从工作内存回主内存线程加锁前,必须读取主内存中的最新值到自己的工作内原创 2021-12-22 23:06:28 · 483 阅读 · 0 评论 -
java中数据类型的分类
java中数据类型的分类我们知道Java是强类型语言,那么肯定对应的也就有弱类型语言,以下是强类型语言与弱类型语言的区别:强类型语言:强类型语言也就是强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过转换,那么该变量就永远是此数据类型了。(如:定义一个整型变量叫“a”,程序也只会认为“a”这个变量是整型,并且不可能把它来当作字符来处理。)强类型语言也是类型安全的语言。弱类型语言:弱类型语言也就是同强类型语言相对的语言,也就是说它的数据类型是可以被忽略的语言。它与强类型语转载 2021-12-16 14:51:40 · 1474 阅读 · 0 评论 -
java中的四种引用类型
java中的引用类型对象引用的强度比较:强引用(Strong Reference)> 软引用(Soft Reference)> 弱引用(Weak Reference)> 虚引用(Phantom Reference)Strong Reference :所谓强引用,就是我们最常见的普通对象引用,只要还有一个强引用指向对象,就表名对象还活着,立即回收器就不会去染指。对于一个普通对象,如果没有其它引用关系,只要超过了引用的作用域或者显式的将相应的强引用赋值为null,就可以被垃圾回收器进行原创 2021-12-16 14:33:06 · 245 阅读 · 0 评论 -
什么是守护线程
什么是守护线程守护线程: 顾名思义,为所有非守护线程(用户线程)提供服务的线程;任何一个守护线程都是整个jvm中所有非守护线程的保姆。它类似于整个进程中一个默默无闻的小老弟,它的生死无关重要,基本上没有人去关注它,但是它依赖与整个进程而运行,比如哪天其它线程结束了,没有需要再执行的了,程序就结束了,无需过问守护线程的意见,直接咔嚓。注意:由于守护线程的终止是无法控制的,因此重要的操作分配给它,比如说IO、File等,因为它不靠谱,说不定文件正写着,突然就结束了。作用: 说到这里肯定就感觉守护线原创 2021-12-13 16:40:22 · 423 阅读 · 0 评论 -
线程有几种状态?
线程的生命周期?线程有几种状态?线程的状态通常有五种:创建、就绪、运行、阻塞、死亡。其中阻塞呢又分为三种情况:等待阻塞:运行的线程执行wait方法,则该线程会释放占用的的所有资源,jvm会把该线程放入==“等待池”==中,进入这个状态后是不能被自动唤醒的,需要调用notify/notifyAll 方法才能被唤醒。同步阻塞:运行的线程在获取对象的同步锁时,若该同步锁被其它线程占用,则jvm会把该线程放入==“锁池”==中。其它阻塞:运行的线程执行sleep/join方法、或者发出了I/O请求时,原创 2021-12-11 14:55:56 · 4979 阅读 · 0 评论 -
java实现多继承的三种方式
java如何实现多继承 众所周知,Java是一种面向对象的只允许单继承的语言,这是每个Java程序员从业者都知道定理。那么可不可以通过一些手段实现多继承呢?答案是可以!实现多继承有三个方法:多层继承内部类接口多层继承 如果要直接继承类,子类是不可以直接多继承的,但是可以通过多层继承来实现多继承,但多层继承一般不建议超过三次。class A{//父类A类 private int num=10; public int getNum(){ return th原创 2021-12-05 19:14:32 · 31474 阅读 · 1 评论 -
java接口
interface1. 接口的修饰符 默认就是abstract,因为interface本身就是抽象的,加不加都一样。(把public去掉也没什么问题,接口中默认的访问修饰符就是public,因为接口就是哪来被实现的。)public interface Demo1 {}public abstract interface Demo2 {}interface Demo3 {}2.接口中的方法修饰符 默认就是public abstract 进行修饰,在阿里巴巴规范中提到接口中的方法和属原创 2021-12-05 19:13:46 · 453 阅读 · 0 评论 -
java抽象类
抽象类##1.抽象类的基本概念 普通类是一个完善的功能类,可以直接实例化对象,并且普通类中可以包含构造方法、普通方法、static方法、常量、变量等内容,而抽象类就是在普通类的结构里面增加抽象方法的组成部分。抽象类是对根源的抽象,而接口是一个特殊的抽象类,是对动作的抽象。 拥有抽象方法的类必须为抽象类!2.定义一个抽象类:abstract class Demo1 { public static void test1() { System.out.println("抽象类原创 2021-12-05 19:13:11 · 576 阅读 · 0 评论 -
Java逻辑运算符与八种基本数据类型
逻辑运算符& 与 false&true false 有一个为 false就为false| 或 false|true true 有一个为true就为true^ 异或 true^false true 两个相同为false,否则为true! 非 !true false原创 2021-09-18 14:46:16 · 237 阅读 · 0 评论