本文是作者成功自学 java 后总结出的,一整套知识点集合。适用人群适用正在自学 java 或准备自学的人群致谢 内容撰写:http://cmsblogs.com/?cat=5更新日期更新内容2015-07-23Java 提高篇
我们在 MySQL 入门篇主要介绍了基本的 SQL 命令、数据类型和函数,在局部以上知识后,你就可以进行 MySQL 的开发工作了,但是如果要成为一个合格的开发人员,你还要具备一些更高级的技能,下面我们就来探讨一下 MySQL 都需要哪些高级的技能
TreeMap 的实现是红黑树算法的实现,所以要了解 TreeMap 就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析 TreeMap 的实现,但是为了与 Java 提高篇系列博文保持一致还是叫做 TreeMap 比较好。通过这篇博文你可以获得如下知识点:1、红黑树的基本概念。2、红黑树增加节点、删除节点的实现过程。3、红黑树左旋转、右旋转的复杂过程。
在前面三篇博文中 LZ 讲解了(HashMap、HashSet、HashTable),在其中 LZ 不断地讲解他们的 put 和 get 方法,在这两个方法中计算 key 的 hashCode 应该是最重要也是最精华的部分,所以下面 LZ 揭开 hashCode 的“神秘”面纱。hashCode 的作用要想了解一个方法的内在原理,我们首先需要明白它是干什么的,也就是这个方法的作用。
在 Java 中与有两个类都提供了一个多种用途的 hashTable 机制,他们都可以将可以 key 和 value 结合起来构成键值对通过 put(key,value)方法保存起来,然后通过 get(key) 方法获取相对应的 value 值。一个是前面提到的 HashMap,还有一个就是马上要讲解的 HashTable。
在前篇博文中(Java 提高篇(二三)—–HashMap)详细讲解了 HashMap 的实现过程,对于 HashSet 而言,它是基于 HashMap 来实现的,底层采用 HashMap 来保存元素。所以如果对 HashMap 比较熟悉,那么 HashSet是 so easy!!一、定义 public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.
HashMap 也是我们使用非常多的 Collection,它是基于哈希表的 Map 接口的实现,以 key-value 的形式存在。在 HashMap 中,key-value 总是会当做一个整体来处理,系统会根据 hash 算法来来计算 key-value 的存储位置,我们总是可以通过 key 快速地存、取 value。下面就来分析 HashMap 的存取。一、定义HashMap 实现了 Map 接口,继承 AbstractMap。
一、概述LinkedList 与 ArrayList 一样实现 List 接口,只是 ArrayList 是 List 接口的大小可变数组的实现,LinkedList 是 List 接口链表的实现。基于链表实现的方式使得 LinkedList 在插入和删除时更优于 ArrayList,而随机访问则比 ArrayList 逊色些。LinkedList 实现所有可选的列表操作,并允许所有的元素包括 null。
一、ArrayList 概述ArrayList 是实现 List 接口的动态数组,所谓动态就是它的大小是可变的。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。每个 ArrayList 实例都有一个容量,该容量是指用来存储列表元素的数组的大小。默认初始容量为 10。
承接上篇博文:Java提高篇—–异常(一)五、自定义异常Java 确实给我们提供了非常多的异常,但是异常体系是不可能预见所有的希望加以报告的错误,所以 Java 允许我们自定义异常来表现程序中可能会遇到的特定问题,总之就是一句话:我们不必拘泥于 Java 中已有的异常类型。Java 自定义异常的使用要经历如下四个步骤:1、定义一个类继承 Throwable 或其子类。
Java 的基本理念是“结构不佳的代码不能运行”!!!!!大成若缺,其用不弊。大盈若冲,其用不穷。在这个世界不可能存在完美的东西,不管完美的思维有多么缜密,细心,我们都不可能考虑所有的因素,这就是所谓的智者千虑必有一失。同样的道理,计算机的世界也是不完美的,异常情况随时都会发生,我们所需要做的就是避免那些能够避免的异常,处理那些不能避免的异常。
可以证明,字符串操作是计算机程序设计中最常见的行为。一、String首先我们要明确,String 并不是基本数据类型,而是一个对象,并且是不可变的对象。查看源码就会发现 String 类为 final 型的(当然也不可被继承),而且通过查看 JDK 文档会发现几乎每一个修改 String 对象的操作,实际上都是创建了一个全新的 String 对象。
在编程过程中我们可能会遇到如下这种形式的程序: public class Test { { //// } }这种形式的程序段我们将其称之为代码块,所谓代码块就是用大括号({})将多行代码封装在一起,形成一个独立的数据体,用于实现特定的算法。一般来说代码块是不能单独运行的,它必须要有运行主体。
在 Java 中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换。在 Java 中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换。因为子类拥有比父类更多的属性、更强的功能,所以父类转换为子类需要强制。那么,是不是只要是父类转换为子类就会成功呢?
Java小事非小事!!!!!!!!!!!!四舍五入是我们小学的数学问题,这个问题对于我们程序猿来说就类似于1到10的加减乘除那么简单了。在讲解之间我们先看如下一个经典的案例: public static void main(String[] args) { System.out.println("12.5的四舍五入值:" + Math.round(12.5)); System.out.println("-12.5的四舍五入值:" + Math.
在 Java 中 Stack 类表示后进先出(LIFO)的对象堆栈。栈是一种非常常见的数据结构,它采用典型的先进后出的操作方式完成的。每一个栈都包含一个栈顶,每次出栈是将栈顶的数据取出,如下:Stack 通过五个操作对 Vector 进行扩展,允许将向量视为堆栈。这个五个操作如下:操作 说明 empty() 测试堆栈是否为空。
迭代对于我们搞 Java 的来说绝对不陌生。我们常常使用 JDK 提供的迭代接口进行 Java 集合的迭代。 Iterator iterator = list.iterator(); while(iterator.hasNext()){ String string = iterator.next();
在 Java提高篇(二一)—–ArrayList 、Java 提高篇(二二)—LinkedList ,详细讲解了 ArrayList、linkedList 的原理和实现过程,对于 List 接口这里还介绍一个它的实现类 Vector,Vector 类可以实现可增长的对象数组。一、Vector 简介Vector 可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。
与 HashSet 是基于 HashMap 实现一样,TreeSet 同样是基于 TreeMap 实现的。在《Java 提高篇(二七)—–TreeMap》中 LZ 详细讲解了 TreeMap 实现机制,如果客官详情看了这篇博文或者多 TreeMap 有比较详细的了解,那么 TreeSet 的实现对您是喝口水那么简单。
本节主要介绍了怎么样才能提高爬虫的效率.
关注时代Java