Java变量及其数据类型以及转换_6

变量

  • 变量基本描述
变量是内存中的一块存储区域,用于保存数据
每个变量都有一个 数据类型,决定了变量可以存储的数据种类和范围
变量必须需要通过声明来定义,然后才能使用
变量的三要素:数据类型、变量名、值
变量命名规则:
1. 变量名必须以字母、下划线(_)或美元符号($)开头
2. 变量名不能以数字开头
3.变量名不能包含空格或特殊字符(如 @# 等)
4. 变量名不能是 Java 的关键字(如 intclass 等)
5. 变量名应遵循 驼峰命名法
  • 变量的作用域
作用域 声明方式
局部变量(Local Variable) 1. 在方法、构造函数或代码块中声明的变量
2. 作用域仅限于声明它的方法、构造函数或代码块
3. 必须在使用前初始化
实例变量(Instance Variable) 1. 在类中声明,但在方法、构造函数或代码块之外
2. 作用域是整个类
3. 如果不初始化,会有默认值
静态变量(Static Variable) 1. 使用 static 关键字声明的变量
2. 作用域是整个类,且所有实例共享同一个静态变量
3. 如果不初始化,会有默认值

变量的数据类型

  • 基本数据类型
数据类型 大小 默认值 描述
byte 字节 1 字节 0 8 位有符号整数(-128 到 127)
short 2 字节 0 16 位有符号整数(-32,768 到 32,767)
int 4 字节 0 32 位有符号整数(-2^31 到 2^31-1)默认的整数类型
long 8 字节 0L 64 位有符号整数(-2^63 到 2^63-1)
float 4 字节 0.0f 32 位单精度浮点数(约 6-7 位有效数字)
double 8 字节 0.0d 64 位双精度浮点数(约 15 位有效数字)默认的浮点类型
有效数字 是指一个数值中从第一个非零数字开始,到最后一位数字的所有数字
char 字符 2 字节 '\u0000' 16 位 Unicode 字符(0 到 65,535)
boolean 1 位 false 布尔值(true 或 false)
  • 引用数据类型
引用数据类型特点 1. 引用数据类型的变量存储的是对象在内存中的地址,而不是对象本身
2. 如果引用数据类型的变量未初始化,其默认值为 null
引用数据类型的分类 主要分为三类:
1. 类(Class):例如 StringInteger
2. 数组(Array):例如 int[]String[]
3. 接口(Interface):例如 ListMap

基本数据类型转换

转换类型 详细信息
自动类型转换(隐式转换) 当小范围数据类型赋值给大范围数据类型时,Java 会自动进行类型转换,无需显式操作
从小范围类型到大范围类型的转换是安全的,不会丢失数据
转换方向:
byte -> short -> int -> long -> float -> double
char -> int -> long -> float -> double
强制类型转换(显式转换) 当大范围数据类型赋值给小范围数据类型时,需要显式进行强制类型转换
强制类型转换可能会导致数据丢失或精度降低
目标类型 变量名 = (目标类型) 值;
字符类型转换 char 的本质是一个无符号整数,因此可以直接与整数类型进行转换
char类型可以自动转换为 int、long、float 或 double
将 int、long、float或 double转换为 char 时,需要强制类型转换
表达式中的类型转换 在表达式中,Java 会自动将操作数转换为较大的数据类型,然后再进行计算
例如:int 和 double相加时,int 会自动转换为 double
如果表达式中包含多种数据类型,最终结果的数据类型是最大的数据类型
转换的方向遵循 byte -> short -> int -> long -> float -> double
关于类型转换的一些知识点
在给byte、short、char赋整数值的时候,如果为int类型具体值,则判断范围,如果为变量则直接判断类型
(byte、short)和char类型之间不能自动转换
byte、short、char之间可以进行计算,都会转成int进行计算
强制转换只针对最近的操作数

基本数据类型和String的转换

  1. 基本数据类型 → String
  • 使用 String.valueOf(),String.valueOf() 是一个静态方法,可以将任何基本数据类型转换为 String
int num = 123;
double pi = 3.14;
char ch = 'A';

String str1 = String.valueOf(num); // 将 int 转换为 String
String str2 = String.valueOf(pi); // 将 double 转换为 String
String str3 = String.valueOf(ch); // 将 char 转换为 String

System.out.println(str1); // 输出 "123"
System.out.println(str2); // 输出 "3.14"
System.out.println(str3); // 输出 "A"
  • 使用+运算符

通过将基本数据类型与空字符串 "" 相加,可以将其隐式转换为 String

int num = 456;
double pi = 3.14159;
char ch = 'B';

String str1 = num + ""; // 将 int 转换为 String
String str2 = pi + ""; // 将 double 转换为 String
String str3 = ch + ""; // 将 char 转换为 String

System.out.println(str1); // 输出 "456"
System.out.println(str2); // 输出 "3.14159"
System.out.println(str3); // 输出 "B"

System.out.println(100+1+"abc");// 输出 "101abc"
System.out.println("abc"+100+1);// 输出 "abc1001"
  • 使用 toString() 方法(仅适用于包装类)对于基本数据类型的包装类(如 Integer、Double 等),可以直接调用 toString() 方法
Integer num = 789;
Double pi = 3.1415926;

String str1 = num.toString(); // 将 Integer 转换为 String
String str2 = pi.toString(); // 将 Double 转换为 String

System.out.println(str1); // 输出 "789"
System.out.println(str2); // 输出 "3.1415926"
  1. String → 基本数据类型
  • 将 String 类型转换为基本数据类型,通常需要使用包装类的静态方法。每个基本数据类型都有对应的包装类,提供了 parseXxx() 方法用于将 String 转换为基本数据类型。
String str1 = "123";
String str2 = "3.14";
String str3 = "true";

int num = Integer.parseInt(str1); // 将 String 转换为 int
double pi = Double.parseDouble(str2); // 将 String 转换为 double
boolean flag = Boolean.parseBoolean(str3); // 将 String 转换为 boolean

System.out.println(num); // 输出 123
System.out.println(pi); // 输出 3.14
System.out.println(flag); // 输出 true
  • 使用 valueOf() 方法(返回包装类对象。valueOf() 方法将 String 转换为包装类对象,然后可以自动拆箱为基本数据类型。
String str1 = "456";
String str2 = "2.718";

int num = Integer.valueOf(str1); // 将 String 转换为 Integer,然后自动拆箱为 int
double pi = Double.valueOf(str2); // 将 String 转换为 Double,然后自动拆箱为 double

System.out.println(num); // 输出 456
System.out.println(pi); // 输出 2.718
  • 如果 String 无法转换为目标类型(例如包含非数字字符),会抛出 NumberFormatException。因此,通常需要捕获异常或进行校验
String str = "abc";

try {
    int num = Integer.parseInt(str);
    System.out.println(num);
} catch (NumberFormatException e) {
    System.out.println("转换失败:字符串不是有效的数字");
}
  • String 转 char:使用 charAt() 方法
posted @   QAQ001  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示