2016/4/26

Java:型態

本篇參考  http://openhome.cc/Gossip/Java/Type.html

做一些自己學習的心得與筆記


Java裡型態分兩種:

一、基本型態(Primitive type)

二、類別型態(Class type),亦稱參考型態(Reference type)


基本型態,指的就是一般的整數、浮點數、位元組byte、字元、布林等等...

整數:

又分short型態(佔2個位元組)、int型態(佔4個位元組)、long型態(佔8個位元組)

不同長度(或大小)的整數,儲存的值的範圍也不同

位元組:

長度就是一個位元組,1byte,byte可表示-128到127的整數

浮點數(小數點):

可分float型態(佔4個位元組)、double型態(佔8個位元組)

所以double型態精確度比較高!

字元:

char型態,用來儲存'A'、'B'、'林'等字元符號,每字元都佔2位元組空間,中與英都佔2位元組

範例程式碼:

System.out.printf()

package cc.openhome;
public class Range {
    public static void main(String[] args) {
        // byte、short、int、long 範圍
        System.out.printf("%d ~ %d%n", 
                Byte.MIN_VALUE, Byte.MAX_VALUE);
        System.out.printf("%d ~ %d%n", 
                Short.MIN_VALUE, Short.MAX_VALUE);
        System.out.printf("%d ~ %d%n", 
                Integer.MIN_VALUE, Integer.MAX_VALUE);
        System.out.printf("%d ~ %d%n", 
                Long.MIN_VALUE, Long.MAX_VALUE);
        // float、double 精度範圍
        System.out.printf("%d ~ %d%n", 
                Float.MIN_EXPONENT, Float.MAX_EXPONENT);
        System.out.printf("%d ~ %d%n", 
                Double.MIN_EXPONENT, Double.MAX_EXPONENT);
        // char 可表示的 Unicode 範圍
        System.out.printf("%h ~ %h%n", 
                Character.MIN_VALUE, Character.MAX_VALUE);
        // boolean 的兩個值
        System.out.printf("%b ~ %b%n", 
                Boolean.TRUE, Boolean.FALSE);
    }    }

System.out.printf(),這f,表格式化,format的意思,printf()的第一個引數(Argument)是字串,當中%d、%h、%b等是格式控制符號
MAX_VALUE、MIN_VALUE、MIN_EXPONENT、MAX_EXPONENT、TRUE、FALSE等,都是這些類別上的靜態(static)成員

符號說明
%%因為%符號已經被用來作為控制符號前置,所以規定使用%%才能在字串中表示%
%d以10進位整數格式輸出,可用於byte、short、int、long、Byte、Short、 Integer、Long或BigInteger
%f以10進位浮點數格式輸出,可用於float、double、Float、Double或BigDecimal
%e, %E以科學記號浮點數格式輸出,提供的數必須是float、double、Float、 Double或BigDecimal%e表示輸出格式遇到字母以小寫表示,如2.13 e+12,%E表示遇到字母以大寫表示。
%o以8進位整數格式輸出,可用於byte、short、int、long、Byte、Short、 Integer、Long或BigInteger
%x, %X以16進位整數格式輸出,可用於byte、short、int、long、Byte、Short、 Integer、Long或BigInteger%x表示字母輸出以小寫表示,%X則以大寫表示。
%s, %S字串格式符號。
%c, %C以字元符號輸出,提供的數必須是byte、short、char、Byte、Short、Character或Integer%c表示字母輸出以小寫表示,%C則以大寫表示。
%b, %B輸出boolean值,%b表示輸出結果會是true或false,%B表示輸出結果會是TRUE或FALSE。非null值輸出是true或TRUE,null值輸出是false或FALSE。
%h, %H使用Integer.toHexString(arg.hashCode())來得到輸出結果,如果argnull,則輸出null,也常用於想得到16進位格式輸出。
%n輸出平台特定的換行符號,如果Windows下會置換為"\r\n",如果是Linux下則會置換為'\n',Mac OS下會置換為'\r'

不同的型態,用的格式控制符號也不同

在看一個簡單浮點數範例:

System.out.printf("example:%.2f%n", 19.234);  執行結果為example:19.23,%.2f表取到小數點第二位

System.out.printf("example:%6.2f%n", 19.234);  執行結果為example:19.23,%6.2f,表取6個字元,一樣取到第2位

沒有留言:

張貼留言