Java - 数据类型

Java中的数据类型

1.变量和类型

变量指的是程序运行时可变的量,是开辟了一块内存空间来保存数据

类型是对变量的种类进行划分,不同类型的变量具有不同的特性

2.Java中的数据类型

 

2.1 整型

1.整型变量(int)

Java中,一个int变量为4字节(4byte)与操作系统和JVM版本都无关

基本语法格式

int 变量名 = 初始值;
//定义一个整型变量
int num = 10;
System.out.println(num);
//以下代码可以展示整形数据范围
System.out.println(Integer.MAX_VALUE);//int的最大值
System.out.println(Integer.MIN_VALUE);//int的最小值

整形溢出

int a = Integer.MAX_VALUE;
a = a + 1;
System.out.println(a);

此时a + 1 超出了int最大范围,就会出现溢出情情况,我们就需要更换一个更大的数据类型long

 2.长整型变量(long)

Java中,一个long变量为8字节(4byte)

long num = 10L;//定义长整型变量时,初始值写作10l
System.out.println(num);

2.2 浮点型

1.双精度浮点型变量(double)

Java中,一个double变量为8字节(4byte)

double num = 1.0;
System.out.println(num);
int a = 1;
int b = 2;
System.out.println(a / b); //执行结果为0

整型 / 整型 = 整型 (会忽略小数部分)

若想得到0.5,需要使用double类型计算

double a = 1;
double b = 2;
System.out.println(a / b); //执行结果为0.5
double a = 1.1;
double b = 1.1;
System.out.println(a * b);

 实际中还会遇到这样的情况,是因为计算机的内部只能储存一大堆的0和1,浮点数在计算机内部上实际是通过整数模拟的

有以下两种解决方案:1.仍然使用double但我们只看小数点后6位 2.使用BigDecimal类来代替double使用

2.单精度浮点型变量(float)

Java中,一个float变量占4字节(4byte)

float num = 1.0f;//写作1.0F也可以

2.3 字符型(char)

字符型变量统一占2 byte, Java采用UTF-8

char 变量名 = 初始值;
​
char ch = 'A';

2.4 布尔型(boolean)

boolean只有两个值,表示真就是true 表示假就是false

Java中boolean不能和int相互转换,不存在1表示true,0表示false

2.5 字符串变量(String)

String 变量名 = "初始值";

Java中使用"" + 若干字符表示字符串字面量

字符串中的一些特殊字符需要转移输出,告诉编译器对这个字符不需要做特殊处理

3.不同数据类型转换

只有相同数据类型之间可以进行转换

1.小类型->大类型(自动提升)

2.大类型->小类型(强转)

int a = 10;
long b = 20;
a = b;//会报错,a是一个int类型,b是一个long类型,将一个long类型的值赋值给int类型时可能会导致整型变量放不下b的值
int a = 10;
long b = 20;
a = (int) b;//强制转换,可能会导致精度丢失(数据溢出或者数据部分丢失)
int a = 10;
long b =20;
System.out.println(a + b);//大类型和小类型进行数学运算时会自动提升->long + long

int <->long

int a = Integer.MAX_VALUE;
long b = a + 1;
System.out.println(b);

 

此时先进行的是a+1 导致已经移除了,把一个溢出的值被b接受了

int <->char

char a = 'a';
int b = a;
char c = 'A';
int d = c;
System.out.println(b);
System.out.println(d);

 char转换为int 自动提升,按照Unicode编码将'a'转为int

int<->String

int num = 10;
//直接使用String对象+
String str1 = " " + num;
//使用String的valueOf方法
String str2 = String.valueOf(num);

String->int

String str = "123";
//调用int包装类Integer.parseInt()方法
int a = Integer.parseInt(str);

在Java中,所有数据类型都有默认值,定义之后没有赋值,会有默认值(只存在与类变量中,方法中的局部变量不存在默认值)

public class DefaultValue {
    int a;
    double b;
    char c;
    boolean d;
    String str;
​
    public static void main(String[] args) {
        System.out.println(new DefaultValue().a);
        System.out.println(new DefaultValue().b);
        System.out.println(new DefaultValue().c);
        System.out.println(new DefaultValue().d);
        System.out.println(new DefaultValue().str);
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值