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);
}
}

运行后的输出结果:

-23
3

上面程序中,将一个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的更多相关文章

  1. JAVA数据类型中的char类型

    1.JAVA中,char占2字节,16位.可在存放汉字 2.char赋值 char a='a'; //任意单个字符,加单引号. char a='中';//任意单个中文字,加单引号. char a=11 ...

  2. java 彻底理解 byte char short int float long double

    遇到过很多关于 数值类型范围的问题了,在这做一个总结,我们可以从多方面理解不同数值类型的所能表示的数值范围 在这里我们只谈论 java中的数值类型 首先说byte: 这段是摘自jdk中 Byte.ja ...

  3. 回顾java基础—Java数据类型

    1  java数据类型.8种基本类型,3种引用类型 基本类型(也称:原始类型):byte.short.int.long.char.float.double.boolean 引用类型:类,接口,数组 2 ...

  4. JAVA数据类型,变量,转换,常量,运算符

    java数据类型: Java基本类型共有八种,基本类型可以分为三类: 1.字符类型char,用单引号赋值 2.布尔类型boolean 3.数值类型byte.short.int.long.float.d ...

  5. 多态、GC、Java数据类型

    多态 一.java中实现多态的机制是什么? 靠的是: 父类定义的引用变量可以指向子类的实例对象,或者接口定义的引用变量可以指向具体实现类的实例对象 而程序调用的方法,在运行期才动态绑定, 它就是引用变 ...

  6. mysql-数据类型与java数据类型转化工具类

    mysql和java对照表 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述             VARCHAR L+N VARCHAR java.lang.Stri ...

  7. java数据类型定义与输出

    JAVA数据类型分基本数据类型和引用数据类型. 一.基本数据类型 Java里面包含8个基本数据类型,分别是: boolean.byte.char.short.int.float.douboe.long ...

  8. java数据类型图:

    java数据类型图:                                 ┏数值型━┳━整数型:byte short int long               ┏基本数据类型━━┫   ...

  9. java数据类型学习

    java数据类型基本分为两类: 一类为基本数据类型: 数值类型: 整数类型:byte.short.int.long 浮点类型:float.double 字符类型:char 布尔类型:boolean 一 ...

随机推荐

  1. Cocos2D在新版Swift中常量枚举值引用代码的修改

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们知道在SpriteBuilder中是无法直接给一个CCB文 ...

  2. 为什么不要在viewDidLoad方法中设置开始监听键盘通知

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 一个普遍的错误是,程序猿(媛)试图在view controll ...

  3. UNIX网络编程——原始套接字SOCK_RAW

    实际上,我们常用的网络编程都是在应用层的报文的收发操作,也就是大多数程序员接触到的流式套接字(SOCK_STREAM)和数据包式套接字(SOCK_DGRAM).而这些数据包都是由系统提供的协议栈实现, ...

  4. linux常用的内核镜像格式

    linux常用的内核镜像格式 Linux内核有多种格式的镜像,包括vmlinux.Image.zImage等. 1.     Linux内核镜像格式 1.1 vmlinux vmlinuz是可引导的. ...

  5. 深入剖析Tomcat会话机制

    1缓存机制 Tomcat默认将Session保存到内存中.但同时,Tomcat也提供了PersistentManager配合不同的Store实现的方式,使Session可以被保存到不同地方(Datab ...

  6. 02-Git简单使用

    Git安装(windows) https://code.google.com/p/msysgit/downloads/list 我们使用版本Git-1.7.9版本 百度网盘下载:链接:http://p ...

  7. iOS中 static变量与全局、局部变量的区别 !

    static变量与全局.局部变量的区别 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量.全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式. 这两者在存储方式上并 ...

  8. listview下拉刷新上拉加载扩展(二)-仿美团外卖

    经过前几篇的listview下拉刷新上拉加载讲解,相信你对其实现机制有了一个深刻的认识了吧,那么这篇文章我们来实现一个高级的listview下拉刷新上拉加载-仿新版美团外卖的袋鼠动画: 项目结构: 是 ...

  9. UNIX网络编程——I/O复用:select和poll函数

    我们看到TCP客户同时处理两个输入:标准输入和TCP套接字.我们遇到的问题是就在客户阻塞于(标准输入上)fgets调用,服务器进程会被杀死.服务器TCP虽然正确的给客户TCP发送了一个FIN,但是既然 ...

  10. Oracle Metalink Notes Collection

    INV Note 123456.1 Latest 11i Applications Recommended Patch List Note 568012.1:FAQ: Inventory Standa ...