Java数据类型(整型,浮点型,字符型,布尔型)

Java数据类型划分简介:

Java是一种强类型语言,这意味着必须为每一个变量声明一种类型

8大基本数据类型:byte,short,int,long,double,float,char,boolean,具体类型如下图:

Java数据类型(整型,浮点型,字符型,布尔型)_第1张图片

对于基本数据类型都有其对应的保存范围:

基本类型 默认值 存储 对应的包装类 数据范围
byte 0

1个字节

java.lang.Byte [-2^7,2^7-1]
int 0 4个字节 java.lang.Integer [-2^31,2^31-1]
short 0 2个字节 java.lang.Short [-2^15,2^15-1]
long 0L或0l 8个字节 java.lang.Long [-2^63,2^63-1]
double 0.0或0.0D(d) 8个字节 java.lang.Double 64位IEEE 754双精度范围
float 0.0F或0.0f 4个字节 java.lang.Float 32位IEEE 754单精度范围
char ‘\u0000’ 2个字节 java.lang.Character [0,2^16-1]
boolean false 1个字节 java.lang.Boolean true\false

 

 

 

 

 

 

 

 

 

由上可以看出,整型数值是有符号的,字符型是无符号的。

——>下面再详细解读一下基本数据类型:

一、整型

     1、溢出情况

 (1)在Java程序中,任何一个整型常量数据都是int类型,但是在进行整型数据操作的过程中也会数据溢出问题,指的是当已经达到了整型的最大值或最小值时仍然进行操作而产生的错误数据问题。

举例:

运行如下java代码:

public class Test7{
	public static void main(String[] args){
		int max_value=Integer.MAX_VALUE;
		int min_value=Integer.MIN_VALUE;
		System.out.println(max_value+1);
		System.out.println(min_value-1);	
	}
}

我们期望得到的结果是:2147483649  及 -2147483649

然而运行得到:    显然发生了溢出,如果不进行解决的话,由于二进制存储是以补码存的,数值就会出现像是在最小值,最大值间循环的状态,所以最大值加1就变成了最小值的值

(2)解决方案:只有一个,那就是更换数据类型,用long来解决,如下

public class Test7{
	public static void main(String[] args){
	    int  max_value= Integer.MAX_VALUE;
		long num=max_value+1L;
		System.out.println(num);
    }
}

得到预期结果:     

(3)注意:

         A、所有程序的执行顺序是从右边到左边所以不可以省略掉1后面的L,否则还是会出现溢出现象,因为max_value表示int型,1也是int型,直接加一起,当然会溢出。好奇的看官们可以自行去验证哦^-^

        B、范围小的数据类型可以自动变为数据范围大的数据类型(在数学计算时);数据范围大的数据类型只有强制转换才能转为数据范围小的数据类型,但有时会丢失内容。

2、关于数据默认值

(1)数据默认值在主方法中无效

先看一段错误代码:                                                         运行结果:

Java数据类型(整型,浮点型,字符型,布尔型)_第2张图片Java数据类型(整型,浮点型,字符型,布尔型)_第3张图片

2)有两种解决方案在使用前进行赋值;在定义时进行赋值

(3)但是我们还想要看一下默认值的效果,怎么看呢,这时需要结合类才能观察到

代码如下:                                                                        运行结果:

Java数据类型(整型,浮点型,字符型,布尔型)_第4张图片

可以看到int的默认值为0

3、声明byte变量

byte data=10;
System.out.println(data);

在上面的代码中,10是int型常量,int的范围大于byte范围,理论上要进行强转,可是这里没有强转,因为数据在byte范围内(-128~127)

但是如果要将int变量赋给byte类型,必须强转

Java数据类型(整型,浮点型,字符型,布尔型)_第5张图片

二、浮点型

描述小数默认为double型

举例1:double定义小数

Java数据类型(整型,浮点型,字符型,布尔型)_第6张图片

注意:double可以保存的数字最大的,float保存范围小于double,如果要使用float,必须强制类型转换在小数后面加“F”或“f”

float f1=1.1F;

 举例2:

Java数据类型(整型,浮点型,字符型,布尔型)_第7张图片

观察结果,发现计算结果是不一样的,这告诉我们,如果想准确计算浮点型的结果,必须将其中一个变量变为double类型

三、字符型

字符型使用char来表示,并且使用' '来表示字符变量内容,并且可以与int相互转换
举例1:char与int型转换

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

}

观察到结果输出为65。

注: 大写字母(A-Z): 65(A)-90(Z);

        小写字母(a-z)  :97 (a)-112(z);

        int型转为char类型需要强制转换

举例2:实现大写字母变小写字母(注:大写字母与小写字母之间相差32 )

public class Test{
    public static void main(String[] args){
             char num1='A';
             int  num2=num1+32;
             char num3=(char)num2;
             System.out.println(num3);
}
}

举例三:字符型数字('0'-'9')与int型数字(0-9)不同

运行如下java程序,结果显然是会输出" '0' !=0 "

public class Test{
    public static void main(String[] args){
             if('0'==0){
				 System.out.println("'0'=0");
			 }
             System.out.println("'0'!=0");
}
}

Java中使用Unicode编码(一般其他语言采用ASCII编码),使用16进制编码,可以保存任何文字信息(包含中文),因此Java对字符的特性支持的比较好

四、布尔型

在其他语言中,没有提供布尔类型,因此用'0'表示false,非0表示true。但在java中没有这样的概念 。布尔型默认为false

================================================================================================

——>引用数据类型这里先说一个类

==初见String类

String类是Java中非常重要的一个类

char可以描述的只是单一的字符,现在想要描述多个字符,就必须利用字符串这一概念。

强调一下,String不是基本数据类型,而是一个引用数据类型

举例1:观察String型变量,String可以使用“+”来表示两个字符串的连接

public class Test{
    public static void main(String[] args){
             int num1=99;int num2=60;
             String result="张三的语文成绩:"+num1+" "+"英语成绩为:"+num2;
             System.out.println(result);
}
}

举例2:只要使用了“+”出现了字符串,则所有的数据类型(包含引用类型)都变成了String,要想得到正确的加法运算结果,必须使用“()”括起来

public class Test7{
    public static void main(String[] args){
             int num1=99;int num2=60;
             String result="计算结果为:"+(num1+num2);
             System.out.println(result);
}
}

大家可以自己试一下不带括号的结果哦,结果是这样子的:“计算结果为:9960”,直接连接了起来

================================================================================================

程序里几个常用的转义字符:

换行:\n     制表符:\t       双引号: \"      单引号:'

 

 

 

你可能感兴趣的:(JavaSE)