Java的数据类型划分以及数据类型操作,程序就是一场数字游戏。
一、Java的数据类型划分
在java之中,数据类型一共分为两大类:
1、基本数据类型:
1、数值型:表示整数或者小数
1.1整型:byte、short、int、long;默认值:0
(C++是没有默认值的)
1.2浮点型:float、double;默认值:0.0
2、字符型:char;默认值:’\u000‘
3、布尔型:boolean;默认值:false
2、引用数据类型:
数组、类、接口;默认值:null
- 本次重点在基本数据类型的操作上,而基本数据类型就肯定有其保存的数据范围。
注意:C语言中char是一个字节、Java中是2个字节,byte是一个字节,范围是-128-127;
- 对于以上的数据类型选择,给出如下的选择方案:
(1)在程序开发之中表示整数就使用int,描述小数就是用double,java默认小数就是double。
(2)long这种数据类型一般会描述日期时间,内存或者文件大小(字节)。
(3)如果需要进行编码转换或者二进制数据传输,使用byte。
(4)char一般在描述中文的时候使用到(基本上都会忽略);
(5)boolean在描述程序逻辑中使用。
二、整型类型
1、int类型和long类型
在java程序中任何一个整数的常量类型就是int型;
范例:
public class TestDemo{
public static void main(String args[]){
int num = 10 ;
System.out.println(num * 2);
}
}
数据溢出:但是在进行整型变量操作过程中,太大或者太小,也会出现数据溢出问题。
关于变量的命名要求:第一个单词字母小写,之后的单词首字母大写。
- 发现当已经超过数据类型的局限之后,数据的计算就会出现偏差,所以一定要在操作前预估数据的大小。但是,既然已经知道了int存在溢出问题,需要去解决这个溢出问题。
- 解决方案只有一个:更换更大的数据类型,比int大的数据类型就是long类型。long肯定也有数据溢出问题,但可以解决int溢出问题。
- 在使用此类方式处理之前一定要注意一个问题,所有的程序的执行顺序都是由等号的右边到左边,如果继续使用int进行计算,那么计算结果依然会有溢出,最简化的就是一个变量做类型的扩充。
- 实现一:将int变量内容直接赋值给long;
(long类型+int类型=long类型,小范围编程大范围进行计算) - 实现二:直接将某一个int变量变成long型,强制类型转换;
long result = (long)maxValue + 1;
- 数据类型不但可以实现有效变大之外,也可以实现由大变小。这就需要强制完成,强制的结果只能丢失内容。
(1)范围小的数据类型可以自动变为范围大的数据类型;
(2)数据范围大的数据类型只有强制转换才可以变为数据范围小的数据类型。
注意:这里在常量后面加”L“或者”l“表示为long数据类型。
重要说明:关于数据类型默认值问题,在之前说过的所有的数据类型中都有其默认值,这个规定在主方法中无效。
范例:错误代码
- 这个时候两种解决方案,一种是使用前进行赋值(老版本JDK有问题),另外一种定义变量的时候赋值(所有JDK通用做法)。
2、byte数据类型
byte数据类型可以保存的范围:-128-127之间。
范例:声明byte变量。
- 如果,赋值大于byte范围,这个时候需要强制类型转换。
- 如果将int常量直接赋值给byte变量,那么只能是常量,不能是int变量。
int num = 10;
byte data = num; //错误的
int num = 10;
byte data = (byte)num; //加上强制类型转换,正确的
在以后的开发之中,int和byte经常一起出现。
三、浮点类型
1、double类型和float类型
- 在表示小数数据的时候,默认的数据类型使用的是double。
范例:定义小数。
- 注意:double可以保存的数字是最大的。而除了double之外,可以用float,但是其范围小于double,如果要想直接声明float变量,那么就要求在定义的时候进行强制转换,在数字后加一个字母”F“、”f“,或者数字前加(float)。
- 既然说到了小数问题,就要考虑整数除法问题。以后进行除法运算,一定记得数据类型的问题。
四、字符型
1、char类型
字符型使用char进行表示,而且使用单引号“ ‘ ”,同时字符型可以与int型进行转换。但是最麻烦的部分就是char和int可以互相转换。所有字符都是通过编码实现的,char变成int就是字符编码。
- 常用范围:(小写字母比大写字母大32)
(1)大写字母(A-Z):65(A)~90(Z)
(2)小写字母(a-z):97(a)~122(z)
(3)字符数字(’0‘~’9‘):48(’0‘)-57(’9‘)
范例:观察字符
- 注意:需要将int的内容转换为char类型,强制转换。
- 实际上各种语言都有相似的编码,使用其他语言使用的编码就是ASCII码,Java使用的是UNICODE编码,这种编码包含ASCII码的内容,但是多于ASCII码。使用16进制编码,可以保存任何的文字信息,包括中文。
范例:输出中文字符
范例:神奇的Java
- 打破了之前的明明标识符,强烈建议不要用,知道就可以了。
五、布尔型
1、boolean类型
- 布尔数学家,发明两个单词:true、false。表示逻辑。
范例:观察布尔型
说明:在其他语言中,由于没有提供bool型数据,一般用整型表示,0表示false,非0表示true。但是java没有这样的概念,boolean flag=1,是错误的。
六、初见字符串
1、String
- S听并不是一个基本数据类型,是一个引用数据类型,可以按照基本数据类型的使用模式进行套用。
范例:观察String变量
- 在String变量上,可以使用“+”、“-”,表示字符串的连接。数学上,“+”表示数值运算。两个同时出现的时候呢?
范例:观察“+”问题
- List item
- 常用转义字符:\n,\t," , ’ , * , \ (\)