`
ye_haiqiang
  • 浏览: 85391 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

数据类型及类型转换

    博客分类:
  • J2SE
阅读更多

一、整数数据

1.1 int和Integer有什么区别

int 是基础数据类型,字节长度为4,它的创建不会再堆内存中开辟空间,一般保存在栈内存里,可以用算术运算符进行加减乘除等操作。在参数传递的时候,直接传递它的值。

Integer 是int的包装类,而本质是一个类,它的创建会在堆内存中开辟一块新的空间。它的含义也是表示一个整数数字,但是算术运算符不能操作它。在参数传递的时候,传递的是它代表的对象的一个引用。

public class IntTest 
{
	public static void main(String[] args) 
	{
		int a=10;//定义int a
		Integer b=new Integer(20);//用new创建一个Integer对象
		Integer c=Integer.valueOf(30);//用valueOf()方法创建一个Integer对象
		System.out.println(++a);//a用于"++"运算
		System.out.println(b.intValue());//用intValue()方法得到int型数据
	}
}

 

 

1.2 int和long的取值范围

int 数据采用4个字节进行存储,一共32位,第一位用于表示正负号,因此,它的取值范围是-2^31~2^31-1.

long数据采用的是8个字节进行存储,一共是64位。第一位表示正负符号,因此它的取值范围是-2^63~2^63-1.

 

二、实型数据

2.1float 和double的取值范围

float:范围从3.4E10^-38~3.4E10^38

double:范围从1.7E10^-308~1.7E10^308

2.2实型与整型的相互转换

整型和实型可以进行相互转换,其中整型转为实型时,不存在精度的损失,而实型转为整型时则可能会有精度损失。转换过程可分为显式和隐式两种方式,前者是通过强制类型转换来进行,后者是在运算、传参数等情况下,由系统自动进行。

 

 

//显式转换
int i=123;
double d=(double)i;
int k=(int)d;

//丢失精度
double d2=123.456;
int k1=(int)d2;

//隐式转换
double d3=12.1;
System.out.println(d3+123); 

 

三、布尔型数据

3.1 布尔型的值:false 和true(不是 0,1)

 

3.2 boolean 和Boolean包装类的区别

1)boolean是基础数据类型,Boolean是类

2)boolean 一般存于栈空间中,Boolean对象存在堆空间中

3)boolean 是true 和false两种值,Boolean 除了true 和false ,还有null。

 

四、字符型数据

4.1 char的取值范围

java中的char采用的是Unicode 编码格式,用两个字节来表示一个字符,一共16位,它所能表示的最大字符数量为2^16

4.2char 是否能存汉字

char 可以存储汉字的,每个中文字符都有对应的Unicode编码

 

public class ChineseTest 
{
	public static void main(String[] args) 
	{
		char c='海';
		int i=c;
		System.out.println(i);
	}
}

//输出结果为:28023

 

4.3 转义字符

在java中,使用反斜杠"\"来代表转义,它与紧跟在它后面的字符一起组成了转义字符,从而达到了转义的目的,如:\"(输出双引号)

 

五、String型数据

 

字符串类具有一定的特殊性,JVM在执行双引号操作符的时候,会自动的创建一个String对象,并返回这个对象的引用

5.1字符串对象池的作用

对象池的存在是为了避免频繁的创建和销毁对象而影响系统性能。当JVM在运行用双引号引起来一个字符串的代码时,会到String的对象池中去检查是否有一个字符序列相同的对象,如果有,就取现成的对象,如果没有,则在对象池中创建一个对象,并返回。(equal与==差别的例子)

//创建String对象的两种方法
String str1="ye_haiqiang";//在对象池中取对象
String str2=new String ();//直接生成新的对象

5.2指定字符集创建String对象

使用带有字符集编码的String的构造方法就可以用指定的字符集来重新创建字符对象了,该方法 的参数包括两个:一个是byte数组;另外一个则是字符集编码的字符串形式。例如:UTF-8、GBK、ISO-8859-1等

如:

 

String a="中文";
String b=new String(a.getBytes(),"GBK");
String c=new String(a.getBytes(),"UTF-8");

 

每天一点点希望对大家有利~

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics