JAVA类型转换及变量详解

article/2025/9/29 10:01:28

类型转换

由于java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。

byte(1个字节),short(2个字节),char(2个字节)----->int(4个字节)---->long(8个字节)---->float(4个字节)---->double(8个字节)(小数的优先级一定大于整数)

低-----------------------------------------------------------------高

运算中,不同类型的数据先转化为同一类型,然后进行运算。

类型转换相关代码如下:

public class D {public static void main(String[] args) {int i=128;byte a=(byte) i;/*Byte,按住ctrl,点击Byte,即可进入Byte的详情界面,可知Byte的最大值为127,这里赋值的是128,即存在内存溢出的情况。*///强制转换的格式如下所示:类型 变量=(类型)变量名  高--低需要强制转换//自动转换什么也不需要写,按正常转换即可  低--高自动转换double b=i;//自动转换System.out.println(i);System.out.println(a);System.out.println(b);/*注意点:1.不能对布尔值进行转换,布尔值是按位计算的,与按字节运算的不相干。2.不能把对象类型转换为不相干的类型。3.在把高容量转换到低容量的时候,强制转换*/System.out.println((int)23.7);//double型,双精度,比int容量高,强制转换System.out.println((int)-45.89f);//float型,单精度,比int优先级高,强制转换// 4.转换的时候可能存在内存溢出,或者精度问题char c='a';int d=c+1;//低转高,自动进行转换。System.out.println(d);System.out.println((char) d);//int型转变为char类型,高转低,强制转换。}
}

运行界面如下:

其中Byte的详请界面如下所示: 

Byte,按住ctrl,点击Byte,即可进入Byte的详情界面,可知Byte的最大值为127,

基本数据类型之间的运算规则:

自动类型提升:

当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。

此时的容量大小指的是,表示数的范围的大和小,比如:float容量要大于long的容量

低转高自动转(byte、char、short-->int-->long-->float-->double  

特别的:当byte、char、short三种类型的变量做运算时,结果为int类型。

class Main {public static void main(String[] args) {int a=12;byte b=3;int c=a+b;//b为byte,转换为int,低转高,自动转换。System.out.println(c);}
}

char和short和为int型。 

class Main {public static void main(String[] args) {short a=12;char b='3';int c=a+b;System.out.println(c);}
}

 char和byte和为int型。

class Main {public static void main(String[] args) {byte a=12;char b='3';int c=a+b;System.out.println(c);}
}

强制类型提升:自动类型提升运算的逆运算。高转低需要强制转换。

注意点:强制类型转换,可能导致精度损失。

class Main {public static void main(String[] args) {double d1=12.0;int i1=(int)d1;System.out.println(i1);}
}
class Main {public static void main(String[] args) {int a=12;byte b=3;byte c=(byte)  ((byte)a+b);System.out.println(c);}
}
class Main {public static void main(String[] args) {double d1=12.9;int i1=(int)d1;  //截断操作,损失精度System.out.println(i1);}
}

 编码情况:

class Main {public static void main(String[] args) {//整型常量,默认类型h是int型//浮点型常量,默认类型是double型。long  a=123555554444444l;//数字小的时候可以不加l,数字过大必须加l。float b=12.5f;  //必须加1fSystem.out.println(a);}
}

 内存溢出相关代码详解:

public class E {public static void main(String[] args) {//操作比较大的数的时候,注意溢出问题//JDK新特性,数字之间可以用下划线分割int money=10_0000_0000;int years=20;int total=money*years;long   total1=money*years;//这两个乘积值默认为int,在计算出结果后才去转换已经迟了//所以要在乘积之前就进行转换。long   total2=money*(long)years;long   total3=(long)money*years;System.out.println(money);System.out.println(total); //-1474836480,计算的时候溢出了。System.out.println(total1);//-1474836480,计算的时候溢出了。System.out.println(total2);System.out.println(total3);}
}

运行界面如下:

 变量:

变量的概念:

内存中的一个存储区域

该区域的数据可以在同一类型范围内不断变化

变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值

变量都定义在其作用域内,在作用域内,它是有效的。出了作用域就失效了。

不可以在同一个作用域内定义同名的变量(可以通过反证法进行思考,即不可以为可以)

变量是什么:就是可以变化的量

java是一种强类型语言,每个变量都必须声明其类型

java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域

格式如下所示:

type   varName  [=value]

//数据类型      变量名=值;可以使用逗号隔开来声明多个同类型变量(一般不建议这种使用)

注意事项:

1.每个变量都有类型,类型可以是基本类型,也可以是引用类型

2.变量名必须是合法的标识符(变量命名为开头第一个单词的首字母小写,之后每个单词的首字母大写)。

3.变量声明是一条完整的语句,因此每一个声明都必须以分号结束。

变量的命名规范:

所有变量、方法、类名:见名知意

类成员变量:首字母小写和驼峰原则,即第一个单词首字母小写,后面的单词首字母大写,如lastName

局部变量:首字母小写和驼峰原则,即第一个单词首字母小写,后面的单词首字母大写

常量:大写字母和下划线,即MAX_VALUE

类名:首字母大写和驼峰原则:每个单词首字母大写,其他小写,即GoodMan

方法名:首字母小写和驼峰原则,即第一个单词首字母小写,后面的单词首字母大写。即runRun()

变量的相关代码详解如下:

public class F {public static void main(String[] args) {// int a,b,c;  //可以使用逗号隔开来声明多个同类型变量(一般不建议这种使用)//int a=1,b=2,c=3;  //这种方法也不常用,尽量写成三行,要注重程序的可读性。int a=1;int b=2;int c=3;String  name="rgf"; //每一个声明都必须以分号结束,而且是英文的分号。char x='X';double pi=3.14;System.out.println(a);System.out.println(x);System.out.println(pi);}
}

运行界面如下: 

变量作用域:

类变量(static关键字后面的)

实例变量(写在类中间)

局部变量(写在方法里面)

变量实例代码详解:

public class G {//属性:变量//类变量  staticstatic double salary=2500;/*实例变量:方法外面,类里面,从属于对象,如果不自行初始化,这个类型的默认值一般为0(代表整数)或者0.0(代表小数),布尔值的默认值是false,除了基本类型,其余的默认值都是null。*/String name;//默认值为nullint age;//默认值为0//main方法,在类里面public static void main(String[] args) {//局部变量;必须声明和初始化值int i=10;//只在第二个大括号内有用。//================================================//调用实例变量的方法。G g = new G();//变量类型  变量名字=new G(),其中g就叫对象。new G();/*如何在这个的基础上出现以上的效果,可以通过在括号后面加.var即可也可以通过alt+enter实现这种功能。*/System.out.println(g.age);System.out.println(g.name);//类变量  static关键字,获得它们的属性,可以直接用System.out.println(salary);}//其他方法,add方法//public void add(){}
}

运行界面如下:

 常量:

常量:初始化后不能再改变值,不会变动的值

所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。

final 常量名=值;

final double PI=3.14;

常量名一般使用大写字符。

常量的代码详解:

public class H {//final为修饰符,不存在先后顺序static final double PI=3.14; //static定义为静态的常量public static void main(String[] args) {System.out.println(PI);}
}

运行界面如下:


http://chatgpt.dhexx.cn/article/OL02BQbu.shtml

相关文章

Java类型转换(自动类型转换+强制类型转换)

一、 自动类型转换(隐式类型转换) 整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。自动转换从低级到高级。 自动转换有以下规律: 1、小的类型自动转化为大的类型 2、整数类型可以自动转化为浮点类型,可能会产生舍入误…

Java的类型转换

需要类型转换的原因:因为Java是强类型的语言,所以有时可能要进行跨类型的运算,这就需要先进行类型转换,再进行运算。 类型转换分为: 强制类型转换(由高-->低时使用),自动类型转换/ 隐式类型转换(由低-->高时使用…

java中的类型转换

java的基本数据类型 1.数值型:byte,short,int,long,float,double 2.字符型:char 3.布尔型:boolean 数据类型占据字节数byte1个字节short2个字节int4个字节long8个字节float4个字节…

Java中各种类型的转化

目录 一.Integer和int之间的类型转化 1.自动装箱 2.构造器方法 3.Integer.valueOf(int i) 二.Integer和String之间的类型转换 1.String转换为Integer 1.Integer.parseInt(String s) ​编辑 2.Integer.valueOf(String s) 2.Integer转换为String 1.Integer.toString() …

【JAVA】Java中的类型转换

目录 1.自动类型转换&#xff08;隐式转换&#xff0c;小类型转换为大类型&#xff09; 2.强制类型转换&#xff08;显示转换&#xff0c;大类型转换为小类型&#xff09; 3.小于4字节的类型转换问题 3.1 byte<->int 3.2 char<->int 3.3 String<->int …

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…