zoukankan      html  css  js  c++  java
  • Java 基本数据类型

    java 的两大数据类型

    • 内置数据类型
    • 引用数据类型

    1. 内置数据类型

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

    • 整数的默认类型是 int。

    • 定义 long 数据时,必须加后缀l或L。

    • 在定义 float 类型时必须在数字后面跟上 F 或者 f。

    • byte、int、long、和short都可以用十进制、16进制以及8进制的方式来表示。当使用常量的时候,前缀0表示8进制,而前缀0x代表16进制。

    • 自动转换按从低到高的顺序转换。不同类型数据间的优先关系如下:

    低--------------------------------------------->高

    byte->short->char-> int -> long -> float -> double

    • 合法转换


    虚箭头表示可能会损失精度。

    • 强制转换的格式是在需要转型的数据前加上“( )”,然后在括号内加入需要转化的数据类型。Math.round()可以将浮点数舍入到最接近的整数,不过其返回值为long类型。

    • 基本数据类型中,布尔类型boolean占有一个字节,由于其本身所代码的特殊含义,boolean类型与其他基本类型不能进行类型的转换(既不能进行自动类型的提升,也不能强制类型转换), 否则,将编译出错。

    byte:

    • byte数据类型是8位、有符号的,以二进制补码表示的整数(四个整数型之一);
    • 最小值是-128(-2^7);
    • 最大值是127(2^7-1);
    • 默认值是0;
    • byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一
    • 例子:byte a = 100,byte b = -50。

    boolean:

    • boolean数据类型表示一位的信息;
    • 只有两个取值:true和false;
    • 这种类型只作为一种标志来记录true/false情况;
    • 默认值是false;
    • 例子:boolean one = true。

    对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了。如:

    public class PrimitiveTypeTest{
       public static void main(String[] args){
          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();      
      }
    }
    

    但是实际的运行并不顺利,报错说“编码GBK的不可映射字符”。学了点Python来着,好像要指定用 UTF-8 编码,于是就加了句# -*- coding: utf-8 -*-,然而果然还是不行啊,天真。百度了一下,大概是编译.java时,如果没有用-encoding utf-8这样指定编译的编码格式的话,javac.exe会按照我们系统默认的编码格式来编译。这样,如果你.java的编码和OS默认的编码不一样的话,当然会出现乱码。原来在VSCode是用utf-8编码保存的.java文件,编译时加上参数-encoding utf-8,就可以正确编译运行。或是在VSCode把.java文件改成用GBK编码来保存,也可以正确的编译运行。

    运行结果:

    2. 引用类型

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

    参考资料

  • 相关阅读:
    python assert断言函数
    Python中错误之 TypeError: object() takes no parameters、TypeError: this constructor takes no arguments
    python 3.5构建WINDOWS推送服务
    Python调用(运行)外部程序
    sqlalchemy相关知识
    利用rabbit_mq队列消息实现对一组主机进行命令下发
    Centos 下安装Zabbix Linux 客户端
    Lynis 2.2.0 :面向Linux系统的安全审查和扫描工具
    防暴力破解 Fail2Ban之python
    linux服务器被攻击处理过程
  • 原文地址:https://www.cnblogs.com/mingyueanyao/p/6614061.html
Copyright © 2011-2022 走看看