当前位置:网站首页 > Java基础 > 正文

Java数据基础题



目录

8种基本数据类型

类型转换

题目


JAVA的数据类型分为:基本数据类型和引用数据类型。本篇博客会介绍基本数据类型及其使用的注意事项,其中包括隐式类型转换、显示类型转换、编译器的常量优化,结尾会给出10道练习题。

8种基本数据类型

字节型

byte

一个字节

 -128 ~ 127

字符型

char

二个字节

 0 ~ 2^16-1

短整型

short二个字节-2^15 ~ 2^15-1

整型

int四个字节-2^31 ~ 2^31-1

长整型

long八个字节-2^63 ~ 2^63-1

单精度浮点型

float四个字节1. * 10^(-45) ~ 3. * 10^38  

双精度浮点型

doubleJava数据基础题

八个字节

4.*10^(-324) ~1.*10^308

布尔类型

boolean有争议

(为什么java的特点叫做“一次编译,到处运行”?因为上面的数据类型的字节大小不管是16位操作系统还是32位操作系统还是64位操作系统,都不变)

对于一个数据类型,给他一个超出其范围的值,报错

 

为什么int类型的数值范围是 -2^31 ~ 2^31 - 1?

int 有4个字节,一共32位,即int可以表示 2^32个数,正数分一半负数分一半,正数从1 ~ 2^31,负数从 -1 ~ -2^31,但是正数还要表示0,所以最大值减一即 0 ~ 2^31 - 1

(这只是简单的理解,具体参见原码反码补码)

为什么char占两个字节?为什么它没有负数?

1、JAVA使用unicode字符集,里面的各种字符都是两个字节,'a' 、'b'...

2、因为char的第一位不是符号位,所以char 的数据范围为:0 ~ 2 ^ 16-1

在JAVA中,整数值默认为int类型,小数默认double类型。

如:

 

那为什么可以进行 byte a = 1; 呢?

因为编译器进行了隐式类型转换:byte a = (byte) 1;

类型转换

隐式/显示类型转换的规则是比较数据范围而不是字节大小,即float可以转为long而long不能转为float。

1、byte/short/char 三种数据类型之间的任意两种进行运算时,都要用int或更大的类型类型接收

 

编译器在给 a 、b 赋值后将 a 、b 隐式(自动)转换为 int 类型

而当你进行强制类型转换后,如果值正常,报错消失,如果值太大,超过接收类型的范围,则进行绕圈圈行为。

 

但是 short a = 1 + 2;不会报错,

因为给变量赋值时,如果右侧全是常量,编译器也会进行隐式类型转换,这成为 “编译器的常量优化” ,如果右侧有变量参与,就不能进行这种优化

a++,a += 1;这两种是可以的,是因为+=、++是java语言中的运算符,Java编译器会对它特殊处理进行正确的编译。

 

2、当两种不一样的数据类型进行运算时,会将其中一个较小的数据类型转换成较大的数据类型进行运算

 

题目

1、基本数据类型在使用时不初始化能用吗?

答案 :不能

2、JAVA有无符号整型吗?

答案 :无

3、下列错误的选项为:()

 

答案:B

解析:编译器认为111是int,但是他已经超过了int的范围,所以错误

4、下列变量的定义中,正确的是()

 

答案 :C

解析 : 相信你会疑惑,为什么float a = 123L;是正确的,而long a = 3.14F;是错误的呢?因为float的取值范围大于long,long装不下float,所以 long a = 3.14F错误。

5、boolean能转换成其他的基本数据类型吗?

答案 :不能,boolean不能赋值给其他基本类型,同时其他基本类型不能赋值给boolean

6、JAVA的字符类型采用的是unicode字符集,每个unicode码占用____个比特位?

答案 :16,因为俩字节

7、下面哪个表达式是正确的?

 

答案 : C

解析 : 因为B和D没有指定变量,A把128给byte,太大了

8、下列代码第几行会出错?

 

答案 :7。因为k没有初始化就使用

9、下列语句中正确的是()。

 

答案 :A。

解析 :A.相当于1 + 49;

            B.中"2"是字符串,2 + "2" 被转换成字符串,不能赋值给int。

            C.单引号代表字符型,它只能有一个字符,'one'有三个。

            D.257 > 127

10、下列选项中,不属于Java基本数据类型的是

 

答案 : A

解析 : Integer是int的包装类,是引用数据类型,而不是基本数据类型

  • 上一篇: java基础37讲
  • 下一篇: java基础项目练手
  • 版权声明


    相关文章:

  • java基础37讲2025-04-29 21:50:06
  • 0基础java教学2025-04-29 21:50:06
  • java基础软件开发2025-04-29 21:50:06
  • java基础小问题2025-04-29 21:50:06
  • 安卓基础 java基础2025-04-29 21:50:06
  • java基础项目练手2025-04-29 21:50:06
  • java基础程序教程2025-04-29 21:50:06
  • Java基础为啥学不会2025-04-29 21:50:06
  • Java基础常量2025-04-29 21:50:06
  • java基础工程视频2025-04-29 21:50:06