小白的20天Java学习打卡day2

太原理工大学机器人团队20天学习打卡day2

学习内容:Java 学习网站:b站

day02

今天的内容比昨天多很多,也更难理解,希望能坚持下去

1、打开DOS命令窗口,执行java HelloWorld,执行原理

  • java.exe命令会启动JVM

  • JVM启动之后会启动类加载器ClassLoader

  • ClassLoader会在硬盘上的某个位置搜索HelloWorld.class字节码文件

  • 找到该文件则执行

  • 找不到该文件则报错​
    疑问:CassLoader是在哪个位置上搜索HelloWorld.class字节码文件的?

  • 默认情况下,ClassLoader从当前路径下加载xxx.class字节码文件

  • 当然,也可以让ClassLoader去某个指定的路径下加载字节码文件,这时需要配置环境变量classpath

那什么是classpath

  • classpath是给类加载器ClassLoader指路的
  • classpath环境变量没有配置的话,类加载器默认从当前路径下找字节码文件,当classpath环境变量为指定的路径之后,类加载器只去指定的路径当中加载字节码文件。

综上所述 ,环境变量classpath不再配置,这样类加载器会自动从当前路径下加载class字节码文件。

​所以,每一次执行.class程序的时候,需要在DOS命令窗口先切换到.class字节码文件所在路径下。然后运行。
【也就是昨天结尾所说的】

  • 当然classpath也可以这样配置:classpath=.

注意:路径中“.”表示当前目录。

2、关于Java源程序当中的注释?

①什么是注释,注释的作用是什么?

​—出现在java源程序当中,对java源代码的解释说明

​—注释不会编译到.class字节码文件中

​—一个好的开发习惯应该是多编写注释,这样程序的可读性增强。

②java中的注释怎么写呢?

​—单行注释
​—多行注释
javadoc注释
/**

*Javadoc注释

*Javadoc注释

*Javadoc注释

*/

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

3、对HelloWorld程序进行解释:

//publicn表示公开的
//class表示定义一个类
//HelloWorld表示一个类名
public class HelloWorld{//表示定义一个公开的类,起名HelloWorld
   	//类体【记住】	
    //类体中不允许直接编写Java语句【除声明变量】
    /*
        public表示公开的
        static表示静态的
        void表示空
        main表示方法名是main
        args是一个变量名
        (string[] args)是一个main方法的形式参数列表
    */
        	
     /* 需要记住的是:
        	以下的方法是一个程序的主方法,是程序的执行入口
        	是sun公司规定的,固定编写方式
    */
	public static void main(String[]args){//表示定义一个公开的静态的主方法
       	 //方法体
         //方法体
         //方法体
        
        //Java语句【java语句以";"终止,分号必须是半角分号】
        //先记住:以下这样代码的作用是向控制台输出一段消息
        //以下的双引号必须是半角的双引号【是Java语法的一部分】
        //java中所有的字符串都使用双引号括起来。
		System.out.println("Hello World!");
        
	}
}

4、public class 和class的区别

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

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

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

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

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

    注意:当在命令窗口中执行java Hello,那么要求Hello.class当中必须有主方法。没有主方法会出现运行阶段的错误

5、标识符

①什么是标识符?

  • 在java源程序当中凡是程序员有权利自己命名的单词都是标识符。

②标识符可以标识什么元素呢?

* 类名
* 方法名
* 变量名
* 接口名
* 常量名
* ......

③标识符的命名规则

​   * 一个合法的标识符只能由数字、字母、下划线_、美元符号$组成,不能含有其他符号

​   *不能数字开头

​   *严格区分大小写

​   *关键字不能做标识符

​   *理论上无长度限制【最好不要太长】

④标识符的命名规范

【只是一种规范,不属于语法,不遵守规范编译器不会报错】

  • 最好见名知意
  • 遵守驼峰命名方式
  • 类名、接口名,首字母大写,后面每个单词首字母大写。
  • 变量名、方法名:首字母小写,后面每个单词首字母大写。
  • 常量名:全部大写

​6、关键字

①什么是关键字?

​有特殊含义的、被保留的、不能随意使用的字符

​②关键字的特点

	* 完全小写的字母
	* 在增强版的记事本当中有特殊颜色

​    常见的关键字 public ,class,static等

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

7、字面值

  • 字面值就是数据
  • 字面值是java源程序的组成部分之一。包括标识符关键字他们都是java源程序的组成部分。
  • 数据在现实世界当中是分门别类的,所以数据在计算机编程语言当中也是有类型的:【数据类型
字面值 数据类型
10、100 整数型
3.14 浮点型
true、false 布尔型
“abc” “中国人” 字符串型
‘A’、‘人’ 字符型

注意
      java语言当中所有字符串型字面值必须使用双引号括起来,双引号是半角的

      java语言当中所有字符型字面值必须使用单引号括起来,单引号是半角的

8、变量

①什么是变量

  • 变量本质上来说是内存中的一块空间,这块空间有数据类型、有名字、有字面值。

  • 变量包含三部分:数据类型、名称、字面值【数据】

  • 变量是内存中存储数据的最基本的单元。

②数据类型的作用

* 不同的数据有不同的类型。
* 不同的数据类型底层会分配不同大小的空间。
* 数据类型是知到程序在运行阶段应该分配多大的内存空间

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

​③声明/定义变量的语法格式

        数据类型 变量名;
数据类型: 比如整型 int 【具体的将在后面学习】

变量名:
            只要是合法的表标识符就行。规范中要求:首字母小写,后面每个单词的首字母大写

​④变量声明之后怎么赋值?

​       变量名 = 字面值;

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

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

​*声明和赋值可以放到一起完成。

​*变量赋值之后可重新赋值,变量的值可变化

​*有了变量的概念之后,内存空间得到了重复的使用

​*通常访问一个变量包括两种访问形式:

​    第一种:读取变量中保存的具体数据    get/获取

​    第二种:修改变量中保存的具体数据    set/设置

​ *变量在一行中可以声明多个。

​ *变量必须先声明再赋值才能访问。

如果只写到 int i; 程序执行到这里内存空间并没有开辟出来, 变量 i 并没有初始化。所以没有赋值之前是无法访问的

public class VarTest01{
    public static void main (String[] args){
        //声明一个int类型的变量取名为i
        int i;
        //给i变量赋值,i变量在这里完成初始化,内存开辟
        i = 100;
        System.out.println(i);
        //i在次重新赋值
        i = 200;
        System.out.println(i);
        //一行上可以同时声明多个变量
        int a,b,c = 300; //只把300赋值给c
        //编译错误
        //System.out.println(a);
        //System.out.println(b);
        System.out.println(c)}
}

​ *方法体中的Java代码是遵守自上而下的顺序依次逐行执行

特点:第二行代码必须完整的结束之后第三行代码才能执行。

​ *再同一个作用域当中,变量不能重名,【在不同作用域当中可以一样】但变量能重新赋值。

​ ⑤什么是作用域

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

只要记住:出了大括号就不认识了

public class VarTest02{
    //注意这里的static不要去掉
    static int k = 90;
    
    public static void main (String[] args){
        int i = 100;
        System.out.println(i); //可以
        System.out.println(k); //可以
        
        
        for(int a=0;a<10;a++){//变量a的作用域是整个for循环,for循环结束之后,a变量的内存就释放了
        }
        //这里无法访问变量a
        //System.out.println(a);  
    
   	  	int j;
        for(j=0;j<10;j++){//这里j的作用域是main方法 
        }
       	System.out.println(j);//可以,访问的是main方法中的j变量
    }
	
     public static void dosome(){
         //这里无法访问main方法中的变量i,已经出了i变量的作用域
         System.out.println(k);//但是可以访问k因为k在类体中
     }
     
}

⑥关于变量的分类:

  • 根据变量声明的位置:
    • 局部变量
      • 在方法体当中声明的变量叫做局部变量
    • 成员变量
      • 在方法体外【类体之内】声明的变量叫做成员变量
public class VarTest03{
    public static void main (String[] args){
        
        //i变量就是局部变量
        int i = 3;
       	//Java遵循“就近原则”
        
        System.out.println(i);//这里i的值为3
        
    }
    
    //成员变量
    int i = 100;
    //类体中不能编写java语句【除声明变量之外】
    
    public static void dosome(){
        
        //局部变量
        int i = 90;
    }
}

小结

今天主要学习了classpath环境变量,如何写java的注释,以及java的基础语法标识符关键字以及变量

你可能感兴趣的:(机器人团队)