
Java
coder_rad
https://rad911.github.io/
展开
-
深拷贝和浅拷贝
深拷贝和浅拷贝浅拷贝,只是拷贝基本类型的数据,而引用类型数据,是复制的引用而不是复制的对象。 深拷贝,将原对象所有的数据复制一份到另一个新开辟的空间。 Java中的浅拷贝可以用实现Cloneable接口调用Object类中的clone方式来实现浅拷贝。 Java中的深拷贝可以通过实现Serializable接口实现(先使对象实现Serializable接口,然后把对象写到一个流里,再从流...原创 2018-03-28 14:47:18 · 156 阅读 · 0 评论 -
final关键字
final关键字1.修饰类当final修饰类的时候,表明这个类不能被继承。final类中的成员变量可以根据需要设置为final,但是需要注意的是final类的所有方法都会隐式的指定为final方法。2.修饰方法使用final修饰方法的原因有两个,一个是把方法锁定了,防止任何继承类修改它的含义。第二个是效率,在早期的Java实现版本中,会将final方法转为内嵌调用。但是方法过于庞大的话,...原创 2018-11-29 09:50:34 · 186 阅读 · 0 评论 -
ThreadLocal
1.作用ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问(通过get或set方法访问)时能保证各个线程里的变量相对独立于其他线程内的变量。可以总结为一句话:ThreadLocal的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。至于ThreadLocal为什么可以解决多线程程序并发问题...原创 2018-11-25 22:12:27 · 260 阅读 · 2 评论 -
内存泄露
1.什么是内存泄露内存泄露的定义:对象已经没有被应用程序使用,但是垃圾回收器没有办法移除它们,因为还在引用着。简而言之,对象是可达的但是不再使用。我们可以看一下下面的图方便我们理解。上面图中可以看出,里面有被引用对象和未被引用对象。未被引用对象会被垃圾回收器回收,而被引用的对象却不会。未被引用的对象当然是不再被使用的对象,因为没有对象再引用它。然而无用对象却不全是未被引用对象。其中还有被引...原创 2018-11-25 18:55:23 · 160 阅读 · 0 评论 -
深入理解JVM(三):内存溢出
在Java虚拟机规范的描述中,除了程序计数器之外。虚拟机内存的其他几个运行区域都有发生OutOfMemoryError(OOM)异常的可能。1.Java堆溢出Java堆用于存储对象实例,只要不断的创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制来清除这些对象,那么在对象数量到达最大堆的容量限制后就会产生内存溢出异常。来看一下代码:public class HeapO...原创 2018-10-15 19:07:17 · 360 阅读 · 0 评论 -
IOC的工作过程
1.如何创建BeanFactory工厂构建的入口在AbstractApplicationContext类的refresh方法中。我们可以从一个例子来入手 public class test { private ApplicationContext context; @Test public void test1(){ context = new ClassPathXmlAp...原创 2018-09-20 16:45:28 · 3217 阅读 · 0 评论 -
Java中的char和byte
byte 是字节数据类型 ,是有符号型的,占1 个字节;大小范围为-128—127 。char 是字符数据类型 ,是无符号型的,占2字节(Unicode码 );大小范围 是0—65535 ;char是一个16位二进制的Unicode字符,JAVA用char来表示一个字符 。char是可以表示中文的。...原创 2018-08-18 11:01:10 · 1797 阅读 · 0 评论 -
Spring的@bean注解
解释Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。 (和xml配置中的bean标签的作用是一样的)例子我们使用一个案例来解释 (1)功能类Beanpackage com.wisely.highlight_spring4.ch1.javaconfig;public class FunctionService { ...原创 2018-06-27 14:54:42 · 43677 阅读 · 3 评论 -
JavaWeb项目中WEB-INF的目录
WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录(来自百度百科)。有时候,为了安全,可能需要把jsp文件放在WEB-INF目录下。我们可通过下面两个方法来实现访问jsp文件:通过配置文件对要访问的文件进行相应映射才能访问。 如:通过配置web.xml的servlet映射访问jsp文件、springMVC的配置文件中配置资源映射。通过后...原创 2018-06-20 20:54:20 · 7369 阅读 · 0 评论 -
finally和return的执行顺序
今天看到一段代码,try中有return语句,后面还有一个finally,不知道执行过程是什么样的。于是来试验了一下。1.try和catch中有return时,finally里面的语句会被执行吗我们可以来分别看看 (1)执行try中的return时public class tryDemo { public static int show() { try ...原创 2018-05-22 15:22:06 · 52055 阅读 · 18 评论 -
使用递归的方式输出 n的全排列(Java版)
使用递归的方式输出 n的全排列(Java版)import java.util.ArrayList;import java.util.List;public class Permutation { static void swap(List<Integer> list,int i,int j){ Integer temp = list.get(i); ...原创 2018-05-21 23:31:35 · 3623 阅读 · 1 评论 -
PO、VO、POJO、DTO、DAO、Service包等常见包的理解
POJOPOJO(Plain Ordinary Java Object),简单的Java对象,名字强调它是一个普通的java对象。POJO只有private属性以及这个属性的public的get和set方法,只能装载数据,也不能实现接口。POJO不是JavaBean,不承担任何特殊的角色,也不实现任何接口。POPO(Persistent Object)持久化对象,是与数据库中表相...原创 2018-04-19 20:24:18 · 15098 阅读 · 0 评论 -
volatile关键字
volatile关键字的两层语义一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,就具备了两层语义:1.保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这个新指对其他线程来说是立即可见的。2.禁止指令重排序。有两层意思:(1)当程序执行到volatile变量的读操作或者写操作时,在其前面的更改肯定全部进行完成,且结果已经对后面的操作可见...原创 2018-11-29 10:48:23 · 188 阅读 · 0 评论