zoukankan      html  css  js  c++  java
  • java数据类型总结

    java基本数据类型就8种,记住就好了。除了这些都是引用型的了。 

    java四类八种基本数据类型

    第一类:整型 byte short int long 
    第二类:浮点型 float double

    第三类:逻辑型 boolean(它只有两个值可取true false)

    第四类:字符型 char

    在栈中可以直接分配内存的数据是基本数据类型。 
    引用数据类型:是数据的引用在栈中,但是他的对象在堆中。 
    要想学好Java必须知道各种数据的在内存中存储位置。 
    对内存有了很好的了解,可以有助你分析程序。

    字节:
    boolean 布尔型              1/8 
    byte 字节类型                1
    char 字符型                  2  一个字符能存储一个中文汉字
    short 短整型                 2
    int 整数类型                 4
    float 浮点类型(单精度)     4
    long 长整形                  8
    double 双精度类型(双精度)  8

    java中默认的整数类型是int类型,如果要定义为float型,则要在数值后加上l或L;
    默认的浮点型也是双精度浮点,如果要定义为float型,则要在数值后加上f或F。

    一个字节等于8位,一个字节等于256个数,就是-128到127一共256。
    kB就是kBytes 
    Bytes就是“字节”的意思! 
    K就是千的意思,因为计算机是通过二进制来计算,10个1正好是1024
    1111111111(二进制)=1024(十进制)
    1Bytes(字节)=8bit(比特) 
    一个英文字母或一个阿拉伯数字就是一个字符,占用一个字节 
    一个汉字就是两个字符,占用两个字节。 
    一般讲大小是用Bytes,大写的“B”,讲网络速率是用bit,注意是小写的“b”。 
    例:一个文件有8MBytes 
    例:我下载文件的速率是256KB/s,即2Mbit,这通常就是我们宽带上网的速率。

    基本数据类型自动转换,记住小可转大,大转小会失去精度!!!

    精度由小到大自由转换,由大到小强制转换
    (1)布尔型和其它基本数据类型之间不能相互转换;
    (2)byte型可以转换为short、int、、long、float和double;
    (3)short可转换为int、long、float和double;
    (4)char可转换为int、long、float和double;

    (5)int可转换为long、float和double;

    (6)long可转换为float和double;

    (7)float可转换为double;

    Integer可以为null,int不能为null,拆箱过程可能空指针。

    Byte、Short、Integer、Long、Char的装箱类范围-128<=x<128是放在常量池的。

    自动装箱:Integer x = Integer.valueOf(34);

    自动拆箱:int y = x.intValue();

    强制转换的只是引用而不是对象。

    引用类型的强制转换,转换的仅仅是引用的名义类型。
    基本类型的强制转换,涉及到了数据的变化,有可能发生精度丢失的情况,那就转换不回来了。
    当然基本类型转到到Object是一个自动装箱的过程,那倒是不会发生精度丢失,也可以转换回去。

    ==和!=比较的是引用对象的堆地址,基本数据对象的栈地址,比较只能用==和!=;

    equals比较的是引用的栈地址,即内容,重写equals方法比较具体内容。

    比较两个对象的实际内容使用equals,

    1、String 创建的是字符串常量。(表达式创建对象,在缓冲池寻找相同值得对象,都指向同一对象。)

    2、用new String() 创建的字符串不是常量,不能在编译期就确定,在堆中重新分配内存地址,栈的引用就不相同。

    所以new String() 创建的字符串不放入常量池中,它们有自己的地址空间

    String str1 = “ABC”;可能创建一个或者不创建对象,如果”ABC”这个字符串在java String池里不存在,会在java String池里创建一个创建一个String对象(“ABC”),然后str1指向这个内存地址,无论以后用这种方式创建多少个值为”ABC”的字符串对象,始终只有一个内存地址被分配,之后的都是String的拷贝,Java中称为“字符串驻留”,所有的字符串常量都会在编译之后自动地驻留。

    String str2 = new String(“ABC”);至少创建一个对象,也可能两个。因为用到new关键字,肯定会在heap中创建一个str2的String对象,它的value是“ABC”。同时如果这个字符串再java String池里不存在,会在java池里创建这个String对象“ABC”。

    1、将通过毅力完成的事转化为习惯。
    2、清心寡欲、方能高枕无忧。
    3、纸上得来终觉浅,绝知此事要躬行。

    种一棵树最好的时间是 十年前。 其次是, 现在!

  • 相关阅读:
    mysql5.7编译安装
    web服务部署工具使用介绍
    Clang Static Analyzer
    MySQL中character set与collation
    Linux 编译运行查找头文件和库的顺序
    git入门及使用记录
    CentOS7通过yum安装gdb8 gcc8 g++8的方法
    win10子系统设置开机启动ssh服务
    STL中map的使用
    C++逆序输出字符串
  • 原文地址:https://www.cnblogs.com/shuchen007/p/9166872.html
Copyright © 2011-2022 走看看