一、简述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)的代码辅助功能,完成代码的录入,这样可以加快学习效率,降低学习成本。

【Java基础上】一、简述Java的更多相关文章

  1. 【Java基础】4、java中的内部类

    内部类的分类:常规内部类.静态内部类.私有内部类.局部内部类.匿名内部类. 实例1:常规内部类 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2 ...

  2. Java基础系列1:Java基本类型与封装类型

    Java基础系列1:Java基本类型与封装类型 当初学习计算机的时候,教科书中对程序的定义是:程序=数据结构+算法,Java基础系列第一篇就聊聊Java中的数据类型. 本篇聊Java数据类型主要包括两 ...

  3. 【Java基础】11、java方法中只有值传递,没有引用传递

    public class Example { String testString = new String("good"); char[] testCharArray = {'a' ...

  4. java基础3.0:Java常用API

    本篇介绍Java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看JavaAPI文档是必不可少的. 一.java.lang包下的API Java常 ...

  5. JAVA基础第一章-初识java

    业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 从今天开始,我将会持续更新java基础知识,欢迎关注. java的诞生 ...

  6. Java基础系列篇:JAVA多线程 并发编程

    一:为什么要用多线程: 我相信所有的东西都是以实际使用价值而去学习的,没有实际价值的学习,学了没用,没用就不会学的好. 多线程也是一样,以前学习java并没有觉得多线程有多了不起,不用多线程我一样可以 ...

  7. 夯实Java基础系列1:Java面向对象三大特性(基础篇)

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 [https://github.com/h2pl/Java-Tutorial](https: ...

  8. 夯实Java基础系列5:Java文件和Java包结构

    目录 Java中的包概念 包的作用 package 的目录结构 设置 CLASSPATH 系统变量 常用jar包 java软件包的类型 dt.jar rt.jar *.java文件的奥秘 *.Java ...

  9. 夯实Java基础系列15:Java注解简介和最佳实践

    Java注解简介 注解如同标签 Java 注解概述 什么是注解? 注解的用处 注解的原理 元注解 JDK里的注解 注解处理器实战 不同类型的注解 类注解 方法注解 参数注解 变量注解 Java注解相关 ...

随机推荐

  1. 数据结构与算法Python版 熟悉哈希表,了解Python字典底层实现

    Hash Table 散列表(hash table)也被称为哈希表,它是一种根据键(key)来存储值(value)的特殊线性结构. 常用于迅速的无序单点查找,其查找速度可达到常数级别的O(1). 散列 ...

  2. 04:全局解释器锁(GIL)

    1 全局解释器锁(GIL) 0 pypy(没有全局解释器锁) cpython(99.999999%)    -pypy python好多模块用不了,1 全局解释器锁,GIL锁(cpython解释器的问 ...

  3. guavacache源码阅读笔记

    guavacache源码阅读笔记 官方文档: https://github.com/google/guava/wiki/CachesExplained 中文版: https://www.jianshu ...

  4. 后缀数组&manachar总结

    洛谷题单 后缀数组 前置芝士 后缀数组 1 后缀数组 2 后缀数组 3 例题略解 P2463 [SDOI2008]Sandy的卡片 板子题... 然而我还是不会. 大概做法就是先把所有的串差分后拼成一 ...

  5. Web 动画原则及技巧浅析

    在 Web 动画方面,有一套非常经典的原则 -- Twelve basic principles of animation,也就是关于动画的 12 个基本原则(也称之为迪士尼动画原则),网上对它的解读 ...

  6. CMD批处理(5)——自动以管理员身份运行批处理脚本

    在日常运维工作中,为方便对windows用户进行系统安装或配置等,使用Windows自带的批处理(bat文件)是一种最为简单快速的方法. 批处理脚本不会默认已管理员身份运行,一般情况下,我会将脚本命名 ...

  7. 把 STM32 bluepill 变成调试器(daplink)

    在调一块 ARM M0 内核的板子,使用官方的 DEMO 板子来调,板子上集成了 daplink 调试器. 为了方便使用,我把目标板跟 daplink 剪开了,然后用杜邦线把 daplink 跟目标板 ...

  8. MySQL 到 ES 数据实时同步技术架构

    MySQL 到 ES 数据实时同步技术架构 我们已经讨论了数据去规范化的几种实现方式.MySQL 到 ES 数据同步本质上是数据去规范化多种实现方式中的一种,即通过"数据迁移同步" ...

  9. 关于TreeView的实例

    前台代码 (只需要有TreeView控件, 添加ID,其他默认生成) <form id="form1" runat="server"> <di ...

  10. 使用Retrofit上传图片

    Retrofit使用协程发送请求参考文章 :https://www.cnblogs.com/sw-code/p/14451921.html 导入依赖 app的build文件中加入: implement ...