关键词搜索

源码搜索 ×
×
JAVA

Java之synchronized可重入性的理解

1 synchronized可重入性的理解当一个线程试图操作一个由其他线程持有的对象锁的临界资源时,将会处于阻塞状态,但当一个线程再次请求自己持有对象锁的临界资源时,如果当前锁是重入性,会请求将会成功,如果当前锁不是可重入性,会等待当前对象锁的释放,实际上该对象锁已被当前线程所持有,不可能再次获得,就会产生死锁,在java中synchronized是基于原子性的内部锁机制,是可重入的,因
JAVA

一篇文章带你搞定 Java 中的内部类

内部类的唯一好处就是可以方便地访问外部类中的私有属性文章目录一、内部类的基本定义二、使用static定义内部类三、在外部访问内部类四、在方法中定义内部类一、内部类的基本定义在类内部可定义成员变量与方法,而且在类内部也可以定义另一个类,如果在类Outer的内部再定义一个类Inner,此时类Inner就称为内部类,而类Outer则称为外部类内部类可声明成public或private,当内部类声明成pu
JAVA

(Java)关于内存分配的理解

(1)栈内存空间:保存所有的对象名称(更准确地说是保存了引用的堆内存空间的地址)(2)堆内存空间:保存每个对象的具体属性内容。(3)全局数据区:保存static类型的属性(4)全局代码区:保存所有的方法定义文章目录一、从数组角度理解内存分配二、从字符串角度来理解内存分配一、从数组角度理解内存分配拿数组操作来说,在栈内存中保存的永远是数组的名称,只开辟了栈内存空间的数组是永远无法使用的,必须有指向的
JAVA

Java之volatile如何保证可见性和指令重排序

1我们先了解CPU缓存CPU缓存为了解决CPU运算速度与内存读写速度不匹配的问题,因为CPU运算速度要比内存读写速度快得多一次主内存的访问通常在几十到几百个时钟周期一次L1高速缓存的读写只需要1~2个时钟周期一次L2高速缓存的读写也只需要数十个时钟周期CPU大多数情况下读写都不会直接访问内存,取而代之的是CPU缓存,CPU缓存是位于CPU与内存之间的临时存储器(简单理解为寄存器),它容量比内存小得
JAVA

Java之HashMap、Hashtable、LinkedHashMap、TreeMap、ConcurrentHashMap简单的区别

一、HashMap1)底层实现 数组+链表+红黑树(在JDK1.8中如果链表长度大于8的时候才转换为红黑树)2)是否线程安全不支持线程的同步,线程不安全,如需同步,可用Collections的synchronizedMap方法或者使用ConcurrentHashMap,调用这个对象的方法使HashMap具有同步的能力。3)插入值操作过程publicsynchronizedVput(Kke
JAVA

Java中关于static静态关键字

在Java语言中,static表示“静态”的意思,使用场景可以用来修饰成员变量和成员方法,当然也可以是静态代码块。static的主要作用在于创建独立于具体对象的域变量或者方法。本文主要来去讲解一下static的来龙去脉。static要解决什么问题?我们知道,当我们通过new关键字去创建对象的时候,那么数据的存储空间才会被分配,类中的成员方法才能被对象所使用。但是呢有两种特殊的情况:1、我们通过ne
JAVA

linux下JAVA环境变量的配置

linux和win7都是多用户的操作系统,所以配置环境变量的位置就说明了这个环境变量起作用的范围。如上win7我配置到了bai用户下,那么只有当bai用户登录的时候才能够使用java环境。别的用户就用不到,当然如果你的配置是在系统变量上,那么这台计算机上所有的用户都能够用到这个环境。熟悉了这个概念后,linux上配置环境变量就简单了。第一步:下载下载linux对应版本的jdk到/usr/local
点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载