A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始







    Chapter 1 Java概述

一、基本常识

1.1 软件开发

1.1.1 什么是软件?

    软件是一系列按照特定顺序组织的计算机数据和指令的集合。
    P.S.

    1、数据就是指现实生活中的年龄、姓名等信息。
    2、指令就是告诉计算机如何对数据进行处理。

1.1.2 常见的软件


    1. 系统软件(操作系统)
    如:DOS(Disk Operating System)、Windows、Linux、Android、iOS、MAC等。
    P.S.
    DOS系统是命令行方式操作的操作系统,为了便于用户操作,后来产生了图形化界面操作的操作系统,也就是Windows系统。
    2. 应用软件
    如:扫雷,迅雷,QQ等。
    P.S.
    系统软件和应用软件都是用计算机语言编写出来的,计算机语言调用底层指令处理数据。

1.1.3 什么是开发?
    制作软件。

1.2 人机交互

    软件的出现实现了人与计算机之间更好的交互。

1.2.1 交互方式


    两种方式:
    1. 图形化界面(Graphical User Interface GUI):这种方式简单直观,使用者易于接受,容易上手操作。
    2. 命令行方式(Command Line Interface CLI):需要有一个控制台,输入特定的指令,让计算机完成一些操作,较为麻烦,需要记住一些命令,如早期的DOS系统。

1.3 计算机语言

1.3.1 什么是计算机语言?

    语言:是人与人之间用于沟通的一种方式。
    例如:中国人与中国人用中文沟通,而中国人要和韩国人交流,就要学习韩语。

    操作计算机就如同和计算机说话一样,我们告诉它做什么,它就可以做什么。前提是,我们和它说的内容它必须能够识别才可以,这就是计算机语言。


    计算机语言:人与计算机交流的方式。如果人要与计算机交流,那么就要学习计算机语言。
    计算机语言有很多种,如:C、C++、Java等。这里,我们选择其中的一种,Java语言。


二、Java语言介绍

2.1 Java语言概述

    1. Java语言是SUN公司(Stanford University Network,斯坦福大学网络公司)1995年推出的一门高级编程语言。
    2. Java语言是一门面向Internet的编程语言。

    3. 随着Java技术在web方面的不断成熟,Java语言已经成为Web应用程序的首选开发语言。
    4. Java语言是简单易学,完全面向对象,安全可靠,与平台(操作系统)无关的编程语言。

    P.S.
    Java是允许使用者将应用程序通过Internet从远端服务器传输到本地机上并执行的一种语言。

2.2 Java语言的三种技术架构

2.2.1 J2EE(Java 2 Platform Enterprise Edition) 企业版
    是为开发企业环境下的应用程序提供的一套解决方案。
    该技术体系中包含的技术如Servlet、Jsp等,主要针对于Web应用程序开发。


2.2.2 J2SE(Java 2 Platform Standard Edition) 标准版
    是为开发普通桌面和商务应用程序提供的解决方案。
    该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发,比如Java版的扫雷。


2.2.3 J2ME(Java 2 Platform Micro Edition) 小型版
    是为开发电子消费产品和嵌入式设备提供的解决方案。
    该技术体系主要应用于小型电子消费类产品,如手机中的应用程序等。


    P.S.
    1、Java5.0版本后,三种技术架构分别更名为JAVAEE、JAVASE、JAVAME。
    2、由于现在已经出现了Android、iOS、Windows Phone等手机操作系统,所以J2ME架构基本上已经不用了。目前,流行的手机软件都是基于这些最新的手机操作系统进行开发。
    3、SUN公司已被Oracle公司收购,因此,Java以后会更火。


2.3 Java语言的特点:跨平台性

2.3.1 什么是跨平台性?

    通过Java语言编写的应用程序在不同的操作系统平台中都可以运行。

    P.S.

    国内操作系统市场已被Windows彻底征服,但国外用户操作系统选择项较多。因此,程序员做软件需要考虑跨平台性,而Java语言就具备跨平台性的特点。

2.3.2 原理是什么?

    只要在需要运行java应用程序的操作系统中,先安装一个Java虚拟机(JVM:Java Virtual Machine)即可,由JVM来调用操作系统底层指令解析、执行Java程序,从而在该操作系统中运行。


    因为有了JVM,所以同一个Java程序各种不同的操作系统中都可以执行。这样就实现了Java程序的跨平台性,也就是说Java语言具有良好的可移植性。     

    P.S.
    1、JVM是不跨平台的,不同的操作系统有不同版本的JVM。
    2、用C++语言编写的程序在Windows系统中可以直接运行,在Linux系统中则不可以。这是因为Windows系统是用C和C++语言编写的,Windows系统中也内置了C和C++的解析器,所以C和C++语言编写的程序可以直接在Windows系统中运行。但Java语言编写的程序如果要在Windows系统中执行,就需要在Windows系统中安装一套能够解析、执行Java程序的软件,也就是JVM(Java虚拟机)。类似的,在Linux、MAC系统中执行Java语言编写的程序也需要安装各自系统对应的JVM。通过这种方式,就实现了Java语言“一次编译,到处运行”的跨平台性。JVM的作用就是搭建了Java语言编写的程序与操作系统之间的桥梁。

三、Java语言的环境搭建

    使用任何一门语言之前必须首先搭建环境。

3.1 什么是JRE,JDK?

    JRE(Java Runtime Environment:Java运行环境):
    包括Java虚拟机(JVM:Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

    JDK(Java Development Kit:Java开发工具包):
    JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用再单独安装JRE了。其中的开发工具有编译工具(javac.exe),打包工具(jar.exe)等。

    简单而言:使用JDK开发完成的java程序,交给JRE去运行。
    P.S.

    为什么JDK中包含一个JRE呢?
    其一,开发完的程序,需要运行一下看看效果,就像exe文件需要在windows环境下运行一样。
    其二,也是最重要的,JDK中的开发工具(如javac.exe、java.exe等)其实都是Java语言编写的应用程序,为了方便使用才打包成exe文件,如果没有JRE,那么这些工具是运行不了的。

   总结:

   JRE:JVM+类库(Java library)。
   JDK:JRE+JAVA的开发工具。



3.2 JDK的下载与安装

3.2.1 下载JDK(Java Development Kit  Java开发工具包

    官方网站:

    www.oracle.com
    www.java.sun.com

    P.S.
    由于Sun公司已被Oracle公司收购,故访问www.java.sun.com会自动跳转到
http://www.oracle.com/technetwork/java/index.html

    JDK下载步骤示意图:
    1. 访问www.oracle.com,点击Downloads下的Java for Developers。


         
    2. 点击JDK下的DOWNLOAD按钮。



    P.S.
    8u45代表JDK8版本,45代表子版本,u是update(更新)的缩写。

    3. 在下载之前,首先需要接受JDK的许可证协议,然后再点击jdk-8u45-windows-i586.exe(32位)/jdk-8u45-windows-x64.exe(64位)进行下载。





    P.S.
    Windows x86对应的是windows 32位系统。
    Windows x64对应的是windows 64位系统。

3.2.2 安装JDK

    1. 双击“jdk-6u21-windows-i586.exe”文件,点击“下一步”。




    2. 继续点击“下一步”。
    默认安装目录为“C:\Program Files(x86)\Java\jdk1.6.0_21\”,可以通过“更改”按钮对安装路径进行自定义至D:\Java\jdk1.6.0_21\路径下





    P.S.
    安装路径中不要有中文或者特殊符号如空格等,否则后期开发中可能出现一些莫名其妙的错误。

    3. 继续点击“下一步”。



    正在安装中...复制文件结束,安装JDK完毕。   

    4. 接下来出现的对话框是询问是否安装JRE(Java运行环境),这是可选的,因为JDK中已经包含开发环境和运行环境(JRE)两部分。所以不需要安装,一般情况下可以直接点击“取消”按钮。



    P.S.
    如果你只运行已有的Java程序而不要进行Java程序的开发,那么只需安装JRE即可(因为JRE的体积较小)。

    如果点击下一步:


    5. 点击“关闭”按钮,安装完毕。


    P.S.
    1、JDK无需每次都安装,因为其本身就是绿色版本,可以直接存入U盘,在任何计算机上都可以直接使用。
    2、采用安装的方式使用JDK的好处在于其会在注册表中被注册,当JDK出现新版本,会自动更新。

3.3 JDK中的命令行工具

    1. JDK安装目录下的bin(binary)文件夹是二进制文件所在的目录,其中的exe文件(都是使用java语言编写)都是开发Java程序所需要的命令文件。




   
    P.S.
    这些命令文件并非是图形化方式操作的(双击执行是无效的),而是命令行方式操作的命令文件,所以需要首先打开命令行窗口。

    2. 打开DOS命令行窗口有两种方式。
    ①点击“开始”-->“运行”-->输入“cmd”-->按下“Enter”键。







    ②点击“开始”-->“所有程序”-->“附件”-->“命令提示符”。





    3. 进入到JDK安装目录下的bin目录。





    4. 输入javac(.exe可写可不写),出现如下显示,说明JDK已经可以使用了。



3.4 命令行简介

    课程中常见的DOS命令:
    dir:列出当前目录下的文件及文件夹。
    md:创建目录。
    rd:删除目录。
    cd:进入指定目录。
    cd ..:退回到上一级目录。
    cd \:退回到根目录。
    del:删除文件。
    exit:退出DOS命令行。

    12个示例轻松掌握常用DOS命令:

    1. 查看D盘下的目录。



    2. 查看某个文件夹下的目录。



    3. 也可以通过通配符的方式更方便地进入某个文件夹。



    P.S.
    "cd jdk*"命令中的“*”是一种通配符,如果当前目录中有多个文件夹名称都能匹配,那么会自动进入第一个名称匹配的文件夹中。

    4. 退回到上一级目录。



    5. 直接进入D盘根目录。



    6. 在D盘下根目录下创建新的文件夹。





    P.S.
    早期操作计算机用DOS命令操作,因为需要记住很多命令,不利于普及,后期发展成图形界面,通过鼠标点击界面的形式操作计算机,底层实际上运行的依然是DOS命令。

    7. 删除文件夹。



    abc文件夹已经被删除:



    8. 新创建一个文件夹,并在该文件夹目录下创建一个文件。由于该文件夹下不是空的,删除该文件夹失败。这是Windows为了防止误删除采取的机制。





    9. 只有将该文件夹目录下所有文件及文件夹清空,才能成功删除该文件夹。


   
    P.S.
    1、“del *”或“del *.*”命令表示删除当前目录下所有的文件。   
    2、Windows系统删除文件是从内向外删,文件夹内部的文件如果没有被完全删除,文件夹删除就必定会失败。

    10. 输入help命令,可以查询到所有的命令功能。



    11. 输入help命令,也可以查询某个命令的功能。



    12. 输入exit命令,可以退出DOS命令行窗口。



3.5 环境变量配置

    为了能在DOS命令行窗口中,在任何目录下都能够执行javac命令,就需要将javac.exe命令文件所在目录的路径放入path环境变量中。

    原理:
    在DOS命令提示符窗口中输入某个命令后,Windows系统会首先在当前目录下查找是否存在该命令文件可以执行。如果没有,Windows系统就会在path环境变量路径中查找。如果查找到,就会执行该命令。如果还没有找到,那么就会提示如下信息。



3.5.1 配置环境变量的具体步骤如下:

    1. 右击“计算机”-->“属性”。



    2. 点击“高级系统配置”-->“高级”选项卡-->“环境变量”。





    3. 将javac命令文件所在目录的路径放入path路径中。





    P.S.
    1、一定要将javac命令文件所在目录的路径放入path环境变量的开头。否则,如果计算机上以前已经安装了其他版本的JDK并且也已经配置了path环境变量,那么先执行的javac命令就是以前的JDK安装目录下的javac命令。因为windows系统是按照path路径从头向后搜索各个目录的。
    2、环境变量中的各个路径之间一定要以分号进行分隔。
    3、设置path环境变量的时候千万不要删除掉原来的内容。否则,很多程序将无法运行。

    4. 点击确定。然后,一定要新开一个新的DOS命令行窗口,再输入javac命令,如果出现如下显示,说明path环境变量配置成功。



    P.S.
    如果一台计算机上安装了多个版本的JDK,通过javac -version可以确定当前使用的JDK版本。



3.5.2 环境变量配置技巧


    按照以上步骤配置path环境变量,会很容易产生因JDK安装目录的改变,而不断修改path环境变量,从而导致对path环境变量的误操作,风险很大。可以通过如下技巧解决:

    1. 新创建一个环境变量JAVA_HOME记录jdk安装目录的路径。





    2. 在path环境变量中通过“%%”动态的获取JAVA_HOME的值即可。



    通过这种方式,如果JDK安装目录改变了,那么只需要修改JAVA_HOME环境变量即可,而不用再修改path环境变量。

    P.S.
    %JAVA_HOME%表示动态获取名称为JAVA_HOME环境变量的值。

3.5.3 环境变量临时配置方式

    如果在别人的计算机上进行Java程序的开发,设置path这样的系统环境变量就不太好,那么就可以采用设置临时环境变量的方式(通过DOS命令中set命令完成)。

    1. 用set命令查看本机的所有环境变量的信息。



    2. 用set命令("set 命令名")查看具体某一个环境变量的值。



    3. 用set命令("set 变量名=")清空一个环境变量的值。



    4. 用set命令("set 变量名=具体值")给指定环境变量定义具体值。  



    5. 想要在原有环境变量值基础上添加新值。

    首先,通过“%变量名%”操作符获取到原有环境变量的值。然后,追加上新值,再赋值给该变量名即可。



    P.S.
    1、临时配置环境变量的方式只在当前DOS命令行窗口有效。窗口关闭,配置即消失。
    2、cls是清屏命令。





四、Java程序开发体验

4.1 编写运行Hello World



    1. 选择最简单的编辑器:记事本。将Java代码编写入扩展名为.java的文件(源文件)中。





    Hello World:代表学习计算机语言的第一个入门小程序。现在泛指接触任何新事物的第一步。
    Class:是java中的关键字,用于定义类,java语言的程序代码都需要定义在类中。
    关键字:被java语言赋予了特殊含义的单词。
    Demo:为了方便使用这个类,给类自定义的类名。
    {}:定义该类中代码的范围。
    P.S.
    1、写代码,阅读性第一,功能性第二,一定要注意写代码的格式!
    2、源文件名和类名可以不一致,但当class前有修饰符public时,则必须一致。

    2. 通过javac命令对该java文件进行编译。
    ①有了java源文件,将其编译成JVM可以识别的文件。
    ②在该源文件目录下,通过javac编译工具对Demo.java文件进行编译。
    ③如果程序没有错误,没有任何提示,就会在当前目录下出现一个Demo.class文件,该文件称为字节码文件,也就是可以执行的java的程序。





    3. 通过java命令对生成的class文件进行运行。
    ①有了可执行的java程序(Demo.class字节码文件),通过运行工具java.exe对字节码文件进行执行。
    出现提示:缺少一个名称为main的方法。



    P.S.
    使用java命令运行class文件,没有必要加上.class文件后缀。

    ②因为一个程序的执行需要一个起始点或者入口,所以在Demo类中加入如下代码。



    ③对修改后的Demo.java源文件需要重新编译,生成新的class文件后,再执行。
    发现编译成功,但也没有任何效果,因为程序并没有告诉JVM要帮我们做什么事情,也就是没有可以具体执行的语句。



    ④如果想要和JVM来个互动,只要在main方法中加入一句System.out.println("hello java");。因为对程序进行了改动,所以需要再重新编译,然后运行即可。





    P.S.
    1. main方法的作用在于保证一个类可以独立运行,因为它是程序的入口。
    2. System.out.print();语句用于告诉系统输出打印数据,可以将括号中的内容打印在控制台上。通过该语句可以直接在控制台看到jvm运行java程序后的结果。
    3. System.out.println();语句与System.out.print();语句的区别是,前者打印后并且换行。





    4、javac命令的作用是对java程序进行语法性检查,一旦出错,就会打印出错误信息。





    由于System.out.println("hello java")语句后面缺少分号,所以报错。根据报错的行数,找到错误的地方,进行修改。然后重编编译,运行。


    P.S.
    需要注意的是java会出现连锁错误反应,也就是一个错误,会导致后面程序的多个错误。这时候只需要修改第一个错误,后面的错误都会解决掉。

    5、java命令可以启动JVM,然后找到相应的class文件,再寻找程序入口,也就是main方法,然后调用该方法执行java程序。

4.2 常见错误信息-找不到文件

    错误可能原因:
    1、文件名写错。
    2、类文件不在当前路径下或者不在classpath(后面会将讲到)指定路径下。
    3、后缀名问题。





    “后缀名问题”查找及解决方案如下:

    1. 点击“工具”-->“文件夹选项”。



    2. 点击“查看”选项卡,并且勾选掉“隐藏已知文件类型的扩展名”。



    3. 然后就可以看到文件真正的后缀名为txt,所以找不到Demo.java文件。只需将修改后缀名为java,再重新编译、运行即可。



4.3 配置classpath环境变量

    由于可能频繁执行多个class文件,并且多个class文件可能存储在不同的目录下,那么每次都在命令提示符窗口中切换目录会相当的麻烦。
    classpath环境变量的作用类似于path环境变量,但是它的作用在于告诉JVM去哪里找到class文件。

    JVM查找类文件的顺序:
    1. 如果没有配置classpath环境变量,JVM只在当前目录下查找要运行的类文件。
    2. 如果配置了classpath环境,JVM会先在classpath环境变量值的目录中查找要运行的类文件。

    示例:
    1、在C盘根目录下新创建一个文件夹,命名为myclass,将D:\code\day01目录下的Demo.class文件剪切到此文件夹下。




    2、将D:\code\day01文件夹中的源文件Demo.java修改为在控制台中打印“hello D盘”,重新编译,生成Demo.class。






    3、 如果想要执行C盘根目录下myclass文件夹中的Demo.class,又不想切换目录,由于JVM会先在classpath环境变量值的目录中查找要运行的类文件,可以通过设置环境变量classpath为“c:\myclass”实现。




    3. classpath环境变量值的结尾处如果没有分号,那么JVM在classpath目录下没有找到要指定的类文件,也不会在当前目录下查找。即使当前目录下有,也不会运行。


    示例:
    1、删除C:\myclass目录下的Demo.class。




    2、在D:\code\Day01目录下运行Demo.class文件,报错。   
    这是因为classpath环境变量已经被赋值,所以即使在D:\code\Day01目录下存在Demo.class文件,JVM也根本不会去查找。




    4. classpath环境变量值的结尾处如果加上分号,那么JVM在classpath目录下没有找到要指定的类文件,会在当前目录下再查找一次。

    示例:
    为环境变量classpath赋值后加上一分号,然后在D:\code\day01目录下运行Demo.class文件,由下图可见,运行成功。




    P.S.
    建议配置classpath环境变量时,值的结尾处不要加分号,如果需要访问当前目录可以用 “.”(代表当前目录)表示,这样可读性更好一些。


    示例:


~END~



~爱上海,爱黑马~



299 个回复

倒序浏览
您需要登录后才可以回帖 登录 | 加入黑马