Java——数据类型划分

Java中数据类型分为两大类: 基本数据类型、引用数据类型。

· 基本数据类型:(只包含具体的数据,不牵扯内存关系)

        |· 数值型:

                 |·  整型:byte(8位)、 short(16位)、int(32位)、long(64位);           ——>默认值:   0

                    |·  实型(浮点型):  float(32位)、double(64位);                     ——>默认值:   0.0
    

        |·字符型:    char(2位);                              ——>默认值:  '\u0000'

        |· 布尔型:boolean;                                    ——>默认值:   false

·引用数据类型:类、数组、接口.                    ——>默认值:  null

 

byte < short < int < long < float < double

 

表达式中如果有double,结果就是double类型

表达式中如果有float,结果就是float类型

表达式中如果有long,结果就是long类型

其余的都是int类型

·  表示整数用int、表示小数用double;

·  在进行数据传输和字符转码的过程之中用byte;

·  表示日期时间或文件大小时用long;

·  表示逻辑关系的时候用boolean。

 

·整型

public class TestDemo {
	public static void main(String args[]) {
		int num;
		System.out.println(num);
	}

}
错误:
  局部变量 num 可能尚未初始化

注:变量在使用前一定要初始化,不要依靠系统提供的默认值。

public class TestDemo {
	public static void main(String args[]) {
		int max = Integer.MAX_VALUE;    // 取得int的最大最
		int min = Integer.MIN_VALUE;    // 取得int的最小值
		System.out.println(max);         // 最大值:2147483647
		System.out.println(min);         // 最小值:-2147483648
		//int型 + int型 = int型
		System.out.println(max+1);       // 最大值 + 1 = -2147483648(最小值)
		System.out.println(max+2);       // 最大值 + 2 = -2147483647 (次最小值)
		//int型 - int型 = int型
		System.out.println(min - 1);     // 最小值 - 1 = 2147483647(最大值)
	} 

}

     注:发现据是一个循环过程,最大值继续进行加法计算则变为最小值,最小值继续进行减法计算将变为最大值,这一概念属于数据的溢出。

    解决数据溢出的唯一途径是扩大使用的数据范围。

    将int变为long,有两种方式

方式一: 在数字前加上一个  "(long)"

	long x = (long) 10;   // int 变为long

方式二: 在数字后面加上一个字母"L"

long x = 10L;   // int 变为long

 

public class TestDemo {
	public static void main(String args[]) {
		int max = Integer.MAX_VALUE;    // 取得int的最大最
		int min = Integer.MIN_VALUE;    // 取得int的最小值
		System.out.println(max);         // 最大值:2147483647
		System.out.println(min);         // 最小值:-2147483648
		//int型(自动向上变为long) + long型 = long型
		System.out.println(max+1L);       // 2147483648
		System.out.println(max+(long)2);       // 2147483649
		//int型(自动向上变为long) - long型 = long型
		System.out.println(min - 1L);     // -2147483649
		long x = 10L;   // int 变为long
	} 

}

结论: 当范围小的数据类型与范围大的数据类型一起进行数学计算时,范围小的数据类型会自动的变为范围大的数据类型,当类型统一之后再进行数学计算。byte ——>short——>int——>long——>float——>double

范围大的数据类型如果要变为范围小的数据类型,一定要使用强制转换,但是这之中有可能出现数字的错乱。

public class TestDemo {
	public static void main(String args[]) {
		int num = 129;
		byte b = (byte) num;    //强制转换
		System.out.println(b);
	} 

}

运行结果:

-127

任何一个整数在java中都是一个int类型的常量。如果不在byte范围之中的整型常量,则需要执行强制转型。

例一:

public class TestDemo {
	public static void main(String args[]) {
		
		byte b =  1000;    
		System.out.println(b);
	} 

}
- 类型不匹配:不能从 int 转换为 byte

例二:

public class TestDemo {
	public static void main(String args[]) {
		
		byte b =  100;    
		System.out.println(b);       //100
	} 

}

·  实型数据:(float、double)

在程序中默认的小数类型为double,double式范围最大的数据类型。

public class TestDemo {
	public static void main(String args[]) {
		double num = 10.2;           //小数为double类型
		System.out.println(num);      
		//double型 * int型(变为double型) = double型
		System.out.println(num *2);    
	}
}

运行结果:

10.2
20.4

如果使用float类型,一定要执行强制类型转换。转换形式有两种;

            ·  形式一: (float)变量;

            ·  形式二:  在数字之后使用字母"F"表示。

示例:

public class TestDemo {
	public static void main(String args[]) {
		float num = 10.2
		System.out.println(num);         
	}
}
语法错误,将“;”插入到完整 BlockStatements 中
	类型不匹配:不能从 double 转换为 float

正确用法:

public class TestDemo {
	public static void main(String args[]) {
		float num = 10.2F;
		System.out.println(num);         //10.2
	}
}

 

建议小数以double为主

 


·字符型数据

所谓字符数据指的是使用"'"声明的一个字符信息。字符使用char表示,char和int可以进行相互转换的。

public class TestDemo {
	public static void main(String args[]) {
		char c = 'a';
		int num = c;
		System.out.println(num);         //97
	}
}

字母和数值之间的转换是有一定的数据联系的:

            ·  大写字母(A~Z) :    65~90;

            ·  小写字母  (a~z)  :    97~122;

            ·  数字字母  (0~9)  :  48~57;

public class TestDemo {
	public static void main(String args[]) {
		char c = 'A';
		int num = c;
		num = num + 32;
		System.out.println(num);              //97
		System.out.println((char) num);       //a
	}
}

·布尔型数据

Boolean数据类型只有两种:true、false。

在一些其它语言中(不支持布尔型数据的)可能使用 0 表示 false,1 表示 true。

但在java中布尔型只能是 true 和 false。

 

·字符串类型

java 中使用 String 类表示字符串。使用 “"" 声明得到数据表示一个字符串。

public class TestDemo {
	public static void main(String args[]) {
		String str = "Hello ";
		str = str + "World";
		System.out.println(str);       //a
	}
}

运行结果:

Hello World

注:在字符串之中 "+" 表示字符串连接操作。

public class TestDemo {
	public static void main(String args[]) {
		int numA = 10;
		double numB = 20.1;
		String result = "计算结果: " + numA + numB;
		System.out.println(result);       
	}
}

运行结果:

计算结果: 1020.1

在 java 里面任何的数据类型,只要与 String 进行了 "+" 连接操作,都表示所有的类型自动变为 String 后进行连接操作。为了正确只能使用 "( )" 改变优先级。

转义字符: \n (换行)、\t (Tab) 、\" ( " ) 、\' ( ' )  、\\ ( \ )

public class TestDemo {
	public static void main(String args[]) {
		int numA = 10;
		String result = "\t\"Hello \'World .\n 你好!";
		System.out.println(result);       
	}
}

运行结果:

	"Hello 'World .
 你好!

 

 

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值