《Java和Android开发实战详解》——1.2节Java基础知识

简介:

本节书摘来自异步社区《Java和Android开发实战详解》一书中的第1章,第1.2节Java基础知识,作者 陈会安,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.2 Java基础知识
Java和Android开发实战详解
Java语言类似于C++是一种编译型语言,不过两者并不完全相同,严格说来,Java是结合编译和解释优点的一种编程语言。

1.2.1 Java平台
“平台”(Platform)是一种结合硬件和软件的执行环境。Java既是一种高级的面向对象的编程语言,也是一个平台。Java平台是一种纯软件平台,它可以在各种基于硬件的平台上运行,与硬件无关,主要是由JVM和Java API两个部分组成。

1.JVM虚拟机
JVM(Java Virtual Machine,Java虚拟机)是由软件虚拟出来的一台计算机,Java源代码并不是使用Java编译程序(Java Compiler)编译成其安装实体计算机可执行的机器语言,而是JVM虚拟机的机器语言,称为“字节码”(Bytecode)。

字节码是一种可以在JVM解释或编译执行的程序,换句话说,计算机操作系统需要安装JVM,才能够使用Java解释程序(Java Interpreter)来解释和执行字节码,如图1-3所示。


4d4cdafeb16ac410391801b1b2f87fe845cfe8ba

图1-3中的Java源代码(扩展名为.java)在编译成字节码(扩展名为.class)后,即可在Windows、UNIX,或Machintosh的Mac OS操作系统上执行,只需安装JVM,同一个字节码文件就可以跨平台运行在不同操作系统上,使用Java解释程序来正确执行Java应用程序。

2.Java API
Java API(Java Application Programming Interface)是软件组件的一个集合,也就是C/C++语言所谓的函数库,它提供集合对象、GUI组件、文件处理、数据库访问和网络等相关的类和接口,称为“包”(Package)。

1.2.2 Java语言的版本
Java是一种高级和面向对象编程语言,其语法和C/C++语言十分相似,支持Windows、Solaris、Linux和Mac OS X操作系统,分成企业版(EnterPrise Edition,EE)和标准版(Standard Edition,SE)。

1.标准版的版本演进
本书介绍应用程序开发使用的是Java SE标准版,其版本演进如表1-3所示。


eb8f411008f8ec783bad217800089b42fc006e9c

其中1.0、1.1、5.0和6简称JDK,1.2、1.3和1.4版简称SDK。在1.2版时,因为与前版有极大改进,增加全新Swing图形用户接口,所以称为Java 2平台。

从1.3版后,Sun将平台与平台开发工具的名称分开,平台分为标准版(Standard Edition,SE)和企业版(Enterprise Edition,EE)。企业版新增额外函数库,主要用来开发企业级的服务器端Java应用程序。

到了5.0版,Java版本号也分为两种:产品版本号是5.0版(Product Version),JDK使用1.5.0版,为开发版本号(Developer Version)。从SE 6版开始,官方名称由J2SE改为Java SE,不再称为Java 2,Java SE 7是平台名称,同时使用开发版本号1.7.0和产品版本号7代表新版的Java平台。

2.Java SE 7
Java SE 7是Jave语言的最新版本,也是甲骨文(Oracle)并购Sun公司后,首次发布的Java平台版本。Java SE 7版包含很多全新功能、增强功能与错误修正,可以全方面提升开发与执行Java程序的效率。

Java SE 7除了修正不少漏洞及提升整体性能外,更提供对Ruby、Python和JavaScript语言的支持,并且针对多内核环境新增全新API,并大幅提升JVM性能,使用全新文件系统API,支持异步I/O。其主要增强功能简要说明如下。

改善整体性能、稳定性及安全性。
增强Java插件的功能,方便Intenet应用程序的开发与部署。
强化Java语法,让开发人员更轻松地编写与优化Java程序代码。
增强Java虚拟机的功能,使其可以支持非Java语言。

1.2.3 Java编程语言的特点
Java语言是一款简单、功能强大和高性能的面向对象编程语言,不只这样,Java语言还拥有一些传统编程语言所没有的特点。

1.分布式
Java语言最初的规划是一种网络编程语言,可以支持各种网络协议,能够建立分布式(Distributed)主从架构的应用程序,轻松访问网络上其他主机的资源。

2.多线程
Java语言支持多线程(Multi-Threading),在同一程序能够创建多个执行小程序,称为“轻量级进程”(Light Weight Process),以便执行不同的工作,并且支持同步功能,能够避免“死锁”(Deadlock)情况的发生。

3.垃圾回收
垃圾(Garbage Collection)是指处理程序不再使用的内存空间。在C/C++语言中需要程序员自行处理内存的配置与释放,当不再使用时,程序需要提供程序代码来释放内将其存归还给操作系统,这样操作系统才能够再次分配内存给其他应用程序。

Java语言则拥有自动垃圾回收能力,程序设计者不用担心内存配置不足的问题,因为在执行Java程序时,会自动将不再使用的内存归还给操作系统。

4.异常处理
计算机程序不可能没有“小臭虫”(Bugs)。在程序运行时极有可能产生一些小错误,有些可能只会产生错误结果,但是有一些小错误可能导致严重的系统当机问题,传统编程语言并没有完善的异常处理(Exception Handling)机制,所以常常会出现一些不明的系统错误。

异常处理的目的是为了让程序能够更加“强壮”(Robust),就算程序遇到不寻常情况,也不会造成程序“崩溃”(Crashing),甚或导致整个系统的当机。

相关文章
|
13天前
|
IDE Oracle Java
java基础教程(1)-Java概述和相关名词解释
【4月更文挑战第1天】Java是1995年Sun Microsystems发布的高级编程语言,以其跨平台特性著名。它介于编译型和解释型语言之间,通过JVM实现“一次编写,到处运行”。Java有SE、EE和ME三个版本,分别针对标准、企业及嵌入式应用。JVM是Java虚拟机,确保代码在不同平台无需重编译。JRE是运行环境,而JDK包含开发工具。要安装Java开发环境,可从Oracle官网下载JDK,设置JAVA_HOME环境变量并添加到PATH。
|
20天前
|
移动开发 Java Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【4月更文挑战第3天】在移动开发领域,性能优化一直是开发者关注的焦点。随着Kotlin的兴起,其在Android开发中的地位逐渐上升,但关于其与Java在性能方面的对比,尚无明确共识。本文通过深入分析并结合实际测试数据,探讨了Kotlin与Java在Android平台上的性能表现,揭示了在不同场景下两者的差异及其对应用性能的潜在影响,为开发者在选择编程语言时提供参考依据。
|
1月前
|
Java 编译器 Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【2月更文挑战第30天】 随着Kotlin成为开发Android应用的首选语言,开发者社区对于其性能表现持续关注。本文通过深入分析与基准测试,探讨Kotlin与Java在Android平台上的性能差异,揭示两种语言在编译效率、运行时性能和内存消耗方面的具体表现,并提供优化建议。我们的目标是为Android开发者提供科学依据,帮助他们在项目实践中做出明智的编程语言选择。
|
18天前
|
Java 程序员 调度
Java中的多线程编程:基础知识与实践
【4月更文挑战第5天】 在现代软件开发中,多线程编程是一个不可或缺的技术要素。它允许程序员编写能够并行处理多个任务的程序,从而充分利用多核处理器的计算能力,提高应用程序的性能。Java作为一种广泛使用的编程语言,提供了丰富的多线程编程支持。本文将介绍Java多线程编程的基础知识,并通过实例演示如何创建和管理线程,以及如何解决多线程环境中的常见问题。
|
27天前
|
Java 编译器 Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
在开发高性能的Android应用时,选择合适的编程语言至关重要。近年来,Kotlin因其简洁性和功能性受到开发者的青睐,但其性能是否与传统的Java相比有所不足?本文通过对比分析Kotlin与Java在Android平台上的运行效率,揭示二者在编译速度、运行时性能及资源消耗方面的具体差异,并探讨在实际项目中如何做出最佳选择。
17 4
|
7天前
|
存储 Java
Java基础教程(7)-Java中的面向对象和类
【4月更文挑战第7天】Java是面向对象编程(OOP)语言,强调将事务抽象成对象。面向对象与面向过程的区别在于,前者通过对象间的交互解决问题,后者按步骤顺序执行。类是对象的模板,对象是类的实例。创建类使用`class`关键字,对象通过`new`运算符动态分配内存。方法包括构造函数和一般方法,构造函数用于对象初始化,一般方法处理逻辑。方法可以有0个或多个参数,可变参数用`类型...`定义。`this`关键字用于访问当前对象的属性。
|
8天前
|
Java 索引
Java基础教程(6)-Java中的流程控制语句
【4月更文挑战第6天】Java流程控制包括选择(if, switch)、重复(while, do-while, for)和跳转(break, continue, return)语句。选择语句根据条件执行不同路径,if和switch用于单条件和多条件分支。重复语句用于循环,如for循环的初始化、条件和迭代部分,以及while和do-while循环。跳转语句中,break用于立即退出循环,continue结束当前循环迭代,return则从方法中返回。此外,Java的for each循环简化了数组或集合的遍历,但不能控制遍历顺序或索引。
|
10天前
|
存储 Java 编译器
Java基础教程(4)-Java中的操作符
【4月更文挑战第4天】Java中的String是常用类,字符串是不可变对象,用双引号表示。String对象在编译期长度受限于65535,运行期不超过Int范围。字符串方法如length()、substring()、replace()、equals()等提供了多种操作。可变字符串可使用StringBuffer或StringBuilder。String对象通过字符串池优化内存,池中已有相同内容字符串则返回其引用。
|
24天前
|
关系型数据库 Java 开发工具
Java入门高频考查基础知识9(15问万字参考答案)
本文探讨了Spring Cloud的工作原理,包括注册中心的心跳机制、服务发现机制,以及Eureka默认的负载均衡策略。同时,概述了Spring Boot中常用的注解及其实现方式,并深入讨论了Spring事务的注解、回滚条件、传播性和隔离级别。文章还介绍了MySQL的存储引擎及其区别,特别关注了InnoDB如何实现MySQL的事务处理。此外,本文还详细探讨了MySQL索引,包括B+树的原理和设计索引的方法。最后,比较了Git和SVN的区别,并介绍了Git命令的底层原理及流程。
31 0
Java入门高频考查基础知识9(15问万字参考答案)
|
24天前
|
存储 缓存 算法
Java入门高频考查基础知识4(字节跳动面试题18题2.5万字参考答案)
最重要的是保持自信和冷静。提前准备,并对自己的知识和经验有自信,这样您就能在面试中展现出最佳的表现。祝您面试顺利!Java 是一种广泛使用的面向对象编程语言,在软件开发领域有着重要的地位。Java 提供了丰富的库和强大的特性,适用于多种应用场景,包括企业应用、移动应用、嵌入式系统等。下是几个面试技巧:复习核心概念、熟悉常见问题、编码实践、项目经验准备、注意优缺点、积极参与互动、准备好问题问对方和知其所以然等,多准备最好轻松能举一反三。
48 0
Java入门高频考查基础知识4(字节跳动面试题18题2.5万字参考答案)