实训笔记:day3(第二章 标识符、常量、变量、类型 转换)

发布于:2025-07-18 ⋅ 阅读:(16) ⋅ 点赞:(0)

1.注释:

1.单行注释://
2.多行注释:/* */

注释是一个程序员必须要具备的编程习惯,初学者写程序可以养成习惯: 先把实现思路用注释写下来,然后再补全代码。

2.关键字

被Java语言赋予特定含义的单词
字母全部小写

在这里插入图片描述

3.标识符

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

命名规则:
标示符可以由字母、数字、下划线_ 、美元符号$组成
标示符开头不能是数字
标识符中的字符大小写敏感
标识符的长度没有限制
标示符不能使用Java中的关键字或保留字
命名约定:
采用驼峰命名法,具体要求如下:

  • 类和接口
    不管是1个还是多个单词,每个单词的首字母都大写(大驼峰)
public class Account { }
public interface UserService { }
  • 方法和变量
    首字母小写,第二个单词开始每个单词的首字母大写(小驼峰)
public String getName(){ }
int totalNum = 1
  • 常量
    全部字母大写,如果是多个单词,单词与单词间使用下划线分隔
public static final int MAX_NUM = 10;
  • 尽量做到见名知意,使用有意义的名字
int numOfStudent = 10;
String userName = "tom";

4.常量

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

5.变量

Java是强类型语言 ,每个常量或变量都有对应的数据类型
变量名:就是一个标识符,用来标识内存上的一块空间
数据值:即变量值,该值会存储到变量名标识的那块空间中
内存基础知识:
在这里插入图片描述
程序执行流程:

  1. 执行命令 java 测试类名 ,系统将 测试类.class文件 内容装入内存中的
    方法区
  2. 接下来找到里面的 main方法 (程序入口)
  3. 然后在空间申请一块区域(函数帧)来保证main方法的执行
  4. 最后顺序执行main方法中的代码
  5. 遇到main方法的 "}"或return语句 ,方法执行结束,main方法函数帧内
    存释放

6.数据类型

在Java中,变量用于存储数据,可分为基本数据类型变量和引用数据类型变量,以下是对基本数据类型变量的总结:
在这里插入图片描述

6.1字节

比特位 :bit ,是计算机存储信息的最小单位,存放一位二进制数,即 0 或1
字节:byte,是计算机分配内存的最小单位,通常用大写字母 B 表示,一个字节包含了8个比特位,即: 1byte == 8bits

6.2基本数据类型

一、数值型

  1. 整数类型
  • byte:占用1个字节(8位),取值范围是-128 ~ 127 。比如表示月份(1 - 12)。示例:
byte month = 5; 
  • short:占用2个字节(16位),取值范围是-32768 ~ 32767 。如一些较小的计数。示例:
short num = 1000; 
  • int:占用4个字节(32位),取值范围约为 -2147483648 ~ 2147483647 ,是最常用的整数类型,用于表示一般的整数,如年龄、人数。示例:
int age = 25; 
  • long:占用8个字节(64位),取值范围非常大,常用于表示更大范围的整数,如时间戳(毫秒级)、天文数据等。声明long类型变量时,数字后面通常要加 L(大小写均可,建议用大写 L,避免和数字 1 混淆)。示例:
long timestamp = 1672531200000L; 
  1. 浮点类型
  • float:占用4个字节,是单精度浮点数,有效位数大约是7位。适用于对精度要求不高,且数据范围不是特别大的浮点数运算,如简单的科学计算、图形绘制中的坐标值。声明float类型变量时,数字后面要加 F(大小写均可)。示例:
float pi = 3.14F; 
  • double:占用8个字节,是双精度浮点数,有效位数大约是15 - 16位,精度比float高,是最常用的浮点数类型,用于大多数需要精确计算的场景,如财务计算、科学研究等。示例:
double price = 99.99; 

二、字符型

  • char:占用2个字节(16位),用于存储单个字符,如字母、数字、符号等。字符型常量要用单引号 '' 括起来,它本质上存储的是字符对应的Unicode编码值(0 - 65535)。示例:
char letter = 'A'; 

三、布尔型

  • boolean:占用1个字节(理论上只需要1位存储true或false,但Java中实际占1字节 ),只有两个取值:truefalse,用于表示逻辑判断的结果,如条件判断(if语句中的条件)、循环条件(while语句中的条件)。示例:
boolean isStudent = true; 

四、基本数据类型变量的特性

  • 默认值:在声明变量时如果没有进行初始化,基本数据类型变量会有默认值。例如,byteshortintlong 的默认值是 0floatdouble 的默认值是 0.0char 的默认值是 \u0000(空字符 );boolean 的默认值是 false
  • 类型转换:分为自动类型转换(小范围类型自动转换为大范围类型,如 byteint)和强制类型转换(大范围类型转换为小范围类型,可能会丢失精度或数据溢出,如 intbyte )。
  • 作用域:变量在声明它的代码块(如方法体、for 循环块等)内有效,出了这个代码块就无法访问了。

6.2引用数据类型

方面 详情
定义 存储的是对对象的引用(内存地址),而非对象本身的值。通过这个引用,程序可以访问和操作对象。
常见类型 :自定义数据类型,如class Person { String name; int age; }接口:定义一组方法签名,不包含方法实现,用于实现多态和规范行为,如interface Shape { double getArea(); }数组:用于存储相同类型的数据元素集合,如int[] numbers = {1, 2, 3};
内存分配 引用本身存储在栈内存中,指向堆内存中的对象。创建对象时(如new Person()),在堆中分配内存空间存放对象的属性和方法相关数据。
特点 多态性:同一引用类型变量可指向不同子类对象,根据实际指向对象调用对应方法,如Animal animal = new Dog();animal.eat()会调用Dog类中重写的eat方法; 传递方式:方法传递时是引用传递,即传递对象的引用地址,在方法内对对象的修改会影响到原对象;默认值:变量默认值为null,表示未指向任何对象。
使用场景 需要复杂数据结构和行为封装时使用类;实现多态性、规范不同类行为时使用接口;存储和管理多个相同类型数据时使用数组 。

6.3基本类型和引⽤类型变量的区别

对比维度 基本类型 引用类型
存储内容 直接存具体值,如 int a = 5,栈存 5 存堆中对象的引用地址,如 String s = new String("abc"),栈存对象在堆的地址
内存区域 存储在栈内存 引用(地址)在栈,对象实体在堆内存
赋值操作 赋值是值拷贝,如 int b = ab 是新的 5,改 b 不影响 a 赋值是引用拷贝,如 List list2 = list1,二者指向堆中同一对象,改 list2 内容会影响 list1
默认值 有默认值(如 int0booleanfalse 默认值是 null ,表示未指向有效对象
数据传递 方法传参是值传递,形参改变不影响实参 方法传参是引用传递,形参操作可改变实参指向对象的内容
内存回收 变量作用域结束,栈中值直接销毁 栈中引用先销毁,堆中对象后续由垃圾回收器判断回收

6.4进制转换

要理解不同进制(二进制、八进制、十六进制)与十进制 85 之间的转换,可从 进制的位权原理 入手,以下分别说明 其他进制转十进制(验证赋值的正确性 ),以及 十进制转其他进制(推导赋值时的字面量 )的计算方法:

一、其他进制 → 十进制(验证值为 85)

不管哪种进制,转十进制的核心是 按位权展开求和,即每一位数字乘以 进制^位序(位序从右往左,从 0 开始 ),再把结果相加。

1. 二进制 0b1010101 → 十进制

二进制每位的位权是 2^位序0b1010101 从右往左各位的数字和位序:

位序(从右到左,从0开始):6 5 4 3 2 1 0  
数字:                      1 0 1 0 1 0 1  

按位权展开计算:

1×2⁶ + 0×2⁵ + 1×2⁴ + 0×2³ + 1×2² + 0×2¹ + 1×2⁰  
= 64 + 0 + 16 + 0 + 4 + 0 + 1  
= 85  
2. 八进制 0125 → 十进制

八进制每位的位权是 8^位序0125 从右往左各位的数字和位序:

位序(从右到左,从0开始):2 1 0  
数字:                      1 2 5  

按位权展开计算:

1×8² + 2×8¹ + 5×8⁰  
= 64 + 16 + 5  
= 85  
3. 十六进制 0x55 → 十进制

十六进制每位的位权是 16^位序0x55 从右往左各位的数字和位序:

位序(从右到左,从0开始):1 0  
数字:                      5 5  

按位权展开计算:

5×16¹ + 5×16⁰  
= 80 + 5  
= 85  

二、十进制 85 → 其他进制(推导赋值的字面量 )

十进制转其他进制,核心是 除进制取余法:不断用十进制数除以目标进制,记录余数(余数是进制的低位 ),直到商为 0,最后把余数倒序排列就是结果。

1. 十进制 85 → 二进制

85 不断除以 2,记录余数:

85 ÷ 2 = 42  余 1  (二进制最低位)  
42 ÷ 2 = 21  余 0  
21 ÷ 2 = 10  余 1  
10 ÷ 2 = 5   余 0  
5 ÷ 2 = 2    余 1  
2 ÷ 2 = 1    余 0  
1 ÷ 2 = 0    余 1  (二进制最高位)  

把余数 倒序排列,得到二进制:1010101,即 0b1010101

2. 十进制 85 → 八进制

85 不断除以 8,记录余数:

85 ÷ 8 = 10  余 5  (八进制最低位)  
10 ÷ 8 = 1   余 2  
1 ÷ 8 = 0    余 1  (八进制最高位)  

把余数 倒序排列,得到八进制:125,即 0125

3. 十进制 85 → 十六进制

85 不断除以 16,记录余数:

85 ÷ 16 = 5   余 5  (十六进制最低位)  
5 ÷ 16 = 0    余 5  (十六进制最高位)  

把余数 倒序排列,得到十六进制:55,即 0x55

简单总结:

  • 其他进制转十进制:按位权展开(数字×进制^位序 求和 )。
  • 十进制转其他进制:除进制取余,余数倒序排列。

在 Java 里,二进制字面量以 0b(或 0B)开头,八进制以 0 开头,十六进制以 0x(或 0X)开头

7.类型转换

在这里插入图片描述

7.1隐式转换

  • 赋值过程中,小数据类型值或变量可以直接赋值给大类型变量,类型会自动进行转换
  • byte、short、char类型的数据在进行算术运算时,会先自动提升为int,然后再进行运算
  • 其他类型相互运算时,表示范围小的会自动提升为范围大的,然后再运算

7.2显示转换

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

固定格式: 数据类型 变量名 = (目标数据类型)(数值或变量或表达式);
在这里插入图片描述
byte 类型运算时会自动提升为 int 类型,运算结果是 int,若要赋值给 byte,需显式强制类型转换(如 byte b3 = (byte)(3 + 4); )

7.3特殊情况

在这里插入图片描述

  • 规则依据:Java 中,当用 byte 类型变量直接接收 int 型字面值常量,若常量值在 byte 取值范围(-128 ~ 127 )内,会触发隐式类型转换(自动窄化) ,编译器自动处理,所以 byte b = 10; 能编译通过,10 在 byte 可表示范围里。
  • 若超范围:比如 byte b = 128; ,因 128 超出 byte 正数最大值 127 ,编译会报错,需显式强转(如 byte b = (byte)128; ,但结果会因溢出出现意外值 )。

git的相关命令:

(1)将普通文件夹初始化为git仓库的命令:git init
(2)连接本地仓库和远程仓库的命git remote add origin 远程仓库地址
(3)将这个文件放到暂存区的命令 git add 文件
(4)添加提交日志的命令git commit -m " "
(5)将刚刚的提交推送到远程仓库的命令 git push-u origin "master"
(6)查看当前git仓库的状态的命令 git status
(7)将远程仓库的内容拉取下来的命令 git pull
(8)查看远程仓库的地址的命令 git remote-v
(9)克隆到本地的命令git clone 远程仓库地址
(10)拉取远程仓库内容的命令 git pull


网站公告

今日签到

点亮在社区的每一天
去签到