java c 基本类型_Java 基本数据类型

Java 语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

b0c07c6560f954acd124f9acad7c815c.png

整数的默认类型是 int。

定义 long 数据时,必须加后缀l或L。

在定义 float 类型时必须在数字后面跟上 F 或者 f。

byte、int、long、和short都可以用十进制、16进制以及8进制的方式来表示。当使用常量的时候,前缀0表示8进制,而前缀0x代表16进制。

自动转换按从低到高的顺序转换。不同类型数据间的优先关系如下:

低--------------------------------------------->高

byte->short->char-> int -> long -> float -> double

合法转换

e3b0331759a1fa4418b548b1ed8030b6.png

虚箭头表示可能会损失精度。

强制转换的格式是在需要转型的数据前加上“( )”,然后在括号内加入需要转化的数据类型。Math.round()可以将浮点数舍入到最接近的整数,不过其返回值为long类型。

基本数据类型中,布尔类型boolean占有一个字节,由于其本身所代码的特殊含义,boolean类型与其他基本类型不能进行类型的转换(既不能进行自动类型的提升,也不能强制类型转换), 否则,将编译出错。

byte:

byte数据类型是8位、有符号的,以二进制补码表示的整数(四个整数型之一);

最小值是-128(-2^7);

最大值是127(2^7-1);

默认值是0;

byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一;

例子:byte a = 100,byte b = -50。

boolean:

boolean数据类型表示一位的信息;

只有两个取值:true和false;

这种类型只作为一种标志来记录true/false情况;

默认值是false;

例子:boolean one = true。

对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了。如:

public class PrimitiveTypeTest{

public static void main(String[] args){

System.out.println("基本类型: byte 二进制位数:" + Byte.SIZE);

System.out.println("包装类:java.lang.Byte");

System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);

System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);

System.out.println();

}

}

但是实际的运行并不顺利,报错说“编码GBK的不可映射字符”。学了点Python来着,好像要指定用 UTF-8 编码,于是就加了句# -*- coding: utf-8 -*-,然而果然还是不行啊,天真。百度了一下,大概是编译.java时,如果没有用-encoding utf-8这样指定编译的编码格式的话,javac.exe会按照我们系统默认的编码格式来编译。这样,如果你.java的编码和OS默认的编码不一样的话,当然会出现乱码。原来在VSCode是用utf-8编码保存的.java文件,编译时加上参数-encoding utf-8,就可以正确编译运行。或是在VSCode把.java文件改成用GBK编码来保存,也可以正确的编译运行。

运行结果:

9649e22c255797a27f8ffd5c77f352b5.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值