黑马程序员JAVA笔记1--java基础和概述

时间:2020-12-04 19:35:46

------- android培训java培训、期待与您交流! ----------

一、基本常识

(1)软件开发

1 什么是软件?

    软件:一系列按照特定顺序组织的计算机数据和指令的集合。(数据就是指现实生活中的年龄、姓名等信息,指令就是告诉计算机如何对数据进行处理)

常见的软件:

    ①系统软件(操作系统): 

    如:DOS(Disk Operating System)、Windows、Linux、Android、iOS、MAC等。(DOS系统是命令行方式操作的操作系统,为了便于用户操作,后来产 生了图形化界面操作的操作系统,也就是Windows系统)

    ②应用软件:

    如:扫雷,迅雷,QQ等。(系统软件和应用软件都是用计算机语言编写出来的,计算机语言调用底层指令处理数据)

2 什么是开发?  制作软件

 

(2)人机交互

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

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

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

(3)计算机语言
计算机语言:
    操作计算机就如同和计算机说话一样,我们告诉它做什么,它就可以做什么。前提是,我们和它说的内容它必须能够识别才可以,这就是计算机语言。 
    语言:是人与人之间用于沟通的一种方式。
    例如:中国人与中国人用中文沟通,而中国人要和韩国人交流,就要学习韩语。
    计算机语言:人与计算机交流的方式。如果人要与计算机交流,那么就要学习计算机语言。
    计算机语言有很多种,如:C、C++、Java等。这里,我们选择其中的一种,Java语言。

 

二、Java语言介绍

(1)Java语言概述
    1. Java语言是SUN公司(Stanford University Network,斯坦福大学网络公司)1995年推出的一门高级编程语言。
    2. Java语言是一门面向Internet的编程语言。
    3. 随着Java技术在web方面的不断成熟,Java语言已经成为Web应用程序的首选开发语言。
    4. Java语言是简单易学,完全面向对象,安全可靠,与平台(操作系统)无关的编程语言。
    5. Java语言是允许使用者将应用程序通过Internet从远端服务器传输到本地机上并执行的一种语言。

 

(2)Java语言的三种技术架构
  1、J2EE(Java 2 Platform Enterprise Edition) 企业版
    是为开发企业环境下的应用程序提供的一套解决方案。
    该技术体系中包含的技术如Servlet、Jsp等,主要针对于Web应用程序开发。
  2、J2SE(Java 2 Platform Standard Edition) 标准版
    是为开发普通桌面和商务应用程序提供的解决方案。
    该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发,比如Java版的扫雷。
  3、J2ME(Java 2 Platform Micro Edition) 小型版
    是为开发电子消费产品和嵌入式设备提供的解决方案。
    该技术体系主要应用于小型电子消费类产品,如手机中的应用程序等。

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

 

(3)Java语言的特点:跨平台性

  1、什么是跨平台性?
    通过Java语言编写的应用程序在不同的操作系统平台中都可以运行。

  注释:国内操作系统市场已被Windows彻底征服,但国外用户操作系统选择项较多。因此,程序员做软件需要考 虑跨平台性,而Java语言就具备跨平台性的特点。
  2、原理是什么?
    只要在需要运行java应用程序的操作系统中,先安装一个Java虚拟机(JVM:Java Virtual Machine)即可,由JVM来调用操作系统底层指令解析、执行Java程序,从而在该操作系统中运行。
     因为有了JVM,所以同一个Java程序各种不同的操作系统中都可以执行。这样就实现了Java程序的跨平台性。也称为Java语言具有良好的可移植性。 

  注释:    
    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语言的环境搭建
    使用任何一门语言之前必须首先搭建环境。

(1)什么是JRE,JDK?
  1、JRE(Java Runtime Environment:Java运行环境):
    包括Java虚拟机(JVM:Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
  2、JDK(Java Development Kit:Java开发工具包):
    JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用再单独安装JRE了。其中的开发工具有编译工具(javac.exe),打包工具(jar.exe)等。
    简单而言:使用JDK开发完成的java程序,交给JRE去运行。
  注释:
为什么JDK中包含一个JRE呢?
其一,开发完的程序,需要运行一下看看效果,就像exe文件需要在windows环境下运行一样。
其二,也是最重要的,JDK中的开发工具(如javac.exe、java.exe等)其实都是Java语言编写的应用程序, 为了方便使用才打包成exe文件,如果没有JRE,那么这些工具是运行不了的。
  总结:
    JRE:JVM+类库(Java library)。
    JDK:JRE+JAVA的开发工具。

(2)JDK的下载与安装

  1、下载JDK
    JDK(Java Development Kit:Java开发工具包)
  官方网站:
    www.oracle.com
    www.java.sun.com
  注释:
由于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按钮。  注释:8u45代表JDK8版本,45代表子版本,u是update(更新)的缩写。
    3. 在下载之前,首先需要接受JDK的许可证协议,然后再点击jdk-8u45-windows-i586.exe(32位)/jdk-8u45-windows-x64.exe(64位)进行下载。

  注释:
    Windows x86对应的是windows 32位系统。
    Windows x64对应的是windows 64位系统。
  2、安装JDK

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

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

  注释:安装路径中不要有中文或者特殊符号如空格等,否则后期开发中可能出现一些莫名其妙的错误。
    3. 继续点击“下一步”。
    4. 接下来出现的对话框是询问是否安装JRE(Java运行环境),这是可选的,因为JDK中已经包含开发环境和运行环境(JRE)两部分。所以不需要安装,一般情况下可以直接点击“取消”按钮。

  注释:如果你只运行已有的Java程序而不要进行Java程序的开发,那么只需安装JRE即可(因为JRE的体积较小)。
    继续点击下一步:
    5. 点击“关闭”按钮,安装完毕。

  注释:

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

 

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

  注释:
    这些命令文件并非是图形化方式操作的(双击执行是无效的),而是命令行方式操作的命令文件,所以需要首先打开命令行窗口。
  2. 打开DOS命令行窗口有两种方式。
    ①点击“开始”-->“运行”-->输入“cmd”-->按下“Enter”键。
    ②点击“开始”-->“所有程序”-->“附件”-->“命令提示符”。
  3. 进入到JDK安装目录下的bin目录。
  4. 输入javac(.exe可写可不写),出现如下显示,说明JDK已经可以使用了。

 

(4)命令行简介

  课程中常见的DOS命令:
    dir:列出当前目录下的文件及文件夹。
    md:创建目录。
    rd:删除目录。
    cd:进入指定目录。
    cd ..:退回到上一级目录。
    cd \:退回到根目录。
    del:删除文件。
    exit:退出DOS命令行。
  注释:
      1、"cd jdk*"命令中的“*”是一种通配符,如果当前目录中有多个文件夹名称都能匹配,那么会自动进入 第一个名称匹配的文件夹中。
      2、早期操作计算机用DOS命令操作,因为需要记住很多命令,不利于普及,后期发展成图形界面,通过 鼠标点击界面的形式操作计算机,底层实际上运行的依然是DOS命令。
      3、新创建一个文件夹,并在该文件夹目录下创建一个文件。由于该文件夹下不是空的,删除该文件夹失 败。这是Windows为了防止误删除采取的机制,只有将该文件夹目录下所有文件及文件夹清空,才能成功删除 该文件夹。

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

      4、输入help命令,可以查询到所有的命令功能,输入help命令,也可以查询某个命令的功能。

 

(5)环境变量配置
  为了能在DOS命令行窗口中,在任何目录下都能够执行javac命令,就需要将javac.exe命令文件所在目录的路径放入path环境变量中。
  原理:
    在DOS命令提示符窗口中输入某个命令后,Windows系统会首先在当前目录下查找是否存在该命令文件可以执行。如果没有,Windows系统就会在path环境变量路径中查找。如果查找到,就会执行该命令。如果还没有找到,那么就会提示“’javac’不是内部或外部命令,也不是可运行的程序或批处理文件”。
1. 配置环境变量的具体步骤如下:
   1. 右击“计算机”-->“属性”。
   2. 点击“高级系统配置”-->“高级”选项卡-->“环境变量”。
   3. 将javac命令文件所在目录的路径放入path路径中。

   注释:

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

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

   注释:如果一台计算机上安装了多个版本的JDK,通过javac -version可以确定当前使用的JDK版本。
2. 环境变量配置技巧
按照以上步骤配置path环境变量,会很容易产生因JDK安装目录的改变,而不断修改path环境变量,从 而导致对path环境变量的误操作,风险很大。可以通过如下技巧解决:
   1. 新创建一个环境变量JAVA_HOME记录jdk安装目录的路径。
   2. 在path环境变量中通过“%%”动态的获取JAVA_HOME的值即可。
   通过这种方式,如果JDK安装目录改变了,那么只需要修改JAVA_HOME环境变量即可,而不用再修改path环境变量。
   注释:%JAVA_HOME%表示动态获取名称为JAVA_HOME环境变量的值。
3. 环境变量临时配置方式
如果在别人的计算机上进行Java程序的开发,设置path这样的系统环境变量就不太好,那么就可以采用设置临时环境变量的方式(通过DOS命令中set命令完成):
   1. 用set命令查看本机的所有环境变量的信息。
   2. 用set命令("set 命令名")查看具体某一个环境变量的值。
   3. 用set命令("set 变量名=")清空一个环境变量的值。 
   4. 用set命令("set 变量名=具体值")给指定环境变量定义具体值。  
   5. 想要在原有环境变量值基础上添加新值,首先,通过“%变量名%”操作符获取到原有环境变量的值,然后,追加上新值,再赋值给该变量名即可。

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


四、Java程序开发体验

(1)编写运行Hello World

1. 选择最简单的编辑器:记事本。

将Java代码编写入扩展名为.java的文件(源文件)中。
Hello World:代表学习计算机语言的第一个入门小程序。现在泛指接触任何新事物的第一步。
Class:是java中的关键字,用于定义类,java语言的程序代码都需要定义在类中。
关键字:被java语言赋予了特殊含义的单词。
Demo:为了方便使用这个类,给类自定义的类名。
{}:定义该类中代码的范围。
  注释:

    1、写代码,阅读性第一,功能性第二。

    2、源文件名和类名可以不一致,但当class前有修饰符public时,则必须一致。

2. 通过javac命令对该java文件进行编译。

  1. 有了java源文件,将其编译成JVM可以识别的文件。
  2. 在该源文件目录下,通过javac编译工具对Demo.java文件进行编译。
  3. 如果程序没有错误,没有任何提示,就会在当前目录下出现一个Demo.class文件,该文件称为字节码文件,也就是可以执行的java的程序。
3. 通过java命令对生成的class文件进行运行。
  1. 有了可执行的java程序(Demo.class字节码文件),通过运行工具java.exe对字节码文件进行执行。
出现提示:缺少一个名称为main的方法。 
注释:使用java命令运行class文件,没有必要加上.class文件后缀。
  2. 因为一个程序的执行需要一个起始点或者入口,所以在Demo类中加入如下代码。
  3. 对修改后的Demo.java源文件需要重新编译,生成新的class文件后,再执行。
发现编译成功,但也没有任何效果,因为程序并没有告诉JVM要帮我们做什么事情,也就是没有可以具体执行的语句。
4. 如果想要和JVM来个互动,只要在main方法中加入一句System.out.println("hello java");。因为对程序进行改动,所以需要再重新编译,然后运行即可。

  注释:

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

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

    由于System.out.println("hello java")语句后面缺少分号,所以报错。根据报错的行数,找到错误的地方,进行修改。然后重编编译,运行。
      注释:
        需要注意的是java会出现连锁错误反应,也就是一个错误,会导致后面程序的多个错误。这时候只需 要修改第一个错误,后面的错误都会解决掉。
5、java命令可以启动JVM,然后找到相应的class文件,再寻找程序入口,也就是main方法,然后调用该方法执行java程序。

 

(2)常见错误信息-找不到文件

错误可能原因:
  1、文件名写错。
  2、类文件不在当前路径下或者不在classpath(后面会将讲到)指定路径下。
  3、后缀名问题。
“后缀名问题”查找及解决方案如下:
  1. 点击“工具”-->“文件夹选项”。
  2. 点击“查看”选项卡,并且勾选掉“隐藏已知文件类型的扩展名”。
  3. 然后就可以看到文件真正的后缀名为txt,所以找不到Demo.java文件。只需将修改后缀名为java,再重新编译、运行即可。

 

(3)配置classpath环境变量
由于可能频繁执行多个class文件,并且多个class文件可能存储在不同的目录下,那么每次都在命令提示符窗口中切换目录会相当的麻烦。
classpath环境变量的作用类似于path环境变量,但是它的作用在于告诉JVM去哪里找到class文件。
JVM查找类文件的顺序:
  1、如果没有配置classpath环境变量,JVM只在当前目录下查找要运行的类文件。
  2、如果配置了classpath环境,JVM会先在classpath环境变量值的目录中查找要运行的类文件。
  示例:
    ①在C盘根目录下新创建一个文件夹,命名为myclass,将D:\code\day01目录下的Demo.class文件剪 切到此文件夹下。
    ②将D:\code\day01文件夹中的源文件Demo.java修改为在控制台中打印“hello D盘”,重新编译, 生成Demo.class。
    ③如果想要执行C盘根目录下myclass文件夹中的Demo.class,又不想切换目录,由于JVM会先在c lasspath 环境变量值的目录中查找要运行的类文件,可以通过设置环境变量classpath为“C:\myclass”实 现。
  3、classpath环境变量值的结尾处如果没有分号,那么JVM在classpath目录下没有找到要指定的类文件,也不会在当前目录下查找。即使当前目录下有,也不会运行。
  示例:
    ①删除C:\myclass目录下的Demo.class。
    ②在D:\code\Day01目录下运行Demo.class文件,报错。    
    这是因为classpath环境变量已经被赋值,所以即使在D:\code\Day01目录下存在Demo.class文件,JVM也根本不会去查找。
  4、classpath环境变量值的结尾处如果加上分号,那么JVM在classpath目录下没有找到要指定的类文件,会在当前目录下再查找一次。
  示例:
    为环境变量classpath赋值后加上一分号,然后在D:\code\day01目录下运行Demo.class文件,由下图 可见,运行成功。
    注释:
      建议配置classpath环境变量时,值的结尾处不要加分号,如果需要访问当前目录可以用 “.”(代表 当前目录)表示,这样可读性更好一些。

------- android培训java培训、期待与您交流! ----------