栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java数据类型与变量

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java数据类型与变量

一、变量

在Java语言中,在定义时要给初始值,若没有初始值,则编译期间会报错

不同于C语言,不定义初始值,编译时会产生随机值。

​​​​​​​

在Java中,int除以int,结果会直接舍弃小数部分。

使用double类型来计算可以得到小数部分

二、类型转换:

在Java语言当中,当参与运算数据类型不一致时,就会进行类型转换,Java中的数据类型转换分为两类:自动类型转换【隐式】和 强制类型转换【显式】

2.1、自动类型转换【隐式】

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

特点:数据范围小的转换位数据范围大的

int a = 100;
long b = 10L;

a = b;
//a是范围小的数据,b是范围大的数据;
//将 b 的值付给 a 时:
//会有数据丢失,不安全。
b = a;
//a是范围小的数据,b是范围大的数据;
//将 a 的值付给 b 时:
//编译器会自动将a提升为long类型,然后赋值。


float f = 3.14F;
double d = 5.12;
d = f;
//编译器会将f转换成double类型数据,然后赋值
f = d;
//大范围数据赋值给小范围数据,会有数据丢失

byte b1 = 100;
//编译通过,100没有超过byte类型的取值范围
byte b2 = 200;
//编译失败,200已经超过byte的取值范围,会有数据丢失
    
2.2、强制类型转换【显式】

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

特点:数据范围大的数据赋值给数据小的数据

int a = 10;
long b = 100L;
b = a;
//int -> long:小数据赋值给大数据:隐式转换
a = (int)b;
//long -> int:大数据转换成小数据:需要强制类型转换

float f = 3.14f;
double d = 5.12;
d = f;
//float -> double:小数据赋值给大数据:隐式转换
f = (float)d;
//double -> float:大数据赋值给小数据:需要强制类型转换

byte b1 = 100
//100默认为int;没有超过byte范围:隐式转换
byte b2 = (byte)257
//257默认为int,超过byte取值范围:强制类型转换

boolean flag = true;
a = flag;
flag = a;
//均编译失败:类型不兼容

总结:1、不同数字类型的变量之间赋值,范围小的数据类型隐式转换成范围大的数据类型;

2、范围大的数据类型赋值给范围小的数据类型,需要强制类型转换,但是可能精度丢失;

3、类型转换不一定会成功,不相干的数据类型不能相互转换;

4、将一个字面值常量进行赋值的时候,Java会自动针对数据范围进行检查。

三、类型提升:

不同的数据类型之间进行运算的时候,数据类型小的会被提升到数据类型大的

int a = 10;
long b = 20;
int c = a + b;
//编译出错:a + b ——> int + long ——> long + long ——> long数值赋给int时会丢失数据
long d = a + b;
//编译成功:a + b ——> int + long ——> long + long ——> long数值赋给long不会报错

byte a = 10;
byte b = 20;
byte c = a + b;
//编译报错:a和b相加时,会将a和b都提升为 int,计算结果也是int,而c是byte类型,因此报错

//计算机的CPU按照4个字节从内存中读取数据,
//因此像byte,short这样的低于4个字节的,会先将其为int,然后参与运算

//正确写法:
byte a = 10;
byte b = 20;
byte c = (byte)( a + b );
   四、字符串类型:
public static void main(String[] args) {
   String s1 = "hello";
   String s2 = " world";
   System.out.println(s1);
   System.out.println(s2);
   System.out.println(s1+s2); // s1+s2表示:将s1和s2进行拼接
}
4.1、int 转换成 string:
int a = 10;

//方法一:
String str1 = num+"";

//方法二:
String str2 = String.valueOf(num); 
4.2、string 转换成 int
String str = "100";

int num = Integer.parseInt(str)
    

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/760321.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号