java底层原理
记录自己了解java底层原理的过程
Wgenty
这个作者很懒,什么都没留下…
展开
-
java volatile 关键字
问题记录volatile关键字的作用是什么?原理是什么?能否保证线程安全?volatile最大的特性是 可见性,也即 一个线程对用volatile修饰的是变量进行修改,其他线程可以立即看到更新后的值。(如何实现的?)volatile还有一个作用是 禁止指令重排。上面提到线程安全,那么究竟什么是线程安全?多线程执行时,为什么会出现线程不安全?执行指令时,操作系统里面经历了什么?带...原创 2019-04-17 17:56:13 · 137 阅读 · 1 评论 -
获得spring 容器的实例
WebApplicationContext webContext = ContextLoader .getCurrentWebApplicationContext();原创 2015-06-16 18:19:36 · 443 阅读 · 0 评论 -
spring 的XmlBeanFactory源码分析
XmlBeanFactory继承自DefaultListableBeanFactory,相比DefaultListableBeanFactory,它能解析Xml配置文件,因为它持有XmlBeanDefinitionReader,其构造方法调用了loadBeanDefinition方法public int loadBeanDefinitions(Resource resource) throws B原创 2018-01-17 20:37:30 · 231 阅读 · 0 评论 -
java构造器的调用顺序
此段摘选自java 编程思想构建器的调用遵照下面的顺序:(1) 调用基础类构建器。这个步骤会不断重复下去,首先得到构建的是分级结构的根部,然后是下一个衍生类,等等。直到抵达最深一层的衍生类。(2) 按声明顺序调用成员初始化模块。(3) 调用衍生构建器的主体。构建器调用的顺序是非常重要的。进行继承时,我们知道关于基础类的一切,并且能访问基础类的任何public 和 protect原创 2017-06-30 15:00:46 · 246 阅读 · 0 评论 -
java中volatile关键字的含义
在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。 synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synch转载 2016-05-21 13:16:41 · 251 阅读 · 0 评论 -
java关键字--synchronzied
记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问ob转载 2016-05-04 22:20:34 · 460 阅读 · 0 评论 -
java源码分析--Enumeration接口和Iterator接口
Enumeration接口本身不是一个数据结构。但是,对其他数据结构非常重要。 Enumeration接口定义了从一个数据结构得到连续数据的手段。例如,Enumeration定义了一个名为nextElement的方法,可以用来从含有多个元素的数据结构中得到的下一个元素。 Enumeration接口提供了一套标准的方法,由于Enumeration是一个接口,它的角色局限于为数据结构提原创 2016-05-04 21:59:48 · 556 阅读 · 0 评论 -
java源码分析--HashMap的工作原理
HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。ConcurrentHashMap和其它同步集合的引入转载 2016-05-04 21:51:10 · 291 阅读 · 0 评论 -
java 动态代理
java动态代理的作用?可以将一个对象A的所有操作代理给另外一个对象B,这样可以在不改变A对象的情况下,通过修改B对象,实现在A对象的方法前方法后加上一些必要的代码,如打印日志。那么java动态代理代码如何编写?package com.wzt.www.proxy;import java.lang.reflect.InvocationHandler;import java.lang.refle...原创 2018-02-01 17:28:39 · 1167 阅读 · 0 评论 -
java threadlocal的研究
1、提出问题threadlocal是什么?原理是什么?有什么作用?threadlocal解决了什么问题?2、源码阅读threadlocal提供了如下方法public T get() { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if (map != null) { T...原创 2018-01-12 10:30:52 · 160 阅读 · 0 评论