【Java】第二章:详解标识符、常量、变量、类型转换

第二章 标识符、常量、变量、类型 转换

一、注释

Java中的注释,分为三种:

  • 单行注释
  • 多行注释
  • 文档注释(后续课程讲解)(Javadoc)

文档注释

格式:/** 文档注释内容 */

也可以在idea中培植自己的文档注释

二、关键字

关键字特点:组成关键字的字母全部小写,常用的代码编辑器对关键字都有高亮显示

常见关键字public static void class

image-20240807092834921

三、标识符(自己起名字的地方就叫标识符)

在Java中给类、方法、变量起的名字,就是标识符,其可以用来标识这个

类、方法、变量

命名规则:

  • 标示符可以由==字母、数字、下划线_ 、美元符号$==组成
  • 标示符开头不能是数字
  • 标识符中的字符大小写敏感
  • 标识符的长度没有限制
  • 标示符不能使用Java中的关键字或保留字

_int __int 这俩个都满足标识符的条件 _ int _ 也满足(没有空格 typora软件的缘故)

四、常量

常量分类

  • 字面值常量
  • 自定义常量 (面向对象部分讲解)

空常量是一个特殊的值,空值,值为null

package com.briup.chap02;
public class Test04_Constant {
//输出各种类型的常量值
public static void main(String[] args) {
System.out.println(10); // 输出整数常量
System.out.println(5.5); // 输出小数常量
System.out.println('a'); // 输出字符常量
System.out.println(true); // 输出boolean常量值true
System.out.println("欢迎来到杰普软件"); // 输出字符串常量
}
}

五、变量

数据类型 变量名 = 数据值; (边声明边定义)

10.sout --> System.out.println(10);

这样写就可以很快的输出

区域内容
方法栈方法运行时使用的内存,比如main方法运行,进入方法栈中执行
方法区存储可以运行的class文件
堆内存存储数组或对象,new来创建的,都存储在堆内存

程序执行流程:

  1. 执行命令 java 测试类名 ,系统将测试类.class文件 内容装入内存中的方法区

  2. 接下来找到里面的 main方法 (程序入口)

  3. 然后在栈空间申请一块区域(函数帧)来保证main方法的执行

  4. 最后顺序执行main方法中的代码

  5. 遇到main方法的 "}"或return语句 ,方法执行结束,main方法函数帧内

存释放

多个变量内存理解:

image-20240807102923035

六、数据类型(俩大类)

6.1数据类型介绍

Java数据类型可以分为两大类:

  • 基本数据类型
  1. 整形 byte、short、int、long
  2. 浮点型 float、double
  3. 字符类型 char
  4. 布尔类型 boolean
  • 引用数据类型
  1. 数组
  2. 接口

一个字节代表的最大的数是 ? 2^8 - 1 = 255

一个字节代表的最大正数是 : 127 (因为开头是1为负数)

image-20240807193340310

image-20240807102537769

取值范围和类型:

整型 (Integer Types)

byte: 8 位,取值范围为 -128 到 127

short: 16 位,取值范围为 -32,768 到 32,767

int: 32 位,取值范围为 -2^31 到 2^31 - 1 (-2,147,483,648 到 2,147,483,647)

long: 64 位,取值范围为 -2^63 到 2^63 - 1 (-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807)

浮点型 (Floating-Point Types)

float: 32 位,单精度浮点数,取值范围约为 1.4E-45 到 3.4E+38(精度为7位有效数字)

image-20240807190924881

double: 64 位,双精度浮点数,取值范围约为 4.9E-324 到 1.7E+308(精度为15位有效数字)

字符型 (Character Type)

char: 16 位,取值范围为 0 到 65,535(无符号的 Unicode 字符)

布尔型 (Boolean Type)

boolean: 只有两个取值 true 和 false

小数默认是double类型

6.2进制转换

二进制前面是 0b 八进制最前面0开头 十六进制是0x开头

1)十进制快速转换二进制

image-20240807191458309

2)二进制快速转换为8进制

  • 从最低位开始,每3位分一组不足3位的话高位补0
  • 将得到的数字组合到一起,最前面以0开头

image-20240807192602101

3)二进制转换为16进制

  • 从最低位开始,每4位分一组不足4位的话高位补0
  • 将得到的数字组合到一起,最前面以0x开头

image-20240807192541369

6.3原码反码补码

1)原码

image-20240807193008322

2)反码

  • 正数的反码与其原码相同
  • 负数的反码,在原码的基础上,保留符号位,其他位逐位取反

3)补码

  • 正数的补码与其原码相同
  • 负数的补码是在其反码的末位加1

注意:数据在计算机底层进行存储或运算,以补码方式进行!


七、常量补充

注意:整形字面值,不论是二进制、八进制还是十进制、十六进制,默认都是int类型常量

注意:小数默认是double类型

  • 整形数后面加’L’或’l’,就表示long类型字面值常量
  • 小数后面加’F’或’f’,就表示float类型字面值常量

八、类型转换

数据类型转换分为俩类:

  • 隐式类型转换
  • 显示类型转换

8.1隐式类型转换

情况一(小给大)

赋值过程中,小数据类型值或变量可以直接赋值给大类型变量,类型会自动进行转换

image-20240807194243248

情况二(byte、short、char)

byte、short、char类型的数据在进行算术运算时,会先自动提升int,然后再进行运算

image-20240807194640143

情况三(不同类型相互运算)

其他类型相互运算时,表示范围小的会自动提升为范围大的,然后再运算

8.2显式类型转换

赋值过程中,大类型数据赋值给小类型变量,编译会报错,此时必须通过强制

类型转换实现

固定格式:

数据类型 变量名 = (目标数据类型)(数值或变量或表达式)

8.3特殊情况(重要)

整型常量优化机制

package com.briup.test.day02;

/**
 * 测试基本数据类型之间的转换和赋值情况
 */
public class zhushu {
    public static void main(String[] args) {
        // int -> byte 转换成功的例子
        byte b = 10;
        System.out.println(b);

        // int -> short 转换成功的例子
        short s = 20;
        System.out.println(s);

        // int -> char 转换成功的例子
        char c = 97;
        System.out.println(c);

        // byte 赋值示例:为什么 b2 能成功,而 b3 失败了?
        byte b2 = 127;
        System.out.println(b2);
        // byte b3 = 128; // 编译错误,超出了 byte 类型的范围
        // System.out.println(b3);

        // short 赋值示例:为什么 s2 能成功,而 s3 失败了?
        short s2 = -32768;
        System.out.println(s2);
        // short s3 = -32769; // 编译错误,超出了 short 类型的范围
        // System.out.println(s3);

        // char 赋值示例:为什么 c2 能成功,而 c3 失败了?
        char c2 = 65535;
        System.out.println("c2: " + c2);
        // char c3 = 65536; // 编译错误,超出了 char 类型的范围
        // System.out.println(c3);
    }
}

使用整形字面值常量(默认int类型)赋值给其他类型(byte、char、short)变量时,系统会先判断该字面值是否超出赋值类型的取值范围,如果没有超过范围则赋值成功,如果超出则赋值失败。

注意:

image-20240807114758301

反例:

image-20240807200159521

image-20240807200505004

重要知识点

3、数据类型 基本数据类型(4类8种 整数byte short int long 小数 float double 字符 char赋值有多种 布尔 boolean) 引用数据类型 (面向对象中去讲)String–>最像基本类型的引用数据类型

4、计算机的基础知识 存储单位 比特 字节 进制及进制的转换、进制的Java代码自变量

5、类型转换的知识(基于基本数据类型)

显示类型转换(大转小)和隐式类型转换(小转大)(木桶效应)

6、int常量赋值时的优化机制

Java 中的基本数据类型包括八种,分别是四种整数类型、两种浮点数类型、一个字符类型和一个布尔类型。以下是这些基本类型及其取值范围:

  1. 整型 (Integer Types)

    • byte: 8 位,取值范围为 -128 到 127
    • short: 16 位,取值范围为 -32,768 到 32,767
    • int: 32 位,取值范围为 -2^31 到 2^31 - 1 (-2,147,483,648 到 2,147,483,647)
    • long: 64 位,取值范围为 -2^63 到 2^63 - 1 (-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807)
  2. 浮点型 (Floating-Point Types)

    • float: 32 位,单精度浮点数,取值范围约为 1.4E-45 到 3.4E+38(精度为7位有效数字)
    • double: 64 位,双精度浮点数,取值范围约为 4.9E-324 到 1.7E+308(精度为15位有效数字)
  3. 字符型 (Character Type)

    • char: 16 位,取值范围为 0 到 65,535(无符号的 Unicode 字符)
  4. 布尔型 (Boolean Type)

    • boolean: 只有两个取值 truefalse

这些基本类型在Java中用于定义变量和常量,便于处理不同类型的数据。在使用时,可以根据具体需求选择合适的基本类型。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小羊oi!

小小的赞 会是精神百倍的重要源

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值