`
实学实战
  • 浏览: 15641 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
文章分类
社区版块
存档分类
最新评论

IBM Java

 
阅读更多


1、Java 平台组件

Java 平台包含以下组件。

Java 语言

跟任何编程语言一样,Java 语言拥有自己的结构、语法规则和编程范例。Java 语言的编程范例基于面向对象编程 (OOP) 的概念,该语言的特性支持这一概念。

Java 语言是 C 语言的一种衍生语言,所以它的语法规则与 C 语言的语法规则非常相似。例如,方法使代码模块化并使用花括号({})分隔,变量需要在使用之前声明。

在结构上,Java 语言以作为开头。包是 Java 语言的命名空间机制。包中包含类,而类中包含方法、变量、常量等。您将在本学习路径中了解 Java 语言的各个部分。

Java 编译器

在 Java 平台编写程序时,您会在 .java 文件中编写源代码,然后编译它们。编译器针对语言的语法规则来检查代码,然后将字节码写出到 .class 文件中。字节码是一组需要在 Java 虚拟机 (JVM) 上运行的指令。添加了这一抽象级别后,Java 编译器不同于其他语言编译器,其他编译器会写出适合运行程序的 CPU 芯片集的汇编语言指令。

JVM

在运行时,JVM 读取并解释 .class 文件,在编写的 JVM 的目标原生硬件平台上执行程序的指令。JVM 解释字节码就像 CPU 解释汇编语言指令一样。不同之处在于,JVM 是一个专为特定平台编写的软件。JVM 是 Java 语言的 “编写一次、随处运行” 原则的核心。您的代码可在任何拥有合适的 JVM 实现的芯片集上运行。JVM 可用于 Linux 和 Windows 等主要平台,在针对移动电话和爱好者芯片的 JVM 中也已实现了 Java 语言的子集。

垃圾收集器

Java 平台不会强制您时刻关注内存分配(或使用第三方库来完成此工作),它提供了开箱即用的内存管理功能。当您的 Java 应用程序在运行时创建一个对象实例时,JVM 会自动从中为该对象分配内存空间— 堆是一个专门留给您的程序使用的内存池。Java垃圾收集器在后台运行,跟踪记录应用程序不再需要哪些对象并从它们回收内存。这种内存处理方法称为隐式内存管理因为它不需要您编写任何内存处理代码。垃圾收集是 Java 平台性能的基本特征之一。

Java 开发工具包

下载 Java 开发工具包 (JDK),您会获得 — 包括编译器和其他工具 — 包含预构建的实用程序的完整类库,以帮助您完成最常见的应用程序开发任务。了解 JDK 包和库的范围的最佳方式是查阅官方在线 Java API 文档— 也称为 Javadoc。可观看这个快速演示,了解如何浏览 Javadoc。

Java 运行时环境

Java 运行时环境(JRE;也称为 Java 运行时)包含 JVM、代码库和运行以 Java 语言编写的程序所必要的组件。JRE 可用于多种平台。您可依据 JRE 许可条款,在您的应用程序中自由地重新分发 JRE,为应用程序的用户提供一个运行您的软件的平台。JRE 包含在 JDK 中。


2、什么是对象?

Java 语言(基本上)是面向对象的。本单元使用结构化编程作为对比基础,简要介绍 OOP 语言的概念和原理。

面向对象的语言遵循的编程模式不同于结构化编程语言,比如 C 和 COBOL。结构化编程范例是高度面向数据的:您拥有数据结构,然后程序指令处理该数据。面向对象的语言(比如 Java 语言)将数据和程序指令组合到对象中。

对象是一个自成一体的实体,它仅包含属性和行为,不含任何其他内容。不需要拥有包含字段(属性)的数据结构并将该结构传递到处理它(行为)的所有程序逻辑,在面向对象的语言中,数据和程序逻辑组合在一起。这种组合可在显著不同的粒度级别上执行,从细粒度对象(比如Number)到粗粒度对象(比如一个大型银行应用程序中的FundsTransfer服务)。

父和子对象

父对象用作派生更复杂的子对象的结构基础。子对象看起来像它的父对象,但更加特殊化。在面向对象的范例中,可以重用父对象的通用属性和行为,向它的子对象添加不同的属性和行为。

对象通信和协调

对象通过发送消息(在 Java 用语中称为方法调用)来与其他对象通信。而且,在面向对象的应用程序中,程序代码协调对象之间的活动,以在特定应用程序域的上下文内执行任务。

对象摘要

一个精心编写的对象:

  • 拥有明确定义的边界
  • 执行一组有限的活动
  • 仅知道它的数据和它完成活动所需的任何其他对象

在本质上,对象是一个离散的实体,它仅包含执行其任务而必要的对其他对象的依赖关系。

是时候看看 Java 对象是什么样子了。

示例:person 对象

我首先介绍一个基于一种常见的应用程序开发场景的示例:一个由Person对象表示的人。

从对象的定义可以知道,一个对象有两个主要元素:属性和行为。下面展示了这些元素如何应用到Person对象。

作为一条经验规则,可将对象的属性视为名词,将行为视为动词

属性(名词)

一个人可能有哪些属性?一些常见的属性包括:

  • 姓名、年龄、身高、体重、眼睛颜色、性别

您可能会想到更多(而且您始终可以在以后添加更多属性),但此列表是一个不错的开端。

行为(动词)

一个真实的人可以做各种各样的事,但对象行为通常与某种应用程序上下文相关。举例而言,在业务应用程序上下文中,您可能想询问您的Person对象,“您的身体质量指数 (BMI) 是多少?”作为响应,Person将使用它的身高和体重属性的值来计算 BMI。

Person对象背后可能隐藏着更复杂的逻辑,不过我们暂时假设Person具有以下行为:

  • 计算 BMI、打印所有属性

状态和字符串

状态是 OOP 中的一个重要概念。对象的状态在任何时刻都由它的属性值来表示。

对于Person,它的状态由姓名、年龄、身高和体重等属性来定义。如果想提供多个属性,可使用String类来完成,稍后将更详细地介绍该类。

结合使用状态和字符串的概念,可以对Person说,“通过向我提供您的属性列表(或String)来告诉我您是谁。”

OOP 的原则

如果您有结构化编程的背景,您可能还不清楚 OOP 的价值优势。毕竟,一个人的属性和检索(并转换)这些值的任何逻辑都可使用 C 或 COBOL 编写。如果理解了它的定义原则,OOP 范例的优势就会更加明显:封装继承多态性

封装

回想一下,一个对象是离散的或独立的。此特征是封装的工作原理。隐藏是另一个有时用于表达对象的独立、受保护性质的术语。

无论使用哪个术语,重要的是对象在它的状态和行为与外部世界之间保持一条界线。像真实世界中的物体一样,计算机编程中使用的对象与使用它们的应用程序中的不同对象类别拥有各种各样的关系。

在 Java 平台上,可以使用访问修饰符(后面将会介绍)来区分公共私有对象关系的性质。公共访问是完全开放的,而私有访问意味着对象的属性仅可在对象自身内访问。

公共/私有边界采取面向对象的封装原则。在 Java 平台上,可以逐个对象地改变该边界的强度。封装是 Java 语言的一个强大特性。

继承

在结构化编程中,常常会复制一个结构,为它提供一个新名称,然后添加或修改属性,使新实体(比如一个Account记录)不同于它的原始来源。随着时间的推移,此方法会生成大量重复代码,这可能带来维护问题。

OOP 引入了继承的概念,使得特殊化的类 — 无需额外的代码 — 可以 “复制” 它们要特殊化的来源类的属性和行为。如果其中一些属性或行为需要更改,您可覆盖它们。您更改的唯一的源代码是创建特殊化的类所需的代码。来源对象称为父对象,新的特殊化对象称为子对象— 我们已介绍过这些术语。

假设您在编写一个人力资源应用程序并想使用Person类作为一个名为Employee的新类的基础(也称为超类)。作为Person的子类,Employee将拥有Person类的所有属性,以及更多属性,比如:

  • 纳税人识别编号、员工编号、工资

继承使得创建新Employee类很容易,不需要手动复制所有Person代码。

多态性

多态性是一种比封装和继承更难掌握的概念。在本质上,多态性表示属于一个分层结构的同一个分支的对象,在发送相同的消息时(也即在被告知执行同一件事时),可通过不同方式表现出该行为。

要了解多态性如何应用到业务应用程序上下文,可返回查看Person示例。还记得告诉Person将它的属性格式化到一个String中吗?多态性使Person可以依据它的Person类型,以各种不同的方式表示它的属性。

多态性是您将在 Java 平台上的 OOP 中遇到的更复杂概念之一,不属于这个入门课程的介绍范畴。后续单元将更深入地探索封装和继承。

不是一种单纯的面向对象语言

有两种性质可区分 Java 语言与单纯的面向对象语言(比如 Smalltalk)。首先,Java 语言是对象和原语类型的一种混合。其次,使用 Java,您可编写代码来将一个对象的内部情况向任何其他使用它的对象公开。

Java 语言为您提供了必要的工具来遵循合理的 OOP 原则,生成合理的面向对象代码。因为 Java 不是单纯面向对象的,您必须在编写代码的方式上运用一些规则— 该语言不会强制要求您执行正确的操作,所以您必须依靠自己。您将在第 12 单元 “编写良好的 Java 代码” 中获得一些技巧。

测试您的理解情况

测试您对本单元中介绍的知识的掌握情况。答案在下方。

  1. 对象是一种面向数据的实体,任何需要的程序都可以访问对象的任何数据。
    1. 对、错、有时
  2. 哪句话最准确地描述了父对象与子对象之间的关系?
    1. 父对象包含与子对象完全相同的代码。
    2. 子对象与父对象无关。
    3. 父对象继承子对象的属性和行为。
    4. 子对象包含来自父对象的代码,但更特殊化,可以定义更多属性。
  3. 精心编写的对象可以描述为:
    1. 拥有明确定义的边界,执行一些操作,而且仅知道自己的数据。
    2. 高度面向数据,对任何需要访问它的程序开放。
    3. 仅知道它执行功能所需的其他对象的信息。
    4. a 和 b
    5. a 和 c
    6. 上述所有选项
  4. 哪句话最恰当地描述了对象的属性?
    1. 属性就像对象的名词。
    2. 属性描述对象的行为。
    3. 属性可以具有您希望它们具有的任何含义— 这就是我们所说的 “开源” 的含义。
    4. a 和 c
    5. b 和 c
    6. 上述所有选项。
  5. 选择可能包含Person的一些额外属性的选项。
    1. 计算周龄
    2. 同胞数量
    3. 静止脉搏(心率)
    4. a 和 c
    5. b 和 c
    6. 上述所有选项。
  6. 哪句话最恰当地描述了对象的行为?
    1. 行为就像对象的名词。
    2. 像属性一样,行为可以随意定义— 这就是我们所说的 “开源” 的含义。
    3. 行为就像对象的动词。
    4. 上述所有选项。
  7. 封装意味着 “向所有人开放”,表示对象的内部情况对外部世界完全可见。
    1. 对、错、有时
  8. 哪句话最恰当地描述了继承?
    1. 一个对象(子对象)一般化另一个对象(父对象)的属性和行为,让该对象更加一般化。
    2. 子对象继承父对象,添加特殊的属性和行为。
    3. 创建子对象时,一种著名的最佳实践是开发人员从父对象手动复制/粘贴所有源代码,以确保不会造成任何破坏。
    4. 当子对象继承其父对象时,只有额外的属性和行为必须编码,这是 OOP 的一个好处。
    5. b 和 b
    6. b 和 d
    7. 上述所有选项。
  9. Java 是一种单纯的面向对象语言,就像 Scala 或 Smalltalk 一样。
    1. 对、错、有时

测验的答案

1.b2.d3.e4.a5.e6.c7.b8.f9.b


以上文章来自IBM(http://www.ibm.com/developerworks/cn/topics/)

IBM Java技术学习(http://www.ibm.com/developerworks/cn/java/j-perry-getting-started-with-the-java-language/index.html)




分享到:
评论

相关推荐

    IBM Java Analyzer 4.34

    IBM Java Analyzer 4.34 是一款专门针对Java应用程序性能监控和故障排查的工具,尤其在处理javacore和heapdump文件方面表现出色。这款工具是IBM为优化其JVM(Java虚拟机)运行环境而设计的,它帮助开发者和系统管理...

    IBMJava堆内存分析套件

    IBMJava堆内存调优套件,可以协助内存泄露排查

    IBM Java教程 (内部资料)

    IBM Java教程是一份珍贵的内部学习资源,专为想要深入理解和掌握Java编程语言的人们设计。这份教程可能包含了从基础到高级的各种Java编程概念,旨在帮助开发者提升技能,理解IBM在Java开发领域的最佳实践。 首先,...

    IBM java coredump(threaddump) analyzer

    IBM最新java threaddump 分析工具 java -jar jca.jar -Xmx1024m jca.jar

    IBM java实用教程

    《IBM Java实用教程》是一本全面且深入的Java学习指南,涵盖了从基础到高级的Java编程各个方面。在本文中,我们将深入探讨其中的关键知识点,帮助读者建立起坚实的Java编程基础。 首先,Java语言的语法知识是所有...

    IBM Java socket教程

    在IT行业中,Java Socket编程是网络编程的基础,尤其在IBM Java环境下,其特性和应用更为重要。本教程针对"IBM Java socket"进行了深入浅出的讲解,覆盖了客户端、服务器、多线程以及连接池等多个关键知识点,适合...

    IBM Java JVM Diagnostic Guide

    ### IBM Java JVM Diagnostic Guide #### 一、关于本书 **本书概述了IBM Java虚拟机(JVM)的工作原理、调试技巧以及可用于解决JVM问题的诊断工具。** 本书旨在帮助开发人员、系统管理员和技术支持工程师更好地...

    IBM SDK, Java Technology Edition, Version 5.0 IBM Java JVM诊断指南

    ### IBM SDK, Java Technology Edition, Version 5.0 — IBM Java JVM诊断指南 #### 关于IBM SDK, Java Technology Edition, Version 5.0 IBM SDK, Java Technology Edition, Version 5.0 是一个包含了Java运行时...

    IBM JAVA培训大纲

    ### IBM JAVA培训大纲详解 #### 一、培训目标与特点 IBM JAVA培训大纲旨在通过四个大中型项目的实战训练,帮助学员在约4个月的时间内迅速掌握JAVA项目的开发与设计能力。该培训计划包含了JAVA技术体系的核心课程,...

    IBM JAVA 培训内部资料

    【IBM Java培训内部资料】是一份专为IBM实习人员准备的深入学习JAVA编程语言的教程。这份资料详尽地涵盖了JAVA开发的各种核心概念和技术,旨在帮助学员快速掌握JAVA编程技能,适应IBM的工作环境。作为JAVA开发者,...

    ibm java笔试大全

    【IBM Java笔试大全】是针对想要进入IBM公司从事Java开发工作的人士准备的一份全面的复习资料。这份资源集合了过去几年IBM公司在Java笔试环节所使用的各类题目,旨在帮助求职者提升自己的Java技术水平,顺利通过面试...

    IBM java线程堆栈分析工具

    IBM为WebSphere Application Server (WAS) 提供了一款名为"jca467.jar"的线程堆栈分析工具,专门用于处理与IBM Java相关的线程分析任务。 首先,我们来了解一下什么是线程堆栈。线程堆栈是每个线程在执行过程中创建...

    IBM JAVA培训计划

    ### IBM JAVA培训计划知识点概述 #### 一、JAVA高薪软件工程师特训体系概览 IBM JAVA培训计划是一项专门针对JAVA技术的高级培训方案,旨在通过一系列完整的项目实践和技术课程学习,帮助学员在短时间内掌握JAVA...

    ibm java面试题

    IBM面试题(附带所有答案!!) 1,分金条问题: 你让某些人为你工作了七天, 你要用一根金条作为报酬。这根金条要被分成七块。你必须在每天的活干完后交给他们一块。如果你只能将这根金条切割两次,你怎样给这些工人...

    IBM JAVA PPT3

    IBM JAVA PPT3.One of IBM JAVA PPT.

    IBM Java文档库 NIO 入门

    《IBM Java文档库 NIO 入门》这篇教程主要针对的是Java 1.4引入的New Input/Output (NIO)库,这是一个重要的更新,旨在提高Java程序的I/O性能,特别是面向块的I/O操作。NIO弥补了传统I/O(基于java.io.*包)的不足,...

    IBM_jdk1.5_Guide.zip_IBM jdk 1.5_aix_ibm java1.5_ibm jdk1.5 wind

    IBM JDK 1.5,全称为IBM Java Development Kit 1.5,是IBM公司为AIX操作系统提供的一个Java运行环境,特别针对AIX平台进行了优化和定制。在AIX系统中进行开发工作时,IBM JDK 1.5扮演着至关重要的角色,因为它提供了...

    ibm java sdk

    IBM Java SDK,全称为IBM Java Development Kit,是IBM公司提供的一种Java编程环境,主要用于开发和运行Java应用程序。这个SDK包含了JRE(Java Runtime Environment)和一系列开发工具,使得开发者能够利用Java语言...

    IBM java代码质量专题

    以下是从“IBM Java代码质量专题”中提炼出的重要知识点,旨在帮助开发者提升Java代码的质量,构建更稳定、高效、可维护的软件系统。 ### 一、代码可读性 #### 1.1 代码风格与命名规范 IBM强调了代码风格的一致性...

Global site tag (gtag.js) - Google Analytics