3.10Java基本数据类型
今日学习内容目录
Java基本数据类型
内置数据类型
引用数据类型
Java变量类型
类变量
实例变量
局部变量
Java修饰符
访问修饰符
非访问修饰符
Java基本数据类型
再介绍基本数据类型之前先讨论Java数据类型有什么作用?
变量与内存的关系:
- 
当创建变量的时候需要在内存中申请空间 
- 
变量类型不同分配的存储空间大小不同 
- 
分配的空间只能用来存储该类型的数据 
变量的存储位置问题
这里又会涉及到存储位置的问题,一个变量的存储位置可以是寄存器(register),也可以是堆栈(stack---位于RAM中),还可以是堆(heap---内存池,也位于RAM中),那么到底会存在哪?
对于基础类型的变量和常量而言:
- 
变量和引用存储在栈中 
- 
常量存储在常量池中 
Java两大数据类型
内置数据类型
Java语言提供了八种基本数据类型。六种数字类型(四个整数型,两个浮点型),一个字符类型,还有一种布尔型

- 
整数型 - 
byte - 
8位(一个字节)、有符号、以二进制补码表示的整数 
- 
用在大型数组中节约空间,主要代替整数。byte变量占用的空间只有int类型的四分之一 
- 
默认值是0 
 
- 
- 
short - 
16位(2个字节)、有符号、以二进制补码表示的整数 
- 
一个short变量是int型变量所占空间的二分之一 
- 
默认值是0 
 
- 
- 
int - 
32位(4个字节)、有符号、以二进制补码表示的整数 
- 
整型变量默认为int类型 
- 
默认值是0 
 
- 
- 
long - 
64位(8个字节)、有符号、以二进制补码表示的整数 
- 
用在比较大整数的系统上 
- 
默认值是0L 
- 
表示方法:Long = 10000L(两个点:第一个是大写的"L"字母,第二个是再常量后加"L"字母表示long型) 
 
- 
 
- 
- 
浮点型 - 
float - 
单精度、32位、符合IEEE754标准的浮点型 
- 
存储大型浮点数组的时候可节省内存空间 
- 
默认值是0.0f 
- 
不能用来表示精确的值,如currency---小数点后几位忘记了,听马士兵教程 
- 
举例:float f1 = 234.5f 
 
- 
- 
double - 
双精度、64位、符合IEEE754标准的浮点型 
- 
浮点数的默认类型是double类型 
- 
不能用来表示精确的值,如currency 
- 
默认值是0.0d 
- 
举例:double d1 = 123.4 
 
- 
 
- 
- 
布尔型 - 
boolean - 
表示一位的信息 
- 
两个值 - 
true---为真 
- 
false---不为真 
 
- 
- 
只作为一种标志来记录true/false情况 
- 
默认值False 
- 
举例:boolean one = true; 
 
- 
 
- 
- 
字符型 
- 
char 
- 
单一的、16位(2个字节)、Unicode字符: 
- 
Min_value = \u0000(即为0) 
- 
Max_value = \uffff(即为65535) 
- 
char数据类型可以存储任何字符 
- 
举例:char letter = 'A'; 
一个字节八位
这些内置数据类型的最大最小值没必要去记忆,Java已经给了出来。具体的查询方式
public class PrimitiveTypeTest{
    publc static void main(String[] args){
        System.out.println("数据类型".size)
        //输出的是数据类型的二进制位数
        System.out.println("数据类型".Max_value);
        //字符的查询方式
        // char  
        System.out.println("基本类型:char 二进制位数:" + Character.SIZE);  
        System.out.println("包装类:java.lang.Character");  
        // 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台  
        System.out.println("最小值:Character.MIN_VALUE="  
                + (int) Character.MIN_VALUE);  
        // 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台  
        System.out.println("最大值:Character.MAX_VALUE="  
                + (int) Character.MAX_VALUE);  
    }
}
Float和Double的最小值和最大值都是以科学记数法的形式输出的,结尾的"E+数字"表示E之前的数字要乘以10的多少次方。比如3.14E3就是3.14 × 103 =3140,3.14E-3 就是 3.14 x 10-3 =0.00314。
实际上,JAVA中还存在另外一种基本类型 void,它也有对应的包装类 java.lang.Void,不过我们无法直接对它们进行操作。
整体情况如图所示
public class Test {
    static boolean bool;
    static byte by;
    static char ch;
    static double d;
    static float f;
    static int i;
    static long l;
    static short sh;
    static String str;
 
    public static void main(String[] args) {
        System.out.println("Bool :" + bool);
        System.out.println("Byte :" + by);
        System.out.println("Character:" + ch);
        System.out.println("Double :" + d);
        System.out.println("Float :" + f);
        System.out.println("Integer :" + i);
        System.out.println("Long :" + l);
        System.out.println("Short :" + sh);
        System.out.println("String :" + str);
    }
}
/*
上面的代码是先用static关键字+每个数据类型的默认值作为返回值---因为没有给数据类型赋予常量
*/
引用数据类型
引用数据类型的几个特点
- 
引用类型的变量类似C/C++的指针。其特点是: - 
引用类型指向一个对象,指向对象的变量是引用变量 
- 
变量再声明时被指定为一个特定的类型,如:Employee、Puppy等。 
- 
变量一旦声明后,类型不能被改变 
 
- 
- 
对象、数组都是引用数据类型 
- 
所有引用类型的默认值都是Null 
- 
一个引用变量可以用来引用任何与之兼容的类型---未理解其含义 
- 
举例:Site site = new Site("Runoob") 
Java常量
常量在程序运行时是不能被修改的
特点:
- 
Java中使用final关键字修饰常量,声明方式和变量类似 
- 
通常用大写字母表示常量,下面的PI表示的就是常量 - 
final double PI = 3.1415927;
 
- 
- 
字面量可以赋给任何内置类型的变量 - 
byte a = 68;
 char a = 'A';
 
- 
- 
当使用字面量时,前缀0表示八进制,前缀0x代表16进制 - 
int decimal = 100;//这个是十进制数
 int octal = 0144;//这个是八进制数,因为前面有"0"前缀
 int hexa = 0x64;//这个是十六进制数,因为前面有"0x"前缀
 
- 
- 
Java的字符串常量包含在两个引号之间的字符序号 - 
"Hello World"
 "Two\Ulines"
 "\"This is in quotes\""
 
- 
- 
字符串常量和字符常量都可以包含任何Unicode字符 - 
char a = "\u0001";
 String a = "\u0001";
 
- 
下面是Java语言支持的一些特殊的转义字符序列
由于自动类型转换涉及到对象的概念,后面学习到对象的内容再回来学习
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号