
Java
文章平均质量分 89
java基础知识
jim8973
这个作者很懒,什么都没留下…
展开
-
软件设计的七大原则以及UML时序图的记忆规则
记忆技巧UML箭头方向:从子类指向父类定义子类时需要通过extends关键字指定父类子类一定是知道父类定义的,但是父类并不知道子类的定义只有知道对方信息时才能指向对方所以箭头方向是子类指向父类记忆技巧--->实线:继承 | 虚线-->实现空心三角箭头:继承或实现实现-继承,is a 关系,扩展目的,不虚,很结实虚线-实现,虚线代表“虚”无实体记忆技巧---实线-关联 | 虚线-依赖 虚线--依赖关系:临时用一下,若即若离,虚无缥缈。若有若无 表示一种使用关系,一个类原创 2021-07-31 22:53:49 · 1120 阅读 · 0 评论 -
Java volatile详解
volatile关键字volatile是什么volatile是一种同步机制,比synchronized活着Lock相关类更轻量,因为使用volatile并不会发生上下文切换等开销很大的行为如果一个变量被volatile修饰,那么JVM就知道了这个变量可能会被并发修改但是开销小,相应的能力也小,虽说volatile是用来同步的保证线程安全的,但是volatile做不到synchronized那样的原子保护,volatile仅在很有限的场景下才能发挥作用volatile的适用场合适用场合1:b原创 2021-07-24 22:03:53 · 519 阅读 · 2 评论 -
线程安全的情况分析
描述什么是线程安全《Java Concurrency In Practice》的作者Brian Goetz对“线程安全”有一个比较恰当的定义:“当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的”。这句话的意思是:不管业务中遇到怎样的多个线程访问某对象或某方法的情况,而在编程这个业务逻辑的时候,都不需要额外做任何额外的处理(也就是可以像单线程编程一样),程原创 2021-07-18 16:12:41 · 267 阅读 · 1 评论 -
Java Synchronized用法和多线程调式
Synchronzied的两个用法:对象锁包括方法锁(默认锁对象为this当前实例对象)和同步代码块锁(自己指定锁对象)代码块形式:手动指定锁对象@Overridepublic void run() { synchronized (this) { System.out.println("我是对象锁的代码块形式。我是" + Thread.currentThread().getName()); try { Thread.sleep(3原创 2021-06-22 16:28:58 · 256 阅读 · 1 评论 -
Java线程的创建、启动和停止
创建线程的两种种方式(Only Two)1、用Thread的方式实现线程public class ThreadStyle extends Thread{ @Override public void run() { System.out.println("用Thread类实现线程"); } public static void main(String[] args) { new ThreadStyle().start(); }}原创 2021-04-07 22:21:46 · 705 阅读 · 0 评论 -
Java中synchronized锁字符串
Synchronized锁字符串代码如下public class StringThread implements Runnable{ private static final String LOCK_PREFIX = "XXX---"; private String taskNo; public StringThread(String taskNo) { this.taskNo = taskNo; } @Override public原创 2020-10-16 17:09:49 · 4492 阅读 · 5 评论