《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),甚或导致整个系统的当机。

相关文章
|
4月前
|
Java Linux
java基础(3)安装好JDK后使用javac.exe编译java文件、java.exe运行编译好的类
本文介绍了如何在安装JDK后使用`javac.exe`编译Java文件,以及使用`java.exe`运行编译好的类文件。涵盖了JDK的安装、环境变量配置、编写Java程序、使用命令行编译和运行程序的步骤,并提供了解决中文乱码的方法。
91 2
|
2月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
4月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
503 37
|
3月前
|
前端开发 小程序 Java
java基础:map遍历使用;java使用 Patten 和Matches 进行正则匹配;后端传到前端展示图片三种情况,并保存到手机
这篇文章介绍了Java中Map的遍历方法、使用Pattern和matches进行正则表达式匹配,以及后端向前端传输图片并保存到手机的三种情况。
32 1
|
4月前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
|
4月前
|
缓存 安全 Java
【Java面试题汇总】Java基础篇——基础、修饰符和关键字(2023版)
Java的特点和优点,、Java 8的新特性、面向对象、基本数据类型和引用类型、自动拆装箱与自动装箱、==与equals()的区别、为什么重写equals()就要重写hashcode()、抽象类和接口的区别、重载和重写的区别、四种引用方式、wt()和sleep()的区别、java方法是值传递还是引用传递?访问修饰符、static、final、this和super、volatile的用法及原理
|
3月前
|
Oracle Java 关系型数据库
|
4月前
|
Java Android开发 C++
🚀Android NDK开发实战!Java与C++混合编程,打造极致性能体验!📊
在Android应用开发中,追求卓越性能是不变的主题。本文介绍如何利用Android NDK(Native Development Kit)结合Java与C++进行混合编程,提升应用性能。从环境搭建到JNI接口设计,再到实战示例,全面展示NDK的优势与应用技巧,助你打造高性能应用。通过具体案例,如计算斐波那契数列,详细讲解Java与C++的协作流程,帮助开发者掌握NDK开发精髓,实现高效计算与硬件交互。
174 1
|
5月前
|
存储 搜索推荐 Java
探索安卓开发中的自定义视图:打造个性化UI组件Java中的异常处理:从基础到高级
【8月更文挑战第29天】在安卓应用的海洋中,一个独特的用户界面(UI)能让应用脱颖而出。自定义视图是实现这一目标的强大工具。本文将通过一个简单的自定义计数器视图示例,展示如何从零开始创建一个具有独特风格和功能的安卓UI组件,并讨论在此过程中涉及的设计原则、性能优化和兼容性问题。准备好让你的应用与众不同了吗?让我们开始吧!
|
5月前
|
Java 调度 Android开发
Android经典实战之Kotlin的delay函数和Java中的Thread.sleep有什么不同?
本文介绍了 Kotlin 中的 `delay` 函数与 Java 中 `Thread.sleep` 方法的区别。两者均可暂停代码执行,但 `delay` 适用于协程,非阻塞且高效;`Thread.sleep` 则阻塞当前线程。理解这些差异有助于提高程序效率与可读性。
89 1