float占几个字节_校招必看攻略之Java数据类型分类&&字节数

61352e19fcd70f3ff369aa936a6ac5d1.gif

 勤能补拙是良训,一分辛劳一分才。

Java数据类型是我们学习java必须掌握的清楚的知识,今天我们一起来聊聊关于数据类型以及字节数的知识。

01

1ca65338235027b3cf98804a8f1a9ed2.png

Java数据类型分类

java数据类型的具体分类如下图:

6a2210c9be1be2f919c4c32fb56a3609.png

今天我们主要说一下java基本数据类型的分类。

Java一共有8种基本数据类型(原始数据类型):类型  存储要求 范围(包含) 默认值 包装类整 int 4字节(32位) -231~ 231-1 0 Integer数 short 2字节(16位) -215~215-1 0 Short类 long 8字节(64位) -263~263-1 0 Long型 byte 1字节(8位) -27~27-1 0 Byte浮点 float 4字节(32位) -3.4e+38 ~ 3.4e+38 0.0f Float类型 double 8字节(64位) -1.7e+308 ~ 1.7e+308 0 Double字符 char 2字节(16位) u0000~uFFFF(‘’~‘?’) ‘0’ Character   (0~216-1(65535))布尔 boolean 1/8字节(1位) true, false FALSE Boolean

在移动开发中由于移动设备内存的局限性,往往需要考虑使用的数据类型所占用的字节数。下面简单介绍下Java中几种基本数据类型,以加深记忆。在Java中一共有8种基本数据类型,其中有4种整型,2种浮点类型,1种用于表示

Unicode编码的字符单元的字符类型和1种用于表示真值的boolean类型。(一个字节等于8个bit)。
按照所占字节大小排序为:
byte→short(char)→int→long→float→double

02

1ca65338235027b3cf98804a8f1a9ed2.png

电脑中的字节

电脑分为32位和64位的操作系统,不同操作系统的字节数量不一样。我们电脑中的所有文件都是以字节(byte)为单位的,但是电脑存储数据的最小单位是位(bit)。在第一节我们介绍了基本数据类型其中都使用字节来表示存储数据的大小
类型所占字节
byte1
short2
int4
long8
float4
double8
char2
在电脑中, String中字母和汉字所占字符是不一样的,并且与编码有关英文字母:A
字节数编码
1GB2312
1GBK
1GB18030
1ISO-8859-1
1UTF-8
4UTF-16
2UTF-16BE
2UTF-16-LE

中文汉字:我

字节数编码
1GB2312
2GBK
2GB18030
1ISO-8859-1
3UTF-8
4UTF-16
2UTF-16BE
2UTF-16-LE
一下代码是具体的编码所计算的字节数的代码:
package com.xingyun.stringbytelength; import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.UnsupportedEncodingException; import org.dozer.loader.api.FieldDefinition; public class StringByteLength {   /*   * GB2312 GBK GB18030 ISO-8859-1 UTF-8 UTF-16 UTF-16BE UTF-16LE   */  public static void main(String[] args) throws IOException {     String s1 = "a";    String s2 = "我";     System.out.println(s1 + "  GB2312  " + s1.getBytes("GB2312").length);     System.out.println(s1 + "  GBK  " + s1.getBytes("GBK").length);    System.out.println(s1 + "  GB18030  " + s1.getBytes("GB18030").length);    System.out.println(s1 + "  ISO-8859-1  " + s1.getBytes("ISO-8859-1").length);    System.out.println(s1 + "  UTF-8  " + s1.getBytes("UTF-8").length);    System.out.println(s1 + "  UTF-16  " + s1.getBytes("UTF-16").length);    System.out.println(s1 + "  UTF-16BE  " + s1.getBytes("UTF-16BE").length);     System.out.println(s1 + "  UTF-16LE  " + s1.getBytes("UTF-16LE").length);    System.out.println("---------------");    System.out.println(s2 + "  GB2312  " + s2.getBytes("GB2312").length);    System.out.println(s2 + "  GBK  " + s2.getBytes("GBK").length);    System.out.println(s2 + "  GB18030  " + s2.getBytes("GB18030").length);    System.out.println(s2 + "  ISO-8859-1  " + s2.getBytes("ISO-8859-1").length);    System.out.println(s2 + "  UTF-8  " + s2.getBytes("UTF-8").length);    System.out.println(s2 + "  UTF-16  " + s2.getBytes("UTF-16").length);    System.out.println(s2 + "  UTF-16BE  " + s2.getBytes("UTF-16BE").length);    System.out.println(s2 + "  UTF-16LE  " + s2.getBytes("UTF-16LE").length);   }   /**   * 将转码后的文字写入文件,通过编辑器打开测试,确认写入的是相应编码   *   * @param bytes   * @throws IOException   */  public void writeFile(byte[] bytes) throws IOException {    String path = StringByteLength.class.getResource("/").getPath();    System.out.println(path);    String file_path = path + "charsetFile";     File file = new File(file_path);    if (!file.exists()) {      file.createNewFile();    }     FileOutputStream out = new FileOutputStream(file);    out.write(bytes);    out.close();  }}
总结:在开发总我们要时刻清楚我们当前的开发环境,统一环境、统一编码这样才能够减少错误的出现。 10ca9d1d4c44c2bae6528a0c8b5567fb.pngEnd

作者:星云大圣

审稿:Nebula xiaoxing

编辑:Nebula xiaoxing

b25abcb3dc6ba1011292abc067679fe8.gif 

2020年6月29日星云科技暑期班如约而至

JAVA高级开发班、Linux云计算9月班火热预报名

咨询请联系吕老师:

Tel/VX:13992827407

QQ:54020094


*版权申明:

      转载文章和图片均来自公开互联网,版权归作者本人所有,推送文章除无法获取出处外,我们都会注明作者和来源,如有侵权,请与我们联系删除或授权。



7413dc6cc6c237d0737eacbcb20d5129.png

cf9045c8eb74b4ed12cb7dbc5f37009d.gif

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值