【JAVA】Java中的类型转换

article/2025/9/29 10:08:39

目录

1.自动类型转换(隐式转换,小类型转换为大类型)

2.强制类型转换(显示转换,大类型转换为小类型)

3.小于4字节的类型转换问题

3.1 byte<->int

3.2 char<->int

3.3 String<->int


Java作为一个强类型的编程语言,当不同类型之间的变量相互赋值的时候,会有较严格的校验。在Java中,当参与运算不一致时,就会进行类型转换。Java中类型转换主要分为两类:自动类型转换(隐式)强制类型转换(显示)

Java数据类型的数据范围:

补充:计算机存储数据都是二进制的01整型,float和double不是按照二进制计算的,而是按照科学计数法来模拟存储数据的。

  • float转换为二进制,大概是2^128数量级的数字
  • double转换为二进制,大概是2^300数量级的数字

注意:只有有关系的类型之间才能转换,毫无关系的类型不能转换

boolean<->int毫无关系,不能发送互相转换

1.自动类型转换(隐式转换,小类型转换为大类型)

自动类型转换:代码不需要经过任何处理,在代码编译时,编译器会自动进行处理

特点:数据范围小的转为数据范围大的时会自动进行

两种情况:

a.不参与运算时,直接赋值

        int a=3;long b=a;//int->long

b.小类型与大类型共同参与运算时,小类型先提升为大类型然后参与运算

int a=10;
double b=2.0;
double result=a/b;//int->double然后再double/double

2.强制类型转换(显示转换,大类型转换为小类型)

强制类型转换:当进行操作时,代码需要经过一定的格式处理,不能自动完成。

特点:数据范围大->数据范围小(可能出现精度丢失,丢掉小数点或者数据溢出)

//示例1
long a=10;
int b=(int)a;//long->int需要强制转换//示例2
long a=100;
float b=a;//这个属于小类型转换为大类型的隐式提升

3.小于4字节的类型转换问题

3.1 byte<->int

1.直接赋值

若整型字面量在byte数值的保存范围内,可以直接赋值给byte不需要转换

byte a=120;//可以直接赋值,不需要强转

若整型字面量在byte数值的保存范围之外,需要强制类型转换

byte b=(byte)130;//130超出了byte的保存范围,需要强制类型转换

若拿整型变量给byte赋值,无论这个变量保存的数值在不在byte的范围之内,都需要强转

int a=10;
byte c=(byte)a;//a是int变量,编译器编译时无法确定数值,因此都需要强转

2.byte变量的运算

CPU在内存进行读写时,都是按照4字节来进行读写,因此小于4字节的数据类型byte,char,short参与数学运算时,统一提升为int之后再参与运算。

byte a=10;
byte b=20;
byte c=a+b;//byte+byte=>int+int=int

final:声明常量。final修饰的变量成为常量,常量一旦赋值后,值不能改。

被final修饰的变量,除了值定义后不能改,存储在计算机内部时,类型也不能转换

此时a和b参与运算时,被final修饰,因此CPU读写时就是按照原来的byte类型进行读写。

final byte a=10;
final byte b=20;
byte c=a+b;//不再报错了

3.2 char<->int

计算机存储任何数据最终都是01二进制整数串,字符在存储时,就需要有规则将每个字符唯一的映射成一个整型数字。

这里介绍一个ASCII码编码规则:

ASCII 码规定使用一个字节来存储英文字符,最前面的一位统一规定为0,不同的字符由后面的7位确定, 所以ASCII码一共规定了128个字符的编码,其中包括:

  • 96个可打印字符
    • 大写英文字符和小写英文字符
    • 阿拉伯数字
    • 标点符号
    • 特殊符号
  • 32个不可打印的控制符号

 1.char->int按照编码规则自动转换

char a='a';
char b='A';
char c='铭';
int num1=a;
int num2=b;
int num3=c;

2. int->char 强制类型转换

int数值必须在char的范围内[2^15]的数字才能有对应的字符对应。

123456已经超过了char的范围,所以没有对应的字符。

 思考:编程实现小写字符转为大写字符

char a='a';
char b=(char)(a-32);//结果为A

3.3 String<->int

1.int->String

a.直接拼接

Java中任意类型只要和字符出对象+,统统都转为字符串拼接操作

 加上括号,先进行int+int=int操作,再进行拼接

 2.任意类型->String

使用String提供的方法valueOf方法

 3.String->int

调用Integer.parseInt(str);//将字符转str转为int

前提:这个str字符串变量必须由纯数字组成的,不能包含其它数据,字母都不行,否则会转换出错

不由纯数字组成时,会报错

 

 

 


http://chatgpt.dhexx.cn/article/8Pat4oFd.shtml

相关文章

Java 类型转换

一、自动类型转换(隐式类型转换) 整型、实型(常量)、字符型数据可以混合运算。不同类型的数据先转化为同类型再进行运算 自动转换按从低级到高级顺序: char ↓ Byte→short→int→long---›float→double 自动转换有以下规律&#xff1a; 小的类型自动转化为大的类型 整数…

java类型转换

文章目录 1、什么是类型转换&#xff1f; 2、掌握常见数据类型的范围大小 3、自动类型转换 3.1 int转换为double 3.2 char转换为int类型 4、强制类型转换 4.1、强制类型转换格式 5、注意事项 1、什么是类型转换&#xff1f; 在java中类型转换是一个非常重要的知识点。因…

java中常见类型的转换以及方法总结

1.char、String、int类型之间的转换 1.1 char和String的区别 char是表示的是字符&#xff0c;定义的时候用单引号&#xff0c;只能存储一个字符。例如; char‘d’. String表示的是字符串&#xff0c;定义的时候用双引号&#xff0c;可以存储一个或者多个字符。例如&#xff1…

CentOs 无法启动网络,用ip addr看不到IP地址

1.无法启动网卡&#xff0c;启动报file exist 原因1&#xff1a;可能是别的网络与网络冲突 解决&#xff1a;关闭NetworkManager 原因2&#xff1a;etc/sysconfig/network-scripts下的ifcfg开头的文件有内容有冲突 解决&#xff1a;删除一些对应文件 如果还是不行&#xf…

ip命令的使用方式(临时设定:ip addr ,ifconfig)

对外开放&#xff0c;能和主机直接进行交流的设备叫做网卡 内部交流&#xff0c;系统内部服务与服务之间的接口&#xff0c;为回环接口 lo##回环设备 [rootlocalhost 桌面]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default…

ifconfig、ip addr、ip route用法总结

最近使用haproxykeepalived 负载均衡&#xff0c;发现虚拟IP有问题&#xff0c;配置文件里配的VIP是.4.143 ,但是执行 ip a 发现还有一个虚拟IP.4.134&#xff1b;应该是以前配置文件keepalived.conf里设置过VIP .4.134 以前的VIP一直没有消除&#xff0c;手动清除VIP&#xff…

Centos7中查看IP命令:IP addr

开机&#xff0c;输入用户名root和上篇文章中设置的密码&#xff0c;&#xff08;密码在Linux中是看不见的&#xff0c;但确实已经输入了&#xff09;&#xff0c;回车确定&#xff0c;显示时间信息&#xff08;没有设置时间&#xff09;&#xff0c;表示登陆成功。 在Centos7中…

openEuler 知:ip addr 查不到 ip 的解决方法

通过 VMware Workstation 安装 openEuler 虚拟机后&#xff0c;通过 ip addr 查不到 ip&#xff0c;如下所示&#xff1a; 备注&#xff1a;默认没有安装 ifconfig 命令。 解决方法&#xff1a; 进入 /etc/sysconfig/network-scripts 目录&#xff0c;在文件路径下找到 ifcf…

【Linux命令】ifconfig、route、ip route、ip addr、 ip link 用法 一

文章目录 1. 前言2. ifconfig2.1 配置地址2.2 查看功能2.2.1 ifconfig 查看不含禁用的网卡2.2.2 ifconfig -a 查看含禁用的网卡2.2.3 ip a 2.3 启用、禁用网卡2.3.1 ifconfig eth1 up、 ifconfig eth1 down2.3.2 ifdown eth0、ifip eth0 2.4 扫描eth0接口的数据2.5 网卡别名2.5…

docker exec -it tomcat01 ip addr

在学习狂神的docker内容网络学习这一步的时候&#xff0c;按照步骤启动tomcat镜像&#xff0c;但是执行ip addr 之后发现下面问题&#xff0c; 经过分析这说明我们下载的Tomcat镜像是精简版的&#xff0c;利用这个镜像去打开一个容器的时候发现没有ip addr这个命令。所以到导致…

ip addr 和 ifconfig

你知道怎么查看 IP 地址吗&#xff1f;当面试听到这个问题的时候&#xff0c;面试者常常会觉得走错了房间。我面试的是技术岗位啊&#xff0c;怎么问这么简单的问题&#xff1f;的确&#xff0c;即便没有专业学过计算机的人&#xff0c;只要倒腾过电脑&#xff0c;重装过系统&a…

ipconfig 和ip addr的区别

今天在玩DNS解析记录的追踪。 nslookup 查了一下我们业务域名对应的ip。 得到一个完全不知道的ip。 此时我登录到应用服务器上&#xff0c;使用ip a查看了该服务器的网络配置。并没有这个ip。 百思不得其解。 搞了一天终于明白了&#xff0c;一共两个问题&#xff1a; 1、…

ifconfig 与 ip addr 命令详解 - 学习/实践

1.应用场景 主要用于了解学习&#xff0c;掌握使用IP地址相关知识&#xff0c; 如何查看IP信息&#xff0c;以及各个参数代表的含义 2.学习/操作 1.文档阅读 网络协议概论 | Laravel 学院 - 不定期分享之 ifconfig 与 ip addr 命令详解 2.整理输出 2.1 如何查看机器的 IP 地址…

IP addr命令

IP addr命令 我们都知道Windows上查看IP地址是ipconfig, Linux上是ifconfig&#xff0c;但是Linux上还有一个命令叫ip addr可以查看IP地址。 如上图所示命令显示了机器上的所有网卡&#xff0c;大部分网卡都有一个IP地址&#xff0c;也存在特殊情况没有IP地址。这里IP地址是19…

Linux命令ip addr详解

Linux命令ip addr详解 熟悉Linux操作系统的同学对于ip addr命令应该不陌生&#xff0c;知道它是用来查看本地IP地址的&#xff0c;除了IP地址&#xff0c;其它额外的信息有必要了解一下。 roottest:~# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue s…

python中ipaddr库用法详解

首先安装ipaddr库 pip install ipaddr 判断一个IP地址是否在某个网段内&#xff1a; import ipaddrip ipaddr.IPv4Address("192.168.1.1") ip_net ipaddr.IPv4Network("192.168.1.0/23")if ip in ip_net:print("True") else:print("Fal…

ip addr命令介绍

Windows上查看IP地址是ipconfig命令。 Linux上查看IP地址是ifconfig命令。 Linux上还有一个ip addr命令可以查看IP地址。 博主使用标准版ISO镜像文件安装的CentOS7虚拟机没有ifconfig命令&#xff0c;但有ip addr命令。 其实通过这几个命令查到的IP都是私网IP&#xff0c;…

linux删除ip地址的命令

linux删除ip地址的命令是“ip addr”&#xff0c;该命令用于查看并操作ip地址&#xff1b;想要删除指定ip地址可使用“ip addr del ip地址 dev 接口”语句&#xff0c;清空指定网卡的所有ip可使用“ip addr flush dev 接口”语句。 1、删除指定IP ip addr del ip地址 dev 接口…

ip addr命令解析

概述 ip addr命令的作用是在Linux系统上查询ip地址。 这个系统上的两个接口: 环回&#xff08;lo&#xff09;和网络&#xff08;eth0&#xff09;。 环回接口&#xff0c;常被分配到127.0.0.1&#xff0c;用于本机通信&#xff0c;经过内核处理后直接返回&#xff0c;不会在任…

MQTT协议详解

源视频地址 1.MQTT协议概念: MQTT是基于Publish/Subscribe(发布订阅)模式的物联网通信协议 特点: 简单易实现支持Qos(服务质量)报文小 MQTT协议构建于TCP/IP协议之上 发布订阅模式: 客户端只需要订阅这个主题&#xff0c;当有其他客户端向这个服务端发布消息时&#xff0c;这个…