zoukankan      html  css  js  c++  java
  • Java中的数据类型

    Java是一种强类型语言,每个变量都必须声明其类型,而Java的数据类型可以分为两大类:基本类型和引用类型。

    1、强弱类型语言

    Java是一种强类型语言,那么什么是强类型语言呢?

    强类型语言也称为强类型定义语言。要求变量的使用要严格符合规定,所有变量都必须定义后才能使用,而且变量的类型虽然可以改变但是不能够随意改变。

      Java、.NET、C++等都是强制类型定义的。也就是说,一旦一个变量被指定了某个数据类型,如果 不经过转换,那么它就永远是这个数据类型了。

      安全性高,运行效率相对较慢,鱼和熊掌不可兼得!强类型定义语言在速度上可能略逊色于弱类型定义 语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。

    那么弱类型语言就是与强类型语言相对反的,像vb,php等就属于弱类型语言。

      在VBScript中,可以将字符串‘12’和整数3进行连接得到字符串‘123’,也可以把它看成整数123,而不需 要显示转换。是不是十分的随便,我们Java就不是这样的。

      但其实它们的类型没有改变,VB只是在判断出一个表达式含有不同类型的变量之后,自动在这些变 量前加了一个clong()或(int)()这样的转换函数而已。能做到这一点其实是归功于VB的编译器的 智能化而已,这并非是VB语言本身的长处或短处。

    至此,对强弱类型语言也有了一个大概的了解。

    2、数据类型

    java的数据类型分为两大类:基本类型(primitive type)和引用类型 (reference type)

    因为引用数据类型涉及到一些类和对象的知识,所有后续会有更详细的介绍,这里会稍微介绍一点。

     

     如果你看到这一堆头疼的话,没关系,不用记,JDK中类型对应的包装类都帮忙写好了,我们需要时候可 以直接看到!可以把以下代码拷贝进行查看结果:

    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.Short");
        System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);
        System.out.println("最大值:Short.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");
        // 以数值形式而不是字符形式将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);
    }

    可能有些朋友对字节还不是很理解,那么我们来了解一下:

    位(bit):是计算机 内部数据 储存的最小单位,11001100是一个八位二进制数。
    字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写 B 来表示,
    1B(byte,字节)= 8bit(位)
    字符:是指计算机中使用的字母、数字、字和符号
    ASCIIS码:
    1个英文字母(不分大小写)= 1个字节的空间
    1个中文汉字 = 2个字节的空间
    1个ASCII码 = 一个字节
    UTF-8编码:
    1个英文字符 = 1个字节
    英文标点 = 1个字节
    1个中文(含繁体) = 3个字节
    中文标点 = 3个字节
    Unicode编码:
    1个英文字符 = 2个字节
    英文标点 = 2个字节
    1个中文(含繁体) = 2个字节
    中文标点 = 2个字节
    1bit表示1位,
    
    1Byte表示一个字节 1B=8b。
    1024B=1KB
    1024KB=1M
    1024M=1G.

    同时稍微了解一下电脑32位和64位的区别:

    32位操作系统只可以使用32位的cpu,而64位的CPU既可以安装32位操作系统也可以安装64位操作
    系统。
    寻址能力简单点说就是支持的内存大小能力,64位系统最多可以支达128 GB的内存,而32位系统最
    多只可以支持4G内存。
    32位操作系统只可以安装使用32位架构设计的软件,而64位的CPU既可以安装使用32位软件也可以
    安装使用64位软件。
    现在的电脑都是64位了!

    关于基本数据类型,我们还可以自己写一些代码来看一下测试一下:

    public static void main(String[] args) {
        //整型
        int i1=100;
        //长整型
        long i2=998877665544332211L;
        //短整型
        short i3=235;
        //浮点型
        double d1=3.5; //双精度
        double d2=3;
        float f1=(float)3.5; //单精度
        float f2=3.5f; //单精度
        //布尔类型 boolean true真/false假
        boolean isPass=true;
        boolean isOk=false;
        boolean isBig=5>8;
        if(isPass){
            System.out.println("通过了");
        }else{
            System.out.println("未通过");
        }
        //单字符
        char f='女';
        char m='男';
    }        

    写到这里这篇博客的篇幅已经很长了,后续的知识,会在后续的博客中继续聊

  • 相关阅读:
    P3932 浮游大陆的68号岛
    P4595 [COCI2011-2012#5] POPLOCAVANJE
    CF455E Function
    【转载】乱堆的东西
    BZOJ1034 [ZJOI2008]泡泡堂BNB[贪心]
    CSP2019退役记
    BZOJ5206 [Jsoi2017]原力[根号分治]
    luogu3651 展翅翱翔之时 (はばたきのとき)[基环树+贪心]
    BZOJ1040 [ZJOI2008]骑士[基环树DP]
    BZOJ3037 创世纪[基环树DP]
  • 原文地址:https://www.cnblogs.com/koss/p/14434314.html
Copyright © 2011-2022 走看看