高级Java教程

课程大纲

学习Java基础很容易。 但是,真正钻研该语言并研究其更高级的概念和细微差别将使您成为一名出色的Java开发人员。 网络上充斥着“软”,“便宜”,“低端” Java教程,但是所缺少的实际上是将您带入新的高度的材料。

本课程旨在帮助您最有效地使用Java。 它讨论了高级主题,包括对象创建,并发,序列化,反射等。 它将指导您完成Java掌握的过程!

关于作者

Andriy在乌克兰的日托米尔工程技术学院获得了计算机科学硕士学位。 在过去的15年中,他一直担任许多成功项目的顾问/软件开发人员/高级软件开发人员/团队负责人。

Andriy在企业体系结构,Web开发,软件开发实践和软件平台,面向对象的分析和设计,丰富的用户界面,关系数据库管理系统,NoSQL解决方案和操作系统的开发方面拥有丰富的经验。

经验教训

在本课程中,我们将讨论新类实例(对象)的创建。 我们将看到如何使用构造函数以及更高级的创建技术,例如静态初始化,构造模式等。 此外,还将介绍更多主题,例如初始化块的使用,终结器的使用以及垃圾回收器如何参与该过程。

在本课程中,我们将了解如何使用所有对象通用的方法。 所有对象共有的方法由父Object类继承。 这些方法包括equals和hashCode方法,以及toString和equals方法。 此外,我们将讨论equals和==运算符以及新的Java 7 Objects类的一些有用的帮助器类,这些类可用于繁重地使用我们的功能。

在本课程中,我们将深入研究Java语言提供的基础构建块,并介绍一些设计原则,旨在帮助您做出更好的设计决策。 我们将讨论具有默认方法(Java 8的新功能),抽象类和最终类,不可变类,继承,组合的接口和接口,并简要地回顾一下我们曾经提到的可见性(或可访问性)规则。

在本课程中,我们将讨论泛型。 泛型的概念代表了类型的抽象(C ++开发人员将其称为模板)。 这是一个非常强大的概念,它允许开发抽象算法和数据结构并提供具体类型以供以后操作。 泛型彻底改变了Java程序的编写方式,提供了更强的类型保证,并使代码更加安全。 在本节中,我们将从接口,类和方法开始介绍泛型的用法。 尽管提供了很多好处,但是泛型确实引入了一些局限性和副作用,我们也将介绍这些局限性和副作用。

在本课程中,我们将讨论枚举(或枚举)和注释。 枚举的概念很简单,但很方便:它表示一组固定的,恒定的值。 实际上,这意味着通常使用枚举来设计具有恒定可能状态的概念。 另一方面,注释是一种特殊的元数据,可以与Java语言的不同元素和构造相关联。 有趣的是,注释在消除Java生态系统中几乎所有地方都使用的样板XML描述符方面做出了很大贡献。 他们介绍了一种新的,类型安全且健壮的配置和自定义技术方法。

在本课程中,我们将花一些时间讨论与Java设计和实现方法有关的不同方面。 用Java编写方法非常容易,但是有很多事情可以使您的方法更具可读性和效率。 我们将讨论方法设计的各种细节,例如方法主体和签名,技术(例如方法重载和重写),优化(例如内联和不变性)以及其他杂项(例如文档)。

在本课程中,我们将继续讨论Java良好编程风格和健壮设计的一般原理。 我们将讨论变量范围,类字段和局部变量,方法参数和局部变量,装箱和拆箱,接口,字符串,命名约定,标准库,不变性,测试等等!

在本课程中,我们将继续讨论如何以及何时使用异常。 Java中的异常是在程序流中发出异常(或异常)情况信号的重要工具,可能会阻止其进一步发展。 我们将使用try-with-resources,与lambda结合使用的异常,标准Java异常,如何定义我们自己的异常,记录异常并记录它们,来讨论Checked和unchecked异常!

在本课程中,我们将研究Java可以为开发人员提供什么,以帮助他们在并发世界中编写健壮而安全的应用程序。 为了充分利用可用计算单元的全部功能,应用程序应准备好支持同时运行并争夺资源和内存的多个执行流。 我们将讨论线程和线程组,并发性,同步和不变性,期货,执行器和线程池,原子操作等等!

在本课程中,我们将研究序列化:将Java对象转换为可用于在同一(或其他)环境中存储和稍后重构的格式的过程。 序列化不仅允许将Java对象保存到持久性存储中或从持久性存储中加载Java对象,而且还是现代分布式系统通信中非常重要的组件。 我们将讨论Serializable和Externalizable接口,JAXB和JSON-P,序列化的危险,并且我们将超越Java标准库和规范!

在本课程中,我们将讨论一个非常有趣的主题,即反射。 反射是程序在运行时检查或自检的能力。 反射是一项极其有用且功能强大的功能,它可以极大地扩展程序的功能,以在执行过程中执行其自身的检查,修改或转换,而无需一行代码更改。 我们将讨论Reflection API,如何访问通用类型参数,方法句柄和方法参数名称,以及一些反射陷阱!

在本课程中,我们将完全专注于Java中的脚本和动态语言支持。 从Java 7开始,JVM就直接支持现代动态语言(也通常称为脚本语言),并且Java 8版本对该空间进行了进一步的增强。 我们将讨论动态语言支持和脚本API,以及在JVM上运行的流行脚本语言,例如Javascript,Groovy,Ruby和Python!

在本课程中,我们将对Java编译器API进行10000英尺的观察。 该API提供了对Java编译器本身的编程访问,并允许开发人员从应用程序代码中即时从源文件编译Java类。 我们还将遍历Java编译器树API,该API提供对Java语法分析器功能的访问。 通过使用此API,Java开发人员可以直接插入语法分析阶段并对正在编译的Java源代码进行后期分析。

在本课程中,我们将揭露注释处理的魔力,该处理常用于仅由注释驱动的检查,修改或生成源代码。 本质上,注释处理器是Java编译器的某种插件。 明智地使用注释处理器可以大大简化Java开发人员的工作,因此这就是为什么它们通常与许多流行的库和框架捆绑在一起的原因。 批注处理器通常用于检查代码库是否存在特定批注,并根据用例执行以下操作:生成一组源文件或资源文件,更改(修改)现有源代码或分析现有源代码并生成诊断信息消息。

在本课程的最后一课中,我们将讨论Java代理,对于普通Java开发人员来说,这是真正的魔咒。 Java代理能够通过直接修改字节码来“侵入”运行时在JVM上运行的Java应用程序的执行。 Java代理的功能和危险一样强大:它们几乎可以执行所有操作,但是如果出现问题,它们很容易使JVM崩溃。

请确保转发此消息,让您的社交粉丝知道!

翻译自: https://www.javacodegeeks.com/2015/09/advanced-java.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值