今日目标

  1. 能够计算二进制和十进制数之间的互转
  2. 能够使用常见的DOS命令
  3. 理解Java语言的跨平台实现原理
  1. jvm是运行java程序的假想计算机,所有的java程序都运行在它上面。java编写的软件可以运行在任何操作系统上,这被称为java跨平台特性,是由jvm实现的,java程序运行在jvm上,jvm运行在操作系统上
  1. 理解JDK和JRE的组成和作用-
  2. jre是java程序的运行环境,jdk是程序开发工具包,包含了jre和开发工具

  3. 能够配置环境变量JAVA_HOME

  4. 能够编写HelloWorld程序编译并执行

  5. 理解关键字的含义

  6. 理解标识符的含义

  7. 能够定义出所有类型的常量

  8. 理解Java中的基本数据类型分类

  9. 能够定义8种基本数据集类型的变量

 

1.Java语言概述

  1. 什么是java?
  1. java是一门面向对象编程语言,吸收了C/C++的优点,摒弃了C/C++复杂的指针等内容,也不需要用户手动释放内存空间。java本身还具备了很强的可移植性,通过将源代码编译成二进制字节码,然后通过不同平台的java虚拟机来解释执行字节码,从而实行了“一次编译,到处执行”的跨平台特性。
  1. java语言能做什么?
  2. Java语言主要应用在互联网程序的开发领域。常见的互联网程序比如天猫、京东、物流系统、网银系统等,以及服 务器后台处理大数据的存储、查询、数据挖掘等也有很多应用。

 

2.计算机基础知识

  1. 二进制,计算机全部采用二进制来表示
  1. 二进制转换为十进制:使用除以2获取余数的方式,但是从下面读取数据
  2. 十进制转换为二进制:使用8421编码
  1. 字节:计算机中最小的存储单元,8个bit为1个字节,表示为1byte或者1B
  2. 8 bit = 1 B

  3. 1024 B =1 KB

  4. 1024 KB =1 MB

  5. 1024 MB =1 GB

  6. 1024 GB = 1 TB

 

3.常用DOS命令(命令行窗口命令)

  1. 命令                             操作符号
  2. 盘符切换命令               盘符名:
  3. 查看当前文件夹            dir
  4. 进入文件夹命令            cd 文件夹名
  5. 退出文件夹命令            cd..
  6. 退出到磁盘根目录        cd\
  7. 清屏                             cls

4.java虚拟机--JVM

  1. JVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的 运行环境,是Java 具吸引力的特性之一。我们编写的Java代码,都运行在 JVM 之上。
  2. 跨平台:任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系 统上,这个特性称为Java语言的跨平台特性。该特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM 运行在操作系统上。

 

5.JRE和JDK

  1. JRE  (Java Runtime Environment) :是Java程序的运行时环境,包含 JVM 和运行时所需要的 核心类库
  2. JDK  (Java Development Kit):是Java程序开发工具包,包含 JRE 和开发人员使用的工具。
  3. 三者关系: JDK > JRE > JVM

 

6.程序开发步骤

  1. java程序开发三步骤:编写、编译、运行

 

7.入门程序说明

  1. 编译和运行的区别
  1. 编译:是指将我们编写的Java源文件翻译成JVM认识的class文件,在这个过程中, javac 编译器会检查我们 所写的程序是否有错误,有错误就会提示出来,如果没有错误就会编译成功。
  2. 运行:是指将 class文件 交给JVM去运行,此时JVM就会去执行我们编写的程序了。
  1. 关于main方法
  2. main方法:称为主方法。写法是固定格式不可以更改。main方法是程序的入口点或起始点,无论我们编写多 少程序,JVM在运行的时候,都会从main方法这里开始执行。

 

8.添加注释comment

  1. 注释:就是对代码的解释和说明。其目的是让人们能够更加轻松地了解代码。为代码添加注释,是十分必须 要的,它不影响程序的编译和运行
  2. Java中有单行注释和多行注释
  1. 单行注释以 //开头 换行结束
  2. 多行注释以 /*开头  以*/结束

 

9.关键字keywords和标识符

  1. 关键字:是指在程序中,Java已经定义好的单词,具有特殊含义。 HelloWorld案例中,出现的关键字有 public 、 class 、 static 、  void  等,这些单词已经被 Java定义好,全部都是小写字母,
  2. 标识符:是指在程序中,我们自己定义内容。比如类的名字、方法的名字和变量的名字等等,都是标识符。 HelloWorld案例中,出现的标识符有类名字 HelloWorld 。
  1. 命名规则: 硬性要求
  1. 标识符可以包含 英文字母26个(区分大小写) 、 0-9数字 、 $(美元符号) 和 _(下划线) 。
  2. 标识符不能以数字开头。
  3. 标识符不能是关键字。
  1. 命名规范: 软性建议
  1. 类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)。

  2. 方法名规范: 首字母小写,后面每个单词首字母大写(小驼峰式)。

  3. 变量名规范:全部小写。

 

10. 常量

  1. 什么是常量:是指在Java程序中固定不变的数据。
  2. 分类

 

11.变量和数据类型

  1. 变量概述:在程序中可以变化的量称为变量。Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型。
  2. 数据类型
  1. 数据类型分类
  1. 基本数据类型:包括 整数 、 浮点数 、 字符 、 布尔 。
  2. 引用数据类型:包括 类 、 数组 、 接口 。
  1. 基本数据类型

  1. 变量的定义

    1. 变量定义的格式包括三个要素: 数据类型 、 变量名 、 数据值 。

    2. 格式:数据类型 变量名 = 数据值

    3. 注意:

      1. 变量名称:在同一个大括号范围内,变量的名字不可以相同。

      2. 变量赋值:定义的变量,不赋值不能使用。

 

12.课后练习

# 基础题目:

## 第一题

* 按步骤编写代码,效果如图所示:

![](img\1.jpg)

* 编写步骤:

1. 定义类 Test1
2. 定义 main方法
3. 控制台输出5行字符串类型常量值
4. 控制台输出5行字符类型常量值

* 参考答案:

  ```java
  public class Test1 {
      public static void main(String[] args) {

          // 控制台输出任意5行字符串类型常量值
          System.out.println("善学如春起之苗");
          System.out.println("不见其增,日有所长");
          System.out.println("假学如磨刀之石");
          System.out.println("不见其损,年有所亏");
          System.out.println("加油吧!少年");
           // 控制台输出任意5行字符类型常量值
          System.out.println('J');
          System.out.println('A');
          System.out.println('V');
          System.out.println('A');
          System.out.println('!');
       }
  }
  ```


## 第二题

* 按步骤编写代码,效果如图所示:

  ![](img\2.jpg)



* 编写步骤:

  1. 定义类 Test2
  2. 定义 main方法
  3. 控制台输出5行整数类型常量值
  4. 控制台输出5行小数类型常量值

* 参考答案:

  ```java
  public class Test2 {
      public static void main(String[] args) {
          // 控制台输出任意5行整数类型常量值
          System.out.println(-2147483648);
          System.out.println(-100);
          System.out.println(0);
          System.out.println(100);
          System.out.println(2147483647);

          // 控制台输出任意5行小数类型常量值
          System.out.println(-100.0);
          System.out.println(-10.0);
          System.out.println(0.0);
          System.out.println(10.9);
          System.out.println(100.9);

      }
  }

  ```


## 第三题

- 按步骤编写代码,效果如图所示:

  ![](img\3.jpg)

- 编写步骤:

  1. 定义类 Test3
  2. 定义 main方法
  3. 控制台输出所有布尔类型常量值

- 参考答案:

  ```java
  public class Test3 {
      public static void main(String[] args) {
          // 控制台输出所有布尔类型常量值
          System.out.println(true);
          System.out.println(false);
      }
  }

  ```

## 第四题

- 按步骤编写代码,效果如图所示:

  ![](img\4.jpg)

- 编写步骤:

  1. 定义类 Test4
  2. 定义 main方法
  3. 定义2个 byte类型变量,分别赋byte类型范围内最大值和最小值,并输出在控制台.
  4. 定义2个 short类型变量,分别赋short类型范围内的值,并输出在控制台.
  5. 定义2个 int类型变量,分别赋int类型范围内的值,并输出在控制台.
  6. 定义2个 long类型变量,分别赋超过int类型范围的值,并输出在控制台.

- 参考答案:

  ```java
  public class Test4 {
      public static void main(String[] args) {
          // 定义2个 byte类型变量,分别赋byte类型范围内最大值和最小值,并输出在控制台.
          byte num1 = -128;
          byte num2 = 127;
          System.out.println(num1);
          System.out.println(num2);

          // 定义2个 short类型变量,分别赋short类型范围内的值,并输出在控制台.
          short num3 = -32768;
          short num4 = 32767;
          System.out.println(num3);
          System.out.println(num4);

          // 定义2个 int类型变量,分别赋int类型范围内的值,并输出在控制台.
          int num5 = -2147483648;
          int num6 = 2147483647;
          System.out.println(num5);
          System.out.println(num6);

          // 定义2个 long类型变量,分别赋超过int类型范围的值,并输出在控制台.
       long num7 = -2147483649L;
       long num8 = 2147483648L;
       System.out.println(num7);
       System.out.println(num8);
   }  
  }
  ```


## 第五题

- 按步骤编写代码,效果如图所示:

  ![](img\5.jpg)



* 编写步骤:
  1. 定义类 Test5
  2. 定义 main方法
  3. 定义2个 float类型变量,分别赋值,并输出在控制台.
  4. 定义2个 double类型变量,分别赋值,并输出在控制台.

* 参考答案:

  ```java
   public class Test5 {
        public static void main(String[] args) {
            // 定义2个 float类型变量,分别赋值,并输出在控制台.
            float num1 = -3.14F;
            float num2 = 3.14F;
            System.out.println(num1);
            System.out.println(num2);

            // 定义2个 double,分别赋值,并输出在控制台.
            double num3 = -3.4;
            double num4 = 3.4;
            System.out.println(num3);
            System.out.println(num4);
        }
    }
  ```

## 第六题

- 按步骤编写代码,效果如图所示:

  ![](img\6.jpg)

- 编写步骤:

1. 定义类 Test6
2. 定义 main方法
3. 定义5个 char类型变量,分别赋值,并输出在控制台.
4. 定义2个 boolean类型变量,分别赋值,并输出在控制台.

* 参考答案:

  ```java
  public class Test6 {
      public static void main(String[] args) {
          // 定义5个 char类型变量,分别赋值,并输出在控制台.
          char ch1 = '9';
          char ch2 = 'J';
          char ch3 = 'a';
          char ch4 = ' ';
          char ch5 = '@';

          System.out.println(ch1);
          System.out.println(ch2);
          System.out.println(ch3);
          System.out.println(ch4);
          System.out.println(ch5);
          // 定义2个 boolean类型变量,分别赋值,并输出在控制台.
           boolean b1 = true;
           boolean b2 = false;

           System.out.println(b1);
           System.out.println(b2);
       }
   }
  ```




## 第七题

- 按步骤编写代码,效果如图所示:

  ![](img\7.jpg)

- 步骤图解:

  ![](img\71.jpg)

- 开发提示:定义变量不赋值的格式

  ```java
  //   数据类型 变量名 ;
  int temp;
  ```

- 编写步骤:

  1. 定义类 Test7
  2. 定义 main方法
  3. 定义两个整数变量a,b并赋值
  4. 控制台输出变量a,b互换前的值
  5. 定义一个第三方变量temp,不赋值
  6. 利用第三方变量temp使a,b的值互换
  7. 控制台输出变量a,b互换后的值

- 参考答案:

  ```java
  public class Test7 {
      public static void main(String[] args) {
          // 定义两个整数变量a,b并赋值
          int a = 10;
          int b = 20;
          // 控制台输出变量a,b的值
          System.out.println("互换前:");
          System.out.println(a);
          System.out.println(b);
          // 定义一个第三方变量,不赋值.
          int temp;
          // 利用第三方变量,是a,b的值互换.
          temp = a ;
          a = b;
          b = temp;

          // 控制台输出变量a,b的互换后的值.
          System.out.println("互换后:");
          System.out.println(a);
          System.out.println(b);
       } 
  }
  ```