![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 68
_Merlin
这个作者很懒,什么都没留下…
展开
-
HashSet的实现原理
1. HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。 2. HashSet的实现: 对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet转载 2015-03-16 10:21:44 · 330 阅读 · 0 评论 -
java遍历二叉树
public class TreeNode { private TreeNode left, right; private Object item; public TreeNode(Object item) { this(null, null, item); } public TreeNode(TreeNode left, TreeNode right, Object item原创 2015-04-14 13:16:24 · 475 阅读 · 0 评论 -
jvm的几个运行时数据区域
上一篇文章已经简单介绍了jvm的内部体系结构。并且对各个组成部分做了简要的说明。下面通过一个简单的java程序,讲解运行过程中牵涉到的几个数据区域。代码如下:public class Test { public static void main(String[] args) { int tempA = 1;//1 int tempB = 2;//2转载 2015-03-10 10:46:08 · 368 阅读 · 0 评论 -
java中ArrayList与LinkedList的比较
先来比较一下两者remove(int i)的源码实现区别:ArrayList:public Object remove(int i) { rangeCheck(i); // 判断数组有没有下标越界 modCount++; Object obj = elementData(i); // 取出下标为i的元素 int j = size - i - 1; if原创 2015-03-13 17:00:27 · 447 阅读 · 0 评论 -
hashMap的实现原理
hashMap的实现原理原创 2015-03-09 10:33:25 · 356 阅读 · 0 评论 -
java模拟面向切面编程
首先我们需要一个目标接口:public interface ITarget { void doSomething(String first,String second);}然后再创建一个目标类实现这个接口里的方法public class Target implements ITarget { @Override public void doSomething(Stri原创 2015-04-01 10:03:34 · 406 阅读 · 0 评论 -
TreeMap的实现原理
TreeMap的结构是红黑树又称红-黑二叉树,它首先是一颗二叉树,它具体二叉树所有的特性。同时红黑树更是一颗自平衡的排序二叉树。关于红-黑二叉树,可以参考:点击打开链接在这里,我们主要简单分析TreeMap的源码实现。 public Object put(Object obj, Object obj1)TreeMap里的数据都是存放在Entry里的,这也原创 2015-03-31 15:49:58 · 3839 阅读 · 0 评论 -
java实现多继承
在java中,原则上是不允许多继承的,也就是类与类之间只可以单继承。那么,有没有办法,可以在不使用接口的情况下实现多继承呢? 答案是可以。使用内部类就可以多继承,严格来说,还不是实现多继承,但是这种方法可以实现多继承所需的功能,所以把它称为实现了多继承。下面就举个例子:假如有一个打电话类Call,里面实现了一个可以打电话的功能的方法callSomebody(String phon原创 2015-03-13 12:17:09 · 4933 阅读 · 0 评论 -
Java堆、栈和常量池详解
此文章出处:http://wenku.baidu.com/link?url=FeU3FEiD_pno_ldddYBYc_yXNY7yOT-J__KhcRHnzygg48oG1kZZmh7YI7nCv2vcnpAyRuiIkLKLIoYqgcV6x5cF4QnkYZHNq1yKXkMAMgS1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Ja转载 2015-03-10 10:08:36 · 368 阅读 · 0 评论 -
关于Integer自动装箱和拆箱的小知识
在自动装箱时(int 转Integer),如果int的值在-128到127之间,不会去创建一个对象,因为-128到127之间的数据早已经缓存在堆内存中了,也就是说要是发现int的值在-128到127之间,会先查找缓存里有没有这个值,如果有,那么这个引用会指向缓存里相应数据的地址。反之,如果int的值在这个区间外,则会new 一个对象出来。下面举例说明:Integer a = 4;Integ原创 2015-03-10 08:50:48 · 341 阅读 · 0 评论 -
jvm的内部体系结构浅析
jvm全称是Java Virtual Machine(java虚拟机)。它之所以被称之为是“虚拟”的,就是因为它仅仅是由一个规范来定义的抽象计算机。我们平时经常使用的Sun HotSpot虚拟机只是其中一个具体的实现(另外还有BEA JRockit、IBM J9等等虚拟机)。在实际的计算机上通过软件来实现一个虚拟计算机。与VMWare等类似软件不同,你是看不到jvm的,它存在于内存。转载 2015-03-10 10:43:21 · 311 阅读 · 0 评论 -
spring mvc下载文件
这里介绍两种方式,一种是从服务器下载,一种是从网络上下载一、从服务器下载这里path的格式为:D:\testFile\a.jpg,下载后保存在浏览器的下载位置 @RequestMapping("download") public ResponseEntity download(String path) throws IOException { // F转载 2015-07-23 17:37:15 · 441 阅读 · 0 评论