您的位置:首页 > 编程语言 > Java开发

笔记3:java数据类型划分

2016-10-04 15:44 274 查看
个人选择数据类型原则(99%通用)

1. 如果要想表示整数就用int,表示小数就用double
2. 如果要描述日期时间数字或者表示文件(或内存)大小使用long
3. 如果要实现内容传递或者编码转换使用byte描述
4. 如果要想使用中文,使用char可以避免乱码问题
5. 数据表示范围:byte<int<long<double


内置数据类型分类(6种数值类型,1种字符类型,1种布尔型)

byte(1个字节)

short(2个字节)

int(4个字节)

long(8个字节)

float(4个字节)

double(8个字节)

char(2个字节)

boolean

NOTE:对于数值类型的基本取值范围,我们无需去强制记忆,因为他们的值都已经以常量的形式定义在对应的包装类中了。

包装类

import javax.swing.plaf.synth.SynthSeparatorUI;

public class BasicDataTypes {

public static void main(String[] args) {
//byte
System.out.println("基本类型byte 二进制位数"+ Byte.SIZE);
System.out.println("包装类:java。lang。Byte");
System.out.println("最小值:Byte。MIN_VALUE="+ Byte.MIN_VALUE);
System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);
System.out.println();
//short
System.out.println("基本数据类型short 二进制位数:" + Short.SIZE);
System.out.println("包装类:java。lang。Byte");
System.out.println("最小值:Short。MIN_VALUE=" + Short.MIN_VALUE);
System.out.println("最大值:Byte。Max_VALUE=" + Short.MAX_VALUE);
System.out.println();
//int
System.out.println("基本类型int 二进制位数:" + Integer.SIZE);
System.out.println("包装类:java.lang.Integer");
System.out.println("最小值:Integer。MIN_VALUE=" + Integer.MIN_VALUE);
System.out.println("最大值:Integer。Max_VALUE=" + Integer.MAX_VALUE);
System.out.println();
//long
System.out.println("基本数据类型long 二进制位数:" + Long.SIZE);
System.out.println("包装类:java.lang.Long");
System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);
System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);
System.out.println();
//float
System.out.println("基本数据类型float 二进制位数:" + Float.SIZE);
System.out.println("包装类:java.lang.Float");
System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);
System.out.println("最大值:Float。MAX_VALUE=" + Float.MAX_VALUE );
System.out.println();
//double
System.out.println("基本数据类型double 二进制位数" + Double.SIZE);
System.out.println("包装类:java.lang.Double");
System.out.println("最小值:Double。MIN_VALUE=" + Double.MIN_VALUE);
System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);
System.out.println();
//char
System.out.println("基本数据类型char 二进制位数" + Character.SIZE);
System.out.println("包装类:java。lang。Character");
System.out.println("最小值:Character,MIN_VALUE=" + (int)Character.MIN_VALUE);
System.out.println("最大值:Character.MAX_VALUE=" + (int)Character.MAX_VALUE);
System.out.println();
}

}


java数据类型-int

变量和常量:常量不可以变化,而变量是可以变化的

数据溢出:每一种数据类型都有其对应的数据类型的保存范围,那么就有可能在执行代码的时候数据溢出,面对数据溢出,怎么解决?

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


运行结果

2147483647

-2147483648//这里发生了数据溢出

-2147483648

2147483647//这里也发生了数据溢出

解决办法:只能够通过扩大数据范围的方式来实现,那么比int更大的是long数据类型

数据类型转换(有以下规律)

数据范围小的数据与数据范围大的数据进行数学计算的时候,自动向大数据转换

public class TestForInt {

public static void main(String [] args){

double num = 10 + 10.1;

System.out.println(num);

}

}

运行结果

20.1

数据范围大的数据要变为数据范围小的数据,那么必须采用强制转换

public class TestForInt {
public static void main(String [] args){
int num = 10 + (int)10.1;//强制转换,丢失精度
System.out.println(num);//结果为20
}
}


如果是常量进行强制转换,有两种方式:100L,(long)100

int变量+int常量=int型数据

int变量+long常量=long型数据

long变量+int常量=long型数据

在哪种情况下,我们会遇到数据溢出?

只要你写的代码属于正常可以使用的代码,基本上数据溢出的情况就很少见

NOTE:所有的变量在使用的时候一定不要去相信默认值,都需要设置具体内容,最标准的做法是在申明变量的时候直接赋值,int num = 0;

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


运行结果

Exception in thread “main” java.lang.Error: Unresolved compilation problem:

The local variable num may not have been initialized //没有进行初始化

at TestForInt.main(TestForInt.java:5)

java数据类型划分-浮点型

double是保存范围最广的数据类型,在java中只要使用小数,我们都用double

默认的小数类型就是double
,所以如果使用了float表示需要将double型变为float型,需要采用强制转换

java数据类型划分-char

byte是属于字节,一个字节=两个字符,对于字符除了与字节有一些关系外,最主要的关系在于int型变量的转换

在计算机的世界里面一切都是编码的形式出现的,java使用的是16进制的unicode编码,此类编码可以保存任意文字,但是这个编码在设计的过程之中,考虑到与其他语言的结合问题(C,C++),那么在此编码里面包含了ascii码的部分编码,所以如果你之前有过类似的开发,那么这里就可以完全无缝连接

字符可以和int型相互转换

传统的编程语言之中,字符里面只能够保存一些英文文字,但是在java中,我们可以保存任意的文字,因为java使用的是unicode编码

java数据类型划分-布尔型(boolean)

布尔型是一种逻辑结果,主要保存两类数据,true,false

在许多的语言之中,由于设计的初期没有考虑到布尔型的问题,那么就使用数字0表示false,非数值0表示true,但是这样的设计对于代码开发比较混乱,java里面是不允许的,在java中只能有false和true两个值

java数据类型划分-String类型

与其他基本类型相比,String属于
引用数据类型
(属于类,在java里面只要是类名称,每一个单词的首字母都是大写的),但是这个类的使用比较特殊。String表示的是一个字符串,即,多个字符的集合,使用双引号包括起来

字符串变量和字符串常量

在String操作里面,可以使用“+”进行字符串的连接操作

public class TestForInt {
public static void main(String [
4000
] args){
String str01 = "my";//String创建方式1
String str02 = new String("love");//String创建方式2
String str03 = str01 + str02;//使用“+”进行字符串的连接操作
System.out.println(str03);
}
}


String型数据+int型数据+double型数据=字符串型数据

任何的数据类型都是向范围大的数据类型进行转换

int+int+String=》加号是从左到右的执行顺序

java里面也支持多种转义字符的使用:

\n:换行 \r:回车 \f:换页符 \b:退格 \s:空格 \t:制表符 \”:双引号 \’:单引号 \:反斜杠 \ddd:八进制字符

\uxxxx:16进制Unicode字符
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java