java中各种数据类型占用字节数
1字节(Byte)=8bit
java的基本类型
| 类型 | 所占字节 |
| byte | 1 |
| short | 2 |
| int | 4 |
| long | 8 |
| float | 4 |
| double | 8 |
| char | 2 |
String中字母和汉字所占字符是不一样的,并且与编码有关
英文字母:A
| 字节数 | 编码 |
| 1 | GB2312 |
| 1 | GBK |
| 1 | GB18030 |
| 1 | ISO-8859-1 |
| 1 | UTF-8 |
| 4 | UTF-16 |
| 2 | UTF-16BE |
| 2 | UTF-16-LE |
中文汉字:我
| 字节数 | 编码 |
| 1 | GB2312 |
| 2 | GBK |
| 2 | GB18030 |
| 1 | ISO-8859-1 |
| 3 | UTF-8 |
| 4 | UTF-16 |
| 2 | UTF-16BE |
| 2 | UTF-16-LE |
附录:计算String字节数的代码
package com.dingrui.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();
}
}
java中各种数据类型占用字节数的更多相关文章
- java中基本类型占用字节数
之前一直使用c/c++开发c中各种类型占用的位数和java还是有区别的,特地找了篇文章过来对比下. 在处理网络协议的时候需要注意 在Java中一共有8种基本数据类型,其中有4种整型,2种浮点类型,1种 ...
- Mysql 常用数据类型 占用字节数 [转]
数据类型是定义列中可以存储什么数据以及该数据实际怎么存储的基本规则.Mysql的常用数据类型主要有: 串数据类型:最常用的数据类型,有两种基本的串类型:分别为定长串和不定长串.定长串结束长度固定的字符 ...
- Java字符串中常用字符占用字节数
java中一个char型的数据(也就是一个字符)占两个字节.而Java中常用的字符包括数字.英文字母.英文符号.中文汉字.中文符号等,若在字符串中包含里面的多种字符,它们是否都占两个字符呢?答案是否定 ...
- C#中基本类型占用字节数
bool -> System.Boolean (布尔型,其值为 true 或者 false) byte -> System.Byte (字节型,占 1 字节,表示 8 位正整数,范围 0 ...
- C语言在32位和64位机器下数字数据类型的字节数取决于编译器和平台, 主要由编译器决定。
C语言中数字数据类型的字节数 C声明 32位机器 64位机器 char 1 1 short int 2 2 int 4 4 //整型在32位和64位下都是4个字节 long int 4 8 l ...
- Java的8种基本数据类型的内存占用字节数和取值范围
这是8中基本类型的内存中占用字节数(取值范围是2的(字节数X8-1)次方) 1.整型 类型 存储需求 bit数 取值范围 byte 1字节 1*8 -128-127 short 2字节 2*8 -32 ...
- Java中boolean类型占用多少个字节
为什么要问这个问题,首先在Java中定义的八种基本数据类型中,除了其它七种类型都有明确的内存占用字节数外,就boolean类型没有给出具体的占用字节数,因为对虚拟机来说根本就不存在 boolean 这 ...
- - Java中boolean类型占用多少个字节 MD
目录 目录 Java中boolean类型占用多少个字节 1个bit(1位) 1个Byte(1字节,8位) 4个Byte(4字节,32位) 分析 官方文档中的描述 Markdown版本笔记 我的GitH ...
- 你真的知道Java中boolean类型占用多少个字节吗?
为什么要问这个问题,首先在Java中定义的八种基本数据类型中,除了其它七种类型都有明确的内存占用字节数外,就boolean类型没有给出具体的占用字节数,因为对虚拟机来说根本就不存在 boolean 这 ...
随机推荐
- Redis Cluster 集群使用(3)
简介 Redis3.0版本之前,可以通过Redis Sentinel(哨兵)来实现高可用(HA),从3.0版本之后,官方推出了Redis Cluster,它的主要用途是实现数据分片(Data Shar ...
- 15:django 缓存架构
动态网站的一个基本权衡就是他们是动态的,每次一个用户请求一个页面,web服务器进行各种各样的计算-从数据库查询到模板渲染到业务逻辑-从而生成站点访问者看到的页面.从处理开销的角度来看,相比标准的从文件 ...
- 面试题之实现系统函数系列一:实现memmove函数
编译环境 本系列文章所提供的算法均在以下环境下编译通过. [算法编译环境]Federa 8,linux 2.6.35.6-45.fc14.i686 [处理器] Intel(R) Core(TM)2 Q ...
- 用指定jdk执行jar包
在运行jar包前执行以下命令,作用是在当前命令行窗口作用域内修改环境变量: export JAVA_HOME=/root/jiabao.gao/Hbase2Redis-1.0.0-SNAPSHOT/j ...
- intellij idea 无法创建类文件,方法。
- Jquery当div超出页面时就固定到顶部否则跟随页面滚动
$.fn.smartFloat = function () { var position = function (element) { var top = element.position().top ...
- AC日记——[ZJOI2015]幻想乡战略游戏 洛谷 P3345
[ZJOI2015]幻想乡战略游戏 思路: 树剖暴力转移: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 1 ...
- AC日记——天天爱跑步 洛谷 P1600
天天爱跑步 思路: 树上差分+分层动态线段树: (伏地膜,跪烂xxy) 代码: #include <bits/stdc++.h> using namespace std; #define ...
- PL/SQL 11.6 注册码
PL/SQL Developer 下载地址:Download PL/SQL Developer 11.0.6 注册码 Product Code:4t46t6vydkvsxekkvf3fjnpzy5wb ...
- Ubuntu Nginx
如果是阿云的ECS服务器,默认是已经安装了Apache服务器的,但一般都用不到,可以选择将它卸载 sudo service apache2 stop update-rc.d -f apache2 re ...