2020-09-12

day02-课堂笔记

1.打开Dos命令窗口,执行java HelloWorld,执行原理?

  • java.exe命令启动JVM
  • JVM启动之后会启动类加载器ClassLoader
  • ClassLoader会在硬盘上的某个位置搜索HelloWorld.class字节码文件
  • 找到该文件则执行
  • 找不到该文件则报错

疑问:ClassLoader是在哪个位置上搜索HelloWorld.class字节码文件的?
* 默认情况下,ClassLoader从当前路径下加载xxx.class字节码文件
* 当然,也可以让ClassLoader去某个指定的路径下加载字节码文件,这时需要配置环境变量classpath,classpath是在Dell的环境变量中的。
(计算机–>属性–>高级设置–>高级–>Dell的环境变量–>新建–>classpath)
* classpath环境变量属于java语言中的环境变量,不属于windows操作系统【PATE环境变量属于操作系统】
* classpath是给ClassLoader类加载器指路的。
* 设置这样的环境变量:classpath=D:\course\JavaProjects\02-JavaSE\day02
- 打开dos命令窗口在任意位置,都可以执行:java HelloWorld
* classpath环境变量没有配置的话,类加载器默认从当前路径下找字节码文件,
当classpath环境变量配置为某个特定的路径之后,类加载器只去指定的路径当中加载字节码文件。
* 综上所述,环境变量classpath不再配置,这样类加载器会自动从当前路径下加载class字节码文件。
所以,每执行一次.class程序的时候,需要在Dos命令窗口中先切换到.class字节码文件所在的路径下。
然后运行。
* 当然,classpath也可以这样配置:classpath=.(每次运行时切换到当前目录)
(如果以后需要加载别的class文件的话,这个路径只要在.后面加个;otherplath就行了,这样意味着从当前路径下可以,从其他路径下也可以)

 注意:
     路径中".."表示上级目录
 路径中"."表示当前目录

2.关于java源程序当中的注释:

  • 什么是注释?注释的作用是什么?
  • 出现在java的源程序当中,对java源代码的解释说明
  • 注释不会被编译到.class字节码文件中
  • 一个好的开发习惯应该是多编写注释,这样程序的可读性比较强。
  • java中的注释怎么写呢?
    • 单行注释
      //单行注释,只注释当前行

    • 多行注释
      /*
      多行注释
      多行注释
      多行注释
      多行注释

      */

      • javadoc注释

      /**

      • javadoc注释
      • javadoc注释
      • javadoc注释
      • javadoc注释
      • javadoc注释
        */
        注意:这种注释是比较专业的注释,该注释信息会被javadoc.exe工具解析提取并生成帮助文档。

3.对HelloWorld程序进行解释:
需要记忆:

  • public
  • class
  • static
  • void
  • System.out.println(“”);向控制台输出消息
  • 类体
  • 方法体
  • 类体中不能直接编写java语句【除声明变量之外】
  • 一个java语句必须以“;”结束
  • 方法体中可以编写多条java语句
  • 主方法是程序的入口,固定写法,SUN规定的。

4.public class 和 class 的区别:

  • 一个java源文件当中可以定义多个class

  • 一个java源文件当中public的class不是必须的

  • 一个class会定义生成一个xxx.class字节码文件

  • 一个java源文件当中定义公开的类的话,只能有一个,并且该类名称必须和java源文件名称一致。

  • 每一个class当中都可以编写main方法,都可以设定程序的入口,想执行B.class中的main方法:java B,
    想执行X.class当中的main方法:java X

  • 注意:当在命令窗口中执行java Hello,那么要求Hello.class当中必须有主方法。没有主方法会出现运行
    阶段的错误:
    D:\course\JavaProjects\02-JavaSE\day02>java Hello
    错误:在类 B 中找不到主方法,请将主方法定义为:
    public static void main(String[] args)
    5.总结第一章需要掌握的内容:

  • 理解java的加载与执行

  • 能够自己搭建java的开发环境

  • 能够独立编写HelloWorld程序,编译并运行

  • 掌握环境变量path的原理以及如何配置

  • java中的注释

  • public class 和 class 的区别

第二章:Java语言基础

标识符:
1.什么是标识符?
- 在java源程序当中凡是程序员有权利自己命名的单词都是标识符。
- 标识符在EditPlus编辑器当中以黑色字体高亮显示
- 标识符可以标识什么元素呢?
* 类名
* 方法名
* 变量名
* 接口名
* 常量名

2.标识符的命名规则?【不按照这个规则来,编译器会报错,这是语法】
  * 一个合法的标识符只能由“数字,字母,下划线_,美元符号&”组成,不能含有其他符号
  * 不能以数字开头
  * 严格区分大小写
  * 关键字不能做标识符(蓝色)
  * 理论上无长度限制,但是最好不要太长

3.标识符的命名规范?【只是一种规范,不属于语法,不遵守规范编译器不会报错】
  * 最好见名知意
    public class UserService{
         public void login(String username,String password){
	 }
    }
  
      * 遵守驼峰命名方式
     SystemService
     UserService
     CustomerService

  * 类名,接口名:首字母大写,后面每个单词首字母大写。

  * 变量名,方法名:首字母小写,后面每个单词首字母大写。

  * 常量名:全部大写

关键字:
* 什么是关键字?
- SUN在开发java语言的时候,提前制定好的一些具有特殊含义的字符序列。
- 在语言当中具有特殊含义的单词,这些单词构成java程序的骨架,这些单词
是需要记住的,不能随意编写,包括大小写。

      * 关键字在java语言当中全部小写

  * 关键字在EditPlus工具中颜色是蓝色高亮

  * 常见的关键字有哪些?
      public
      class
      static
      void
      if
      for
      while
      do
      default
      byte
      short
      int
      long
      float
      double
      boolean
      char
      private
      protected
      switch
      true
      false
      throw
      throws
      try
      catch
      .....

     * 提醒:关键字不需要单独拿出来记忆,编写程序的过程中记忆。

字面值:
* 例如:10,100,3.14,“abc",‘a’,true,false

 * 字面值就是数据,你一看就知道的。

 * 字面值是java源程序的组成部分之一。包括标识符和关键字它们都是java源程序的组成部分。

 * 数据在现实世界中是分门别类的,所以数据在计算机编程语言中也是有类型的:【数据类型】
     - 10,100               属于整数型字面值
     - 3.14                  属于浮点型字面值
     - true,false           属于布尔型字面值
     - "abc","中国人"        属于字符串字面值
     - 'A','人'             属于字符型字面值

 * 注意:
     java语言当中所有的字符串字面值必须使用双引号括起来,双引号是半角
     java语言当中所有的字符型字面值必须使用单引号括起来,单引号是半角
         100是一个字面值,是一个整数型数值,那么既然是数据存储在内存当中,必定会占用一定的内存空间。
  System.out.println(100);
      System.out.println(100);两个100表示占用不同的内存空间

变量:
1. 什么是变量?
* 变量本质上来说是内存中的一块空间,这块空间“有数据类型”,“有名字”,“有字面值”。
* 变量包括三部分:数据类型,名称,字面值【数据】
* 变量是内存中存储数据的最基本的单元。

     2.数据类型的作用?
   * 不同的数据有不同的类型,不同的数据类型底层会分配不同大小的空间。
   * 数据类型是指导程序在运行阶段应该分配多大的内存空间。

 3.变量要求:变量中存储的具体的“数据”必须和变量的“数据类型”一致,当不一致的时候编译报错。

 4.声明/定义变量的语法格式:
     数据类型  变量名;
         * 数据类型:目前我们还没有学习数据类型,但是提前告诉大家有一种数据类型是整数型,叫做int
	 * 变量名:只要是合法的标识符就行,规范中要求:首字母小写,后面每个单词首字母大写。

      例如:
          int i;
	  int age;
	  int length;
	  int size;
	  int num;

	  其中int是数据类型,i,age,length,size,num,都是变量名。	

 5.变量声明之后怎么赋值?
   语法格式:
        变量名 = 字面值;

    要求:字面值的数据类型必须和变量的数据类型一致。

    = 等号是一个运算符,叫做赋值运算符,赋值运算符先运算符号右边的表达式,
    表达式执行结束之后的结果赋值给左边的变量。

 6.声明与赋值可以放在一起完成。
   int i = 10;

 7.变量赋值之后,可以重新赋值,变量的值可以变化:
    int i = 10;
    System.out.println(i);//10
    i = 20;
    System.out.println(i);//20
    i = 100;
    System.out.println(i);//100

 8.有了变量的概念后,内存空间得到了重复的使用:
   int i = 10;
   System.out.println(i);
       ...
   ....
       System.out.println(i);

 9.通常访问一个变量包括两种访问形式:
    * 第一种: 读取变量中保存的具体数据 get/获取  System.out.println(i); //get
    * 第二种: 修改变量中保存的具体数据 set/设置  i = 20; //set

 10.变量在一行上可以声明多个
   int a,b,c;

 11.java中的变量必须先声明,再赋值,才能访问。
    int i;程序执行到这里,内存空间并没有被开辟出来,变量i并没有初始化。所以
    没有赋值之前是无法访问的。

 12.在方法体当中的java代码,是遵守自上而下的顺序依次执行的。逐行执行。
    第一行;
    第二行;
    第三行;
    特点:第二行的代码必须完整的结束之后,第三行程序才能执行。

 13.在同一个“作用域”当中,变量名不能重名,但是变量可以重新赋值。

 14.变量的作用域:
                  * 什么是作用域?
		     变量的作用域,其实描述的就是变量的有效范围。
		     在什么范围之内是可以被访问的,只要出了这个范围该变量就无法访问了。

		  * 变量的作用域只要记住一句话:
		     出了大括号就不认识了。

     15.变量的分类:
                  * 根据变量声明的位置来分类:- 局部变量:在方法体当中声明的变量叫做局部变量

		                               - 成员变量:在方法体外【类体之内】声明的变量叫做成员变量

			在不同的作用域当中,变量名是可以相同的。
			在同一个作用域当中,变量名不能重名。

     16.java遵循“就近原则”
    类体中不能直接编写java语句(system.out.println)【除声明变量之外】

你可能感兴趣的:(笔记)