程序员入门之Java第一行代码,常量和变量

Java第一行代码,常量和变量

1. Notepad++准备

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SZXlu7xr-1587139512614)(img/notepad++自动完成.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X8bPpwsK-1587139512617)(img/新建操作.png)]

2. Java第一个行代码【重点】

2.1 FirstJava.java
class FirstJava {
	public static void main(String[] args) {
		System.out.println("欢迎来到骚磊Java课堂");
	}
}
2.2 编译执行代码
编译Java代码使用的工具
	javac.exe 编译.java文件使用的工具,
		.java文件 ==> 编译 ==> .class文件(字节码文件)
		.class是交给JVM(Java虚拟机)运行使用

执行Java程序使用的工具
	java.exe 执行.class字节码文件运行Java程序
	
【重点 格式】
	编译Java代码
		javac FirstJava.java 
		==> javac XXXXX.java文件
	执行Java代码对应的.class字节码文件
		java FirstJava

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MthUFnY6-1587139512619)(img/编译执行过程.png)]

2.3 常见问题
1. 切记养成习惯!!!
	class之后的名字和文件名一致,并且一定要保存成.java文件
2. 拼写错误!!!
	大小写,单词错误
3. 标点符号错误!!!
	中英文符号,或者说漏掉一些标点符号,所有的成双成对标点符号一次写完
	() [] {} "" '' <>
4. 记得保存!!!
5. 记得保存之后重新编译!!!
6. 编译之后检车有没有对应的.class文件

3. 计算机中的存储

3.1 计算机数据存储单位
计算机中最小存储单元是【字节】 byte
	一个字节对应8个bit位,8个二进制位 01011010
	
1024 Byte ==> 1 KB
1024 KB ==> 1 MB
1024 MB ==> 1 GB
1024 GB ==> 1 TB
1024 TB ==> 1 PB
1024 PB ==> 1 EB

50PB的数据有用吗???
	马云爸爸 2017云栖大会 得数据者得天下
	用户画像
3.2 进制关系
十进制 十二进制 二十四进制 六十进制 七进制

开发中使用的进制:
	二进制 八进制 十进制 十六进制
进制 基数范围 进制关系
二进制 0,1 逢二进一
八进制 0~7 逢八进一
十进制 0~9 逢十进一
十六进制 0~9 A~F 逢G进一
转换过程:
	十进制转二进制
		112 ==> 0111 0000(2)
		除二取余倒叙
		 56 0
		 28 0
		 14 0
		  7 0
		  3 1
		  1 1
		  0 1
	二进制转十进制
		1011 1110 ==> 190(10)
		128
		32
		16
		8
		4
		2
		
	十六进制的一位 ==> 对应二进制四位
	八进制的一位 ==> 对应二进制的三位

十六进制展示:
	0x 或者 0X 开头
	0x1234 0X1234
	0xabcd <==> 0xABCD

八进制展示
	0开头
	01234 077
3.3 原码反码和补码[了解]
目的:
	原码,反码和补码的使用是用来解决计算机运行逻辑复杂度

正整数和负整数来演示原码,反码和补码
	正整数:
		原码,反码和补码是一致的,都是对应当前正整数的二进制展示方式
		123 ==> 0111 1011(2)
		原码 0111 1011
		反码 0111 1011
		补码 0111 1011
	
	负整数:
		-123
		原码:
			对应正整数二进制展示方式,但是最高位表示符号位,占位为1
			-123 ==> 0111 1011 ==> 1111 1011(2)
		反码:
			按位取反,但是符号位不变
			1111 1011 ==> 1000 0100(2)
		补码:
			反码 + 1
			1000 0100 + 1 ==> 1000 0101(2)
	
	123 ==> 0111 1011 
   -123 ==> 1000 0101 
   ----------------------
          1 0000 0000 ===> 0 (1 舍去)

4. 常量【伪重点】

4.1 生活中的常量
那些内容我们可以认为是常量???
	数值
		π E C G 
	文本
		先帝创业未半...
		北国风光,千里冰封
	文字
		A B C D 
		你 我 他
		1 2 3 
	
常量在生活中就是不能发生改变的量
	数值,文本,文字....
	
	开发来源于生活,最终高于生活,反馈于生活
4.2 开发中使用的常量
代码运行的过程中不会发生改变的数据就是常量!!!

开发中使用的常量
	整数
		1 2 3 4 5 
		-1 -2 -3 -4 -5
	小数(浮点型)
		3.14 0.618 9.8 1.0 0.0
	布尔类型(boolean)
		true 对/真  false 错/假
	字符常量
		【重点】
			使用【英文单引号】包含的【单个元素】
			'A' 'B' 'C' 'a' 'b' 'c'
            '你' '我' '他' '1'
            '123' 啥也不是 
			
	字符串常量
		【重点】
			使用【英文双引号】包含的所有内容
			"骚磊的锤子最骚..."
			"壮哉我大中华..."
			"1"
4.3 代码演示常量使用
class Demo1 {
	public static void main(String[] args) {
		/* 整数常量 */
		System.out.println(100);
		System.out.println(-100);
		
		/* 浮点数常量 */
		System.out.println(3.14);
		System.out.println(0.618);
		
		/* 布尔类型 */
		System.out.println(true);
		System.out.println(false);
		
		/* 字符常量 */
		System.out.println('A');
		System.out.println('1');
		System.out.println('a');
		
		/* 字符串常量 */
		System.out.println("条条大路通罗马");
		System.out.println("今日河南新冠肺炎清零");
	}
}
4.4 字符常量相关知识点
4.4.1 编码集
GB2312老国标
	支持中文简体字和一部分少数民族文字
GBK 新国标
	支持中文简体字和少数民族文字
UTF-8 万国码
	支持世界上通用文字,也是后期开发中会使用的到的编码
	JavaWEB项目 HTML前端页面 数据库软件编码集全部都是对应的UTF-8
BIG5 
	中文繁体字编码,主要流行于中国香港,中国澳门,中国台湾省,新加坡
ASCII码
	美国XXXXX协会制定的一个标准编码
	关注点:
		1. 大写英文字母编码集编号是小于小写字母
		2. 大写小写字母之间非连续
		3. 0 ~ 31字符是不可见字符 
		4. 【重点】任何时候使用字符常量有且只能是'字符本身'
		'A' true
		65 false

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2DVAKOqb-1587139512622)(img/标准十进制ASCII码表.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bNQEavTz-1587139512625)(img/八进制ASCII码表.jpg)]

4.4.2 转义字符[了解]
代码中有些标点符号有特殊含义
	" ' 如果需要在代码中使用到" '作为其他操作,这里需要使用 \ 做转义字符

代码中也存在一些本身没有含义的字符,通过 \ 转义之后,变成有一定含义的字符
	\n 换行
	\t 制表符
	\r 回车
4.5 常量使用总结
	常量在代码中是无法修改的量,主要功能是提供给程序运行使用的数据,存在整数,小数,真假关系(布尔类型),字符常量,字符串常量。
	【重点】
		字符使用不允许使用字符对应的编码,有且只能使用字符本身!!!

5. 变量【伪重点】

5.1 生活中的变量
时间,温度,电量,发量,音量.....

变量特征:
	1. 可变性
	2. 存在一定的计量单位
	3. 会存在一个名字用来称呼
5.2 Java中定义变量的格式规范
规范:
	数据类型 变量名 = 对应数据类型的初始化数据;

数据类型:
	告知开发者,编译器,当前变量中保存的数据类型是什么?
	【数据类型一致化】

变量名:
	对于当前变量的称呼,可以更好的使用当前变量

=:
	赋值号!!!赋值号右侧的数据,赋值给左侧的【变量】

对应数据类型的初始化数据:
	考虑数据类型一致化的情况下,给予当前变量一个初始化数据。
5.3 数据类型【重点】

八大基本数据类型!!!

5.3.1 整型
整型 占用内存空间大小 数据范围
byte 1字节(8bit) -128 ~ 127
short 2字节(16bit) -32768 ~ 32767
int 4字节(32bit) -2^31 ~ 2^31 - 1
long 8字节(64bit) -2^63 ~ 2^63 - 1
5.3.2 浮点型
浮点型 占用内存空间大小 数据范围
float 4字节(32bit) ±3.4*10^38
double 8字节(64bit) ±10^308
5.3.3 字符型
字符型 占用内存空间大小 数据范围
char 2字节(16bit) 能够保存中文
5.3.4 布尔类型
布尔类型 占用内存空间大小 数据范围
boolean 视情况而定 true,false
5.4 变量名/标识符规范【重点】
在注册邮箱时,可以发现邮箱中有要求
	6~18字符,可以使用字母,数字,下划线,要求必须是字母开头

以下规范参考AJCG 阿里巴巴Java开发手册,码出规范,码出高效。

什么是标识符
	程序员自己对于代码中一些内容起的名字,变量名,方法名,类名...
	
规范
	1. Java中的标识符有且只能使用英文字母(A ~ Z a ~ z), 数字(0 ~ 9) 以及唯一可以使用的标点符号 下划线_ 。其他任何字符都不可以使用!!!
	2. 标识符要求英文字母开头。
	3. 标识符没有严格的长度限制,但是会根据实际的使用情况来约束标识符长度
	4. Java中的标识符严格区分大小写
	5. 标识符要符合【见名知意,动宾结构】
		推荐方式
			getStudentAge setStudentAge
        	studentScore studentGender
        不允许
        	lg lp yy nn ez gjz 采用拼音简写是不允许的!!!
        	laoGong 不行!!!
        
        	payTime peyBeiZhu 不允许!!!
	6. 标识符要求符合一定的命名要求
		a. 驼峰命名法:
			小驼峰
				一般用于变量名,方法名
				首字母小写,之后的每一个单词首字母大写
				getStudentAge setStudentAge
        		studentScore studentGender
			大驼峰
				一般用于类名,接口名
				所有单词首字母大写
				FirstJava Demo1 Person UserService
				StudentDao
				
		b. 下划线命名法:
        	一般用于Java中的常量
        	MAX_VALUE  最大值
        	DEFAULT_CAPACITY 默认容量
        	
	7. Java中已经被占用的关键字和保留字不能用于自定义标识符
		变颜色的都不可以使用
5.5 Java中定义变量使用
5.5.1 整型变量演示
/* 整型变量演示 */
class Demo3 {
	public static void main(String[] args) {
		/* 数据类型 变量名 = 初始化数据; */
		// 变量定义一行只定义一个,并且初始化操作
		
		byte byteNumber = 10;
		short shortNumber = 20;
		int intNumber = 30;
        // 40L是告知编译器这里是一个long类型
		long longNumber = 40L;
		
		// 使用对应变量,直接使用变量名即可!!!
		System.out.println(byteNumber);
		System.out.println(shortNumber);
		System.out.println(intNumber);
		System.out.println(longNumber);
	}
}
5.5.2 浮点型变量演示
/* 浮点型变量演示 */
class Demo4 {
	public static void main(String[] args) {
		float floatNumber = 3.14F;
		/*
		Demo4.java:4: 错误: 不兼容的类型: 从double转换到float可能会有损失
                float floatNumber = 3.14;
                                    ^
		1 个错误
		计算机保存数据,考虑第一原则是数据的精度,double类型精度
		是远远高于float类型,计算机会将所有的小数都看作是double
		类型数据。3.14默认为double类型,这里赋值给float是存在精度
		不一致报错。
		这里需要告知计算机,这里3.14是一个float类型,在3.14之后
		加上一个大写F
			float floatNumber = 3.14F;
		*/
		double doubleNumber = 0.618;
		
		System.out.println(floatNumber);
		System.out.println(doubleNumber);
	}
}
5.5.3 char字符类型变量演示
/* 字符类型变量演示 */
class Demo5 {
	public static void main(String[] args) {
		/* 要求字符类型的常量有且只能使用字符本身 */
		char ch1 = 'A';
		char ch2 = '我';
		
		System.out.println(ch1);
		System.out.println(ch2);
	}
}
5.5.4 boolean类型变量演示
/* boolean类型变量演示 */
class Demo6 {
	public static void main(String[] args) {
		boolean ret1 = true;
		boolean ret2 = false;
		
		System.out.println(ret1);
		System.out.println(ret2);
	}
}
5.5.5 错误演示
/* 错误情况演示 不用三遍 */
class Demo7 {
	public static void main(String[] args) {
		int num1 = 10;
		
		/*
		Demo7.java:14: 错误: 找不到符号
                System.out.println(num2);
                                   ^
		  符号:   变量 num2
		  位置: 类 Demo7
		1 个错误
		*/
		// System.out.println(num2);
		
		int num3;
		
		/*
		Demo7.java:24: 错误: 可能尚未初始化变量num3
                System.out.println(num3);
                                   ^
		1 个错误
		*/
		System.out.println(num3);
	}
}
5.6 变量定义总结
1. 变量定义一行只定义一个,并且初始化操作,赋予当前变量一个符合当前数据类型的初值

2. 使用对应变量,直接使用变量名即可!!!

3. double类型到float类型精度丢失问题
    Demo4.java:4: 错误: 不兼容的类型: 从double转换到float可能会有损失
            float floatNumber = 3.14;
                                ^
    1 个错误
    计算机保存数据,考虑第一原则是数据的精度,double类型精度
    是远远高于float类型,计算机会将所有的小数都看作是double
    类型数据。3.14默认为double类型,这里赋值给float是存在精度
    不一致报错。
    这里需要告知计算机,这里3.14是一个float类型,在3.14之后
    加上一个大写F
        float floatNumber = 3.14F;

4. 【推荐】
	保证数据类型一致化,在给long类型变量赋值时加上一个大写L,告知编译器这里使用的是一个long类型数据

5. 要求字符类型的常量有且只能使用字符本身

6. 变量名未定义不能使用

7. Java中变量未赋值不能使用

`
发布了7 篇原创文章 · 获赞 0 · 访问量 71

猜你喜欢

转载自blog.csdn.net/weixin_44310465/article/details/105591426