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 这 ...
随机推荐
- 用JavaScript简单判断浏览器类型
判断浏览器类型 /** * 判断浏览器类型 * 返回表示浏览器类型的字符串 */ function whoIsMe(){ var explorer = navigator.userAgent; if( ...
- HDU 4768: Flyer
题意: 有N个社团,每个社团三个属性A,B,C,表示会向编号A+k*C的同学发传单(k=0,1,2... && A+k*C <= B).题目保证最多有一个人收到的传单数是奇数. ...
- 高性能网络服务器--I/O复用 select poll epoll_wait之间的区别
一.select select采用的是集合的方式,最多只能访问1024个套接字.可读,可写,异常,三种访问,并且采用的是轮训的方式进行每次访问都需要从内核向用户空间拷贝 二.poll poll采用的是 ...
- [PAT] 1147 Heaps(30 分)
1147 Heaps(30 分) In computer science, a heap is a specialized tree-based data structure that satisfi ...
- 给定一列数字将其平移n位
原题的意思是给定一个指定长度的数组,然后接受一个数字m,将原数组前m位移动到最后,且顺序不变. 看到这个题,想到的第一个方法就是在用一个数组来储存改变后的数字,代码如下 int func(){ int ...
- Guid is not updated for cluster with specified cluster id; need to wait for hosts in this cluster to come up
http://mail-archives.apache.org/mod_mbox/cloudstack-users/201306.mbox/%3c201306181058330006472@gmail ...
- bzoj 1444 AC自动机 + 矩阵乘法 | 高斯消元
恶补了一下AC自动机,花了一天时间终于全部搞明白了. 思路:将每个人的串加入AC自动机,在AC自动机生成的状态图上建边,注意单词末尾的节点只能转移到自己概率为1, 然后将矩阵自乘几十次后误差就很小了, ...
- CentOS7安装私有gitlab
1.安装依赖包 yum install -y curl policycoreutils openssh-server openssh-clients postfix systemctl start p ...
- eclipse开发文档模板
从files依次向下:Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元 ...
- 大数据技术之_16_Scala学习_05_面向对象编程-中级
第七章 面向对象编程-中级7.1 包7.1.1 Java 中的包7.1.2 Scala 中的包7.1.3 Scala 包的特点概述7.1.4 Scala 包的命名7.1.5 Scala 会自动引入的常 ...