随笔分类 -  Java

摘要:1 Stack介绍 Stack简介 Stack是栈。它的特性是:先进后出(FILO, First In Last Out)。 java工具包中的Stack是继承于Vector(矢量队列)的,由于Vector是通过数组实现的,这就意味着,Stack也是通过数组实现的,而非链表。当然,我们也可以将Lin 阅读全文
posted @ 2018-10-29 22:37 抒抒说 阅读(9802) 评论(0) 推荐(0) 编辑
摘要:Arraylist和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加插入元素,都允许直接序号索引元素,但是插入数据要涉及到数组元素移动等内存操作,所以插入数据慢,查找有下标,所以查询数据快; Vector由于使用了synchronized方法-线程安全,所以性能上比Arra 阅读全文
posted @ 2018-10-29 22:18 抒抒说 阅读(599) 评论(0) 推荐(1) 编辑
摘要:1 vector介绍 Vector简介 Vector 是矢量队列,它是JDK1.0版本添加的类。继承于AbstractList,实现了List, RandomAccess, Cloneable这些接口。Vector 继承了AbstractList,实现了List;所以,它是一个队列,支持相关的添加、 阅读全文
posted @ 2018-10-29 21:48 抒抒说 阅读(34170) 评论(2) 推荐(7) 编辑
摘要:1 LinkedList介绍 LinkedList简介 LinkedList 是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList 实现 List 接口,能对它进行队列操作。LinkedList 实现 Deque 接口, 阅读全文
posted @ 2018-10-29 20:07 抒抒说 阅读(3733) 评论(0) 推荐(0) 编辑
摘要:1 ArrayList介绍 ArrayList简介 ArrayList 是一个数组队列,相当于 动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口 阅读全文
posted @ 2018-10-29 19:55 抒抒说 阅读(79220) 评论(0) 推荐(4) 编辑
摘要:Collection的一些框架类的关系图: 1 Collection简介 Collection的定义 它是一个接口,是高度抽象出来的集合,它包含了集合的基本操作:添加、删除、清空、遍历(读取)、是否为空、获取大小、是否保护某元素等等。 Collection接口的所有子类(直接子类和间接子类)都必须实 阅读全文
posted @ 2018-10-29 17:39 抒抒说 阅读(351) 评论(0) 推荐(0) 编辑
摘要:同样实现方法有两种: 1. 数组的实现,可以存储任意类型的数据(略); 2. Java的 Collection集合 中自带的"队列"(LinkedList)的示例: 阅读全文
posted @ 2018-10-07 22:21 抒抒说 阅读(239) 评论(0) 推荐(0) 编辑
摘要:和C++一样,JDK包中也提供了"栈"的实现,它就是集合框架中的Stack类。关于Stack类的原理,在"Java 集合系列07之 Stack详细介绍(源码解析)和使用示例"中,已经详细介绍过了。本部分给出2种Java实现Java实现一:数组实现的栈,能存储任意类型的数据。Java实现二:Java的 阅读全文
posted @ 2018-10-07 20:41 抒抒说 阅读(225) 评论(0) 推荐(0) 编辑
摘要:/** * Java 实现的双向链表。 * 注:java自带的集合包中有实现双向链表,路径是:java.util.LinkedList * * @author skywang * @date 2013/11/07 */ public class DoubleLink<T> { // 表头 priva 阅读全文
posted @ 2018-10-07 20:20 抒抒说 阅读(226) 评论(0) 推荐(0) 编辑
摘要:FAQ: 为什么要有HashMap? 答:我非常期待能在Java 中使用Hash表 这种数据结构 ,因为它的快速存取特性。 Hash表 和HashMap的关系? 答:Hash表 是一种逻辑数据结构,HashMap是Java中的一种数据类型(结构类型),它通过代码实现了Hash表 这种数据结构,并在此 阅读全文
posted @ 2018-09-20 02:10 抒抒说 阅读(149) 评论(0) 推荐(0) 编辑
摘要:1. interface的引入 使用interface来定义某一类通用操作,而又不强制规定其实现,对于Java的流行真是太重要了。 以JDBC举例。在Java之前,C++与数据库建立连接,常用的一个技术是OLEDB。这个技术我刚才搜索了一下,已经找不到太有效的内容了。我只记得开发比较复杂,如果我的应 阅读全文
posted @ 2018-07-31 15:04 抒抒说 阅读(498) 评论(0) 推荐(0) 编辑
摘要:java 中的数据类型分为两大类:值类型(基本数据类型)和引用类型(复合数据类型) 值类型分为 1,整数类型(byte,short,int,long) 2,浮点类型(float,double) 3,布尔类型(boolean) 4,字符类型(char) 栈 引用值类型 除了值类型外就是引用值类型了,引 阅读全文
posted @ 2018-07-31 14:46 抒抒说 阅读(197) 评论(0) 推荐(0) 编辑
摘要:面向对象的不足 凡是有利必有弊,强对象编程,使得语法简单统一,但也有其缺点,而且有很多。我们在接下来的课程里会一点点接触到。我们今天先看第一个。 有些变量和函数确实没必要定义在一个类里。强行规定这些函数在类里,反而显得累赘。想一个例子,比如正弦函数sin,常数PI,这些函数或者常量值为什么要定义在类 阅读全文
posted @ 2018-07-31 14:04 抒抒说 阅读(276) 评论(0) 推荐(0) 编辑
摘要:JIT技术是JVM中最重要的核心模块之一。我的课程里本来没有计划这一篇,但因为不断有朋友问起,Java到底是怎么运行的?既然Hotspot是C++写的,那Java是不是可以说运行在C++之上呢?为了澄清这些概念,我才想起来了加了这样一篇文章,算做番外篇吧。 Just In Time Just in 阅读全文
posted @ 2018-07-31 13:05 抒抒说 阅读(2096) 评论(0) 推荐(0) 编辑
摘要:Java程序最初是通过解释器进行解释执行的,当虚拟机发现某个方法或代码块运行的特别频繁时,会把这些代码认定为“热点代码”(Hot Spot Code)。为了提高热点代码的执行效率,在运行时,虚拟机会把这些代码编译成本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器(JIT 阅读全文
posted @ 2018-07-31 12:36 抒抒说 阅读(5937) 评论(0) 推荐(0) 编辑