Day1 java 入门程序、常量

1. HelloWorld案例的编写编译运行

1.编写源程序   

  源程序: 程序员自己编写的,程序员可以看得懂得程序
  源程序: 内部就是由字母,数字,_,$,{,},(,)字符组成
  源程序本质就是一个文本文件,但是扩展名不是.txt,而是.java

//创建一个名称为HelloWorld.txt的文本文件,扩展名修改为.java,
//使用notepad++软件打开此文件,输入以下内容:
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("HelloWorld");
    }
}
HelloWorld.txt

 

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;
    }
}
例子2

 

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);
    }
}

 

5. 标识符的含义及注意事项

 标识符:

  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;//不报错,但是不符合小驼峰规则
    }
}

 

posted @ 2022-05-19 21:00  Amoヽ柠檬  阅读(37)  评论(0)    收藏  举报