使用Java(高清版)如何编写程序教学视频

  • 名称:使用Java(高清版)如何
  • 分类:程序设计  
  • 观看人数:加载中
  • 时间:2014/1/22 13:05:55

本套可课程为“使用Java(高清版)如何编写程序教学视频”,是java编程指导的好教材,大学资源网收集、整理。
      Java越来越受到大家的青睐,越来越多的公司都选择运用Java及其相关技术,例如J2EE技术来构建它们的应用系统。可是,把握好 Java 语言并不是一件能够轻松完成的任务,如何真正把握 Java 语言,然后编写出健壮的、高效的、灵敏的程序是Java程序员们面临的重大挑战。 《Java编程思想》就是一本能够让Java程序员轻松面对这一挑战,并结尾取得胜利的经典书籍。本书浅显易懂、循序渐进地把咱们领入Java的国际,让咱们在不知不觉中就学会了用 Java 的思想去考虑问题、处理问题。本书不仅合适 Java 的初学者,关于有经历的Java程序员来说,每次阅读本书也总是能够有新的领会,这正是本书的魅力所在。 本书的第二版由侯捷先生翻译,他现已把翻译原著这项工作做到了极致,咱们在翻译过程中总是诚惶诚恐,一方面害怕曲解了原著的意思,另一方面也害怕破坏了第二版译本现已做出的让广阔中国读者认可本书的种种努力。 咱们在翻译本书的过程中力求终于原著。关于本书中出现的大量的专业术语尽量遵循标准的译法,并在有能够引起歧义之处著上了英文原文,以方便读者的对照理解。 全书的翻译由陈昊鹏和饶若楠合作完成,薛翔、郭嘉和方小丽也参与了全书的翻译工作。由于咱们水平有限,书中出现错误与不妥之处在所难免,恳请读者批评指正。
      Java 已由专业的 Java 开发人员、设计师和爱好者团体进行测试、完善、扩展和验证。Java 旨在竭尽所能为最广泛的计算平台开发可移植的高性能应用程序。通过使应用程序在异构环境之间可用,公司能够提供更多的效劳,提高结尾用户生产力并加强沟通与协作,然后明显降低公司和消费类应用程序的拥有成本。Java 是开发人员的无价之宝,使他们能够:

    在一个平台上编写软件,然后即可在几乎一切其他平台上运转,创立可在 Web 浏览器中运转并可拜访可用 Web 效劳的程序,开发适用于在线论坛、存储、投票、HTML 格式处理以及其他用途的效劳器端应用程序
将采用 Java 语言的应用程序或效劳组合在一起,构成高度定制的应用程序或效劳,为移动电话、远程处理器、微控制器、无线模块、传感器、网关、消费商品及几乎其他任何电子设备编写强大而高效的应用程序,许多院校已开设了 Java 平台程序设计课程。Oracle Academy 面向中小学、职业教育和高等院校提供了用于教学的全面的软件、课程、托管技术、职工培训、支持和认证资源组合,其间包括将支持数十万学生的 Java 商品。此外,开发人员还能够通过下列办法提高自己的 Java 编程技能:浏览 Oracle Java 开发人员 Web 站点、订阅 Java 技术简报和 Java 杂志、运用 Java 教程和 Java 编程中间新手入门,以及报名参加 Web 课程、虚拟课程或由教师指导的课程和认证。
     法使目标进入正常状况;假如能够的话,避免调用其他办法”。在结构器内唯一能够安全调用的那些办法是基类中的final办法(也适用于private办法,它们主动归于final办法)。
30.  接口:一切办法主动为public的,一切的域都是隐式的为static和final的。
31.  协变返回类型:Java SE5中添加了协变返回类型,它表明在导出类中的被掩盖办法能够
返回基类办法的返回类型的某种导出类型。
32.  接口承继能够用extends承继多个接口,这种extends用法只限于接口承继。如:
Interface Vampire extends DangerousMonster, Lethal{…} 33.  内部类:在内部类假如需求生成对外部类目标的引证,能够运用外部类的名字后面紧跟
圆点和this(如:outerClass.this).要想直接创立内部类的目标,你不能按照你想象的办法,去引证外部类的名字,而是必须运用外部类的目标来创立该内部类目标,OuterObject.new Inner();。
假如界说一个匿名内部类,并且期望它运用一个在其外部界说的目标,那么编译器会要求其参数引证是final的。
在匿名内部类中,假如想要做些结构器的工作,则能够运用实例初始化。关于匿名类而言,实例初始化的实际效果就是结构器,当然它受到了限制—你不能重载实例初始化办法,所以你仅有一个这样的结构器。匿名内部类既能够扩展类,也能够实现接口,可是不能两者兼备。并且假如是实现接口,也只能实现一个接口。 34.  嵌套类:static 内部类。一般内部类不能有static数据和static字段,也不能包括嵌套类。 35.  protected的权限:只要所属类及其子类,以及与所属类同一个包中的类能拜访protected
域或办法。
36.  在办法和效果域内的内部类只是限制了其的效果域规模。超过这个规模就不能拜访了。 37.  运用内部类最吸引人的原因是:每个内部类都能独立地承继自一个(接口的)实现,所
以无论外为了是不是现已承继了某个(接口的)实现,关于内部类都没有影响。
38.  格式化输出:System.out.format()与printf()是等价的,它们只需求一个简单的格式化字
符串,加上一串参数即可,每个参数对应一个格式修饰符。
格式化说明符:%[argument_index$][flags][width][.precision]conversion Argument_index:能够指定参数的方位;
Flags:在默许的情况下,数据是右对齐的,能够通过设置标志为“-”来改变对齐方向。 With:用来指明最大尺寸,通过必要时添加空格来确保一个域至少达到某个长度。 Precision:关于不一样的数据类型,有不一样的意义。用于String时,表明输出字符的最大数量。用于浮点数时,表明小数部位要显示出来的位数(默许是6位数),小数位过多舍入,太少则在尾部补0。关于整数,则会报反常。
39.  正则表达式:其间量词有三种类型:贪婪型,勉强型,占有型。
40.  动态加载:一切的类都是在对其第一次运用时,动态加载到JVM中的。当程序创立第
一个对类的静态成员的引证时,就会加载这个类。这个证明结构器也是类的静态办法,即便在结构器之前并没有运用static关键字。因此,运用new操作符创立类的新目标也会被当刁难类的静态成员的引证。因此,Java程序在它开端运转之前并非被彻底加载,其各个部分是在必需时才加载的。
41.  当运用“.class”来创立对Class目标的引证时,不会主动地初始化该Class目标。为了
运用类而做的准备工作实际上包括三个步骤:1. 加载,由类加载器执行,找到Class目标;2. 连接,验证类中字节码,为静态域分配存储空间;3. 初始化,假如有超类,则对其初始化,执行静态初始化器和静态初始化块。 假如一个static final值是“编译器常量”,那么这个值不需求对类进行初始化就能够被读
取。假如只是将一个域设置为static和final的,但不是“编译器常量”时,就需对类进行初始化。假如一个static域不是final的,那么对它的拜访,总是要求在它被读取之前,要先进行连接(为这个域分配存储空间)和初始化(初始化该存储空间)。
42.  泛化的Class引证:通过泛型语法对Class引证所指向的Class目标的类型进行限制。为
了在运用泛化的Class引证时放松限制,运用通配符“?”,这是Java泛型的一部分。 ClassintClass = int.class;为了创立一个Class引证,它被限制为某种类型,或该类型的任何子类型,你需求将通配符与extends关键字相结合,创立一个规模。Class = int.class. 43.  RTTI是编译时能够获取类信息。而反射是运转时获取类信息。RTTI和反射之间的真正的
差异只在于,关于RTTI来说,编译器在编译时打开和检查.class文件按。(换句话说,咱们能够用“一般办法调用目标的一切办法。”)而关于反射机制来说,.class文件在编译时无法获取,所以在运转时打开和检查.class文件。
44.  实现多线程要实现Runnable接口并编写run()办法。或许承继Thread类,实现run()方
法。
45.  Java虚拟机通过装载、连接和初始化一个Java类型,使该类型能够被正在运转的Java
程序所运用。连接阶段分为三个子步骤:验证、准备和解析。一切的Java虚拟机实现必需在每个类或接口首次主动运用时初始化,有六种情形:
1) 当创立某个类的新实例时(new,不明确的创立,反射、克隆或许反序列化); 2) 当调用某个类的静态办法时; 3) 当运用某个类或接口的静态字段,用final修饰的静态字段在外,它被初始化为一个
编译时的常量表达式;
4) 当调用Java API中的某些反射办法时,比如Class中的办法或许Java.lang.reflect包中
的类办法;
5) 当初始化某个类的子类时;
6) 当虚拟机启动时某个被标明为启动类的类(含有main()办法)。 初始化一个类包括两个步骤:
1) 假如类存在直接超类的话,且直接超类还没有被初始化,就先初始化直接超类; 2) 假如累存在一个类初始化办法,就执行此办法。
初始化接口不需求初始化它的父接口,因此初始化一个接口只需一步:假如接口存在一个接口初始化办法的话,就执行此办法。
46.  卸载类型:Java虚拟机中类的生命周期和目标的生命周期很类似。虚拟机装载、连接并
初始化类,使程序能运用类,当程序不在引证它们的时分可选地卸载它们。运用启动类器装载的类型永久是可触及的,所以永久不会被卸载。
47.  运用notify()时,在众多等候同一个锁的任务中只要一个会被唤醒,因此假如你期望使
用notify(),就必须保证被唤醒的是恰当的任务。另外,为了运用notify(),一切任务必须等候一样的条件,由于假如你有多个任务在等候不一样的条件,那么你就不会晓得是不是唤醒了恰当的任务。假如运用notify(),当条件发生变化时,必须只要一个任务能够从中受益。最后,这些限制对一切能够存在的子类都必须总是起效果的。假如这些规则中有任何一条不满足,那么你就必须运用notifyAll()而不是notify(). 48.  内部类:
 假如想从外部类的非静态办法之外的恣意方位创立某个内部类的目标,那么必须像
在main()办法中那样,具体地指明这个目标的类型:OuterClassName.InnerClassName.  在内部类中生成对外部类目标的引证,能够运用外部类的名字后面紧跟圆点和this:
OuterClassName.this; 主动创立某个内部类的目标,比如在main办法中,必选在new
 匿名内部类,new ClassConstructor(){};这个class能够是一个虚类,也能够是一个普
通类。假如界说一个匿名内部类,并且期望它直接运用一个在其外部界说的目标,那么编译器会要求其参数引证是final的,假如不是匿名内部类直接运用,而是传给其基类的结构器,不需求为final。匿名内部类与正规的承继相比有些受限,由于匿名内部类既能够扩展类,也能够实现接口,可是不能两者兼备,并且假如是实现接口,也只能实现一个接口。
49.  嵌套类:将内部类声明为static。一般的内部类目标隐式地保存了一个引证,指向创立
它的外围类目标。要创立嵌套类的目标,并不需求其外围类的目标。不能从嵌套类的目标中拜访非静态的外围类目标。
嵌套类与一般的内部类还有一个差异。一般内部类的字段与办法,只要放在类的外部层次上,所以一般的内部类不能有static数据和static字段,也不能包括嵌套类。可是嵌套类能够包括一切这些东西。
50.  为什么需求内部类?  从多重承继的视点来讲:每个内部类都能独立地承继自一个(接
口的)实现,所以无论外围类是不是现已承继了某个(接口的)实现,关于内部类都没有影响。从这个视点看,内部类使得多重承继的处理方案变得完整。接口处理了部分问题,而内部类有效地实现了“多重承继”。也就是说,内部类允许承继多个非接口类型。 51.  局部内部类与匿名内部类:既然局部内部类的名字在办法外是不可见的,那为什么咱们
仍然运用局部内部类而不是匿名内部类呢?唯一的理由是,咱们需求一个已命名的结构器,或许需求重载结构器,而匿名内部类只能用于实例初始化。所以运用局部内部类而不运用匿名内部类的另一个理由就是,需求不止一个该内部类的目标。 52.  通过运用泛型,就能够在编译期间防止将错误类型的目标放置到容器中。
53.  ListIterator是一个愈加强大的Iterator的子类型,它只能用于各种List类的拜访。尽管
Iterator只能向前移动,可是ListIterator能够双向移动。
54.  意识到Arrays.asList()发生的List目标会运用底层数组作为其物理实现是很重要的。只要
你执行的操作会修正这个List,并且你不想原来的数组被修正,那么你就应该在另一个容器中创立一个副本。
55.  一切标准反常类都有两个结构器:一个是默许结构器;另一个是接受字符串作为参数,
以便能把信息放入反常目标的结构器。
56.  throws,反常说明关键字,它归于办法声明的一部分,紧跟在形式参数列表之后。
57.  有时期望把刚捕获的反常从头抛出,尤其是在运用Exception捕获一切反常的时分,重
抛反常会把反常抛给上一级环境中的反常处理程序,同一个try块的后续catch子句将被忽略。
58.  运转时反常,其类型很多,它们会主动被JAVA虚拟机抛出,所以不必在反常说明中把
它们列出来。它们也被称为“不受检查反常”。
59.  当掩盖办法的时分,只能抛出在基类办法的反常说明里列出的那些反常。 60.  任何根本类型都不能作为类型参数:不能创立ArrayList之类的东西。 61.  总结:泛型代码与JVM 
① 虚拟机中没有泛型,只要一般类和办法。 ② 在编译阶段,一切泛型类的类型参数都会被Object或许它们的限制边界来替换。
(类型擦除) ③ 在承继泛型类型的时分,桥办法的组成是为了避免类型变量擦除所带来的多态灾
难。