• 3.10Java基本数据类型


    3.10Java基本数据类型

    今日学习内容目录

    1. Java基本数据类型

    • 内置数据类型

    • 引用数据类型

    1. Java变量类型

    • 类变量

    • 实例变量

    • 局部变量

    1. Java修饰符

    • 访问修饰符

    • 非访问修饰符


    Java基本数据类型

    再介绍基本数据类型之前先讨论Java数据类型有什么作用?

    变量与内存的关系:

    1. 当创建变量的时候需要在内存中申请空间

    2. 变量类型不同分配的存储空间大小不同

    3. 分配的空间只能用来存储该类型的数据

    变量的存储位置问题

    这里又会涉及到存储位置的问题,一个变量的存储位置可以是寄存器(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语言支持的一些特殊的转义字符序列

     

    由于自动类型转换涉及到对象的概念,后面学习到对象的内容再回来学习

     

    It's a lonely road!!!
  • 相关阅读:
    显示等待WebDriverWait+EC
    mac 上查看python3的各种安装路径
    layui弹窗全屏显示
    Mysql 一些细节方面解析(一)--MyISAM和InnoDB的主要区别和应用场景
    命令关闭tomcat
    xml 写sql语句文件头
    mysql update 修改多个字段and的语法问题
    zookeeper安装
    Java 基础--移位运算符
    SQL mybatis动态查询小结
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/14515743.html
Copyright © 2020-2023  润新知