2-Java基础语法-常量与变量

作者: 天涯明月笙 | 来源:发表于2018-07-30 11:40 被阅读72次

    常量与变量

    主要内容: 标识符 关键字 变量 数据类型 类型转换 常量

    标识符

    我们所认识的标识符: 类的名字,每一个字母是字符。

    数字不能作为标识符的开头,标识符中间不能有空格。

    标识符的命名规则

    标识符可以由字母、数字、下划线(_)和美元符($)组成,不
    能以数字开头;标识符严格区分大小写;标识符不能是Java关键字和保留字

    IDE中标红的都是关键字,IDEA中为橙色。

    标识符的命名最好能反映出其作用

    _hello 合法; Void 合法(区分大小写,和void不一样); abc$123 合法; abc 123 非法(包含空格)

    关键字

    Java中关键字:

    不需要专门记忆,用到自然知道了。

    保留字: goto

    什么是变量?

    接受语法结构,仿写,熟悉意义。

    什么是变量 & 变量名的命名规则

    比如我们使用计算机做题,其中的啊a.b想要运算,应该先存储下来。变量就是数据存储。

    变量的三个元素:变量类型、变量名和变量值。

    房间 变量
    入住的客人 变量值
    房间名字 变量名
    房间类型 变量类型

    房间与变量的类比如上:入住的客人对应变量值; 房间名字对应变量名;房间类型对应变量类型

    变量名也是一个标识符,变量名的命名规则:

    • 满足标识符命名规则
    • 符合驼峰法命名规范: 单个单词全部小写,多个单词第一个单词小写,后面单词首字母大写。如: 年龄 age 学生姓名 stuName
    • 进来简单,做到见名知意
    • 变量名的长度没有限制

    类的命名规范:

    • 満足Pascal命名法规范:一个单词构成首字母大写,多个单词构成,每个首字母都大写。类名单词首字母都得大写。

    好处: 方便阅读。

    数据类型

    数据类型可分为两大类,基本数据类型 和 引用数据类型: 类( class ); 接口( interface ) ;数组

    boolean的两个值为true和false,true代表真,false代表假。byte, short, int,long都是整数数据类型。

    基本数据类型详解

    数据类型 说明 字节
    byte 字节型 1
    short 短整型 2
    int 整型 4
    long 长整型 8
    float 单精度浮点型 4
    double 双精度浮点型 8
    char 字符型 2
    boolean 布尔型 1

    整型字面值及变量声明

    整型字面值:

    Java中有三种表示整数的方法:十迸制、八迸制、十六进制

    进制表示:

    八进制: 以0开头,包括0-7的数字,如037,056;十进制包含0-9数字;十六进制表示:以0x或0X开头,包括0-9的数字,及字母a-f , A-F;如:0x12,0xabcf,0XABCFF。

    123(十进制) 023(八进制) 0x1357(十六进制) 0x1abcL(长整型,L或l结尾)

    变量声明:

    格式:数据类型 变量名;

    例:

    int n; // 声明整型变量n
    long count; // 声明长整型变量count
    

    变量赋值:

    使用"="运算符进行赋值;"="叫作赋值运算符,将运算符右边的值赋给左边的变量。

    例:

    int n; // 定义int型变量n
    n=3; //将3赋值给n
    

    可以在定义变量的同时给变量赋值,即变量的初始化
    例子:

    int n=3;
    int octal=037; // 定义int类型变量存放八进制数据
    long longNumber=0xa2cdf3ffL; // 定义变量存放十六进制长整型数据
    short shortNumber= 123; // 定义变量存放短整型数据
    byte b=10; // 定义变量存放byte类型数据
    

    可以看到长整型已经不是合法的int型数据了,再次重申int型数据只有三种表示方法: 十进制,十六进制,八进制。

    浮点型字面量

    浮点型字面值默认情况下表示double类型,也可以在值后加d或D

    如: 123.43d 或 123.43D

    如表示float类型,则需要在字面值后加f或F

    如: 23.4f 或 23.4F

    浮点型案例

    新建一个类 FloatDemo.java

    package cn.mtianyan;
    
    public class FloatDemo {
        public static void main(string[] artgs){
            // 定义一个单精度浮点型变量,存放1234.328
            float f = 1234.328f; // 一个浮点型数据末尾什么都不写,是Double型的。
            System.out.println("f="+f);
    
            // 定义一个双精度浮点型变量,存放5623.456
            double d = 5623.465; //写d,写f后缀都是可以的,小可以变大。
            System.out.println("d="+d);
            
            double d1 = 123L; // Double类型范围最大
            System.out.println("d1="+d1);
            
            // 变量间赋值
            double d2 = d;
            System.out.println("d2="+d2);
        }
    }
    

    运行结果:

    编程练习

    分別定乂float、double、 int樸型的数据,并打印輸出。

    输出效果图如下:

    任务:

    1. 定义一个float类型的变量f1 , 值为98.4
      2、定义一个float类型的变量f2 ,将f1的值赋值给f2
      3、定义一个整型变量n ,值为55
      4、定义一个double类型的变量d1 ,值为555.3
    package cn.mtianyan;
    
    public class FloatExercise {
        public static void main(String[] args) {
            float f =98.4f;
            System.out.println("f="+f);
            float f2  = f;
            System.out.println("f2="+f2);
            int n = 55;
            System.out.println("n="+n);
            double d1 = 555.3;
            System.out.println("d1="+d1);
            d1 = n;
            System.out.println("赋值后的d1值为"+d1);
    
        }
    }
    

    基本数据类型变量的存储

    数据类型分为基本数据类型和引用数据类型;引用数据类型包括数组和类等;类定义的变量又叫对象

    按照作用范围分为: 类级、 对象实例级、方法级、块级

    方法级的变量被叫做局部变量

    java中对于内存进行了细分,有栈,堆,常量池等。我们在主函数中定义的变量存储在栈区。

    int n = 100;
    

    n就是存储了100的这块内存空间的别名。

    字符型字面值

    字符型字面值用单引号内的单个字符表示。如: 'a','b','$'

    字符型字面值用单引号引起来。这里的单引号很重要,不能丢掉。单引号中必须只有一个字符。

    如何定义字符型变量?

    char a = 'a';
    char a = 65;
    
    package cn.mtianyan;
    
    public class CharDemo {
        public static void main(String[] args) {
            char a = 'a';
            char b = 65;
            System.out.println("a="+a);
            System.out.println("b="+b);
        }
    }
    

    运行结果:

    65是一个大写的A

    ASCII码: ASCII ( American Standard Code for Information Interchange , 美国标准信息交换代码);信息传递的统一标准。

    基于拉丁字母的一套电脑编码系统;主要用于显示现代英语和其他西欧语言

    使用7位或8位二进制数组合来表示128或256种可能的字符。7位二进制数组合-标准ASCII码;8位二进制数组合(后128位)-扩展ASCII码

    标准ASCII码表示大小写字母,标点符号,美式英语中的控制字符等。扩展ASCII码表示特殊符号,外来语言的字母等。

    标准ASCII码 0-127

    结论: 整型和字符类型是可以互相转换的,参考的转换依据是我们的ASCII码表。

    char类型是两个字节表示,无符号的16位整数类型,表示范围0-65535范围。

    可以看到,65535是没有任何提示的,65536会提示转换为int型。强制转换可能引起数据的丢失。

    Unicode编码

    ASCII 码是美国标准信息交换码;ASCII码不能支持所有语言。

    Unicode编码又称为统一码、万国码.Unicode编码的目标是支持世界上所有的字符集;

    char c = '\u005d'; // 005d四个16进制数
    
    // Unicode表示法,在值前加前缀\u
    
    char cOut = (char) 65536;
    System.out.println("cOut=" +cOut);
    // 定义变量存放unicode编码表示的字符
    char uc = '\u005d'; //必须是16进制四个数,32位。
    System.out.println("u=" +uc);
    

    运行结果:

    布尔类型字面值

    布尔值只能定义为true和false

    例子:

    boolean b=true;
    

    字符串字面值

    str1 = "Hello,mtianyan!"
    System. outprintln("str="+str);
    

    字符串不属于基本数据类型,它是类!

    字符串的字面值如何表示?

    双引号引起来的0个或多个字符。

    字符串的定义:

    package cn.mtianyan;
    
    public class StringDemo {
    
        public static void main(String[] args) {
            // 定义一个空字符串
            String s1 = "";
            System.out.println("s1="+s1);
    
            String s2 = "Hello";
            System.out.println("s2="+s2);
    
            String s3 = "A\u005d\u005fB"; // A,B正常显示,普通与Unicode可以混在一个字符串里
            System.out.println("s3="+s3);
    
            String s4 = "Hello  mtianyan"; // 空格也是一个字符,字符串的长度也要算上空格。
            System.out.println("s4="+s4);
        }
    }
    

    运行结果:

    字符串字面值必须用双引号,可以是空串啥都没有。

    变量综合案例

    只进行声明,不进行初始化的变量是不能使用的。

    package cn.mtianyan;
    
    public class VarDemo {
        public static void main(String[] args) {
            // 定义两个整型变量
            int x=3,y=5;
            // x=3,y=5; 形式是错误的
            System.out.println("x="+x);
            System.out.println("y="+y);
            // 换行问题
            System.out.printf(x+" "+y +'\n');
            // System.out.println(); // 换行
            System.out.printf(x+","+y);
        }
    }
    

    运行结果:

    转义字符

    转义字符 描述
    \uxxxx 四位16进制数所表示的字符
    \' 单引号字符
    \" 双引号字符
    \\ 反斜杠字符
    \r 回车
    \n 换行
    \t 横向跳格
    \b 退格

    回车和换行是不一样的,回车光标会回到光标的最开始,换行是换到当前光标位置的下一行。

    System.out.printf(x+"\t"+y +'\n');
    

    运行结果:

            System.out.println('\t');
            System.out.println(x+'\t');
    

    运行结果:

    将字符串转换为整数进行了运算

    记得用双引号,或者前面加一个空串""

            System.out.printf(x+","+y);
            System.out.printf("\n\'"+x+"\'");
    

    运行结果:

    java中是可以使用汉字作为变量名的,但是不建议使用

            char ch = '天';
            System.out.println(ch);
            char 中文 = '涯';
            System.out.println(中文);
    

    运行结果:

    用科学计数法表示浮点型数据

            double d = 1.23E5; //科学计数法1.23*10^5
            float f = 1.23e5f;
            double d1 =.2; //代表0.2
    
            System.out.println("d=" +d);
            System.out.println("f=" +f);
            System.out.println("d1=" +d1);
    

    运行结果:

    数据类型转换的基本概念

    类型转换分为自动类型转换和强制类型转换

    long n=253;(int转)
    

    char 65536 强制转换,可能引起数据丢失

    char cOut = (char) 65536;
    

    自动类型转换(隐式类型)顺序

    实线表示无信息丢失的数据类型转换; 虚线表示可能在转换时出现精度丢失。

    强制类型转换:

    如果A类型的数据表示范围比B类型大,则将A类型的值赋值给B类型,需要强制类型转换。

    例子:

    double d= 123.4;
    float f= (float)d;
    

    强制数据类型转换的格式: (数据类型)数值

    数据类型转换案例

    package cn.mtianyan;
    
    public class TypeExchange {
        public static void main(String[] args) {
            // char类型和int类型之间的转换
            char c = (char) 65536;
            int n;
            n = c; // 隐式类型转换
            c = (char) n;
    
            // 整型和浮点型转换
            int x =100;
            long y = x;
            x = (int)y;
            float f = 1000000000000000L;
            System.out.println("f="+f);
            float f1 = 102312392189367L;
            System.out.println("f1="+f1); // 会发生数据丢失
        }
    }
    

    运行结果:

    可以看到确实丢失了一部分。

    编程练习

    定义各种数据类型的变量,按要求为它们赋值,并打印输出。

    效果图:

    备注:由于编辑器环境的不同,第一行字符c的输出结果也会有所不同。

    任务:

    1、定义一个整型字面値67832,赋值姶char类型変量c,并将c的值輸出
    2、定义一个整型変量n,初始化为65
    3、定义一个字符型变量c1 ,赋值为n ,并输出c1的值。
    4、定义一个长整型変量l, 值为987654321
    5、定义一个整型変量i,赋值为,并输出i的値
    6、定义一个float型変量f,将变量l的值赋值给f,并輸出f的値
    7、将float的值f, 童新赋值给変量l, 并输出l的償

    package cn.mtianyan;
    
    public class DataTypeExercise {
        public static void main(String[] args) {
            char c = (char) 67832;
            System.out.println("c="+c);
            int n = 65;
            char c1 = (char) n;
            System.out.println("c1="+c1);
            long l = 987654321;
            int i = (int) l;
            System.out.println("i="+i);
            float f = l;
            System.out.println("f="+f);
            l = (long) f;
            System.out.println("l="+l);
        }
    }
    

    运行结果:

    常量

    final int n =5; // final 关键字定义常量
    

    可以看到常量是不可以再被赋值的。

            final double PI = 3.14; // 下面可以只更改一个地方
            final double MIN_VALUE = 0;
    

    命名时,常量一般使用大写字母表示,多个单词字母大写,中间下划线隔开。

    java中字面值也叫做常量,字面值是变量和常量的实际表示的数值。流程控制时,将字面值和final定义的,都统称为常量。

    变量与常量总结

    标识符的命名规则

    1. 必须由字母、数字、下划线(_)和美元符($)组成
    2. 首字母只能是字母、下划线(_)和美元符($),不能是数字。
    3. 不能是Java的关键字和保留字
    4. 严格区分大小写
    5. 要有意义

    public是关键字,Public就是合格的标识符。

    关键字(已经接触了的):

    数据类型:

    数据类型分为基本数据类型和引用数据类型(字符串和数组类型)。

    变量的定义和初始化: int n; n=5; 初始化: int n=5;

    ASCII码 和 Unicode编码

    类型转换: 隐式类型转换 强制类型转换

    字面值也是常量的一种

    在下一集中,将为大家带来Java中运算符的使用,同时为了更好的进行学习,还介绍了简单条件语句!

    相关文章

      网友评论

        本文标题:2-Java基础语法-常量与变量

        本文链接:https://www.haomeiwen.com/subject/rzgamftx.html