java基础视频-动力节点-day02-关键字变量数据类型

day02-课堂笔记

1、打开DOS命令窗口,执行java HelloWorld,执行原理?
* java.exe命令会启动JVM
* JVM启动之后会启动类加载器ClassLoader
* ClassLoader会在硬盘上的某个位置搜索HelloWorld.class字节码文件
* 找到该文件则执行
* 找不到该文件则报错

疑问:ClassLoader是在哪个位置上搜索HelloWorld.class字节码文件的?
	* 默认情况下,ClassLoader从当前路径下加载xxx.class字节码文件
	* 当然,也可以让ClassLoader去某个指定的路径下加载字节码文件,这时需要配置环境变量classpath
	* classpath环境变量属于java语言中的环境变量,不属于windows操作系统【PATH环境变量属于操作系统】
	* classpath是给ClassLoader类加载器指路的。
	* 设置这样的环境变量:classpath=D:\course\JavaProjects\02-JavaSE\day02
		- 打开dos命令窗口在任意位置,都可以执行:java HelloWorld
	* classpath环境变量没有配置的话,类加载器默认从当前路径下找字节码文件,
	当classpath环境变量配置为某个指定的路径之后,类加载器只去指定的路径当中加载字节码文件。
	* 综上所述,环境变量classpath不再配置,这样类加载器会自动从当前路径下加载class字节码文件。
	所以,每一次执行.class程序的时候,需要在DOS命令窗口中先切换到.class字节码文件所在的路径下。
	然后运行。
	* 当然,classpath也可以这样配置:classpath=.

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

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

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

* java中的注释怎么写呢?
	- 单行注释
		//单行注释,只注释当前行

	- 多行注释
		/*
			多行注释
			多行注释
			多行注释
			多行注释
			多行注释
			.....
		*/

	- javadoc注释
		/**
		*	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的原理以及如何配置
* 掌握环境变量classpath的原理以及如何配置
* java中的注释
* public class 和 class 的区别

第二章:java语言基础

1、标识符

1、在java程序当中,使用EditPlus工具进行代码编写的时候,
	有一些单词是蓝色,有的是红色,有的绿色,有的是黑色,有
	的是紫色,有的是粉色....
2、注意:在java源代码当中,在EditPlus工具中显示的高亮颜色为黑色时,
	这个单词属于标识符。
3、标识符可以标识什么?
	可以标识:
		类名
		方法名
		变量名
		接口名
		常量名
		......
4、到底什么是标识符呢?
		一句话搞定:凡是程序员自己有权利命名的单词都是标识符。
5、标识符可以随意编写吗,有命名规则吗?有
		什么是命名规则?
			命名规则属于语法机制,必须遵守,不遵守命名规则标识不符合语法,
			这样,编译器会报错。

		规则1:标识符只能由数字、字母(包括中文)、下划线_、美元符号$组成,不能含有其它符号。

		规则2:标识符不能以数字开头

		规则3:关键字不能做标识符。**例如:public class static void 这些蓝色的字体都是关键字,关键字是不能做标识符的。**

		规则4**标识符是严格区分大小写的。大写A和小写a不一样。**

		规则5**标识符理论上是没有长度限制的。**
6、命名规范:
		* 最好见名知意
		* 遵守驼峰命名方式
		* 类名、接口名:首字母大写,后面每个单词首字母大写
		* 变量名、方法名:首字母小写,后面每个单词首字母大写
		* 常量名: 全部大写
题目:
	创建一个java文件,起名 123.java可以吗?
		可以,完全可以,在windows操作系统中文件名叫做:123.java没毛病。
	123其实并不是标识符。只是一个文件名。
	只不过在123.java文件中无法定义public的类。
标识符除了命名规则之外,还有命名规范:
		1、命名规则和命名规范有什么区别?
			命名规则是语法,不遵守就会编译报错。
			命名规范只是说,大家尽量按照统一的规范来进行命名,不符合规范也行,
			代码是可以编译通过的,但是你的代码风格和大家不一样,这个通常也是
			不允许的。

			规则类似于:现实世界中的法律。
			规范类似于:现实世界中的道德。

			统一按照规范进行的话,代码的可读性很好。
			代码很容易让其它开发人员理解。

2、具体的命名规范是哪些?

	规范1:见名知意(这个标识符在起名的时候,最好一看这个单词就知道啥意思。)

	规范2:遵循驼峰命名方式,什么是驼峰(一高一低,一高一低...)
		驼峰有利于单词与单词之间很好的进行分隔
		BiaoShiFuTest,这个很好,一眼就能看出来是4个单词。

	规范3:类名、接口名有特殊要求
		类名和接口名首字母大写,后面每个单词首字母大写。
			StudentTest、UserTest ,这是类名、接口名。

	规范4:变量名、方法名有特殊要求
		变量名和方法名首字母小写,后面每个单词首字母大写。
			nianLing(NianLing这样就不符合了。)
			mingZi(MingZi这样也不符合了。)
	
	**规范5:所有“常量”名:全部大写,并且单词和单词之间采用下划线衔接。**
		USER_AGE :用户年龄
		MATH_PI:固定不变的常量3.1415926.....
public class IdentifierTest{
	public static void main(String[] args){
		// 以下代码看不懂没关系,别着急。
		// 主要看两个汉语拼音,可读性很强。
		// nianLing和mingZi都是黑色字体的标识符。
		int nianLing = 20;
		String mingZi = "zhangsan";
		
public class BiaoShiFuTest{
	// main是一个方法的名称,属于标识符
	// 但是这个标识符不能修改,因为这个main是SUN固定死的。
	public static void main(String[] args){
	}

	//doSome是一个方法名,可以改成其他的名字
	public static void doSome(){
		// k是一个变量名
		int k = 100;
		// nianLing 是一个变量名
		int nianLing = 20;
	}
}
编译报错,错误信息是:
	错误: 需要<标识符>
	错误原因:编译器检测到class这个单词,那么编译器会从class这个
	单词后面找类名,而类名是标识符,编译器找了半天没有找到标识符,
	因为123ABC不是标识符,所以编译器提示的错误信息是:需要<标识符>

	解决办法:
		将123ABC修改为合法的标识符。
class Y123ABC{
}

// 类名是标识符,标识符“中”不能有空格
/*
编译器错误信息是:
	错误: 需要'{'
	编译器检测到class,然后找class后面的标识符,编译器找到了一个合法的标识符
	叫做“Hello”,然后编译器继续往后找“{”,结果没有找到“{”,所以报错了。

	解决办法:
		办法1:是把World删除
		办法2:把空格删除
*/
/*
class Hello World{
}
*/

class Hello{
}

class HelloWorld                   {
}

class _A{
}

class _$1Aa你{
}
// 错误: 需要<标识符>
// 关键字不能做标识符
/*
class public {
}
*/

// 这个可以,因为 public1 不是关键字,可以用。
class public1 {
}

class b {
}

class B {
}
// 虽然java中的标识符严格区分大小写
// 但是对于类名来说,如果一个java源文件中同时出现了:A类和a类
// 那么谁在前就生成谁。大家以后最好不要让类名“相同”。
// 最好类名是不同的。
class HelloWorld2{
}

class helloWorld2{
}

2、关键字

3、字面值

1、关于程序当中的数据?
开发软件是为了解决现实世界中的问题。
而现实世界当中,有很多问题都是使用数据进行描述的。
所以软件执行过程中最主要就是对数据的处理。

	软件在处理数据之前需要能够表示数据,在java代码中
	怎么去表示数据呢?在java中有这样的一个概念:字面量。

注意:在java语言中“数据”被称为“字面量”。
10
1.23
true
false
‘a’
“abc”
以上这些都是数据,在程序中都被叫做“字面量”。

	字面量可以分为很多种类:
		整数型字面量:1 2 3 100 -100 -20 ....
		浮点型字面量:1.3 1.2 3.14.....
		布尔型字面量:true、false没有其它值了,表示真和假,true表示真,false表示假

		字符型字面量:'a'、'b'、'中'
		字符串型字面量:"abc"、"a"、"b"、"中国"

		其中字符型和字符串型都是描述了现实世界中的文字:
			需要注意的是:
				所有的字符型只能使用单引号括起来。
				所有的字符串型只能使用双引号括起来。
			
			**字符型一定是单个字符才能称为“字符型”**

			在语法级别上怎么区分字符型和字符串型?
				主要看是双引号还是单引号。
				单引号的一定是字符型。
				双引号的一定是字符串型。

在这里插入图片描述
在这里插入图片描述

4、变量

什么是变量? 变量其实就是内存当中存储数据的最基本的单元。 变量就是一个存储数据的盒子。

在java语言当中任何数据都是有数据类型的,其中整数型是:int 没有为什么,java中规定的,整数型就是:int
当然,在java中除了数据类型int之外,还有其它的类型,例如带小数的:double等。。。

数据类型有什么用呢?
		**记住:不同的数据类型,在内存中分配的空间大小不同。**
		也就是说,Java虚拟机到底给这个数据分配多大的空间,主要还是看这个变量的数据类型。
		根据不同的类型,分配不同大小的空间。
	
	对于int这种整数类型,JVM会自动给int分配4个字节大小的空间。

	1个字节=8个比特位
	1个比特位就是一个10. 注意:比特位是二进制位。
	int是占用多少个二进制位?1int占有32个二进制位(bit位)

	int i = 1; 实际上在内存中是这样表示的:
		00000000 00000000 00000000 00000001
	int i = 2;
		00000000 00000000 00000000 00000010
	
	二进制位就是:满21位(0 1 10 11 100 101....)
	十进制位就是:满101位(1 2 3 4 5 6 7 8 9 10

对于一个变量来说,包括三要素: 变量的数据类型 变量的名字 变量中保存的值

类型+名字+值
	类型决定空间的大小。
	起个名字是为了以后方便访问。(以后在程序中访问这个数据是通过名称来访问的。)
	值是变量保存的数据。

变量名属于标识符吗?
	变量名命名规范中是怎么说的?
		首字母小写,后面每个单词首字母大写,遵循驼峰命名方式,见名知意。
变量怎么声明/定义,语法格式是什么?
		数据类型 变量名;
		例如:
			int nianLing;
在java语言中有一个规定,变量必须先声明,再赋值才能访问。(没有值相当于这个空间没有开辟。)

在java语言中怎么给一个变量赋值呢,语法格式是什么?
	记住:使用一个运算符,叫做“=”,这个运算符被称为赋值运算符。
	赋值运算符“=”的运算特点是:等号右边先执行,执行完之后赋值给左边的变量。

6 变量可以声明的时候赋值吗?可以的。
7 变量赋值之后可以重新赋值。
8 一行中可以声明多个变量
9 变量必须先声明再访问
	变量的作用域?
		1、什么是作用域?
			变量的有效范围。
		2、关于变量的作用域,大家可以记住一句话:
			出了大括号就不认识了。(死记这句话。)
		3、java中有一个很重要的原则:
			就近原则。(不仅java中是这样,其它编程语言都有这个原则。)
			哪个离我近,就访问哪个。

5、数据类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 实际使用过程中,使用utf-8最多。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

转义字符:

  • '\n’换行符
  • '\t’制表符tab
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

p41

在这里插入图片描述
在这里插入图片描述

p42_浮点型

在这里插入图片描述

  • java源码文件:D:\Program Files\Java\jdk-15\lib\src.zip
  • java字节码文件:
    在这里插入图片描述

p43_布尔型

在这里插入图片描述
在这里插入图片描述

p44_数据类型转换

在这里插入图片描述
在这里插入图片描述

总结第二章

  • 标识符
  • 关键字
  • 数据类型
  • 进制换算
    ——————————————————————————————————————————————————## 运算符

在这里插入图片描述

关系运算符

逻辑运算符

在这里插入图片描述

注意短路与和逻辑与。短路与更加智能。实际开发中一般多用短路与。


2020.12.10晚21.52复习第一遍
2021.5.19下午17.20复习第二遍【大致浏览一遍】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值