Day1 java 入门程序、常量
1.编写源程序
源程序: 程序员自己编写的,程序员可以看得懂得程序
源程序: 内部就是由字母,数字,_,$,{,},(,)字符组成
源程序本质就是一个文本文件,但是扩展名不是.txt,而是.java
//创建一个名称为HelloWorld.txt的文本文件,扩展名修改为.java, //使用notepad++软件打开此文件,输入以下内容: public class HelloWorld { public static void main(String[] args) { System.out.println("HelloWorld"); } }
2.编译源程序:
(1)计算机(JVM)是一个二货,只能识别0和1,源程序计算机(JVM)是不认识的
(2)需要把源程序,转换成0和1的东西,这种存储0和1的文件,称为字节码文件, 这种文件的扩展名.class
(3)如何把源程序转换成字节码程序(存储0和1的文件)呢?
使用编译命令javac,使用格式:
javac HelloWorld.java // 编译代码
3.运行字节码程序:
不管是源程序还是编译后的字节码程序,都是直接存储在硬盘当中的
而我们要运行的是字节码程序,不会自动运行,必须把需要运行的字节码程序交给JVM执行
如何让JVM运行指定的字节码程序呢?
使用运行命令java,使用格式:
java HelloWorld // 会把HelloWorld.class字节码程序交给JVM执行
4.常见问题
//非法字符问题。Java中的符号都是英文格式的。 System.out.println("; 我用的是中文符号,报错"); //大小写问题。Java语言对大小写敏感(区分大小写)。 System.OUT.println("out 大写了,报错"); //在系统中显示文件的扩展名,避免出现HelloWorld.java.txt文件。 System.out.println("把文件扩展名打开,看看结尾是(.java.txt 报错)还是(.java 对)"); //编译命令后的java文件名需要带文件后缀.java //运行命令后的class文件名(类名)不带文件后缀.class
2.注释
概念: 是用来解释说明程序的说明性信息,是给程序员看的,不参与编译,不影响程序的执行效率
(1)单行注释: //一行注释性的信息 //单行注释:打印 Hello World System.out.println("Hello World"); (2)多行注释: /* 多行注释性的信息 */ /* 多行注释 关键字:public class static void */ (3)文档注释: /** 多行注释性的信息 */ /** * 文档注释 * IDEA 快捷键 * 1.psvm + 回车: main方法 * 2.sout + 回车: 输出语句 * 3.ctrl + d: 复制当前行 * 4.ctrl + y: 删除当前行 * 5.ctrl + /: 单行注释 * 6.ctrl + shift + /: 多行注释 * 7.ctrl + alt + L: 格式化代码(和QQ/网易云音乐中的热键冲突,必须把QQ中的热键取消) * 8.alt + shift + ↑/↓: 代码的上下移动 * 9.ctrl + alt + 回车: 向上换行 * 10.shift + 回车: 向下换行 * 11.ctrl + shift + 回车: 自动补齐代码 */
3.
1. 进制
进制的概念:逢几进一,就叫做几进制
进制的分类:
十进制: 逢十进一,每位数字0到9
二进制: 逢二进一,每位数字0到1
八进制: 逢八进一,每位数字0到7
十六进制: 逢十六进一,每位数字0到9,A(10),B(11),C(12),D(13),E(14),F(15)
2.转换
1.十进制转十进制(十进制中从左向右,每位数字内部隐藏了10的多少次方,第一位是10的0次方,第二位是10的1次方...):
x^y:x的y次方
1234 = 1000 + 200 + 30 + 4
= 1*10^3 + 2*10^2 + 3*10^1 + 4*10^0
2.二进制转十进制(二进制中从左向右,每位数字内部隐藏了2的多少次方,第一位是2的0次方,第二位是2的1次方...):
这种转换方式: 8421编码
1101 = 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0
= 1*8 + 1*4 + 0*2 + 1*1
= 8 + 4 + 0 + 1
= 13
3.十进制转二进制(除以2取余数,倒过来写):
十进制转8进制和16进制的方法和二进制一样。
十进制的13转换成二进制: 1101
13 % 2 = 6 余 1 // 13 除以 2 的余数为 1 6 % 2 = 3 余 0 // 6 除以 2 的余数为 0 3 % 2 = 1 余 1 // 3 除以 2 的余数为 1 1 % 2 = 0 余 1 // 1 除以 2 的余数为 1 // 二进制为 : 1101
4.常量
1.概念: 在程序的执行过程中,其值不可以发生改变的量
2.分类(总共有6类):
(1)整数常量: 直接写 6,-6
(2)小数常量: 直接写 6.6,-6.6
(3)字符常量:
java中规定,字符常量必须使用单引号''引起来,而且单引号''中只能写一个字符(不能不写,也不能写2个及以上的字符)
(4)字符串常量:
java中规定,字符串常量必须使用双引号""引起来,而且双引号""中可以写多个字符(0个/1个/2个/...)
(5)布尔常量:
只有以下两个值:
true: 真的,正确的,对的,成立的,是的
false: 假的,错误的,不对的,不成立的,否定的
(6)空常量: 后面讲解
只有一个值null
注意: 不能直接打印空常量
//(1)整数常量 System.out.println(6); System.out.println(-6); System.out.println("---------------------"); System.out.print(6); System.out.println(); System.out.print(-6); System.out.println(); System.out.println("---------------------"); //(2)小数常量 System.out.println(6.6); System.out.println(-6.6); //(3)字符常量 System.out.println('a');//正确 //System.out.println('');//错误的,''中不能什么都不写 System.out.println(' ');//正确 //System.out.println('ab');//错误的,''中只能写一个字符 System.out.println('好');//正确 //System.out.println('好想');//错误的,''中只能写一个字符 System.out.println("---------------------"); //(4)字符串常量: System.out.println("a"); System.out.println(""); System.out.println(" "); System.out.println("ab"); System.out.println("好"); System.out.println("好想"); //(5)布尔常量 System.out.println(true); System.out.println(false); //(6)空常量 //System.out.println(null); //错误: 不能直接打印输出空常量
5.
1.变量概念: 在程序的执行过程中,其值可以在一定范围内发生改变的量
2.分类(基本类型(以下四类八中)和引用类型):
(1)整数
byte 占1个字节 取值范围 -128到127
short 占2个字节 取值范围 正负3万多
int 占4个字节 取值范围 正负21亿 整数常量默认是int类型
long 占8个字节 取值范围 大概19位数字 表示long类型的数据时,建议右边添加字母L/l
(2)小数
float 占4个字节 表示float类型的数据时,建议右边添加字母F/f
虽然float占4个字节,但是由于内部采用科学计数法,取值范围远远大于占用8个字节的long类型
double 占8个字节 小数常量默认是double类型
(3)字符:
char 占2个字节 取值范围0到65535
(4)布尔:
boolean 占1个字节 取值只有 true,false
3.
变量的理解:
1.变量的本质,就是一块内存空间,空间的大小由数据类型决定
2.变量对应的内存空间中,必须有数据,才可以使用,没有数据不能用,
把数据存储到变量对应的内存空间的过程叫做赋值或者初始化
3.要想找到变量对应的内存空间的数据,必须给变量对应的内存空间起个名字,叫做变量名称
定义变量格式一:
数据类型 变量名称 = 数据值;
定义变量格式二:
数据类型 变量名称;
变量名称 = 数据值;
定义变量格式三:
数据类型 变量名称1 = 数据值1, 变量名称2 = 数据值2;
定义变量格式四:
数据类型 变量名称1, 变量名称2;
变量名称1 = 数据值1;
变量名称2 = 数据值2;
//定义不同类型的变量 public class Demo04BianLiang { public static void main(String[] args){ //整数变量 //挖了一个占1个字节的坑,给这个坑起个名字叫a byte a; a = 100;//把数字100存储到名称为a的坑中 System.out.println(a);//打印名称为a的坑中的内容: 100 //挖了一个占2个字节的坑,给这个坑起个名字叫b, //同时把数字200存储到这个坑中 short b = 200; System.out.println(b);//打印名称为b的坑中的内容: 200 //挖了一个占4个字节的坑,给这个坑起个名字叫c int c; c = 300;//把数字300存储到名称为c的坑中 System.out.println(c);//打印名称为c的坑中的内容: 300 //挖了一个占8个字节的坑,给这个坑起个名字叫d, //同时把数字500存储到这个坑中 long d = 500L; System.out.println(d);//打印名称为d的坑中的内容: 500 } }
//定义不同类型的变量 public class Demo05BianLiang { public static void main(String[] args){ //小数 //定义float类型的变量a,初始化值为6.6 //错误: 小数6.6默认是double类型,占8个字节,不能赋值给占4个字节的float变量 //大萝卜,不能直接放入小坑中 //float a = 6.6; //System.out.println(a); //定义float类型的变量b,初始化值为6.6 float b = 6.6F; System.out.println(b);//输出变量b中的内容: 6.6 //定义double类型的变量c double c; //把数字8.8赋值给变量c c = 8.8; System.out.println(c);//输出变量c中的内容: 8.8 //字符 //定义char类型的变量ch,初始化值为字符a char ch = 'a'; System.out.println(ch);//输出变量ch中的内容: a //错误: ''中只能写一个字符 //char ch2 = 'ab'; //System.out.println(ch2); //布尔 //定义boolean类型的变量flag,初始化值为true boolean flag = true; System.out.println(flag);//输出变量flag中的内容: true //把flase赋值给变量flag,flag中原有的数据将被覆盖 flag = false; System.out.println(flag);//输出变量flag中的内容: false //错误: 数据类型不匹配 //flag = 100; } }
4. 变量定义的注意事项:
1.变量名称:在同一个大括号范围内,变量的名字不可以相同。
2.变量赋值:定义的变量,不赋值不能使用。
public class Demo06BianLiangNotice { public static void main(String[] args){ //定义int变量a,并初始化 int a = 100; System.out.println(a);//100 //把数字200赋值给变量a,变量a中的原有数据将被覆盖 a = 200; System.out.println(a);//200 //错误: 变量a在前面已经定义过来的,这里不能再重新定义了 //int a = 300; //System.out.println(a); //定义int变量b,未初始化 int b; //System.out.println(b);//错误: 此时变量b中没有值,不能用 b = 1000;//把数字1000赋值给变量b System.out.println(b);//1000 } }
3.定义long类型的变量时,需要在整数的后面加L(大小写均可,建议大写)。因为整数默认是int类型,整数太大可能超出int范围。
4.定义float类型的变量时,需要在小数的后面加F(大小写均可,建议大写)。因为浮点数的默认类型是double, double的取值范围是大于float的,类型不兼容。
public class Demo07BianLiangNotice { public static void main(String[] args){ //整数常量6000000000,默认是int类型,然而int类型的取值范围是正负21亿 //6000000000的大小已经超出了int的取值范围,说白了就是int中根本没有这个数字6000000000 //long num = 6000000000; //System.out.println(num); //6000000000L就是long类型的数字,占8个字节,可以存储在long类型的变量中 long num2 = 6000000000L; System.out.println(num2); //8.8默认是double类型,占8个字节,不能直接赋值给占4个字节的float变量 //大萝卜,不能直接放入小坑中 //float f = 8.8; //System.out.println(f); float f2 = 8.8F; System.out.println(f2); } }
标识符:
1.概念: 程序中起名字的地方(类名,方法名称,变量名)
2.命名规则: 硬 性 要 求
标识符可以包含 英文字母26个(区分大小写) 、 0-9数字 、 $(美元符号) 和 _(下划线) 。
标识符不能以数字开头。
标识符不能是关键字。
3.命名规范: 软 性 建 议
类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)。
Demo01BianLiang
Demo02BianLiang
Demo03BianLiangNotice
Demo04BiaoShiFu
方法名规范: 首字母小写,后面每个单词首字母大写(小驼峰式)。
getMin(...){...}
getMax(...){...}
变量名规范:首字母小写,后面每个单词首字母大写(小驼峰式)。
num
value
maxValue
public class Demo08BiaoShiFu { public static void main(String[] args){ int ab_$23cd;//正确的 //int ab_$2%3cd;//错误的,标识符中不能包含字母,数字,$和_以外的内容 //int 2b;//错误的,标识符以数字开头 //int class;//错误的,标识符不能是关键字 int ageOfMyGirlFriend = 18;//小驼峰规则 int ageofmygirlfriend = 18;//不报错,但是不符合小驼峰规则 } }

浙公网安备 33010602011771号