摘要: 1、volatile作用 轻量级的synchronized,保证多处理器开发中的共享变量的可见性,如果这个变量修饰符使用恰当的话,不会引起上下文的切换和调度。 2、执行流程 volatile进行写操作时,会多出一行汇编代码,即lock前缀指令 该指令在多核处理器中: 引起处理器缓存写到内存 Lock 阅读全文
posted @ 2020-05-11 08:45 久别重逢 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 静态变量和静态方法 static关键字最基本的用法是: 1、被static修饰的变量属于类变量,可以通过类名.变量名直接引用,而不需要new出一个类来 2、被static修饰的方法属于类方法,可以通过类名.方法名直接引用,而不需要new出一个类来 被static修饰的变量、被static修饰的方法统 阅读全文
posted @ 2020-05-10 09:50 久别重逢 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 一、基本用法 修饰类 表示这个类不能被继承,并且final类的所以成员方法都可以都会被隐式制定为final方法。因为final修饰类以后,导致类不能再被继承,出于安全考虑,尽量不要将类设计为final类。 修饰方法 锁定方法,防止任何继承类修改它的含义 效率。早期java版本,final方法转为内嵌 阅读全文
posted @ 2020-05-10 09:48 久别重逢 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 概述 垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。 jvm 中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此, 阅读全文
posted @ 2020-05-10 09:46 久别重逢 阅读(96) 评论(0) 推荐(0) 编辑
摘要: JVM内存结构主要有三大块:堆内存、方法区和栈。堆内存是JVM中最大的一块由年轻代和老年代组成,而年轻代内存又被分成三部分,Eden空间、From Survivor空间、To Survivor空间,默认情况下年轻代按照8:1:1的比例来分配; 方法区存储类信息、常量、静态变量等数据,是线程共享的区域 阅读全文
posted @ 2020-05-10 09:44 久别重逢 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 1、什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的 Class对象, Class对象封装了类在方法区内的数据结构, 阅读全文
posted @ 2020-05-10 09:42 久别重逢 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 1、线程安全:多线程单线程程序运行结果一致 线程不安全:多线程单线程程序运行结果不一致 2、导致线程安全问题原因 全局变量或者静态变量引起; 一般情况下,多个线程只读数据,不写数据,则线程是安全的; 若多个线程同时执行写操作,则容易导致线程不安全问题发生。 根本原因: 多个线程操作共享的数据 操作共 阅读全文
posted @ 2020-05-10 09:36 久别重逢 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 一、继承Thread类,重写run方法,实现创建一个线程 package com.wuhao.thread; import java.util.Date; /** * 自定义线程 */ public class MyThread extends Thread{ public void run() { 阅读全文
posted @ 2020-05-10 09:35 久别重逢 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 1、新建 new 关键字创建线程之后,该线程处于新建状态 JVM为线程分配内存,初始化成员变量值 2、就绪 线程调用start()方法,线程处于就绪状态 JVM为线程创建方法栈和程序计数器,等待线程调度器调度 3、运行 就绪态的线程获得CPU资源,开始执行run()方法,线程处于运行状态 4、阻塞 阅读全文
posted @ 2020-05-10 09:32 久别重逢 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 一、统一建模语言 UML,用来设计软件设计蓝图的建模语言,简单、统一、图形化、能表达软件设计中的动态和静态信息。 包括用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图。 二、类、接口、类图 1、类 具有相同属性、方法和关系的对象的抽象,封装了数据和行为,具有封装、继承、多态三大特 阅读全文
posted @ 2020-04-05 23:11 久别重逢 阅读(489) 评论(0) 推荐(0) 编辑