Java
ymzyf2007
这个作者很懒,什么都没留下…
展开
-
Java的String为什么要设计成final
在Java中将String设计成final是综合考虑到各种因素的结果,想要理解这个问题,需要综合内存,同步,数据结构以及安全等方面的考虑。1、字符串常量池的需要字符串常量池是Java堆内存中一个特殊的存储区域,当创建一个String对象时,假如此字符串值已经存在于常量池中,则不会创建一个新的对象,而是引用已经存在的对象。如下面的代码所示,将会在字符串常量池中只创建一个实原创 2015-09-21 18:08:49 · 430 阅读 · 0 评论 -
判断两个对象是否相等,为什么必须同时重写equals()和hashcode()方法
hashcode顾名思义是一个散列值码。散列值,并不能表现其唯一性,但是具有离散性,其意义在于类似进行hashMap等操作时,加快对象比较的速度,进而加快对象搜索的速度。hashcode和equals的关系两个对象equals的时候,hashcode必须相等,但hashcode相等时,对象不一定equals。在java中,equals和hashcode是有设计要求的,e转载 2016-03-04 16:22:47 · 3458 阅读 · 0 评论 -
Java-强引用、软引用、弱引用、虚引用详解
Java,强引用,软引用,弱引用,虚引用转载 2016-02-16 15:13:37 · 288 阅读 · 0 评论 -
什么是序列化?在什么情况下将类序列化?
Java序列化转载 2016-02-15 17:44:43 · 1421 阅读 · 0 评论 -
HashSet的实现原理
HashSet的实现原理原创 2016-02-15 11:47:27 · 369 阅读 · 0 评论 -
Java并发编程:volatile与synchronized的区别小结
volatile与synchronized的区别小结原创 2015-12-23 14:39:32 · 497 阅读 · 0 评论 -
当一个线程进入对象的synchronized方法后,其它线程是否可进入此对象的其它方法?
当一个线程进入对象的synchronized方法后,其它线程是否可进入此对象的其它方法?原创 2016-01-07 15:05:24 · 458 阅读 · 0 评论 -
揭开Java IO流中的flush()的神秘面纱
前言:大家在使用Java IO流中OutputStream、PrintWriter ……时,会经常用到它的flush()方法。一.为什么要flush:与在网络硬件中缓存一样,流还可以在软件中得到缓存,即直接在Java代码中缓存。这可以通过BufferedOutputStream或BufferedWriter 链接到底层流上来实现。因此,在写完数据时,flush就显得转载 2015-12-04 00:15:06 · 294 阅读 · 0 评论 -
Web服务器工作原理概述
Web服务器工作原理概述转载 2015-12-25 22:54:09 · 370 阅读 · 0 评论 -
Cookie和Session的联系与区别
Cookie和Session的联系与区别原创 2015-12-25 23:52:34 · 393 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
注:该文章转载自:http://www.cnblogs.com/dolphin0520/p/3920373.htmlvolatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好转载 2015-12-08 18:58:55 · 392 阅读 · 0 评论 -
Java的HashMap实现原理
HashMap其实也是用一个线性数组实现的,所以可以理解为其存储数据的容器是一个线性数组。HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。1、首先HashMap里面实现一个静态内部类Entry,其重要的属性有key,value,next。从属性key,value我们就能很明显的看出Entry就是HashMap键值对实现的一个基础Bean。HashMap的基础就是一个线性原创 2015-09-22 15:22:39 · 262 阅读 · 0 评论 -
类加载器以及双亲委派模型介绍
类加载器、双亲委派模型转载 2016-03-15 15:49:07 · 305 阅读 · 0 评论