由常见面试理解java
由常见面试理解java
clz1314521
这个作者很懒,什么都没留下…
展开
-
java虚拟机工作原理
一、类加载器首先来看一下java程序的执行过程。 从这个框图很容易大体上了解java程序工作原理。首先,你写好java代码,保存到硬盘当中。然后你在命令行中输入[java]view plaincopyjavacYourClassName.java此时,你的java代码就被编译成字节码(.class).如果你是...转载 2020-01-12 09:58:13 · 165 阅读 · 0 评论 -
Spring Bean的生命周期(非常详细)
本文主要参考:https://www.cnblogs.com/zrtqsk/p/3735273.htmlSpring Bean的生命周期是非常必要的,一些开源项目结合spring标签开发,了解spring bean生命周期后有助于理解这些项目的细节以及结构。我们通常使用ApplicationContext作为Spring容器。这里,我们讲的也是 ApplicationContext中Bean的生命...转载 2018-06-25 16:08:15 · 311 阅读 · 0 评论 -
真正理解volatile关键字
volatile的作用1,保证可见性2,保证cpu指令顺序执行上面两个特性就不过多解释了当volatile 修饰 int i 时,为什么不是线程安全呢?如图:由上,我们可以得出以下结论。read和load阶段:从主存复制变量到当前线程工作内存; use和assign阶段:执行代码,改变共享变量值; store和write阶段:用工作内存数据刷新主存对应变量...原创 2018-08-10 11:10:08 · 203 阅读 · 0 评论 -
动态代理是基于什么原理?
java是静态的强类型语言,但是因为提供了反射等机制,也就具备了部分动态类型的语言能。反射机制是java语言提供的一种基础功能,赋予程序在运行时自省的能力。通过反射我们可以直接操作类或者对象动态代理是一种方便运行时动态构建代理、动态处理代理方法调用的机制,很多场景都会用到。rmi、rpc等动态代理主要是让调用者与实现者之间解耦。jdk动态代理和cglib区别jdk 是通过inv...原创 2018-08-06 20:59:32 · 850 阅读 · 0 评论 -
强引用、软引用、弱引用、幻象引用有什么区别?
不同的引用类型,主要体现的是对象不同的可达性状态和对垃圾收集的影响。强引用:是我们常见的普通对象引用。只要还有强引用指向一个对象,就能表明对象还活着,垃圾回收器不会进行回收。软引用:是一种相对强引用弱化一些的引用,可以让对象豁免一些垃圾收集。只有当jvm认为内存不足时,才会去试图回收软引用指向的对象。jvm会确保在抛出outofmemoryError之前,清理软引用对象。如果还有空闲内存就...原创 2018-08-04 21:19:20 · 207 阅读 · 0 评论 -
Exception和Error的区别?
Exception和Error都是集成了Throwable类。Exception是程序运行中,可以预料的以外情况,可被捕获并能进行相应的处理。Exception可分为checked 和 unchecked,checked必须要进行显示捕获。Error是正常情况下,不大可能出现的情况,绝对部分的的Error都会导致程序 处于非正常,不可回恢复的状态。如outofmemor...原创 2018-08-04 20:45:17 · 167 阅读 · 0 评论 -
StringBuilder和Stringbuffer 对比
关于StringBuilder,一般同学只简单记住了,字符串拼接要用StringBuilder,不要用+,也不要用StringBufferStringBuffer 与 StringBuilder在使用中要出 设置初始长度。StringBuffer 与 StringBuilderStringBuffer与StringBuilder都是继承于AbstractSt原创 2016-05-09 00:16:30 · 330 阅读 · 0 评论 -
java中hashcode()和equals()的详解
今天下午研究了半天hashcode()和equals()方法,终于有了一点点的明白,好久没看Java基础,这个有点忘记了,在网上搜了下,这篇写的不错,引入地址是:http://www.javaeye.com/topic/2571911. 首先equals()和hashcode()这两个方法都是从object类中继承过来的。 equals()方法在object类中定义如下: public boolean equals(Object obj) { return (this == obj); } 很明显是对两原创 2010-06-10 21:30:00 · 792 阅读 · 1 评论 -
ArrayList使用toArray()构造数组时的问题
转自:http://www.25175.net/200808/html/2008-08/117.html1. 为了方面按列作外循环,想把ArrayList构造成一个二维数组,如下: ...... ArrayList result=GetResult(); int n=result.size(); String[][] myArray=new String[n][]原创 2009-04-28 20:24:00 · 739 阅读 · 0 评论