• 特殊情况:主要类型


    有一系列类需特别对待;可将它们想象成“基本”、“主要”或者“主”(Primitive)类型,进行程序设计 时要频繁用到它们。之所以要特别对待,是由于用 new创建对象(特别是小的、简单的变量)并不是非常有 效,因为new将对象置于“堆”里。对于这些类型,Java 采纳了与 C和 C++相同的方法。也就是说,不是用 new创建变量,而是创建一个并非句柄的“自动”变量。这个变量容纳了具体的值,并置于堆栈中,能够更 高效地存取。 Java 决定了每种主要类型的大小。就象在大多数语言里那样,这些大小并不随着机器结构的变化而变化。这 种大小的不可更改正是 Java 程序具有很强移植能力的原因之一。

    主类型 大小 最小值 最大值 封装器类型

    boolean 1 位 - - Boolean char 16位 Unicode 0 Unicode 2的 16次方-1 Character byte 8位 -128 +127 Byte(注释①) short 16 位 -2 的15 次方 +2的 15次方-1 Short(注释①) int 32位 -2的 31次方 +2 的31 次方-1 Integer long 64位 -2 的63 次方 +2的 63次方-1 Long float 32 位 IEEE754 IEEE754 Float double 64 位 IEEE754 IEEE754 Double Void - - - Void(注释①)

    ①:到 Java 1.1 才有,1.0 版没有。

    数值类型全都是有符号(正负号)的,所以不必费劲寻找没有符号的类型。 主数据类型也拥有自己的“封装器”(wrapper)类。这意味着假如想让堆内一个非主要对象表示那个主类 型,就要使用对应的封装器。例如: char c = 'x'; Character C = new Character('c'); 也可以直接使用: Character C = new Character('x'); 这样做的原因将在以后的章节里解释。

    1. 高精度数字 Java 1.1 增加了两个类,用于进行高精度的计算:BigInteger和 BigDecimal。尽管它们大致可以划分为 “封装器”类型,但两者都没有对应的“主类型”。
    48
    这两个类都有自己特殊的“方法”,对应于我们针对主类型执行的操作。也就是说,能对int或 float做的 事情,对BigInteger 和BigDecimal 一样可以做。只是必须使用方法调用,不能使用运算符。此外,由于牵 涉更多,所以运算速度会慢一些。我们牺牲了速度,但换来了精度。 BigInteger支持任意精度的整数。也就是说,我们可精确表示任意大小的整数值,同时在运算过程中不会丢 失任何信息。 BigDecimal支持任意精度的定点数字。例如,可用它进行精确的币值计算。 至于调用这两个类时可选用的构建器和方法,请自行参考联机帮助文档。

     1 package Com.TomTest;
     2 
     3 
     4 import java.util.Date;
     5 import java.awt.*;
     6 public class TomTest_48{
     7     public static void main(String args[]){
     8      Date date=new Date();
     9       Button button=new Button("确定");
    10       System.out.println(date.toString());
    11       System.out.println(button.toString());  
    12    }
    13 }
  • 相关阅读:
    USACO Meteor Shower
    小技巧—取模防负
    CSP-S2019 D2T1 Emiya家今天的饭
    重谈DFS序、时间戳和欧拉序
    JDOJ 1842 Magictree
    CSP-S2019 D1T1 格雷码
    洛谷 P3919 【模板】可持久化线段树 1(可持久化数组)
    node+express api编写实战(一):环境安装及启动
    宝塔pureftpd设置FTP后,可连接,但无法上传、新建、覆盖文件的解决方法
    flex布局、css3选择器
  • 原文地址:https://www.cnblogs.com/borter/p/9438817.html
Copyright © 2020-2023  润新知