java修炼手册——基本的数据类型

一、整数常量  

 java 把整数常量的数据类型均视为 int,int 为32位,4个字节,表示范围为 -2147483648 到 2147483647。

//下面这段程序说明了 int 值的取值范围
public class test{
    public static void main(String[] args){
        long num = 329857456332; //解决方法:long  num = 329857456332L;
        System.out.println("num = "+num);
    }
}

运行以上代码会报错:

The literal 329857456332 of type int is out of range 或 integer number too large: 329857456332  long num = 329857456332;

这是因为把整数常量看成是 int 类型,但 329857456332 这个常量已经超出了 int 类型所能表示的范围,所以虽然把 num 的类型设为 long, 但编译时依然会发生错误。

解决方法是,在整数常量后面加一个大写的“L”,代表该常量是 long 类型的整数常量。(注释在其代码后)

    当整数的数据大小超出了可以表示的范围,而程序中又没有做出数值范围的检查时,这个整型变量所输出的值将发生紊乱,且不是预期的运行结果,这种情况是溢出。

public class test1{
    public static void main(String[] args){
        int x = java.lang.Integer.MAX_VALUE;
        System.out.println("x = " + x);
        System.out.println("x + 1 = " + (x + 1));
        System.out.println("x + 2 = " + (x + 2));
    }
}

运行结果:
x = 2147483647
x+1 = -2147483648
x + 2 = -2147483647

当最大值加1时,结果反而变成表示范围中最小的值,当最大值加2时,结果变成表示范围中次小的值,这就是数据类型的溢出,就像计算器内的内容到最大值会自动归零一样。

这种情形会出现一个循环,要避免这种情况,就必须在程序中加上数值范围的检查功能,或者使用较大范围的数据类型,比如 long。

二、整数类型

数据不带有小数或分数时,即可声明为整数变量。java 中,整数数据类型可以分为四种:long、int、short、byte(从大到小)。long 为64位,8个字节,int 为32位,4个字节,short 为2个字节,byte 为1字节。想声明为一个短整型变量 sum 时,可以在程序中这样声明:short sum;经过声明之后,就会在可使用的内存空间中,寻找一个占有2字节的块供 sum 变量使用,同时这个变量的范围只能在 -32768 到 32767 之间。

java 提供了 long、int、short、byte 四种整数类型的的最大值、最小值的代码,最大值是 MAX_VALUE;最小值是 MIN_VALUE;如果要调用某个类型的最大值或最小值,只要在这些代码之前加上它们所属的类的全名即可。

public class Test {
	public static void main(String[] args) {
		long long_max = java.lang.Long.MAX_VALUE;
		long long_min = java.lang.Long.MIN_VALUE;
		int int_max = java.lang.Integer.MAX_VALUE;
		int int_min = java.lang.Integer.MIN_VALUE;
		short short_max = java.lang.Short.MAX_VALUE;
		short short_min = java.lang.Short.MIN_VALUE;
		byte byte_max = java.lang.Byte.MAX_VALUE;
		byte byte_min = java.lang.Byte.MIN_VALUE;
		
		System.out.println("long最大值:"+long_max);
		System.out.println("long最小值:"+long_min);
		System.out.println("int最大值"+int_max);
		System.out.println("int最小值"+int_min);
		System.out.println("short最大值"+short_max);
		System.out.println("short最小值"+short_min);
		System.out.println("byte最大值"+byte_max);
		System.out.println("byte最小值"+byte_min);
		
	}

}

运行结果为:

long最大值:9223372036854775807
long最小值:-9223372036854775808
int最大值2147483647
int最小值-2147483648
short最大值32767
short最小值-32768
byte最大值127
byte最小值-128

三、字符型与字符串

字符型:char

char 属于字符类型,在存储时占用2个字节。给字符赋值时可以使用数值和字符,都可以正确的运行,要注意的是字符要用一对单引号('')括起。

public class Test2 {
	public static void main(String[] args) {
		char ch1 = 97;
		char ch2 = 'a';
		System.out.println("ch1 = " + ch1);
		System.out.println("ch2 = " + ch2);
	}

}

运行结果:

ch1 = a
ch2 = a

字符串:String

String 不属于八种基本类型,是引用类型,是一个对象。字符串常量的赋值要用到双引号(""),在双引号中的值是一个字符序列,这个序列可以是任意长的,当然不能超过 java 规定的最大长度。它的声明方式为 String [变量名];  加号在 String 赋值可以作为连接符来使用,把两个字符串串连起来得到一个较大的字符串。

常用的 String 方法:

char charAt(int index);

int compareTo(String other);

String contact(String str);

int indexOf(int ch);

boolean equalsIgnoreCase(String anotherString);

String replace(CharSequence target, CharSequence replacement);

String substring(int beginIndex);

String substring(int beginIndex, int endIndex);

String tolowerCase();

String toUpperCase();

四、浮点数与双精度浮点数类型

在 java 中,带有小数点的数据类型称为浮点数类型 float,长度为4个字节,有效范围为 [-3.4*1038,3.4*1038],声明方式为:float num; 赋值为 num = 3.0f 。当浮点数的表示范围不够大时,java 提供了一种双精度浮点数 double,长度为8个字节,有效范围为 [-1.7*103808,1.7*103808],声明并赋值: double num1 = 3.0 。浮点数的表示方法除了指数方式,还可以用带有小数点的一般形式来表示。

在为 float 与 double 声明赋值时要注意:

double num = -6.3e64;

double num1 = -6.3E64;

以上两种表示方法的值是一样的,e 与 E 可以互相取代。

float 赋值时,要在值后加 f 或 F ,作为 float 类型的识别。如果没加,java 会将数据视为 double 类型,在编译时会发生错误。

java 中,浮点数赋值时,默认数据类型为 double,在double 类型声明赋值时,可以在数值后加 d 或 D ,作为 double 类型的标识,也可以不加。

java 也提供了浮点数据类型的最大值与最小值的代码:

public class Test3 {
	public static void main(String[] args) {
		System.out.println("float 的最大值为:" + java.lang.Float.MAX_VALUE);
		System.out.println("float 的最小值为:" + java.lang.Float.MIN_VALUE);
		System.out.println("double 的最大值为:" + java.lang.Double.MAX_VALUE);
		System.out.println("double 的最小值为:" + java.lang.Double.MIN_VALUE);
	}

}

运行结果:

float 的最大值为:3.4028235E38
float 的最小值为:1.4E-45
double 的最大值为:1.7976931348623157E308

double 的最小值为:4.9E-324

五、布尔类型

布尔类型的变量只有 true 与 false 两种,也就是说,当一个变量被定义为布尔类型时,它的值只能为 true 与 false,除此之外,没有其它的值可以被赋给变量。声明方式:boolean boo; 赋值:boo = true; //或 boo = false;

六、数据类型转换

数据类型转换可以分为自动类型转换和强制类型转换。

自动类型转换

在程序中已经定义好的变量,若是想用另一种数据类型表示时,java 会在下列条件都满足的情况下,自动转换类型:

1.转换前的数据类型与转换后的数据类型兼容;

2.转换后的数据类型比转换前的数据类型表示的范围大;

举例来说:

若是想将 short 类型的变量 a 转换为 int 类型,1.由于 short 与 int 皆为整数类型;2.int 表示范围比 short 要大;因此 java 会将变量 a 自动转换为 int 类型。

值得注意的是,类型的转换只限该行语句,并不会影响原先所定义的变量的类型,可以保证数据的准确度,它不会因为转换而损失数据内容,这种类型的转换方式也称为扩大转换。整数与浮点数也是兼容的,由于 boolean 类型只能存放 true 与 false ,与整数及字符都是不兼容的,因此不能进行数据类型转换。

强制类型转换

在 java 中,当两个整数进行运算时,其运算的结果也会是整数。8/3的运算结果是2,而不是2.6666...,因此若是想得到更精确的值,就必须将数据类型做强制性的转换,转换的语法为: (欲转换的数据类型)变量名称; 强制类型的转换是直接编写在程序代码中,因此强制类型转换也称为显性转换。

七、补充

java 中可以在程序中的任何地方声明变量,但是在循环中声明的变量只是局部变量,只要跳出循环就不能再使用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值