开发者社区> 异步社区> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Java数据结构-------单链表(图解增删改查详细实现,附反转链表实现)(下)
Java数据结构-------单链表(图解增删改查详细实现,附反转链表实现)(下)
25 0
Java数据结构————顺序表(增删改查详细实现)
目录 1.什么是顺序表 2.顺序表的基本功能和结构 3.顺序表基本功能的实现和解析 1.判断线性表是否为空 2.获取指定位置的元素 3.向线性表表添加元素 4.在位置i处插入元素 4.删除指定位置的元素,并返回该元素 5.查找t第一次出现的位置 6.手动扩容方法
32 0
3D接雨水2(leetcode)——Java实现(又是想上吊的一天)
给你一个 m x n 的矩阵,其中的值均为非负整数,代表二维高度图每个单元的高度,请计算图中形状最多能接多少体积的雨水。以下的内容回答你的疑惑和困难。
165 0
删除链表中的节点(leetcode)细思极恐——Java实现
编写一个函数,用于删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 。 题目数据保证需要删除的节点 不是末尾节点 。
46 0
Java交互界面实现计算器开发设计【附函数源码】
使用Java开发的简易计算器,包括加、减、乘、除、平方、立方、小数等运算,适合学习GUI编程实践,
31 0
如何用Java实现位图转矢量图?
通过前面几篇图片转字符、灰度图的文章介绍之后,接下来我们再来看一个有意思的东西,基于前文的基础,实现位图转矢量图的功能
368 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
12049
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载