`
sudongyuan
  • 浏览: 59448 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

java Char、byte的理解

阅读更多

最近看了一个面试题是这样的:

   char 是否能存储一个中文字符,为什么?

 

char类型一般占用两个字节,所以能存储中文字符(一个中文字符占用两个字节)。

         char a = '中' ;(合法)   char a = 'ab' ;(非法的)

       所以char类型在内存中占用两个字节空间,但是只能表示一个字符。若是只要表示一个字节的字符,可以考虑byte。

 

byte表示字节,占用内存一个字节的空间。

        byte a = 'a' ;(合法)    byte a  = '中' ;(非法的,不能存放中文字符)

 

另外:1 byte = 8 bit (bit就是0和1的一个位数,8bit表示一个字节)

 

String str = "中" ;

byte[]  a = str.getBytes();

System.out.println(a.length); //打印出多长?

 

result:可能2,3,4.

原因是getBytes()方法会根据当前默认的字符编码格式获取字节数组,gbk/gb2312占2位,utf-8占3位,unicode占4位(很多地方看见别人说是占两位,但是亲测出来的结果是4,求解!)

 

可以str.getBytes("GBK"),str.getBytes("UTF-8")使用,指定了编码格式,就不根据默认的取得了。

 

分享到:
评论
3 楼 v_xd 2015-01-18  
在java中默认采用的是unicode编码 a占两个字节 ab就占四个字节 “你”这个字也占两个字节 あ这个日文 也占两个字节 这就叫做unicode编码   参考:http://zhidao.baidu.com/link?url=LhxPwI9-OgItzafWC-iTvLFGUYV3QEPgNtcaXyk9XXlzcDLmkKYbajgXplitntpaEe8L8alBh1b8Rlb1nwzP5q
2 楼 qiaowencong 2014-04-16  
木头会跑步 写道
关于unicode的问题,可以看看这篇文章,我觉得他写的很好~

http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html

真的不错
1 楼 木头会跑步 2012-05-30  
关于unicode的问题,可以看看这篇文章,我觉得他写的很好~

http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html

相关推荐

    int、char、double与byte类型之间相互转换

    char类型在Java中占2个字节,因此转换后的byte数组长度为2。 ```java public static byte[] charToByte(char ch) { int temp = (int) ch; byte[] b = new byte[2]; for (int i = b.length - 1; i >= 0; i--) { b...

    java char数据类型原理解析

    这个示例代码可以帮助我们更好地理解 char 数据类型的使用和 Unicode 编码的工作原理。 Java 中的 char 数据类型与其他基本数据类型的区别在于,它是唯一一个使用 Unicode 编码的基本数据类型。其他基本数据类型,...

    Accp6.0 S1 JAVA 理解程序逻辑 第4章

    1. **基本数据类型**:Java提供了八种基本数据类型,包括整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔型(boolean)。了解这些数据类型及其范围和用法是编程的基础。 2. **变量...

    理解java中的基本数据类型

    本文将深入探讨Java中的八种基本数据类型:`boolean`、`byte`、`short`、`int`、`long`、`char`、`float`以及`double`,并结合实例来解释这些类型的特点及其在实际编程中的应用。 #### 1. `boolean` `boolean`类型...

    Java 基础 byte[]与各种数据类型互相转换的简单示例

    本示例主要关注的是`byte[]`类型与其他基本数据类型(如`long`、`int`、`double`、`float`、`short`、`char`以及`String`)之间的转换。以下是对这些转换方法的详细解释: 1. **`short`到`byte[]`转换**: - `...

    byte与各类型之间的转化

    本文档旨在详细介绍byte与各种常见类型之间的转换方法,帮助开发者更好地理解和掌握这一技能。 #### 二、byte与int之间的转换 1. **int到byte[]的转换** - 使用按位与操作和右移操作来实现。 ```java public ...

    java 语言程序理解部分题目

    基本类型包括整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔型(boolean)。引用类型主要包括类、接口和数组,它们都是对象的引用。 3. **控制结构**:通过控制结构,程序员可以...

    byte数组转化为hex

    首先,我们需要理解Java中的字节数组(`byte[]`)和16进制字符串之间的关系。一个字节在Java中占用8位,可以表示-128到127之间的整数。而16进制的一个字符则表示4位(半字节),因此,一个字节可以用两个16进制字符...

    S1-使用Java语言理解程序逻辑-第二章变量、数据类型和运算符

    基本数据类型包括整型(如`byte`, `short`, `int`, `long`)、浮点型(`float`, `double`)、字符型(`char`)和布尔型(`boolean`)。引用数据类型则包括类(class)、接口(interface)和数组,它们指向对象的内存...

    java基本类型与byte数组互相转换.rar

    原始类型包括整型(如byte、short、int、long)、浮点型(如float、double)、字符型(char)以及布尔型(boolean)。这些类型的数据可以直接在内存中存储值,而无需创建对象。然而,在某些场景下,我们可能需要将...

    计算一个Java对象占用字节数的方法

    在Java编程语言中,了解一个对象占用的内存字节数对于优化内存使用和理解程序性能至关重要。本篇文章将深入探讨如何计算Java对象占用的内存字节数,以及影响这一数值的因素。 首先,Java对象在堆内存中由四个部分...

    java String 与各种进制字符之间的转换

    在Java编程语言中,...总之,理解和掌握Java中String与各种进制字符之间的转换对于日常编程至关重要。通过熟练运用上述方法,可以轻松处理与进制相关的任务,无论是处理用户输入、解析文件内容还是与其他系统交互。

    零基础学Java语言零基础学Java语言04-课件_8_8.pptx

    Java提供了八种基本数据类型,包括布尔型(boolean)、字符型(char)、整型(int、short、byte)以及浮点型(float、double)。在Java中,整型数值还可以通过包装类(Integer、Short、Byte等)来表示,这样可以进行...

    计算汉字笔画数java实现

    在Java中实现计算汉字笔画数的功能,主要涉及到对汉字编码的理解以及如何根据特定的规则来确定每个汉字对应的笔画数。在本例中,使用的是一种基于GB2312编码标准的方法,该标准是中华人民共和国国家标准之一,用于...

    JAVA基础思维导图【xmind格式】.zip

    首先,"java基本数据类型A.xmind"和"java基本数据类型B.xmind"这两张思维导图主要介绍了Java中的八种基本数据类型,包括整型(byte, short, int, long)、浮点型(float, double)、字符型(char)以及布尔型...

    【IT十八掌徐培成】Java基础第04天-01.作业讲解-byte范围变换-二进制格式输出-三维数组横向打印.zip

    在处理二进制数据时,我们经常需要将`byte`类型的数值转换为其他数据类型,如`int`、`short`或`char`。理解这些类型之间的转换规则至关重要,避免数据溢出或丢失精度。例如,将`byte`转换为`int`时,可以使用`(int)...

    《Java基础入门》-课后习题答案.doc

    * Java 语言的八种基本数据类型有:byte 字节型、short 短整型、int 整型、long 长整型、float 单精度浮点型、double 双精度浮点型、char 字符型、boolean 型。 * 变量的类型有基本类型和引用类型两种。 * 运算符有...

    Java基本类型与byte数组之间相互转换方法

    基本类型包括整型(如int、short、byte、long)、浮点型(如float、double)、字符型(char)以及布尔型(boolean)。有时在处理数据时,我们需要将这些基本类型与字节数组(byte arrays)进行转换,特别是在网络...

Global site tag (gtag.js) - Google Analytics