java数据类型

mac2022-06-30  90

# Java基础语法

变量和表达式

程序中的变量用于存储诸如数字和字母这样的数据。它们可以被认为是一种容器,变量中的数字、字母以及其他数据项称为变量的值。

在程序中使用某个变量之前,必须陈述每一个变量的一些基本信息。需要知道变量的名称、要为该变量保留多少计算机内存、变量中的数据项如何编码为一串的0和1。

变量声明告诉计算机保存什么类型的数据。由于不同类型的数据以不同的方式保存在计算机中,计算机必须知道变量的类型,从而知道如何在计算机内存中存储和提取变量的值。

变量声明示例:

int a,b,c;

变量声明组成:类型名称、一系列变量名称、各名称之间用逗号隔开,最后分号结束变量的声明。


数据类型

数据类型指定一组值以及其操作。java语言是一个强调数据类型的语言,在声明任何变量时,必须将该变量定义为一种数据类型。

java拥有两种主要的数据类型:类类型和基本类型。

类类型是一种用于类的对象的数据类型。基本类型是一个不可分解的值。

java的基本数据类型:

byte用一个字节来表示整数值

拥有十进制、二进制、八进制,但无论采用哪种形式,输出控制台上,系统都会将其自动转换为十进制。

public class Byte { public static void main(String[] args) { byte x = 22; //十进制 byte y =022 ; //八进制 byte z = 0x22 ;//十六进制 //输出相应的值 System.out.println("x= " + x); System.out.println("y = " + y); System.out.println("z = " + z); } }

运行效果:

run: x= 22 y = 18 z = 34 成功构建 (总时间: 0 秒)

短整型

程序:

public class Short { public static void main(String[] args) { short x = 22; //十进制 short y =022 ; //八进制 short z = 0x22 ;//十六进制 //输出相应的值 System.out.println("x= " + x); System.out.println("y = " + y); System.out.println("z = " + z); } }

运行效果:

run: x= 22 y = 18 z = 34 成功构建 (总时间: 0 秒)

后面的与之类似,其中long类型需要在数据后面添加L标志,float类型需要添加F标志。

在java中可以方便地取得数据类型的最大值和最小值。如取得int数据类型范围的最大值:Integer.MAX_VALUE; 取得int数据类型的最小值:Integer.MIN_VALUE。

数据的极限操作:

public class DataOperator { public static void main(String[] args) { int max = Integer.MAX_VALUE; //最大值 int min = Integer.MIN_VALUE; //最小值 System.out.println(max); System.out.println(min); //数据溢出:最大值 + 1 = 最小值 System.out.println(max+1); System.out.println(max+2); //数据溢出: 最小值 - 1 = 最大值 System.out.println(min-1); } }

程序运行结果:

run: 2147483647 -2147483648 -2147483648 -2147483647 2147483647 成功构建 (总时间: 0 秒)

解决数据溢出的主要方法可以通过扩大数据范围来完成。比int大的范围是long。

public class DataOperator1 { public static void main(String[] args) { int max = Integer.MAX_VALUE; //最大值 int min = Integer.MIN_VALUE; //最小值 System.out.println(max); System.out.println(min); //数据溢出:最大值 + 1 = 最小值 System.out.println(max+1L); System.out.println(max+2); //数据溢出: 最小值 - 1 = 最大值 System.out.println(min-(long)1); } }

结果:

run: 2147483647 -2147483648 2147483648 -2147483647 -2147483649 成功构建 (总时间: 0 秒)

本程序中将每一个操作中一个int类型数据转变为了long型数据,这样程序在处理的时候就会发生数据的转型,最终变为了对long型数据进行数学操作,从而可以很好地解决数据溢出的问题。

而在java中,各个基本数据类型的转型操作流程为:

范围小和范围大的两种数据操作,范围小的数据类型会自动变为范围大的数据类型,如 int + long = long。如果要把范围大的数据类型转变为数据类型小的数据,则必须强制类型转换,如 int = (int)long。

问题:如果要强制转换的数据类型的数据大于接收类型会怎样?如int类型转换成byte类型,此时int变量保存的数据值已经大于byte的数据范围(-128~127)了,则byte的内容会是多少?

答案依然会存在数据溢出。简单的验证:

public class TestIntToByte { public static void main(String[] args) { int x = 200; byte b = (byte)x; //强制类型转换 System.out.println(b); } }

结果:

run: -56 成功构建 (总时间: 0 秒)

在开发中如果给出了两个整型数据进行除法计算,会出现结果不正确的情况。如:

public class IntChuInt { public static void main(String[] args) { System.out.println(9/2); } }

结果为:

run: 4

这是因为计算的都是两个整型数据,所以计算结果还是int,而int不包含小数位,小数位如果存在则直接取消,想要得出正确结果的话只需将其中一个数据转换成double或float型。

字符型(char)

java中使用单引号''定义的内容表示一个字符,使用char来完成定义字符类型。另外在java语言中char和int之间是可以相互转换的。

大写字母范围:65-90小写字母范围:97-122 大小写字母之间差了32

定义字符并完成与int完成转换。

public class IntToChar { public static void main(String[] args) { char c = 'A'; //定义一个字符 int x = c; //char转换成int x += 32; //大写字母转为小写字母 char temp = (char) x; //int 类型强制转换成char System.out.println(temp); } } 结果为: run: a

问题:char型变量中能否保存一个中文汉字?为什么

能够存储一个中文,因为java中以Unicode编码,一个char占16个字节,所以可以保存一个中文。

布尔型(boolean)

布尔型主要表示的是一种逻辑判断,对布尔型数据只有两种取值:true和false。

在许多语言中,布尔型也使用0或非0来表示,但在java中并无此概念

字符串(String)

java中使用String可以定义字符串变量,但String属于一个类(引用型数据),字符串是使用双引号定义的一串数据。

**任何数据类型遇到String变量的“+”操作都会自动变为String型数据。

运算符

java中的语句有很多形式,表达式就是其中一种,表达式由操作数和运算符组成。

java运算符:

运算符的优先级:

三目运算符:

格式: 数据类型 变量 = 布尔表达式?满足条件的内容:不满足条件设置的内容;

范例:将两个int型中数据大的数值赋给变量

public class maxSanMu { public static void main(String[] args) { int x = 10; int y = 20; int result = x>y?x:y; System.out.println(result); } } 结果: run: 20

逻辑运算符

逻辑运算一共包含三种:与、或、非

“与”操作要求所有的判断条件都满足,在多个判断条件中,如果有一个条件不满足,那么不需要向后判断,结果一定是false。

“或”操作,若干条件一起判断,其中只要一个范围true,结果就是true,只有都返回false结果才为false。

位运算符

位运算在java中有:&、^、~、>>、<<、>>>,而所有的位运算都是采用二进制数据进行操作的。

转载于:https://www.cnblogs.com/jueshijindai/p/8627186.html

最新回复(0)