Java数据类型之byte、char
来源:互联网 发布:手机淘宝怎么评价 编辑:程序博客网 时间:2024/06/14 09:23
Java 有8中基本数据类型,分别是byte、int、long、char、float、double、boolean。
1.byte、char的简单介绍
有时候总是搞不清byte、char,所以就现在好好的整理一下:
一个byte型整数在内存中占8位,也就是一个字节. 表数范围:-128 --127 . (字符类型char 2个字节)。
Java 中整形常量有三种表示方式:
其中8进制的整数常量以0开头. 16进制的整数以0x或0X开头,10-15分别a-f开头(此处的a--f不区分大小写)来表示.
字符型
字符型通常用于表示单个字节,字符常量必须使用单引号('')括起来.JAVA语言使用16位的Unicode编码集作为编码方式,它支持各种语言的字符.
字符常量有三种表示形式:
- 直接通过单个字符来指定字符常量:例如,'A'、'a'、'8'等。
- 通过转义字符表示特殊的字符常量.例如:'\n'、'\t'等。
- 直接适用Unicode值来表示字符常量.格式是:'\uXXXX',其中XXXX代表一个16的整数.
字符型常量也可以用16进制编码方式表示,范围是:'\u0000'----'\uFFFF',一共可以表示65536个字符,其中前256个字符('\u0000'---'\u00FF')和ASCII码中的字符完全重合.
不仅如此,字符型的值也可以作为整数型来使用,但它是无符号整数,即全部是整数,但他是一个16位的无符号整数,表数范围:0----65535.
如果把一个0---65535内的int型整数赋给char类型的变量,系统会自动把这个int型整数当成char类型来处理。
下面是一个简单的例子:
public class TestChar {public static void main(String[] args) {//直接指定单个字符作为字符常量char aChar='a'; //使用转义字符作为字符常量.char enterChar='\r';//使用Unicode编码值来作为字符常量char ch='\u9999';System.out.println(ch);//定义一个中字符常量char zhong='中';//直接将一个char变量当成int变量类型使用int zhongValue=zhong;System.out.println(zhongValue);//直接将一个0--65535的int型整数赋值给一个char变量char c=97;System.out.println(c);}}
2.转义字符
Java中的单引号、双引号和反斜线都有特殊的用途,应该使用转义字符的表示形式.
例如我们想在JAVA程序中表示一个绝对路径:"c:\codes,但这种写法得不到我们希后一个反斜线组成望的结果,因为JAVA会把反斜线当成转义字符,所以我们应该写成如下形式:"c:\\codes",只有同时写两个反斜线,JAVA会把第一个反斜线当成转义字符,和后一个反斜线组成真正的斜线.
JAVA中 常用的转义字符:
\b 退格符
\n 换行符
\r 回车符
\t 制表符
\" 双引号
\' 单引号
\\ 反斜线
3.强制类型转换
下面程序示范了强制类型转换的实例
public class NarrowConversion {public static void main(String[] args) {int iValue=233;//强制把一个int类型的值转换成byte类型的值 byte bValue=(byte) iValue; //将输出-23 System.out.println(bValue); double dValue=3.98; //强制把一个double型的值转换为int int i=(int) dValue; System.out.println(i);}}
运行后的输出结果:
-233
上面程序中,将一个233整型强制类型转换为byte类型,从而变成了-23,这就是典型的溢出。
现在就上面的结果进行一下分析:
首先我们来了解一知识下计算机的基础:
所有数字在计算机底层都是以2进制形式存在的 ,原码就是直接将一个10进制数转换成2进制数,但计算机是以补码的形式保存所有的整数。补码的计算规则如下:正数的补码和原码完全相同,负数的补码是其反码加1;反码是对原码按位取反,除了最高位(符号位)保持不变。
现在继续,看看上面的转换问题,下面示范了转换的过程:
//32位的int型 00000000000000000000000011101001//转换为8位的byte型11101001
上图,就是负数补码和源码转换的示意图!
下面的程序时随机生成一个6位的字符串!
public class RandomStr {public static void main(String[] args) {//定义一个空的字符串String result="";//进行6次循环for(int i=0;i<6;i++){//生成一个97--122的int型整数 int intVal=(int) (Math.random() *26+97); //将int 强制转换为char后连接到result后面 result=result+(char)intVal;}//随机输出字符串System.out.println(result);System.out.println((char)97);System.out.println((char)122);}}
- Java数据类型之byte、char
- Java中的byte/char/String数据类型转换
- JAVA编程思想---基本数据类型总结(byte,char)
- Java中的byte[]/char[]/int/String数据类型转换
- java数据类型转换之int,byte
- java八种基本数据类型之byte
- java byte char 互转
- java-byte-char
- JAVA 中的 char, byte
- [Java] char、byte类型
- java学习笔记之char与byte的区别
- java byte 数据类型(基础)
- Java byte数据类型转换
- java byte 数据类型
- Java byte数据类型详解
- Java byte数据类型详解
- Java byte数据类型
- C的无符号数据类型int,short,byte 转为 Java对应的数据long,char,short
- 老生常谈extern数组与extern指针
- IE6浮动换行bug解决办法之一
- Android开发 第三课 HelloActivity的源文件结构
- [转]Robust PCA 学习笔记
- Linux平台Makefile文件的编写基础篇
- Java数据类型之byte、char
- MTK feature phone ADC参数配置
- 类图use-a,has-a,contain-a(composition),implements,extends区别
- 【效率与整洁】
- mysql.h:没有文件或目录
- 常用日常英语缩写
- JAVA面试题总汇(含答案)
- SQLServer SQL总结
- 修改Oracle 字段类型