• Java入门到实践系列(1)——Java简介


    一、Java的发展历史

    Java是由SUN公司的开发人员James Gosling及其领导的一个开发小组与1995年开发并推出的一门高级编程语言。经过二十几年的发展已经成为最受程序员欢迎、使用最为普遍的编程语言之一。

    2004年J2SE 5.0版本问世,更新力度大,Java从此进入了发展的快车道。并将J2SE 5.0改名为Java SE 5.0。

    2009年Oracle公司(甲骨文)收购Sun公司。

    2014年,Java SE 8发布。(企业常用版本)

    以上年份并不重要,只是为了让大家简单的了解一下Java的发展历程。

    跟大家分享一个有趣的小故事,其实Java之前不叫Java,而是叫Oak(橡树),是以高斯林办公室外面的一颗橡树命名的。当他们去注册商标时,发现Oak已经被注册。于是乎,Java的几位爸爸们开始讨论给Oak改名字,他们一边喝着印度尼西亚的Java(咖啡名称)一边想名字。喝着喝着就决定把Oak改成了Java。这也是为什么Java的Logo上有一个咖啡杯的图案。

    不得不说,外国人起名字真的很随意,哈哈。

    1596525388149

    詹姆斯·高斯林(Java之父)

    二、Java的分类

    Java SE(J2SE) ——基础部分,Java的标准版本,包括面向对象、API、JVM等等。主要应用于桌面软件的开发,如QQ、优酷等。

    Java EE(J2EE) —— 企业级应用的开发,Java的企业版,建立于Java SE的基础之上,包括JSP、EJB、Service等等。主要应用于网站的开发。

    Java ME(J2ME) —— 嵌入式开发。主要应用于手机游戏、手机软件、机顶盒等的开发。

    而我们主要是针对先对Java SE进行学习,为后面的Java EE打下良好的基础。

    三、Java的跨平台性

    Java语言之所以能够受广大程序员的喜爱与它的跨平台性是分不开的。

    跨平台是个什么?

    我们常用的平台有苹果Mac系统,微软Windows系统和Linux系统。

    有些经验的同学可能都知道,比如我在Windows下的网易云音乐安装包,在Mac和Linux下是无法安装的,需要另外下载网易云音乐的对应系统的安装包。

    而咱们Java口号是“Write Once,Run Anywhere”,具有一次编译,到处运行的特点。

    那么如何实现跨平台?跨平台的原理是什么?

    主要原因是Java程序在运行时,采用了Java虚拟机(JVM),虚拟机也叫运行时系统。Java编译后生成的是字节码文件(.class)最终由JVM解释并执行。

    在不同的操作系统上,只要安装了Java虚拟机,就可以运行同一个Java字节码文件,尽管安装在不同平台上的虚拟机不一样,但是这些虚拟机向计算机解释执行Java字节码的方式是一样的,解释执行的结果也是一样的。虚拟机抹平了不同操作系统之间的差异,从而实现了跨平台的功能。

    1596525551478

    非跨平台

    1596525514052

    跨平台

    四、Java的特点

    (一)面向对象。

    Java是一门完全的面向对象语言,万物皆为对象是其核心思想。Java技术提供了一个清晰和高效的面向对象开发平台。

    (二)可移植性。

    Java具有很好的跨平台性,同一个Java字节码能够在不同的硬件平台和不同的操作系统上执行。可移植性一方面体现在它不依赖操作平台。另一 方面体现在Java规定了基本数据类型的字节长度。不存在不同硬件和操作系统上数据类型不兼容的问题。

    (三)可解释性。

    Java编译器编译产生的不是可执行代码,而是字节码。字节码是由Java虚拟机执行的高度优化的一系列指令,虚拟机通过解释执行Java字节码。解释字节码是创建具有跨平台性的可移植程序的有效办法。

    (四)多线程。

    Java的多线程技术提供了构建含有许多并发线程的途径和方法。

    知识拓展

    JVM:(Java Virtual Machine),Java虚拟机,JVM的作用负责解析运行class文件,保证Java的跨平台。

    JRE:(Java Runtime Environment) Java程序的运行时环境,包含了JVM和运行时所需要的核心类库。如果只要运行Java程序,只要安装JRE即可。

    JDK:(Java Development Kit) 是Java程序开发工具包,包含JRE和开发人员所用的工具(编译工具javac.exe 运行工具 java.exe)。

    1596525600677

    JDK、JRE、JVM之间的关系

  • 相关阅读:
    主机与虚拟机之间的网络连接
    QT下过多点的曲线绘制
    C++返回对象和返回引用
    STS MVC与MyBatis的结合
    STS中依赖项的设置
    STS中MyBatis的基本实现
    STS中不同包但相同类名引起的问题:A component required a bean of type 'javax.activation.DataSource' that could not be found
    STS中AOP的实现
    STS如何将一个文件夹设置缺省的创建路径(build path)
    ARB扩展与标准OpenGL的关系
  • 原文地址:https://www.cnblogs.com/JamesHao/p/13434338.html
Copyright © 2020-2023  润新知