一、简述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. pytest 给用例打标签

    1.给用例添加自定义标签命令:@pytest.mark.tagname     #tagname是自定义的标签名 import pytest class TestClass(): @pytest.ma ...

  2. APP测试的主要内容

    一.功能性测试:依据需求相关的文档编写测试用例进行测试 二.兼容性测试 系统版本:Android,ios 分辨率 网络情况 可用工具:testin 三.安装,升级,卸载测试 首次安装,覆盖安装,卸载后 ...

  3. Python 机器学习实战 —— 监督学习(上)

    前言 近年来AI人工智能成为社会发展趋势,在IT行业引起一波热潮,有关机器学习.深度学习.神经网络等文章多不胜数.从智能家居.自动驾驶.无人机.智能机器人到人造卫星.安防军备,无论是国家级军事设备还是 ...

  4. 你能说出多线程中sleep、yield、join的用法及sleep与wait区别?

    Object中的wait.notify.notifyAll,可以用于线程间的通信,核心原理为借助于监视器的入口集与等待集逻辑 通过这三个方法完成线程在指定锁(监视器)上的等待与唤醒,这三个方法是以锁( ...

  5. 带你掌握C++中三种类成员初始化方式

    摘要:在C++11之后,声明时初始化->初始化列表->构造函数初始化. 本文分享自华为云社区<如何编写高效.优雅.可信代码系列(3)--类成员初始化的三种方式>,原文作者:我是 ...

  6. external-attacher源码分析(1)-main方法与启动参数分析

    更多 ceph-csi 其他源码分析,请查看下面这篇博文:kubernetes ceph-csi分析目录导航 摘要 ceph-csi分析-external-attacher源码分析.external- ...

  7. Redis配置统计字典

    本章将对Redis的系统状态信息(info命令结果)和Redis的所有配置(包括Standalone.Sentinel.Cluster三种模式)做一个全面的梳理,希望本章能够成为Redis配置统计字典 ...

  8. 20、checkconfig

    chkconfig控制的原理(/etc/init.d/里面设置脚本,在/etc/rc.d/rc..d中设置软连接,通过chkconfig进行管理,同时也加入到了service服务,chkconfig设 ...

  9. Linux云计算-03_必备基础命令

    Linux系统启动默认为字符界面,一般不会启动图形界面,所以对命令行的熟练程度能更加方便.高效的管理Linux系统. 本章介绍Linux系统必备命令各项参数及功能场景,Linux常见命令包括:cd.l ...

  10. Visual Studio 2010 SP1 中文升级补丁ISO完整版下载 (含多国语言)

    最近事情比较多,差点忘记了这个VS2010 SP1的升级补丁更新了,程序员们赶快更新吧!这次发布的SP1包含了下列语言:英文,简体中文,繁体中文,法语,德语,印度语,日语,韩语,俄语以及西班牙语. V ...