日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深入学习java源码之Math.max()与 Math.min()

發布時間:2024/3/12 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入学习java源码之Math.max()与 Math.min() 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

深入學習java源碼之Math.max()與 Math.min()

java基本數據類型及自動轉型

8種基本數據類型及其所占空間大小:

一、byte,占用一個字節,取值范圍為 -128-127,默認是“\u0000”,表示空 二、short,占用兩個字節,取值范圍為 -32768-32767 三、int,占用四個字節,-2147483648-2147483647 四、long,占用八個字節,對 long 型變量賦值時必須加上"L"或“l”,否則不認為是 long 型 五、float,占用四個字節,對 float 型進行賦值的時候必須加上“F”或“f”,如果不加,會產生編譯錯誤,因為系統 自動將其定義為 double 型變量。double轉換為float類型數據會損失精度。float a = 12.23產生編譯錯誤的,float a = 12是正確的 六、double,占用八個字節,對 double 型變量賦值的時候最好加上“D”或“d”,但加不加不是硬性規定 七、char,占用兩個字節,在定義字符型變量時,要用單引號括起來 八、boolean,只有兩個值“true”和“false”,默認值為false,不能用0或非0來代替,這點和C語言不同

自動類型轉換

1)兩種類型是彼此兼容的

2)轉換的目的類型占得空間范圍一定要大于轉化的源類型

正向過程:由低字節向高字節自動轉換

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

逆向過程:使用強制轉換,可能丟失精度。

//?自動類型轉換 short?s=1; int?i; //?自動類型轉換?short類型轉成int類型 i=s;

整數類型(byte/short/int/long)中,對于未聲明數據類型的整形,其默認類型為int型。在浮點類型(float/double)中,對于未聲明數據類型的浮點型,默認為double型。

int a=(int)3.14;

?小數的默認數字類型是double, 例如3.12. 當float a = 3.12時會報錯, 因為3.12的默認數據類型是double, 我們需要使用如下的賦值方法:

float a = 3.12F float b = (float)3.12

第一種方法在3.12后面加了一個F, 告訴編譯器這是一個float的數. 第二種方法對3.12進行了強制的類型轉換.?

double?d=1.333; float?f; //?把double類型的數據強制轉換成float類型 f=(float)d; int x; double y; x = (int)34.56 + (int)11.2; // 丟失精度 y = (double)x + (double)10 + 1; // 提高精度 System.out.println("x=" + x); System.out.println("y=" + y);x=45 y=56.0

?

Modifier and TypeMethod and Description
static doublemax(double a, double b)

返回兩個 double值中的較大值。

static floatmax(float a, float b)

返回兩個 float的較大值。

static intmax(int a, int b)

返回兩個 int值中的較大值。

static longmax(long a, long b)

返回兩個 long的較大值。

static doublemin(double a, double b)

返回兩個 double的較小值。

static floatmin(float a, float b)

返回兩個 float的較小值。

static intmin(int a, int b)

返回兩個 int的較小值。

static longmin(long a, long b)

返回兩個 long的較小值。

java源碼

public final class Math {private Math() {}public static int max(int a, int b) {return (a >= b) ? a : b;}public static long max(long a, long b) {return (a >= b) ? a : b;}//在有保證的非NaN參數上使用原始的逐位轉換。private static long negativeZeroFloatBits = Float.floatToRawIntBits(-0.0f);private static long negativeZeroDoubleBits = Double.doubleToRawLongBits(-0.0d);public static float max(float a, float b) {if (a != a)return a; // a is NaNif ((a == 0.0f) &&(b == 0.0f) &&(Float.floatToRawIntBits(a) == negativeZeroFloatBits)) {// Raw conversion ok since NaN can't map to -0.0.return b;}return (a >= b) ? a : b;}public static double max(double a, double b) {if (a != a)return a; // a is NaNif ((a == 0.0d) &&(b == 0.0d) &&(Double.doubleToRawLongBits(a) == negativeZeroDoubleBits)) {// Raw conversion ok since NaN can't map to -0.0.return b;}return (a >= b) ? a : b;}public static int min(int a, int b) {return (a <= b) ? a : b;}public static long min(long a, long b) {return (a <= b) ? a : b;}public static float min(float a, float b) {if (a != a)return a; // a is NaNif ((a == 0.0f) &&(b == 0.0f) &&(Float.floatToRawIntBits(b) == negativeZeroFloatBits)) {// Raw conversion ok since NaN can't map to -0.0.return b;}return (a <= b) ? a : b;}public static double min(double a, double b) {if (a != a)return a; // a is NaNif ((a == 0.0d) &&(b == 0.0d) &&(Double.doubleToRawLongBits(b) == negativeZeroDoubleBits)) {// Raw conversion ok since NaN can't map to -0.0.return b;}return (a <= b) ? a : b;} } public final class StrictMath {private StrictMath() {}public static int max(int a, int b) {return Math.max(a, b);}public static long max(long a, long b) {return Math.max(a, b);}public static float max(float a, float b) {return Math.max(a, b);} public static double max(double a, double b) {return Math.max(a, b);}public static int min(int a, int b) {return Math.min(a, b);}public static long min(long a, long b) {return Math.min(a, b);}public static float min(float a, float b) {return Math.min(a, b);}public static double min(double a, double b) {return Math.min(a, b);} }

?

總結

以上是生活随笔為你收集整理的深入学习java源码之Math.max()与 Math.min()的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。