博客
关于我
1 java程序设计概述
阅读量:496 次
发布时间:2019-03-07

本文共 1821 字,大约阅读时间需要 6 分钟。

《java 核心技术卷 Ι 基础知识(第九版)》学习笔记

第一章 java程序设计概述

Java程序设计平台

Java不仅是一种编程语言,更是一种完整的开发平台。它的名字背后承载着强大的功能WRAPPER(包装器),包含丰富的标准库和运行时环境。这些库涵盖了从图形处理到网络通信的各种需求,而运行时环境则为程序提供了安全性、跨平台支持和自动垃圾回收等关键服务。作为开发者,选择Java意味着使用一套成熟且全面的工具,这对提升开发效率和解决复杂问题具有重要意义。

Java“白皮书”中的关键术语

写《白皮书》之前,Java团队仔细思考了这门语言的核心特性。这些特性包括:简单性、面向对象、网络技能、健壮性、安全性、架构中立性、可移植性、解释型、高性能、多线程和动态性。这些特性不仅塑造了Java的发展方向,也帮助程序设计者更好地理解和应用Java的优势。

Java applet与互联网

Java的设计初衷之一是与互联网深度融合。Java Applet作为一种小型应用程序,可部署在网页中,能够运行在浏览器中。这类应用可以通过URL或Java字节码无缝启动,并与网络资源互动。这种设计让Java在Web开发中占据重要地位,为用户提供了丰富的交互体验。

Java发展简史

1996年,Java的首次发布引发了巨大的广泛关注。当时《纽约时报》等主流媒体也开始报道Java的发展。在National Public Radio上得到了专门的报道,Java不仅是技术领域的热点,更成为文化现象。初期,Java主要被用在桌面应用,但随着JVM的普及,它的应用范围被扩展到任何支持Java虚拟机的平台。

关于Java的常见误解

Java和C++是两个比较接近的编程语言,但有几个关键区别。例如,Java没有指针、结构体的概念,也没有 Operator Overloading(运算符重载)的功能。这些设计使得Java更加易于学习和使用——开发者不必深入思考内存管理,Java的自动垃圾回收机制代之以来了。尽管如此,Java仍然具备可移植性和大型库支持,这使得它成为开发者的首选语言。

Java的设计理念

Java的目标之一是支持在小型机器上运行。此外,它还注重语言的简洁和现代性。虽然与某些传统语言相比,Java在某些方面可能不够灵活,但它的语法和概念设计使得开发者能够专注于解决实际问题,而不是陷入复杂的语言细节中。

Java“白皮书”中的关键术语详解

2. 简单性

Java简化了C++的复杂性,去除了诸如指针、结构体、操作符重载和虚基类等。这种简化允许开发者专注于核心逻辑,而无需过度关注内存管理。同时,Java的简单目标之一是支持嵌入式设备,微型Java版为了效率而clus_subset优化。

3. 面向对象

面向对象编程强调对象和其属性的组织方式。在Java中,所有对象都继承自Object类(需要注意的是,基类的单继承性是不够的,接口支持多继承)。Java的面向对象特性使其适合Object-Oriented设计,其中类和接口共同决定了对象的行为 Typed。与C++的多继承相比,Java通过接口实现了一种更灵活的多态表达方式。

4. 网络技能

Java的网络能力是其一大亮点。其可扩展的图书馆支持TCP/IP协议如HTTP和FTP,同时允许通过URL轻松访问网络资源。Java对分布式系统的支持更是通过远程方法调用机制实现的。这种设计使得Java程序能够方便地构建分布式应用。

5. 健壮性

Java的健壮性体现在两层面:编译时的严格性和运行时的内存管理。例如,Java的编译器能够检测潜在的错误,并在运行时抛出异常。而垃圾回收机制(由JVM自动管理)帮助开发者避免了内存泄露和越界等问题。

6. 安全性

Java的设计目标之一是开发内置的安全机制。例如,Java Verified作为措施确保程序的安全性。通过 bytecode验证和安全性约束 Java程序能够在默认情况下有一定的防护能力。特别是在网络应用中,这种安全性尤为重要。

7. 可移植性

Java程序的可移植性不仅体现在源代码层面,还体现在JVM层面。任何支持Java虚拟机的平台都可以运行Java程序,只要编译后的字节码(J-Code)一次性编译即可。这一特性使得Java成为跨平台开发的理想选择,无需手动编译或进行代码调整。此外,JVM的设计使得它能够隔离不同平台的差异。

转载地址:http://ntnjz.baihongyu.com/

你可能感兴趣的文章
AlwaysOn配置时在连接步骤时报错(35250)
查看>>
排序算法之总结
查看>>
微软云Linux服务器 Mysql、tomcat远程连接错误解决办法
查看>>
Java基础知识回顾之六 ----- IO流
查看>>
React 函数式组件的 Ref 和子组件访问(useImperativeHandle)
查看>>
Python数据分析(二): Numpy技巧 (2/4)
查看>>
09 . Python3之常用模块
查看>>
Python学习笔记-StatsModels 统计回归(3)模型数据的准备
查看>>
Velocity.js初步
查看>>
yarn出现“There are no scenarios ; must have at least one"
查看>>
Ubuntu16.04中php如何切换版本
查看>>
nginx上配置phpmyadmin
查看>>
HustOJ二次开发之修改数据库连接池
查看>>
SpringBoot之整合Dubbo
查看>>
Drools之关键字及错误信息
查看>>
redis集群报错:(error) CLUSTERDOWN Hash slot not served
查看>>
嘿!为你的应用创建滚动日志吧?
查看>>
一个JAVA应用启动缓慢问题排查 --来自jdk securerandom 的问候
查看>>
报警系统:php输出头信息以方便脚本抓取信息[排查篇]
查看>>
spring-boot-2.0.3之redis缓存实现,不是你想的那样哦!
查看>>