java基本的数据类型
来源:互联网 发布:淘宝商城女装卫衣套装 编辑:程序博客网 时间:2024/06/06 01:44
java的数据类型分为两种:基本数据类型和引用数据类型。
基本数据类型有八种:整形--byte,short,int,long,浮点型--float,double,字符型--char,布尔型--boolean
其中整形和浮点型被称为数值型。
下面详细介绍:
boolean: 由于一个字节有八位,虽然,boolean类型只有一位,是1/8个字节,但在java中,还是按照一个字节来处理,其默认为false。
byte:1个字节,8位,取值范围是-128-127(提示:2的8次方)默认0
short:2个字节,16位,取值范围是-32768-32767(提示:2的16次方)默认0
int:4个字节,32位,取值范围是-65536-65535(提示:2 的32次方)默认0
long:8个字节,64位,取值范围是-2的64次方--2的64次方-1 默认0
char:2个字节,16位,与别的语言不同,java中的char是16位的,因为java用的是unicode码。取值范围:0-65535 默认是:"\u0000"
float:4个字节,16位,取值范围是-32768-32767 默认是0.0f 有效位8位
double:8个字节,32位,取值范围是-65536-65535,默认是0.0d 有效位16位
另外注意一下由于char采用的unicode的编码方式,所以char有以下初始化方式:
char c='c'; //字符,可以是汉字,因为是Unicode编码
char c=十进制数,八进制数,十六进制数等等; //可以用整数赋值
char c='\u数字'; //用字符的编码值来初始化,如:char='\0',表示结束符,它的ascll码是0,这句话的意思和 char c=0 是一个意思。
另外:注意一下常用char类型的Ascill 码:A--65,a--97,0--48,回车--13,换行--10,空格--32
java为什么可移植性好?从基本数据类型来阐述理由。
由于java各种类型都有固定的取值范围和字段长度,因而不受具体操作系统的影响,以保证java程序的可移植性。
Java的浮点类型有两种表现形式:
十进制数形式
科学计数法形式
运算
1.整形运算与浮点运算结果是浮点类型
2.Long类型与比long低的整形运算时long类型
3.Int类型与比int低的类型运算是int类型
4.Short类型相运算时int类型
5.short和byte运算是int类型
6.双目运算会改变运算的类型s=s+1,但单目运算不会改变运算的类型s++
7.注意范围byte b=127,b2;b2++;
8.双目当中复合运算不会改变类型s+=1;
9.Byte s=’c’+1;//不会出错,因为都是常量
10.Byte b=’c’;
11.Byte s=b+1;//会出错,因为b是变量
注意这个问题!!
Float f=0.0;//出错原因是java中小数默认是以double表示的 所以0.0是double类型的
要写float f=0.0f或者float f=(float)0.0;
自动类型转换
自动类型转换,也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换。由于实际开发中这样的类型转换很多,所以 Java语言在设计时,没有为该操作设计语法,而是由JVM自动完成。
转换规则:从存储范围小的类型到存储范围大的类型。
具体规则为:byte→short(char)→int→long→float→double
也就是说 byte类型的变量可以自动转换为short类型,示例代码:
byte b = 10;
short sh = b;这里在赋值时,JVM首先将b的值转换为short类型,然后再赋值给sh。
在类型转换时可以跳跃。示例代码:
byte b1 = 100;int n = b1;
强制类型转换
强制类型转换,也称显式类型转换,是指必须书写代码才能完成的类型转换。该类类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种损失时才进行该类型的转换。
转换规则:从存储范围大的类型到存储范围小的类型。
具体规则为:double→float→long→int→short(char)→byte
语法格式为:(转换到的类型)需要转换的值
示例代码:
double d=3.10;int n=(int)d;
这里将 double类型的变量d强制转换成 int类型,然后赋值给变量 n。需要说明的是小数强制转换为整数,采用的是“去1法”,也就是无条件的舍弃小数点的所有数字,则以上转换出的结果是 3。整数强制转换为整数时取数字的低位,例如 int 类型的变量转换为 byte类型时,则只去int类型的低8位(也就是最后一个字节)的值。
示例代码:
int n = 123;byte b = (byte)n;int m = 1234;byte b1 = (byte)m;
则 b的值还是123,而b1的值为-46。b1的计算方法如下:m的值转换为二进制是10011010010,取该数字低8位的值作为b1的值,则b1的二进制值是11010010,按照机器数的规定,最高位是符号位,1代表负数,在计算机中负数存储的是补码,则该负数的原码是10101110,该值就是十进制的-46。
注意问题:强制类型转换通常都会存储精度的损失,所以使用时需要谨慎。
- Java的数据类型:基本数据类型、引用数据类型
- java的基本数据类型
- Java的基本数据类型
- java的基本数据类型
- java的基本数据类型
- java 的基本数据类型
- Java的基本数据类型
- Java的基本数据类型
- Java的基本数据类型
- Java的基本数据类型
- java的基本数据类型
- java的基本数据类型
- Java的基本数据类型
- Java的基本数据类型
- Java的基本数据类型
- java的基本数据类型
- JAVA的基本数据类型
- Java的基本数据类型
- 【codevs 1227】方格取数2(费用流)
- ARM嵌入式开发中的GCC内联汇编简介
- 查某进程io情况
- 怎么减少Redis内存占用
- Java的clone方法
- java基本的数据类型
- Cocos2d-x高斯模糊
- 面试题:十大经典算法总结(Javascript描述)
- java -- 传值与传引用
- MySQL数据类型 ENUM和SET
- Java-面向对象(基础篇)--实例讲解
- Universal-Image-Loader的简单介绍和使用
- viicms仿乐享微信源码官方版
- Android 加入购物车动画