【入坑Java第一天】

初步认识

Java语言概述

  • Java 编程语言是 Sun Microsystems 公司的 James Gosling 在 1990 年创建的,于 1995 年公布 于世(一般说 Java 诞生于 1995 年)。Java 是一门面向对象的编程语言,不仅吸收了 C++语言 的各种优点,还摒弃了 C++里难以理解的多继承、指针等概念,因此 Java 语言具有功能强大和简单易用两个特征。Java 语言作为面向对象编程语言的代表,极好地实现了面向对象理论, 允许程序员以优雅的思维方式进行复杂的编程。

Java语言的发展史

  • 1990 年末,Sun 公司准备为下一代智能家电(电视机,微波炉,电话)编写一个通用的控 制系统。该团队最初考虑使用 C++语言,很多成员包括 Sun 公司的首席科学家 Bill Joy,发现 C++语言在某些方面复杂,系统资源极其有限,缺少垃圾回收系统等,于是 Bill Joy 决定开发 一种新的语言:Oak。

  • 1992 年夏天,Green 计划已经完成新平台的部分功能,包括 Green 操作系统,Oak 的程序设计语言、类库等。同年 11 月,Green 计划被转成“FirstPerson 有限公司”,一个 Sun 公司的 全资子公司。该团队致力于创建一种高度互动的设备。

  • 1994 年夏天,互联网和浏览器的出现不仅给广大互联网的用户带来了福音,也给 Oak 语 言带来了新的生机。James Gosling(Java 之父)立即意识到,这是一个机会,于是对 Oak 进行 了小规模的改造。

  • 1994 年秋,小组中的 Naughton 和 Jonathan payne 完成了第一个 Java 语言的网页浏览器: WebRunner。Sun 公司实验室主任 Bert Sutherland 和技术总监 Eric Schmidt 观看了该网页的演 示并给予了高度的评价。当时 Oak 这个商标已经被注册了,于是将 Oak 改名为 Java。

  • 1995 年初,Sun 公司发布 Java 语言,Sun 公司直接把 Java 放到互联网上,免费给大家使 用,甚至连源代码也不保密,也放在互联网公开。几个月后,Java 成了互联网上最热门的宝贝。 各种各样的小程序层出不穷,Java 终于扬眉吐气,成为了一种广为人知的编程语言。

  • 1996 年底,Flash 问世了,这是一种更加简单的动画设计软件:使用 Flash 几乎无须任何编 程语言知识,就可以做出丰富多彩的动画。Flash 逐渐蚕食了 Java 在网页上的应用。

  • 1997 年 2 月 18 日,Sun 公司发布了 JDK1.1,增加了即时编译器 JIT。

  • 1995 年 Java 诞生到 1998 年底,Java 语言虽然成为了互联网上广泛使用的编程语言,但它 没有找到一个准确的定位。

  • 1998 年 12 月,Sun 发布了 Java 历史上最重要的 JDK 版本:JDK1.2。并将 Java 分成了 J2EE (提供了企业应用开发相关的完整解决方案)、J2SE(整个 Java 技术的核心和基础)、J2ME (主要用于控制移动设备和信息家电等有限存储的设备)三个版本。

  • 2002 年 2 月,Sun 发布了 JDK 历史上最为成熟的版本,JDK1.4。

  • 2004 年 10 月,Sun 发布了万众期待的 JDK1.5。JDK1.5 增加了诸如泛型、增强的 for 语句、 可变数量的形参、注释、自动拆箱和装箱等。

  • 2005 年,Java 诞生十周年,J2SE/J2EE/J2ME 分别改名为:JavaSE/JavaEE/JavaME。

  • 2006 年 12 月,Sun 发布了 JDK1.6。 2009 年 4 月 20 日,Oracle 甲骨文公司宣布将以每股 9.5 美元的价格收购 Sun。Oracle 通过 收购 Sun 获得了两项资产:Java 和 Solaris。

  • 2007 年 11 月,Google 宣布推出一款基于 Linux 平台的开源手机操作系统:Android。Android 使用 Java 语言来开发应用程序。Android 平台的流行,让 Java 语言获得了在客户端程序上大 展拳脚的机会。

  • 2011 年 7 月 28 日,Oracle 发布了 Java SE7,这次版本升级耗时将近 5 年时间。引入二进 制整数、支持字符串的 switch 语句等。

  • 2014 年 3 月 18 日,Oracle 发布了 Java SE 8。

  • 2017 年 7 月,Oracle 发布了 JavaSE 9。

  • 2018 年 3 月 20 日,Oracle 发布了正式版 JavaSE 10。同一年 9 月 25 日发布了 Java11。

  • 2019 年 3 月 19 日,Oracle 发布了 Java12。......

JavaEE,Javase,JavaME三者关系:

  • JavaEE 和 JavaME 都包含 JavaSE。实际上,这三大块就是 Java 的三大版本, JavaSE 是 Java 的标准版,是学习 JavaEE 和 JavaME 的基础,JavaEE 是企业版,JavaME 是微 型版。

Java语言的特性

  • Java 是一门简单的,面向对象,分布式,解释性,健壮的,安全的,结构中立的,便捷的,高性能的,多线程的,动态的语言。

  • 简单性:Java 语言底层采用 C++语言实现,相对于 C++来说,Java 是简单的,在 Java 语言中程序员不需要再操作复杂的指针(指针的操作是很复杂的),继承方面也是只支持单继 承(C++语言是一种半面向对象的编程语言,支持多继承,多继承会导致关系很复杂),在很多方面进行了简化。

  • 面向对象:Java 中提供了封装、继承、多态等面向对象的机制。

  • 健壮性:在 C++程序当中的无用数据/垃圾数据需要编程人员手动释放,当忘记释放内 存的时候,会导致内存使用率降低,影响程序的执行;在Java 语言当中这种问题得到了解决, 因为 Java 语言引入了自动垃圾回收机制(GC 机制),Java 程序启动了一个单独的垃圾回收线 程,时刻监测内存使用情况,在特定时机会回收/释放垃圾数据,这样会让内存时刻处于最好 的状态。

  • 多线程:Java 语言支持多个线程同时并发执行,同时也提供了多线程环境下的安全机制。

  • 可移植性/跨平台:可移植性/跨平台表示 Java 语言只需要编写/编译一次,即可处处运 行。Java 代码既可以运行在 windows 的环境下,又可以运行在 Linux 的环境下,而不需要修改 Java 源程序,那么它是怎么做到的呢?功劳全在于“Java 虚拟机(Java Virtual Machine,简称 JVM)”这种机制,实际上 Java 程序运行的时候并不是直接运行在操作系统上面的,而是在操作系统上先安装了一个 JVM,把 Java 程序放到了 JVM 当中运行,JVM 屏蔽了各操作系统 之间的差异,这样就完成了跨平台。但是,JVM 的出现虽然搞定了跨平台,同时也带来了一 些问题,比如要想运行 Java 程序就必须先安装 JVM,没有 JVM,Java 程序是运行不了的,就像你要在网页上看视频,结果浏览器却提示你需要安装 Flash 插件,这一点你是不是感觉非常不爽呀!那么 Java 程序、Java 虚拟机、操作系统之间是怎样的关系呢?请看下图:

  • 通过上图我们可以看到不同的操作系统中安装的 JVM 肯定也是不同的,windows 操作系 统则必须安装 windows 版本的 JVM,Linux 操作系统则必须安装 Linux 版本的 JVM。这是因 为 JVM 是和操作系统直接打交道的,windows 和 Linux 操作系统本身的执行原理不同,所以 JVM 肯定也必须是定制的,不能通用。但是 Java 程序放到 windows 的 JVM 上和放到 Linux 的 JVM 上最终执行效果是完全相同的。这是因为:虽然 JVM 版本不同,但是所有版本的 JVM 的实现都是遵守 sun 制定的 JVM 规范的,这样就可以达到编写一次到处运行的效果,有没有感觉很神奇呀! 当然,Java 语言除了以上的特性之外还有很多其它的特性,我在这里就不再一一赘述了, 大家对以上的特性来说重点知道Java 的跨平台性以及垃圾回收机制即可,其它的作为了解。

JDK , JRE , JVM三者关系

  • 从上图中我们可以看到,JDK、JRE、JVM 之间存在这样的包含关系:JDK包含 JRE,JRE 又包含 JVM。换句话说,只要安装了 JDK,JRE 和 JVM 则自动就安装了。那么它们分别代表 什么呢:

    ① JDK:JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。它是每一个 Java 软件开发人员必须安装的。JDK 安装之后,它会自带一个 JRE,因为软件开发人员编写完代码之后总是要运行的。注意:如果只是在这台机器上运行 Java 程序,则不需要安装 JDK,只需要安装 JRE 即可(JRE 是有独立安装包的,这个大家可以从 Oracle 官网上找一 下。

    ② JRE:JRE(Java Runtime Environment,Java 运行环境),运行 JAVA程序所必须的环境的集合,包含 JVM 标准实现及 Java 核心类库。

    ③ JVM:JVM 是 Java Virtual Machine(Java 虚拟机)的缩写,JVM 是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM 是实现 Java 语言跨平台的法宝。 在这里我需要重点强调一下,不同的操作系统需要安装不同版本的 JDK,有专门的 windows 版 JDK,Linux 版 JDK,Mac 版 JDK 等,当然不同版本的 JDK安装之后会对应不同版本的 JRE 和 JVM。

初步了解Java的加载与执行

  • 通过上图,我们可以看到 Java 程序从开发到最终运行是这样进行的:

  • 第一步(写代码):在任意位置创建一个.java 结尾的文件,程序员在该文件中编写符合 Java 语法的源代码,这个文件被称为Java 源文件。

  • 第二步(编译):使用“javac”命令对 java 源文件进行编译,如果 Java 源文件符合 Java 语法规则,则编译生成 1 个或者多个以“.class”结尾的文件。“.class”结尾的文件我们称之 为字节码文件,注意字节码文件不是普通文本文件,使用记事本等文本编辑器是无法打开的, 但该文件内容也不是二进制,如果是二进制形式的话,操作系统是可以直接执行的,这个文件的内容我们称之为字节码。注意:这里有一个“类名”的概念,假设生成的文件是 A.class, 则表示类名为 A,B.class 则表示类名为 B。

  • 第三步(运行):使用“java”命令运行已编译的 Java 程序,假设编译之后的字节码文件 是 A.class,则在 dos 命令窗口中执行 java A命令,这个时候 Java 虚拟机(JVM)就启动了, Java 虚拟机通过“类装载器 ClassLoader”从硬盘中找到 A.class 文件并装载,字节码文件被装载到 Java 虚拟机之后,Java 虚拟机解释器对字节码进行解释,最终解释为二进制码,然后操作系统通过执行二进制指令来和硬件平台完成交互。

  • 以上则是 Java 程序加载与执行的过程,接下来我给大家总结 7 条规则,大家可以理解并记忆一下:

    ① Java 程序从开发到运行包括编译和运行两个阶段,这两个阶段可以在不同的操作系统 中完成,例如在 windows 环境下进行编译,在 Linux 环境下运行,这是因为有 JVM 机制的存在,做到了一次编译到处运行(跨平台/可移植)。

    ② 编译阶段需要使用 javac.exe(安装 JDK 之后该命令就存在了)命令,运行阶段需要使 用 java.exe(安装 JRE 之后该命令就存在了)命令。

    ③ 一个 Java 源文件可能会编译生成多个 class 文件。

    ④ Java 源文件中的源代码如果不符合 Java 的语法机制则编译时编译器会提示错误信息, 并且无法生成 class 文件。反之则生成 class 文件,而 class 文件才是最终要执行的程序,此时 将 Java 源文件删除是不会影响 Java 程序运行的(当然,我们也不必删除 java 源文件,因为在 运行 class 文件之后,如果没有达到预期的运行效果,这个时候还需要将 Java源代码修改,重新编译,以达到最终的运行效果)。

    ⑤ 若生成的字节码文件名为 A.class,那么我们称 A为一个类的名字(这个先记住就行, 后面的内容会讲)。

    ⑥ 当编译阶段完成之后,我们可以使用 JRE 中的 java.exe 命令运行程序,例如执行命令 “java A”,该命令执行后会启动类加载器,类加载器去硬盘上搜索 A.class 文件,找到该字节码文件之后,将其加载到 JVM 当中,JVM中的解释器会将 A.class 字节码文件解释为操作系统可以执行的二进制码,然后操作系统通过执行二进制码和硬件平台交互。

    ⑦ 运行 Java 程序的前提是当前操作系统上已经安装了对应版本的 JVM(JVM 不是单独安装的,安装 JRE 即可,不同的操作系统需要安装不同版本的 JRE,不同版本的 JRE 对应不同版本的 JVM)。

Windows系统的常用命令

  • 打开DOS命令窗口:win+r,输入cmd。

  • dir命令:查看当前目录下所有的子目录或子文件。

  • cd命令:切换路径,cd+目录路径,需要注意的是路径包括相对路径和绝对路径,对于 windows 来说从硬盘的根路径下开始的路径都是绝对路径,例如:C:\Program Files、 C:\Program Files\Java 等,所有的相对路径都是从当前所在目录作为起点开始查找的路径。

  • cd..命令:却换到上一级。

  • cd\命令:却换到根路径。

  • 切换盘符:直接输入 c:,或者 d:,然后回车即可。切换盘符不需要 cd 命令。

  • del命令:删除文件或目录,例如:del *.class,删除当前目录下所有的.class 文件。

  • ipconfig 命令:查看 IP 地址等信息,查看更详细的信息使用 ipconfig /all。

  • ping 命令:查看两台计算机是否可以正常通信,例如:ping 192.168.1.100,正常情况下发 送数据包和接收数据包数量相同并且没有延迟的时候表示通信正常,ping 192.168.1.100 -t 表示 一直发送数据包和接收数据包,ping www.baidu.com 可以查看电脑是否可以正常上网。

  • mkdir 命令:创建目录,例如:mkdir abc 表示在“当前目录”下新建 abc 目录。

  • cls 命令:清屏。

  • exit 命令:退出 DOS 命令窗口

常用文本编辑快捷键

Java8环境配置

安装Java JDK

1.选中计算机,右键打开菜单,属性;

2.高级系统设置

3.“高级”选项卡,环境变量

4.新建

新建用户变量:

(1)变量名:JAVA_HOME

(2)变量值(java JDK安装目录):C:Javajdk1.8.0_121

5.系统变量,选择Path,编辑

在原有变量值后面添加“;”号(分隔符,如2横线所示),然后再输入C:Javajdk1.8.0_121in;C:Javajdk1.8.0_121jrein

6.系统变量,新建

(1)变量名:classpath

(2)变量值:.;C:Javajdk1.8.0_121libdt.jar;C:Javajdk1.8.0_121lib ools.jar

*注:以上变量值".;"代表当前目录,必须有(如图2所示)。

7.做好后,确定。

8.测试环境是否成功:

(1)运行,cmd,回车

(2)在命令模式下输入:java -version

(3)显示 Java version"1.8.0_121“即为环境变量配置成功!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值