
javaSE
文章平均质量分 86
goalietang
15年IT java运维,开发,需求,设计,管理。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[JUC] LockSupport 相关原理和使用的学习
一、什么是LockSupportLockSupport是java.util.concurrent.locks包下面的一个类。在java并发包下各种同步组件的底层实现中,LockSupport的身影处处可见。JDK中的定义为用来创建锁和其他同步类的线程阻塞原语。我们可以使用它来阻塞和唤醒线程,功能和wait,notify有些相似,但是LockSupport比起wait,notify功能更强大,也好用的多。并发组件和并发工具大都是基于AQS来实现的, AQS就是AbstractQueuedSynchro原创 2021-07-13 01:19:16 · 298 阅读 · 0 评论 -
[JUC] sun.misc.Unsafe的原理 【转载】
什么是UnsafeUnsafe类在JDK源码中被广泛使用,在Spark使用off-heap memory时也会使用到,该类功能很强大,涉及到类加载机制,其实例一般情况是获取不到的,源码中的设计是采用单例模式,不是系统加载初始化就会抛出SecurityException异常。这个类的提供了一些绕开JVM的更底层功能,基于它的实现可以提高效率。(通常是直接操作内存)但是,它是一把双刃剑:正如它的名字所预示的那样,它是Unsafe的,它所分配的内存需要手动free(不被GC回收)。如果对Unsafe类理解转载 2021-07-12 23:25:39 · 183 阅读 · 0 评论 -
[JUC] Java Util Concurrent包的认识
jDK1.5开始,java增加了对并发处理的包java.util.concurrent. 该包在很多并发需求下有大量的使用需要。所以应该更多的去了解包的内容。下面是这个包的结构图。该包下面主要分5部分:collections:并发相关的集合的工具。如List,Set,Map和Queue tools:并发所用到的一些常用工具,这部分因为常常用到,所以需要牢记。 locks:并发用到的锁的概念,相对于synchronized隐式锁更加强大与灵活,并且对锁的操作花费的代价更低。要想在并发开发过程.原创 2021-07-12 16:40:42 · 215 阅读 · 0 评论 -
[多线程]Synchronized与java.util.concurrent.locks.Lock
我们学习的时候常常使用Synchronized关键字来做代码块或者方法等资源的同步操作。但是java.util.concurrent包中也提供了lock对象来手动的为自己的代码加锁。下面有相关的不同点,仅供参考:1.Synchronized: java内置关键字, Lock 是一个java util包下的类2.Synchronized: 无法判断获取锁的状态, Lock可以判断是否获取到了锁3.Synchronized: 会自动释放锁, Lock必须要手动释放锁,如果不释放,会造成死...原创 2021-07-04 23:48:05 · 260 阅读 · 0 评论 -
浅谈Java的反射(一) 构造方法反射调用
“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。但是JAVA有着一个非常突出的动态相关机制:Reflection,用在Java身上指的是我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整...原创 2014-02-27 23:32:53 · 271 阅读 · 0 评论 -
浅谈Java的反射(二) 普通方法和main方法的反射调用
我们来接着实验以下反射调用普通的方法是怎样一种机制 下面是我在User类中增加的许多方法[code="java"] //普通的无参无返回值public方法 public void execute1(){ System.out.println("execute1()"); } //普通的有参数,有返回值的public方法 public ...原创 2014-03-01 00:26:11 · 207 阅读 · 0 评论 -
浅谈Java的反射(三) 字段的反射调用和赋值
趁热打铁,让我们继续了解反射调用字段的相关,这里我们还是沿用User这个类,我们在里面设置了几个不同修饰符,不同类型的变 量,见代码:[code="java"] //静态的String类型的变量 public static String field1 = "tangyu"; //共有的String类型变量 public String field2 = "qianji...原创 2014-03-01 01:13:13 · 333 阅读 · 0 评论 -
浅谈Java的反射(四) 内省的使用
做了这么久Java程序开发,反射(Reflect)的概念倒是知道了不少,可是还有一种方式是跟反射有紧密联系的,我们平时很少谈及到,这就是内省(Introspector)了。 那什么是内省呢? 内省(Introspector)是Java 语言对Bean类属性、事件的一种缺省处理方法。例如类 A 中有属性 name, 那我们可以通过 getName,se...原创 2014-03-01 02:16:25 · 188 阅读 · 0 评论 -
浅谈Java的反射(五)对JavaBean的其他反射操作
无论是反射调用对象方法属性,还是利用内省的机制来读取属性描述器从而获得对象属性进行操作,都是Java所提供的一种别样的类型操作方式。但是除了Java本身提供的对对象的内省操作方式外,其他机构在此基础上也封装了一些更便于使用的包来实现这样的操作。我们曾经接触过的很多框架,也正是在这些包提供支持的基础上,再封装出来一系列自己的API的。这些包中,比较经典也是大多数人都接触过的,当然还是...原创 2014-03-03 02:11:04 · 151 阅读 · 0 评论