Java第一行代码,常量和变量引入,java基础语法

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

1. Java第一行代码

1.1 Notepad++准备
1. 安装非C盘
2. 可以考虑在桌面留有快捷方式 Create Shortcut on Desktop

菜单栏 --> 设置 --> 首选项

Java第一行代码,常量和变量引入,java基础语法
Java第一行代码,常量和变量引入,java基础语法

1.2 Java第一行代码
class FristJava {
	public static void main(String[] args) {
		System.out.println("World Hello 世界欢迎你");
	}
}
1.3 编译运行Java代码
需要使用JDK开发工具中
	java.exe javac.exe 通过CMD 命令提示符操作
   	
   	javac.exe 
   		编译Java代码,生成对应的.class字节码文件
   	java.exe
   		执行.class字节码文件,得到对应的执行结果

在CMD中的操作格式
	明确当前CMD操作工具目录是当前Java文件的保存路径
	找到当前Java文件所在目录文件,在地址栏输入cmd,当前对应当前目录的命令提示符

编译Java代码
	格式:
		javac FirstJava.java ==> javac 文件名.java
		生成一个.class字节码文件

执行Java程序
	格式:
		java FristJava ==> java .class文件名
1.4 第一行代码问题
1. 拼写错误
	大小写,英文单词,观察代码的颜色变化
2. 标点符号错误
	注意中英文符号
3. 括号 引号问题 成双成对的标点符号一次处理完成
	{} [] () "" ''
4. 路径问题
	代码文件保存,一定要规整
5. 编码问题
	如果编译过程中,或者执行过程中出现中文乱码问题,可以在
	Notepad++ --> 编码 --> 转为 ANSI

2. 计算机数据存储问题【了解】

2.1 计算机数据存储单位
计算机中最小数据处理单位
	字节 byte 一个字节byte 对应 8个二进制位 8bit(比特)
	正常情况下计算机数值的进制关系是
		1024 windows 
		1000 macOS 硬件设备进制 
	
	1024byte ==> 1KB
	1024KB ==> 1MB
	1024MB ==> 1GB
	1024GB ==> 1TB
	1024TB ==> 1PB
	1024PB ==> 1EB
	
	得数据者的天下!!!
2.2 进制转换
进制 基数范围 规则
二进制 0,1 逢2进1
八进制 0 ~ 7 逢8进1
十进制 0 ~ 9 逢10进1
十六进制 0 ~ 9, A ~ F 逢G进1
二进制和十进制的转换关系
	118(10) = 0111 0110(2)
	0101 0110(2) = 86(10)
	以上计算全部通过计数器来完成!!!不需要自行计算
	【要求】
		1 2 4 8 16 32 64 128 256 512 1024
		2的幂次方 0 ~ 10 需要记住

八进制数展示方式
	要求八进制数以0开头
	0123 0777
	0889 × 超出8进制展示数据范围
	后期Linux系统中,对于文件操作权限使用常见

十六进制数据展示方式
	要求使用0x 或者 0X 开头
	0x1234 
	0xabcd 0xABCD 十六进制数据展示不区分大小写,这两个一模一样!!!
	十六进制在开发中一般用于【内存地址标记】
	
【谨记】
	所有需要进制转换的地方,都使用计数器完成!!!
2.3 原码,反码和补码【当天学,当天忘】
冯·诺依曼
	1. 计算机数据处理采用二进制方式
	2. 计算机所有的操作模式都是文件模式 read write
	
实际问题
	118 + (-118) = 0
	
正负数计算来演示原码,反码和补码解决问题
	降低了计算机的运算逻辑复杂度
	
	正整数 118 原码,反码和补码是一致的,都是当前数据对应的二进制数据形式
		118(10) ==> 0111 0110(2)
	
	负整数 -118
		原码: 
			对应正整数二进制形式,最高位表示符号位为1
			-118(10) ==> 0111 0110(正118对应二进制位)
			最高位表示符号位为1 ==> 1111 0110 (-118 原码)
		反码:
			原码 符号位不变,其他位按位取反 1==>0 0==>1
			1111 0110 (-118 原码) ==> 1000 1001(-118反码)
		补码:
			反码 + 1
			1000 1001(-118反码) + 1 ==> 1000 1010(-118补码)
			补码就是当前-118在计算机中数据保存形式
	
	118 + (-118) = 0 
		二进制完成
		0111 0110(2)
		1000 1010(-118补码)
	  1 0000 0000 ==> 
	  		最高位超出当前有效范围 1 无效 剩下8个二进制位全部为0, 结果为01

3. 常量【伪重点】

3.1 生活中的常量
数值单位
	G π E C
	0.618 
	60分钟一小时 12个月一年

文字
	1 2 3 4 5
	A B C D E 
	你 我 他

文本
	"北国风光,千里冰封,万里雪飘..."
	"先帝创业未半..."
	
不能发生改变的内容
	数据,文本,文字...

4. 注释

注释并不会被执行,是写给我们人看的

java中的注释有三种:
单行注释:只注释一行  //

多行注释:可以注释多行  /* */

文档注释:大多注释在方法和类上 /** */

5. 标识符

5.1 关键字

Java中所有的组成部分都需要名字,类名、变量名、方法名都是标识符

类名不能使用关键字

1)48个关键字:abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、

else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、

native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、

this、throw、throws、transient、try、void、volatile、while。
 
2)2个保留字(现在没用以后可能用到作为关键字):goto、const。
 
3)3个特殊直接量:true、false、null。
5.2 标识符注意点
1. 能够使用英文字母(A ~ Z a ~ z) 数字(0 ~ 9)以及唯一可以使用的标点符
    	号 _
    	2. 标识符要求英文字母开头
    	3. 标识符严格区分大小写
    	4. 标识符没有严格的长度限制,会根据实际需求情况,来限制标识符的长度
    	5. 标识符要求见名知意,动宾结构
    		studentAge getStudentAge setStudentAge
    	6. 标识符要求符合命名规则
    		a. 驼峰命名法
    			小驼峰 一般用于方法名
    				studentAge getStudentAge setStudentAge
    			大驼峰 一般用于类名
    				FristJava String ComboPoolDataSource
    		b. 下划线命名法
    			MAX_ARRAY_SIZE DEFAULT_CAPACITY MAX_VALUE
    			MIN_VALUE
5.3 数据类型

Java第一行代码,常量和变量引入,java基础语法

基本数据类型:
byte 1 
short 2 
int 4 
long 8
float 4
double 8
char 2
boolean 视情况而定			

数据类型转换(boolean不参与数据类型的转换):
		    char(16 bit)
			|
byte(1 bit) ->  short(16 bit)  -> int(32 bit)  -> long(64 bit)
			|                |
		     float(32 bit)    double(64 bit)
根据类型所占内存大小,小可转大,大转小会失去精度
123456789101112131415161718192021222324252627282930313233343536373839404142
引用数据类型:
基本类型和引用类型的关系:
基本类型		字节	   包装器类(引用类型)
boolean		视具体情况	 Boolean
byte			1		Byte
char			2		Character
short			2		Short
int				4		Integer
long			8		Long
float			4		Float
double			8		Double

引用数据类型:类、接口、数组
两者的异同:
1.Java基本类型存储在栈中,因此它们的存取速度要快于存储在堆中的对应包装类的实例对象。从Java1.5开始,
JVM就可以完成基本类型和它们对应包装类之间的自动转换。因此我们在赋值、参数传递以及数学运算的时候
就可以像使用基本类型一样使用它们的包装类,但这并不意味着你可以通过基本类型调用它们的包装类才具有
的方法。另外,所有基本类型(包括void)的包装类都使用了final修饰,因此我们无法继承它们扩展新的类
也无法重写它们的任何方法。而引用数据类型是存储在堆中的.

2.基本类型的优势:数据存储相对简单,运算效率比较高

3.包装类的优势:有的容易,比如集合的元素必须是对象类型,满足了java一切皆是对象的思想

4.声明方式不同,基本类型不适用new关键字,而包装类型需要使用new关键字来在堆中分配存储空间;

5.存储方式及位置不同,基本类型是直接将变量值存储在堆栈中,而包装类型是将对象放在堆中,然后通过引用来使用;

6.初始值不同,基本类型的初始值如int为0,boolean为false,而包装类型的初始值为null

7.使用方式不同,基本类型直接赋值直接使用就好,而包装类型在集合如Collection、Map时会使用到
上一篇:leetcode 118 杨辉三角


下一篇:leetcode 118.杨辉三角