• Java中的数据类型


    目录

    JAVA中的数据类型

    内置数据类型

    引用数据类型 

    数组对象

    字符串对象

    Java常量

    Java中的自动类型转换


    JAVA中的数据类型

    变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。

    因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。

    Java 的两大数据类型:

    • 内置数据类型:Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
    • 引用数据类型

    内置数据类型

    Java中的整数数据类型有byte、short、int、long,分别对应1、2、4、8字节长度,范围与C语言一致,但是java中没有unsigned类型。Java中的小数数据类型有 float 和 double,与 C 语言一致,但是 float 有区别, 例如:float  b = 123.456f;Java里的布尔类型boolean 有两个字面常量 true 、false 。Java 中的 boolean 类型与整型不通用。

    数据类型 包装类 长度 默认值
    byte java.lang.Byte 1个字节(-128-127) 0
    short java.lang.Short 2个字节(-32768-32767) 0
    int java.lang.Integer 4个字节(-2147483648-2147483647) 0
    long java.lang.Long 8个字节(-9223372036854775808-9223372036854775807) 0L
    float java.lang.Float 4个字节(1.4E-45-3.4028235E38) 0.0f
    double java.lang.Double 8个字节(4.9E-324-1.7976931348623157E308) 0.0d
    char java.lang.Character 2个字节(0-65535) 'u0000'
    String (or any object) java.lang.String   null
    boolean java.lang.Boolean   false

    所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类 Number 的子类,Number 类属于 java.lang 包。传送门:Java Number & Math 类  、 Java Character 类  、 Java String 类  、 Java StringBuffer 和 StringBuilder 类

    Java Numberç±»

    引用数据类型 

    • 在Java中,引用类型的变量非常类似于 C/C++ 的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。
    • 对象、数组都是引用数据类型。
    • 所有引用类型的默认值都是 null。
    • 一个引用变量可以用来引用任何与之兼容的类型。

    例子:Site site = new Site("Runoob");

    数组对象

    Java 语言中提供的数组是用来存储固定大小的同类型元素。Java里的数组是个对象,是引用数据类型

    int[]  a={1,2,3,4,5};   //初始化
    int[]  a=new int[5];    //未初始化 
    
    //数组的长度
    int b=a.length 

    Java中拷贝函数是 System.arraycopy,但是Java中很少进行对象的拷贝,一般只对基本类型对象(byte,short,int,long)数组进行拷贝,无法对class类型对象数组进行拷贝。

    数组的遍历

    方法一:

    方法二:

    相关文章:Java 数组

    字符串对象

    Java里用String类型表示字符串

    String a="hello,word";
    String a=new String("hello,word");

    字符串的基本操作

    //将字符串中的字符提取出来(提取出o)
    char b=new String("hello").charAt(4);
    //取得指定字符串的下标
    int b=new String("hello").indexOf("o");
    //字符串的长度
    int b=a.length();
    //去掉字符串首尾的空格
    new String("  ha ").trim();
    //字符串的拼接
    String b=a+",world";
    //字符串的子串
    String c=a.substring(1,4);
    //字符串的替换
    String d=a.replace("llo","he");
    //将数字转换成字符串
    int a=123;
    String b=String.valueOf(a);
    //格式化字符串
    int a=123;
    double b=123.456;
    String c="hello,world";
    String d=String.format("a=%d,b=%.2f,%s",a,b,c);
    //转义字符
    String e=" "ok" ";
    

    字符串的比较

    //字符串的内容比较:
    String a="xiaoxie";
    if(a.equals(b)){
       System.out.println("a和B相等");
    }
    //字符串的大小比较:
    String a="Ab";
    String b="Ab";
    int c=a.compareTo(b);    //等于 0  大于正数  小于负数
    • 基本数据类型,也称原始数据类型。byte、short、char、int、long、float、double、boolean 他们之间的比较,应用双等号(==),比较的是他们的值。
    • 复合数据类型(类),当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较对象的内存地址,但在一些类库当中这个方法被覆盖掉了,如String、Integer、Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。 对于复合数据类型之间进行equals比较,在没有覆写equals方法的情况下,他们之间的比较还是基于他们在内存中的存放位置的地址值的,因为Object的equals方法也是用双等号(==)进行比较的,所以比较后的结果跟双等号(==)的结果相同。

    Java常量

    常量在程序运行时是不能被修改的。

    在 Java 中使用 final 关键字来修饰常量,声明方式和变量类似,虽然常量名也可以用小写,但为了便于识别,通常使用大写字母表示常量。

    final double PI = 3.1415927;

    Java中的自动类型转换

    整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。

    转换从低级到高级。

    低  ------------------------------------>  高
    byte,short,char—> int —> long—> float —> double 

    数据类型转换必须满足如下规则:

    • 不能对boolean类型进行类型转换。

    • 不能把对象类型转换成不相关类的对象。

    • 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。

    • 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如:

      (int)23.7 == 23;        
      (int)-45.89f == -45

    自动类型转换

    必须满足转换前的数据类型的位数要低于转换后的数据类型,例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。

    强制类型转换

    • 条件是转换的数据类型必须是兼容的。

    • 格式:(type)value type是要强制类型转换后的数据类型 

    注:强制类型转换后,如果超过类型的值,该数值就会发生变化。

    参考文章:Java基本数据类型 | 菜鸟教程

  • 相关阅读:
    shell编程基础
    centos7怎么查看、打开和关闭防火墙
    Linux下查看根目录各文件内存占用情况
    两台Linux系统之间传输文件的几种方法
    rabbitmq3.8版本默认用户guest访问报错User can only log in via localhost解决方案
    docker 部署java web应用_使用Docker部署JavaWeb项目
    ubuntu安装curl命令
    docker重新进入容器时“/etc/profile”中环境变量失效问题的解决
    在docker容器中安装软件,并重新生成镜像
    CentOS7安装RabbitMQ
  • 原文地址:https://www.cnblogs.com/csnd/p/11807722.html
Copyright © 2020-2023  润新知