day02-课堂笔记
1.打开Dos命令窗口,执行java HelloWorld,执行原理?
疑问: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源程序当中的注释:
单行注释
//单行注释,只注释当前行
多行注释
/*
多行注释
多行注释
多行注释
多行注释
…
*/
/**
3.对HelloWorld程序进行解释:
需要记忆:
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)【除声明变量之外】