【java基础】java中的char类型

转载 2015年11月18日 16:30:33

java中的char类型


一:char的初始化

char是Java中的保留字,与别的语言不同的是,char在Java中是16位的,因为Java用的是Unicode。不过8位的ASCII码包含在Unicode中,是从0~127的。

Java中使用Unicode的原因是,Java的Applet允许全世界范围内运行,那它就需要一种可以表述人类所有语言的字符编码。Unicode。但是English,Spanish,German, French根本不需要这么表示,所以它们其实采用ASCII码会更高效。这中间就存在一个权衡问题。

因为char是16位的,采取的Unicode的编码方式,所以char就有以下的初始化方式:

char c='c'; //字符,可以是汉字,因为是Unicode编码

char c=十进制数,八进制数,十六进制数等等; //可以用整数赋值

char c='\u数字'; //用字符的编码值来初始化,如:char='\0',表示结束符,它的ascll码是0,这句话的意思和 char c=0 是一个意思。

 

 

二:关于char占几个字节的问题如下:

1:“字节”是byte,“位”是bit ;

  2: 1 byte = 8 bit ;

  char 在java中是2个字节。java采用unicode,2个字节(16位)来表示一个字符。

  例子代码如下:

[java] 代码
  1. public class Test {  
  2.   
  3.   
  4.     public static void main(String[] args) {  
  5.         String str= "中";  
  6.         char x ='中';  
  7.         byte[] bytes=null;  
  8.         byte[] bytes1=null;  
  9.         try {  
  10.             bytes = str.getBytes("utf-8");  
  11.             bytes1 = charToByte(x);  
  12.         } catch (UnsupportedEncodingException e) {  
  13.             // TODO Auto-generated catch block  
  14.             e.printStackTrace();  
  15.         }  
  16.         System.out.println("bytes 大小:"+bytes.length);  
  17.         System.out.println("bytes1大小:"+bytes1.length);  
  18.     }  
  19.     public static byte[] charToByte(char c) {   
  20.         byte[] b = new byte[2];   
  21.         b[0] = (byte) ((c & 0xFF00) >> 8);   
  22.         b[1] = (byte) (c & 0xFF);   
  23.         return b;   
  24.     }  
  25. }  

运行结果:

bytes 大小:3
bytes1大小:2

  

java是用unicode来表示字符,"中"这个中文字符的unicode就是2个字节。

 String.getBytes(encoding)方法是获取指定编码的byte数组表示,

通常gbk/gb2312是2个字节,utf-8是3个字节

如果不指定encoding则取系统默认的encoding。

Java基本数据类型取值范围,为什么String 不是基本数据类型,char的取值范围为什么没有负数

一、在JAVA中一共有八种基本数据类型,他们分别是 byte、short、int、long、float、double、char、boolean整型 color=gray 其中byte、sho...
  • xmc281141947
  • xmc281141947
  • 2017年02月07日 16:18
  • 1848

深入Java基础(一)——基本数据类型及其包装类

这一系列打算慢慢地去接触源码,并且列出相关的题目,对于完全的初学者的话,我到时候会搜一套我认为比较好的培训机构的视频以及给些社区资料和相关博客咯。让我们一起开始思考,深入学习Java吧。这篇文章就数据...
  • Jack__Frost
  • Jack__Frost
  • 2016年12月21日 22:18
  • 6271

Java基本数据对应的封装类

Java基本数据对应的封装类 在java中一切都是以类为基础的,并且java对基本的数据类型也进行了封装,如下所示,将介绍几个基本的数据类型及其封装类: 1 Boolean VS bool...
  • shineflowers
  • shineflowers
  • 2014年02月24日 14:11
  • 1960

java基础-各种类型及转换(int,string,char,short,date)

java数据类型和c/c++相似,但java是面向对象
  • chzayi
  • chzayi
  • 2014年11月07日 13:20
  • 2302

Java基础--基本数据类型(字符型/char)

char类型用来表示Unicode编码中的字符。 char类型用单引号来表示字符常量,例如:'A',他与"A"不同的地方是"A"是表示含有一个字符的字符串...
  • axuxiaoqin123
  • axuxiaoqin123
  • 2017年05月11日 10:07
  • 141

java中如何输入char类型

您是否以为char类型也如in.nextChar();这样呢?如果您这样写过,那么您一定见过这个error:“The method nextChar() is undefined for the ty...
  • M17865923255
  • M17865923255
  • 2016年02月21日 13:35
  • 7453

java中数据类型转换 (int string char等)

import java.sql.Date; public class TypeChange { public TypeChange() { } //change the st...
  • lianchao668
  • lianchao668
  • 2012年09月24日 10:21
  • 783

Java中的byte/char/String数据类型转换

前言:项目中遇到的实际问题,Android手机和硬件通过Socket通信,手机可能会对硬件批量设置定时任务,最多批量设置16个。但由于硬件接收大量报文后处理不过来,定时任务经常漏设,而且响应相对较慢,...
  • Elsa_Rong
  • Elsa_Rong
  • 2015年08月24日 20:20
  • 4035

验证java中char数据类型在内存中的二进制形式为Unicode编码

java中char数据类型在内存中的二进制形式为Unicode编码
  • lan_bing2013
  • lan_bing2013
  • 2016年10月19日 22:50
  • 179

java中的char类型和Unicode编码

学过C++的都知道,在C++里面char是占一个字节的。 Java的char型是非常独特的,占用两个字节,因为Java中char型采用了Unicode编码。 要理解这个问题,我们必须要理解什么是U...
  • fhx19900918
  • fhx19900918
  • 2012年11月01日 08:23
  • 2578
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【java基础】java中的char类型
举报原因:
原因补充:

(最多只允许输入30个字)