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

常量与变量

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

标识符

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

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

标识符的命名规则

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

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

img_77c77d4af35988f6e5a724e76cdd44a8.jpe

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

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

关键字

Java中关键字:

img_6d12d844b38a36c27b949336be8c0bb8.jpe

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

保留字: goto

什么是变量?

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

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

img_b5c826bcb55081c3724c66d58833ca05.jpe

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

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

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

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

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

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

类的命名规范:

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

好处: 方便阅读。

数据类型

img_b373850476ce409bb8694e60869aa3e9.jpe

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

img_091d72b92ee7193eaa690cb45764da3e.jpe

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类型数据
img_25436b9a690e489e2038ac53fceb9229.jpe

可以看到长整型已经不是合法的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);
    }
}

运行结果:

img_13db2cbbe7cd8f0dbdda075bf1814cbd.jpe

编程练习

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

输出效果图如下:

img_62dd58b3eedb61461868a013c170e478.jpe

任务:

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

    }
}
img_c79c2c07407bcc7cd1d3fa49a62dbe93.jpe

基本数据类型变量的存储

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

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

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

img_40d7050eabb234ca754ba7161ab0c358.jpe

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

int n = 100;
img_20de341b8b48cd720772aae4256b8bd7.jpe

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

运行结果:

img_a00dbea90f85cdad5bebf6efd4ffbe8e.jpe

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范围。

img_80fd0565af22a78407d4501c10fe6d5b.jpe
img_d2255afdf57941f07b8e1d912b5c2825.jpe

可以看到,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);

运行结果:

img_e6efd2ad662aad192cfabea8e0e1a58a.jpe

布尔类型字面值

布尔值只能定义为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);
    }
}

运行结果:

img_ace045b119c173164bb998b2c7cde2e4.jpe

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

变量综合案例

img_021c6be4db9eca7b8807fe38494c5edd.jpe

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

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

运行结果:

img_bda8e347e5a39f814da06aecc40a87cb.jpe

转义字符

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

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

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

运行结果:

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

运行结果:

img_530df700d3e6bb5aeab6dd1513b2caa9.jpe

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

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

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

运行结果:

img_6a5a48ea4a7afd76cec4e15cd3e22d09.jpe

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

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

运行结果:

img_7840e88f9fd5484e666d10dce15c6481.jpe

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

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

运行结果:

img_93848dbefd5eb426e2b8529c72ed7a85.jpe

数据类型转换的基本概念

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

long n=253;(int转)

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

char cOut = (char) 65536;

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

img_879d244e871db12a03b35b9efefcdbd6.jpe

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

强制类型转换:

如果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); // 会发生数据丢失
    }
}

运行结果:

img_c6bc9bd49fb9e7c722b4fd011514a972.jpe

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

编程练习

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

效果图:

img_3b1a26da9d0700f2df6554c1898508e2.jpe

备注:由于编辑器环境的不同,第一行字符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);
    }
}

运行结果:

img_113026588a4287a12604712e76be708a.jpe

常量

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

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

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

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

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

变量与常量总结

标识符的命名规则

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

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

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

img_f53111e6aa28b7e61e92d757647623f0.jpe

数据类型:

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

img_e4c8e2a1c77ac6172dadad8cd4739b9c.jpe

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

img_71af83ebcd4b579b94b80c3977e822e6.jpe

ASCII码 和 Unicode编码

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

字面值也是常量的一种

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值