自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 深入底层带你理解Synchronized

由于今天主要是围绕Synchronized,所以这里就主要讲一下它的底层原理以及扩展内容。乐观锁乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,采取在写时先读出当前版本号,然后加锁操作(比较跟上一次的版本号,如果一样则更新),如果失败则要重复读-比较-写的操作。java 中的乐观锁基本都是通过 CAS 操作实现的,CAS 是一种更新的原子操作,比较当前值跟传入值是否一样,

2020-07-18 08:13:05 340

原创 io的四种模式

很多的小伙伴,被java IO 模型中,搞得有点儿晕,一会儿是4种模型,一会儿又变成了5种模型。​ 很多的小伙伴,也被nio这个名词搞晕了,一会儿java 的nio 不叫 非阻塞io,一会儿java nio 又是非阻塞io,到底是啥呢?​ 很多的小伙伴,被异步和非阻塞搞晕了。都非阻塞了,难道不是异步的吗?​ 这这,好难呀。​ 此文,从底层入手,给各位小伙伴,起底一下,java的四大io模型。需要面试的,或者没有弄清楚的小伙伴,彻底的有福了。1.1. Java IO读写原理无论是Socket的读写

2020-07-21 15:15:24 1879

原创 深入理解线程的原理和用法

Java中的线程:程序、进程和线程1程序是一段静态的代码,它是应用程序执行的蓝本2进程是程序的一次动态执行过程。它对应了从代码加载、执行到执行完毕的一个完整过程。作为蓝本的程序可以被多次加载到系统的不同内存区域分别执行,形成不同的进程。3线程是进程内部单一的一个顺序控制流。一个进程在执行过程中,可以产生多个线程。每个线程也有自己产生、存在和消亡的过程。使用线程的目的就是 增加并发性。就绪态:1分配指令计数器pc 2在jvm中拥有独立的虚拟机栈、本地方法栈和PC寄存器(可以随时占用处理机)会跟主

2020-07-17 19:21:06 203

转载 JVM深入理解内部类

原文链接:https://blog.csdn.net/Hacker_ZhiDian/article/details/82193100原文链接:https://blog.csdn.net/coder_what/article/details/89381302

2020-07-06 19:44:30 320

转载 java中Map遍历的四种方式

java中Map遍历的四种方式在java中所有的map都实现了Map接口,因此所有的Map(如HashMap, TreeMap, LinkedHashMap, Hashtable等)都可以用以下的方式去遍历。方法一:在for循环中使用entries实现Map的遍历:复制代码/**最常见也是大多数情况下用的最多的,一般在键值对都需要使用*/Map <String,String>map = new HashMap<String,String>();map.put(“熊大

2020-07-05 20:04:27 90

原创 详解设计模式之适配器模式

1. 适配器模式——类适配器模式话不多说先上代码public class ClassAdapter { public static void main(String[] args) { Phone p = new Phone(); p.charging5(new Adapter()); }}class Phone { public void charging5(voltage5 v5) { v5.charging5(); System.out.println("充电");

2020-07-04 10:04:02 74

转载 深度理解final关键字

对于final的基本用法可以参考这篇文章 转载 https://www.cnblogs.com/liun1994/p/6691094.html常量池:存放字符串常量和基本类型常量(public static final)常量池:JVM为每个已加载的类型维护一个常量池,常量池就是这个类型用到的常量的一个有序集合。包括直接常量(基本类型,String)和对其他类型、方法、字段的符号引用。池中的数据和数组一样通过索引访问。由于常量池包含了一个类型所有的对其他类型、方法、字段的符号引用,所以常量池在Java

2020-07-03 20:12:36 487

转载 分析一波大佬单例与

版权声明:本文为CSDN博主「Guide哥」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_34337272/article/details/80455972

2020-07-02 19:53:17 62

转载 深入了解== 和 equals的比较

原文链接:https://blog.csdn.net/qq_41841247/article/details/106987762

2020-07-01 14:52:00 83

原创 通过字节码深入了解创建对象的过程

package shixun.test;public class Test2643 { public static void main(String[] args) { Person person = new Person(); }}class Tag { int i; public Tag(int i) { this.i = i; //System.out.println("Tag(" + this.i + ")"); }}class Person { Tag t

2020-07-01 08:09:11 297 1

原创 根据代码详细分析继承、多态、重写、重载

public class Test65353 { static class Base { //private String showMe() public String showMe() { return "Base"; } public void print() { System.out.println(this.showMe()); } } /**子类*/ static class Sub extends Base { public String show

2020-06-29 20:32:33 138

原创 结合内存分析继承的实现

public class MyDog //先把MyDog.class文件加载到虚拟机,{ private static Animal myAnimal; //把Animal.class文件加载进虚拟机,在方法区的静态数据区开辟空间初始值为null,并和MyDog这个类做静态绑定。 public static void main(String args[]) //在栈中开辟一个主方法栈帧 {· /*创建对象使父类指向子类,让new的Dog对象和Animal做动态绑定动态绑定的三个特点

2020-06-28 20:21:22 104

原创 SpringCloud项目如何成功打包以及其中的一些坑

其中edu-online和edu-admin是前端项目,其他是后端模块。首先需要在父工程中添加需要打包的模块和打包依赖如果在父工程中配置过打包依赖则子模块中不需要配置打包依赖,但是如果有子模块需要被其他模块依赖,则需要在被依赖的子模块中上加上<build> <plugins> <plugin> ...

2020-04-14 12:57:07 4208 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除