java里字节和字符分别是什么概念,怎么区别

作者&投稿:战诸 (若有异议请与网页底部的电邮联系)
JAVA中字节和字符的区别~

一个字节(byte)=8bit,字符的话一个英文字符=一个字节,一个中文字符(也就是汉字)=2个字节,有一些特殊符号也会占用两个字节,字节流比字符流粒度更小

字符流处理的单元为2个字节的unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节,
操作字节和字节数组。所以字符流是由java虚拟机将字节转化为2个字节的unicode字符为单位的字符而成的,所以它对多国语言支持性比较好!如果是
音频文件、图片、歌曲,就用字节流好点,如果是关系到中文(文本)的,用字符流好点.
所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再储存这些字节到磁盘。在读取文件(特别是文本文件)时,也是一个字节一个字节地读取以形成字节序列.
字节流可用于任何类型的对象,包括二进制对象,而字符流只能处理字符或者字符串;
2.
字节流提供了处理任何类型的io操作的功能,但它不能直接处理unicode字符,而字符流就可以。

这不光是 Java 的概念,我们知道机器只知道字节,而字符却是语义上的单位,它是有编码的,一个字符可能编码成1个2个甚至3个4个字节。这跟字符集编码有关系,英文字母和数字是单字节,但汉字这些自然语言中的字符是多字节的。一个字节只能表示255个字符,不可能用于全球那么多种自然语言的处理,因此肯定需要多字节的存储方式。

当我们在处理 Java 时,比如 InputStream, OutputStream 它们是处理字节流的,就是说假设所有东西都是二进制的字节,而 Reader, Writer 则是字符流,它涉及到字符集的问题,因为把一个字符保存到磁盘或读取出来需要指定一个字符集,平时你的代码没有指定是因为 JVM 读取操作系统默认的字符集,有时候(特别是数据交换的时候)可能这个默认字符集不正确。

在 Java 中,它的内核是使用 Unicode,也就是说它记住了每个字符的 Unicode 内部编码(一串数字,全球唯一,各国语言常用字符全部在里面,比如康熙字典这种古董中的多数汉字都在其中),只有把字符串通过网络发送出去或保存到磁盘上或反过来读取时才有字符编码成字节的过程,因为一个字符多个字节我们需要知道每个字符的这几个字节是按什么顺序排列的,第1个字节排前面还是排后面,多个字符串在一起时在读取时怎么识别出哪几个字节凑在一起是一个字符,这就是字符集编码方案了,UTF8, GBK, GB2312, GB18030, BIG5,之类的都是其中一种字符集编码方案。

不能听ls鬼扯,一个字节的存储范围是0到255,按比特串写出来就是(00000000)~(11111111);而一个字符通常是指ASCII码,范围是0到127,比特串是(00000000)~(01111111),更广义上的字符是指键盘可以敲出来的符号,比如数字、字母和标点,但这些符号在ASCII码的范围内只占了一部分。
虽然字节和字符在内存中都占用一个字节的空间,但显然字符的最高比特是空置的,当然,你也可以强行给char赋值成128到255,但那也就失去了它原本的意义了,就像C语言中printf的参数是const char * ,而不是unsigned char *,如果不考虑系统编译器和控制台对编码字符集的支持,对ASCII范围外的符号进行打印是不可行的。


JAVA输入输出
ava中不存在你说的那种情况 因为java是采用unicode字符集 也就是说“安莎社ss554黄河 ”中的每个元素都是占据16位即两个字节 所以读的应该是 安 莎 社 s s 5 5 4 黄 河 结果都是一一对应的的unicode字符编码 "s"在文件内存中占一个字节不够一个字节的 系统自己用空格补默认的 ...

java用for循环将字节数组里每位字节相加,列如[1,2,3,4].结果是10.求...
public static void main(String[] args) { \/\/ ava用for循环将字节数组里每位字节相加,列如[1,2,3,4].结果是10.求代码。char[] c = { 1, 2, 3, 4 };int sum = 0;for (char d : c) { sum += d;} System.out.println(sum);} ...

AVA多大?
在我电脑里占用7.46GB。。有截图,你看,,望采纳

Java语言的特点
首先,Java是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程序更加可靠;其次,Java不支持指针,这杜绝了内存的非法访问;第三,Java的自动单元收集防止了内存丢失等动态内存分配导致的问题;第四,Java解释器运行时实施检查,可以发现数组和字符串访问的越界,最后,Java提供了异常处理机制,程序员可...

开AVA占CPU使用率100%,CPU温度升高。
开AVA占CPU使用率100%,CPU温度升高。 昨天刚装的新系统,浩海技术的GhostXP_SP3红色中国奥运珍藏版。内存由2GB扩展到3GB。CPU:Intel(R)Pentium(R)DCPU2.80GHz2.81GHz内存:3GB显卡:NVIDIAGeForce7300GT重装系统之前都正常... 昨天刚装的新系统,浩海技术的Ghost XP_SP3 红色中国奥运珍藏版。内存由2GB扩展到3GB。CPU...

AVA占多少GB
最新版的占3.3G

玩战地之王(AVA)时,CPU使用率100%
可运行战地之王(AVA)时,CPU的使用率就高到100%,而且是一直100%,其他的程序可都没开啊!玩其他的网游CPU的使用率都是50%左右,还算正常。玩战地之王(AVA)使用率虽然达到100%,可玩了2多小时,也没出现死机,重起,蓝屏等现象,玩着也不卡。而且CPU的温度和开其他网游的温度一样,温度没上升。运行战地之王(AVA)...

AVA520是什么,在那买,好多钱
建议大家别相信什么所谓的AVA520破解版,全是骗钱的或者盗号的!大家可以观察下,那些所谓的AVA520破解版,那些截图,是AVA海豚的,因为从那方框的颜色上就可以辨别出真伪,海豚的方框是纯蓝色,而AVA520的是深蓝色,大家可以去AVA520的官网和AVA海豚的官网里的截图对比下 第二个..那些所谓的破解版只是个壳子...

JVM原理是什么?
通过执行方法区中的字节码,JVM执行main()方法,(执行时会一直保存指向Vocano类的常量池的指针)(2)Main()中第一条指令告诉JVM需为列在常量池第一项的类分配内存(此处再次说明了常量池并非只存储常量信息),然后JVM找到常量池的第一项,发现是对Lava类的符号引用,则检查方法区,看Lava类是否装载,结果是还未装载,则...

ava的大方向是什么
ava的大方向就是j2eej2ee不仅仅是socket编程,具体包括13中核心技术J2EE的核心API与组J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的13种技术规范进行简单的描述(限于篇幅,这里只能进行简单的描述):方法\/步骤 1.JDBC(Java...

广安市17577361968: java里字节和字符分别是什么概念,怎么区别 -
招曲脑苷: 这不光是 Java 的概念,我们知道机器只知道字节,而字符却是语义上的单位,它是有编码的,一个字符可能编码成1个2个甚至3个4个字节.这跟字符集编码有关系,英文字母和数字是单字节,但汉字这些自然语言中的字符是多字节的.一个字...

广安市17577361968: java中一个字符是几个字节?字符和字节是同等的吗? -
招曲脑苷: Java规定了字符的内码要用UTF-16编码,一个字符是2个字节.外码字符所占字节取决于具体编码.字符和字节是不一样的. 外码编码不同,字符和字节的换算不同,几种常见的编码换算如下: ASCII编码是单字节编码,只有英文字符,不能编...

广安市17577361968: JAVA中字节和字符的区别 -
招曲脑苷: 一个字节是8位二进制.Java中的字符是unicode码,占2个字节,即16位.如果你指的是Java的跨平台中间代码:java字节码,那么又当别论了

广安市17577361968: Java中 “字符类型”与“字节类型”的区别
招曲脑苷: --------------------------- 1.byte 字节型 byte字节型是JAVA中最小的数据类型,它在内存中占8位(8个bit),取值范围从-128到127 赋值:byte i = 127 注:byte型在赋值时,一旦超过127或小于-128,则会产生编译错误. 2.char 字符型 char 类型在内...

广安市17577361968: Java中字节流和字符流的区别 -
招曲脑苷: 一个字节(Byte)=8bit,字符的话一个英文字符=一个字节,一个中文字符(也就是汉字)=2个字节,有一些特殊符号也会占用两个字节,字节流比字符流粒度更小

广安市17577361968: 在JAVA里.什么叫字节.什么叫字串.还有大家经常用的“流 又是什么东西?比如说 输入流,输出流.我是新 -
招曲脑苷: 楼主所说 字节 是java的原始数据类型 byte 字串 字符串 String 属于引用数据类型 流 Stream 又分字符流和字节流,这问题在这没法说,听楼上的去看看 java核心技术卷吧

广安市17577361968: 请问java中的基本数据类型中的字节型( byte ) 是什么概念,请列举几个byte型的常量,谢! -
招曲脑苷: 计算机中最小单位是位,8位是一个字节(byte)1024个字节为1kb依次类推,byte在java中是一个声明变量或者常量的关键字,表示为一个变量在内存中开辟一个大小为一个字节的空间,声明一个变量格式为 byte 变量名,声明常量为 static final byte 常量名.

广安市17577361968: java中字节文件和字符文件是以什么来区分的 -
招曲脑苷: 字符文件本质上也是字节文件,最终都是以字节形式存储在文件中. 字符文件中的字节,可以被文本编辑软件被转化为字符. 字节文件,也文本编辑软件打开,只不过展示的是一片乱码.

广安市17577361968: java中字符与字节和位的关系?一个英文字母或数字占几个字节中文占多少?1kb代表的是什么? -
招曲脑苷: 在英文输入法半角中, 一个字母就一个字节 例:"n" 相当于1字节 (byte)数字汉字也一样 在英文输入法全角中, 1个字母就是2个字节 例:"n"相当于2字节 (byte) 同上8位(bit)=1字节(byte)1024字节(byte)=1kb1024 kb = 1MB有不对的请指正、 谢谢

广安市17577361968: Java中的字节流和字符流的区别? -
招曲脑苷: 字节流就是按照字节来进行传输,字符流是按照字符来传输.最基本的是字节流,字符流可以说是对字节流的一个包装流.比如你知道了一个字符是8个字节,那么你让字节流一次传输8个字节,那不就相当于一次传输一个字符,也就是字符流了.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网