JAVA 教程

JAVA 教程:包含了所有代写案例以及部分答案

  • 抽象类 Abstract类是一个abstract以前缀为关键字的类。如果类abstract具有一个或多个带有abstract关键字的方法,则必须以类为前缀。仅声明抽象方法但未实现。抽象类不能实例化,但可以由另一个类继承。继承类必须实现所有抽象方法,否则子类也应该声明为abstract。 例如: abstract class abstractClass {      abstract void ab … 继续阅读“Java基础教程:抽象类Abstract Classes”

    :
  • 在进入try / catch语句之前,让我们来谈谈异常。每次发生错误时都会抛出异常。一些例子: 如果访问数组中不存在的索引,则抛出ArrayIndexOutOfBounds(例如:尝试访问arr [5],但arr只能访问arr [4]) 如果进行了非法的算术运算,则抛出ArithmeticError (例如:42/0,除以零) Java可以抛出很多异常(超过上述内容)。 但是,当您不确定是否会发生错误时,如何处理异常。 这就是try / catch的目的!这是try / ca … 继续阅读“Java基础教程:尝试和捕获try /catch语句”

    :
  • 继承 在Java中,术语继承是指通过另一个类(子类)采用一个类(超类)的所有非私有属性和方法。继承是一种将现有类的副本作为另一个类的起点的方法。除了术语子类之外,继承的类也称为derived类。 此时,区分继承和接口可能会有所帮助。接口仅定义类成员的结构,而继承的类包括超类的实际代码。此外,继承(更准确地说,子类的定义)使用extends子类声明中的关键字。 为清楚起见,如果使用超类创建子类并且子类保持不变,则这两个类将是相同的。但是大多数子类并没有保持不变。因为子类仍然是一个类,所以可以将其更 … 继续阅读“Java基础教程:继承Inheritance”

    :
  • 循环 Java中有两种循环,for和while。 “for” for循环有三个部分: for (int i = 0; i < 3; i++) {} 当我们进入循环时,第一部分运行一次。 第二部分是守门员,如果它返回true,我们在循环中运行语句,如果它返回false,我们退出循环。它首次在第一部分之后运行,然后每次循环结束并运行第三部分。 第三部分是每次循环运行时运行的最终语句。 所以在我们刚刚看到的 … 继续阅读“JAVA教程之循环 for 和 while”

    :
  • Java中的数组也是对象。它们需要声明然后创建。为了声明一个包含整数数组的变量,我们使用以下语法: int[] arr; 请注意,没有大小,因为我们还没有创建数组。 arr = new int[10]; 这将创建一个大小为10的新数组。我们可以通过打印数组的长度来检查大小: System.out.println(arr.length); 我们可以访问数组并设置值: arr[0] = 4;arr[1] = arr[0] … 继续阅读“Java基础教程:数组 Array”

    :
  • 副标题#e# 媒介 本文不规划延续前几篇的气势气魄(对所有的源码插手注释),因为要领略透TreeMap的所有源码,对博主来说,确实需要淹灭大量的时间和经验,今朝看来不大大概有这么多时间的投入,故这里意在通过于阅读源码对TreeMap有个宏观上的掌握,并就个中一些要领的实现做较量深入的阐明。 红黑树简介 TreeMap是基于红黑树实现的,这里只对红黑树做个简朴的先容,红黑树是一种非凡的二叉排序树,关于二叉排序树,拜见:http://blog.csdn.net/ns_code/article/det … 继续阅读“Java集合汇总源码分解:TreeMap源码分解”

    :
  • 副标题#e# Hashtable简介 Hashtable同样是基于哈希表实现的,同样每个元素是一个key-value对,其内部也是通过单链表办理斗嘴问题,容量不敷(高出了阀值)时,同样会自动增长。 Hashtable也是JDK1.0引入的类,是线程安详的,能用于多线程情况中。 Hashtable同样实现了Serializable接口,它支持序列化,实现了Cloneable接口,能被克隆。 HashTable源码分解 Hashtable的源码的许多实现都与HashMap差不多,源码如下(插手了较量 … 继续阅读“Java集合汇总源码分解:Hashtable源码分解”

    :
  • 副标题#e# HashMap简介 HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表办理斗嘴问题,容量不敷(高出了阀值)时,同样会自动增长。 HashMap长短线程安详的,只是用于单线程情况下,多线程情况下可以回收concurrent并发包下的concurrentHashMap。 HashMap 实现了Serializable接口,因此它支持序列化,实现了Cloneable接口,能被克隆。 HashMap源码分解 HashMap的源码如下(插手了较量具体的注 … 继续阅读“Java集合汇总源码分解:HashMap源码分解”

    :
  • Vector简介 Vector也是基于数组实现的,是一个动态数组,其容量能自动增长。 LinkedList是JDK1.0引入了,它的许多实现要领都插手了同步语句,因此是线程安详的(其实也只是相对安详,有些时候照旧要插手同步语句来担保线程的安详),可以用于多线程情况。 LinkedList没有丝线Serializable接口,因此它不支持序列化,实现了Cloneable接口,能被克隆,实现了RandomAccess接口,支持快速随时机见。 Vector源码分解 Vector的源码如下(插手了较量具 … 继续阅读“Java集合汇总源码分解:Vector源码分解”

    :
  • 副标题#e# ArrayList简介 ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,雷同于C语言中的动态申请内存,动态增长内存。 ArrayList不是线程安详的,只能用在单线程情况下,多线程情况下可以思量用Collections.synchronizedList(List l)函数返回一个线程安详的ArrayList类,也可以利用concurrent并发包下的CopyOnWriteArrayList类。 ArrayList实现了Serializable接口,因此它支持序 … 继续阅读“Java集合汇总源码分解:ArrayList源码分解”

    :