【Java基础上】一、简述Java

一、简述Java

​ Java是一种高级的面向对象的程序语言,在此处,不需要了解什么叫做面向对象,因为后面的文章中自然会谈到这方面的论述。那么,Java就是一个计算机的编程语言。

1.1 Java的历史

  • Java最初叫做OAK,由Java之父詹姆斯·戈士林博士设计。
  • 于1995年由Sun公司推出,并更名为Java
  • 1998年JDK1.2时,更名为Java 2 Platform

​ 从宏观的角度去看,大体上可以将计算机的编程语言分为三大类,分别是机器语言、汇编语言以及高级语言。机器语言也就是我们通常说的由多个”0“和”1“构成的二进制语言,不像十进制逢十进一,二进制一般逢二进一。当然,这不是我们讨论的重点。汇编语言我们通常会理解成面向机器的程序设计语言,因为形如”100011“这样的编码我们没法直接能够明白这个代码是用来干什么的,于是创造出了助记符与机器码一一对应。

​ 汇编语言我们通常会理解成面向机器的程序设计语言,因为形如”100011“这样的编码我们没法直接能够明白这个代码是用来干什么的。用一些容易理解和记忆的字母、单词来代替一个特定的指令,比如:用“ADD”代表数字逻辑上的加减,“ MOV”代表数据传递等等,通过这种方法,人们很容易去阅读已经完成的程序或者理解程序正在执行的功能,对现有程序的bug修复以及运营维护都变得更加简单方便。

​ 在经历了机器语言和汇编语言后,人们发现每种机器都需要根据其机器结构进行编程,这样,任何软件都没有可能进行推广。这个时候就需要设计一个不依赖于硬件,能够在不同机器上运行的程序。使得免去编程的重复过程,提高效率,同时,这种程序又能够进行再次开发出其他的程序,那么新一代的语言就此诞生——计算机的高级语言。当时的计算机造价不菲,但是每天的计算量有限,如何有效的利用计算机有限的计算能力成为了当时人们面对的问题。

​ Java就是一种高级语言,Java在1995年由Sun公司推出的一种极富创造力的面对对象的程序设计语言,它由Java之父詹姆斯·戈士林博士设计。作为Sun研究院院士,詹姆斯·戈士林亲手设计了Java语言,并完成了Java技术的原始编译器和虚拟机。Java最初的名字是OAK,在1995年被重命名为Java。

​ Java是一个高度跨平台的编程语言,由于用其编写的程序运行在JVM(Java Virtual Machine)上,所以在各种能够安装JVM的机器上都能够运行,例如Windows、Unix、Linux、MacOS,真正意义上的实现了”一次编程,到处运行”的理念。Java非常适合于企业网络和Internet环境,并且已成为Internet中最有影响力、最受欢迎的编程语言之一。

1.2 Java的应用领域

​ 借助Java,程序开发人员可以自由地使用现有的硬件和软件平台。这是由于Java是独立于平台之上的,它还可以应用于计算机之外的领域,例如我们使用的Android手机,所用的主流开发语言便是Java。Java的用途数不胜数,Java的应用领域包括:桌面应用系统的开发、嵌入式系统的开发、电子商务应用、企业级应用开发、交互式系统开发、多媒体系统开发、分布式系统开发、Web应用系统的开发等等。

1、服务器程序

Java在金融服务业的应用非常广泛,许多跨国投资银行例如:Goldman Sachs(高盛投资),Citigroup(花旗集团),Barclays(巴克莱银行)以及其他银行,都用Java来编写前台和后台的电子交易系统,结算和确认系统,数据处理项目以及其他项目。

大多数情况下,Java被用在服务器端开发,但多数没有任何前端,它们通常是从一个服务器(上一级)接收数据,处理后发向另一个处理系统(下一级处理)。

2、嵌入式领域

Java 在嵌入式领域发展空间很大。在这个平台上,你只需130KB就能够使用 Java 技术(在智能卡或者传感器上)。

当初,Java 被设计用来在嵌入式设备上工作。事实上,这只是其中的一个领域,这只是当初的“一次写入,随便畅游”的项目,现在看起来是这样了。

3、大数据技术

Hadoop以及其他大数据处理技术都是用Java或者其他,例如Apache的基于Java 的 HBase和Accumulo以及ElasticSearchas。

但是Java在此领域并未占太大空间,但只要Hadoop和ElasticSearchas能够成长壮大,Java 依旧还有潜力去在这个市场占据一部分。

4、网站领域

同样,Java在电子商务领域以及网站开发领域占据这大部分席位。你可以运用许多不同的框架来创建web项目,SpringMVC,Struts2.0 以及 frameworks。

即使是简单的servlet,jsp和以struts为基础的网站在政府项目中也是很受欢迎的。例如医疗救护,保险,教育,国防以及其他的不同部门网站都是以Java为基础来开发的。

总之,Java语言作为一种发展迅速的语言程序,已经深刻揭示了程序编写过程的精髓,并借助其严谨的结构与间接的编写过程,为Java语言的未来发展提供了重要保证。如今,有关Java语言方面的研究正朝着服务器端优势应用系统方面延伸,相信未来Java语言必将具有更加广泛的应用,也必将会给IT行业的发展起到更有力的促进作用。

1.3 Java的版本

虽然现如今,在笔者完成这篇文章的时候已经更新到了jdk11(LTS),但是还是简单的介绍一下Java版本的一个发展历程。

1.Java SE:JavaSE以前称为 J2SE,是整个Java的基础和核心,这是我们主要学习的一个部分,也是JavaEE和JavaME技术的基础,主要用于开发桌面应用程序。学会后可以做一些简单的桌面应用如:计算器,记事本,内网聊天室,财会应用系统等。

2.Java ME(Java Platform,Micro Edition):这个版本以前称为 J2ME,主要应用于嵌入式开发,比如手机程序的开发。我们现如今用的安卓应用最开始的时候就是基于此进行开发的。

3.Java EE(Java Platform,Enterprise Edition):这个版本以前称为 J2EE,它提供了企业级应用开发的完整解决方案,比如开发网站,还有企业的一些应用系统,是Java技术应用最广泛的领域。主要还是偏向于WEB的开发,而Java EE的基础就是Java SE,所以我们在学习Java SE的时候,基础一定要打好,因为这是最基本的,也是最核心的。

在这里需要注明一点的是,我们如果在网上搜索资料Java的版本基本上都是写的Java8,Java11。这些不能成为Java的版本,准确的说是jdk(Java se development kit)版本或者jre(Java suntime Environment)版本,而Java的分类通常也就是上述的三种,JavaSE、JavaME和JavaEE。

写到这里就想说一下jdk和jre的关系了。

JRE(Java Runtime Enviroment)是Java的运行环境。面向Java程序的使用者,而不是开发者。如果你仅下载并安装了JRE,那么你的系统只能运行Java程序。JRE是运行Java程序所必须环境的集合,包含JVM标准实现及 Java核心类库。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。

JDK(Java Development Kit)又称J2SDK(Java2 Software Development Kit),是Java开发工具包,它提供了Java的开发环境(提供了编译器javac等工具,用于将java文件编译为class文件)和运行环境(提 供了JVM和Runtime辅助包,用于解析class文件使其得到运行)。如果你下载并安装了JDK,那么你不仅可以开发Java程序,也同时拥有了运 行Java程序的平台。JDK是整个Java的核心,包括了Java运行环境(JRE),一堆Java工具tools.jar和Java标准类库 (rt.jar)。

JDK并不是只有Oracle公司唯一发布,最主流的JDK是Oracle和Sun公司发布的JDK,除了Oracle和Sun之外,还有很多公司和组织都开发了自己的JDK,GNU组织开发的JDK,我国华为的毕昇 JDK 8(bishengjdk-8)和阿里云开发的Alibaba Dragonwell等等。

1.4 如何学好Java

如何学好Java语言,这是所有初学者共同面对的问题,其实学什么语言都一样,需要注意以下几点:

  1. 明确自己的学习目标,也就是自己到底要用Java做什么,而不是为了学Java而学Java。
  2. 初学者不用看太多的书,找本Java零基础的书,跟着书上的程序反复练习,举一反三,做好总结。
  3. 可以先简单快速的将书看完,将书中的程序记录下来并做好注释,方便自己复习和查阅。
  4. 了解数据结构和设计模式。开发程序必须编写程序代码,这些代码必须具有高度的可读性,只有具备了可读性以后,程序才能够有调试、维护和升级的价值。学习数据结构能够帮助学习Java的很多类的形成过程,学习设计模式能够更好的把握项目的整体结构。
  5. 不要死记语法,在刚刚接触的时候,很多关键字容易记不清,只需要掌握好基本语法,并大概了解一些功能就可以了。借助开发工具(例如IDEA、Eclipse)的代码辅助功能,完成代码的录入,这样可以加快学习效率,降低学习成本。
posted @   MaxLij  阅读(389)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示