首页 > 试题广场 >

以下程序段执行后将有多少个字节被写入到文件afile.txt

[单选题]
以下程序段执行后将有()个字节被写入到文件afile.txt中。
try {
    FileOutputStream fos = new FileOutputStream("afile.txt");
    DataOutputStream dos = new DataOutputStream(fos);
    dos.writeInt(3);
    dos.writeChar(1);
    dos.close();
    fos.close();
} catch (IOException e) {}

  • 3
  • 5
  • 6
  • 不确定,与软硬件环境相关
java采用的uincode编码,两个字节表示一个字符,因此 char型在java中占两个字节,而int型占四个字节,故总共占四个字节
发表于 2015-10-07 14:45:26 回复(19)
  1. byte 1个字节
  2. short  2个字节
  3. int 4个字节
  4. long 8个字节
  5. float 4个字节
  6. double 8个字节
  7. char 2个字节
  8. boolean 1个字节或4个字节,在java规范2中,如果boolean用于声明一个基本类型变量时占4个字节,如果声明一个数组类型的时候,那么数组中的每个元素占1个字节。
发表于 2020-06-04 15:40:34 回复(5)
这题的关键是DataOutputStream,这个是直接把字节码写入文件的输出流,和编码没有关系,因为根本没有转成字符。所以直接4+2就行了
发表于 2020-04-10 21:02:12 回复(2)

Java基本类型占用字节数

类型 占用字节
byte 1字节
short 2字节
int 4字节
long 8字节
char 2字节
float 4字节
double 8字节
boolean 4字节(数组里的单个布尔值占用1字节)

看到白起丶的回答,突然好奇boolean为什么如此奇怪,特地去了解学习了一下——

JVM规范中说:“Java语言表达式所操作的boolean值,在编译之后都使用Java虚拟机中的int数据类型来代替,而boolean数组将会被编码成Java虚拟机的byte数组。”

但Java虚拟机中没有任何供boolean值专用的字节码指令。这说明boolean作为八大基本类型之一,居然是语法糖实现!

最后,乔戈里的文章里的说法好:“看虚拟机实现是否按照规范来,所以1个字节、4个字节都是有可能的。”

参考文章:

编辑于 2020-07-02 20:06:50 回复(4)
C
一个整型数占用4个字节的空间。
一个char占用1个字节的空间。
但是存储一个整型和一个char类型时,为了更好的存储,会使用2个字节的空间存储char类型,最小存储空间。
4+2=6

发表于 2015-01-04 16:50:47 回复(4)
答案:C
java中int占4字节,char默认用GBK编码,占2字节
DataOutputStream 是对OutputStream的封装,可以写入java中的数据类型,按照其内存中的编码顺序写入
发表于 2015-01-10 14:26:27 回复(0)
Java采用的是Unicode编码,Unicode通常用两个字节表示一个字符,故Java中char类型占两个字节。
发表于 2019-07-29 16:27:15 回复(0)
      byte:1个字节
     short:2个字节
         int:4个字节
      long:8个字节
      char:2个字节
      float:4个字节
  double:8个字节
Boolean:有可能是1和4,Java规范中没有明确的规定。在数组中占1个字节,单独使用占4个字节。取决于JVM是否按照规范
发表于 2022-05-16 14:24:46 回复(0)
谁能想到了!!
记住了int 是4个字节,char是2个字节。
结果以为是writeInt(3)代表写3个int……周末犯蠢。
发表于 2020-05-09 17:43:19 回复(2)
  1. byte 1个字节
  2. short  2个字节
  3. int 4个字节
  4. long 8个字节
  5. float 4个字节
  6. double 8个字节
  7. char 2个字节
  8. boolean 1个字节或4个字节
发表于 2021-12-10 14:17:16 回复(0)

基本数据类型

数据类型 bit 字节 封装类 数据范围 默认值
byte 8 1 Byte ~ 0
short 16 2 Short ~ 0
char 16 2 Character \u0000 ~ \uffff ~ u0000
int 32 4 Integer ~ 0
long 64 8 Long ~ 0L
float 32 4 Float ~ 0.0f
double 64 8 Double ~ 0.0D
boolean 不确定 不确定 Boolean truefalse false
发表于 2020-08-10 15:49:34 回复(0)
C int 4 char 1 然后加上结束符 1 就是6
发表于 2015-10-07 14:48:40 回复(1)
byte short int long:1   2  4  8
float  double:4  8
boolean char:1  2
发表于 2021-05-10 17:32:36 回复(0)
java采用的uincode编码,两个字节表示一个字符,因此 char型在java中占两个字节,而int型占四个字节,故总共占四个字节
发表于 2019-12-24 01:26:52 回复(0)
byte  1个字节 8位
boolean  1个字节
short 2个字节
char 2个字节
int     4个字节
float    4个字节
double 8个字节
long    8个字节
发表于 2020-09-02 09:22:38 回复(0)
类型 字节数 位数 byte 1 8 boolean 1 8 short 2 16 char 2 16 int 4 32 float 4 32 long 8 64 double 8 6
发表于 2020-04-06 15:47:55 回复(0)
解析:int类型4个字节,char类型2个字节。
发表于 2020-03-21 03:03:10 回复(0)
32除以8等于3
发表于 2019-09-04 08:31:24 回复(1)
3*4+1*2,有的举手
发表于 2023-06-30 07:25:35 回复(0)
就敢选D,怎么敢的呀。
发表于 2021-04-15 12:11:59 回复(0)