1. 程式人生 > 其它 >PE檔案病毒

PE檔案病毒

資料型別的拓展和麵試題

public class Demo{
public static void main(String[] args){
//整數拓展: 進位制 二進位制0b 十進位制 八進位制0 十六進位制0x
int i = 10;
int i2 = 010;//八進位制
int i3 = 0x10;//十六進位制 0~9 A~F 16
System.out.println(i);//10
System.out.println(i2);//8
System.out.println(i3);//16
System.out.println("=================================");

//============================================================

//浮點數拓展
//銀行業務怎麼表示?錢 ——> BigDecimal(類) 數學工具類

//=============================================================

//float 有限 離散 舍入誤差 大約 接近但不等於
//double
//最好完全避免使用浮點數進行比較

float f = 0.1f;
double d = 1.0/10;
System.out.println(f==d);//false(==表示判斷兩數是否相等)
System.out.println(f);//0.1
System.out.println(d);//0.1

float d1 = 1234534;
float d2 = d1 + 1;
System.out.println(d1==d2);//true

//===============================================================

//字元拓展

char c1 = 'a';
char c2 = '中';
System.out.println(c1); // a
System.out.println((int)c1); //97 //強制型別轉換 變成int 型別
System.out.println(c2); //b
System.out.println((int)c2); //20013 //強制型別轉換
//char 型別涉及
//所有的字元本質還是數字(強制型別轉換可以把字元轉換成數字)
//編碼 Unicode 2個位元組 長度:0~65536 (Excel 最長 2^16=65536)
//編碼正常樣子 U0000 UFFFF
char c3 = '\u0061';//轉義
System.out.println(c3); // 輸出結果:a

//轉義字元 意義 ASCLL碼值(十進位制)
// \t 製表符(HT) 009
// \n 換行(LF) 010
// \a 響鈴(BEL) 007
// \b 退格(BS),將當前位置移到前一列 008
// \f 換頁(FF),將當前位置移到下頁開頭 012
// \r 回車(CR),將當前位置移到本行開頭 013
// \v 垂直製表(VT) 011
// \\ 代表一個反斜線字元'\' 092
// \' 代表一個單引號(撇號)字元 039
// \" 代表一個雙引號字元 034
// \? 代表一個問號 063
// \0 空字元(NUL) 000
// \ddd 1到3位八進位制數代表的任意字元 三位八進位制
// \xhh 十六進位制所代表的任意字元 十六進位制


System.out.println("Hello\tWorld"); //輸出結果:Hello World
System.out.println("Hello\nrld"); //輸出結果: Hello
// World
//===========================================================
//?
String sa = new String (original:"hello world");
String ab = new String (original:"hello world");
System.out.println(sa==sb); //false

String sc = "hello world
String sd = "hello world";
System.out.println(sc==sd); //true
// 物件 從記憶體分析

//布林值擴充套件
boolean flag = true;//用來判斷
if(flag==true){}
if(flag){}//與上一行if一樣
// Less is More! 程式碼要精簡易讀

}
}

型別轉換

  • 由於Java是強制型別,所以要進行有些運算的時候,需要用到型別轉換

低------------------------------>高(按照位元組容量,小數的優先順序大於整數)

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

  • 運算中,不同型別的資料先轉化為同一型別,然後進行運算

    1. 強制型別

    2. 自動轉換

public class Demo{
public static void(String[] args){
int i = 128;
// byte b = i;直接這樣寫會報錯,所以就需要強制型別轉換
byte b = (byte)i;
System.out.println(i); //128
System.out.println(b); //-128 原因:Byte類的最大值是127,出現記憶體溢位
//轉換時要注意記憶體溢位

//強制轉換 (型別)變數名 高-->低 (上面)
//自動轉換 低-->高 (下面)
int i= 128;
double b = i;
System.out.println(i);// 128
System.out.println(b);//128.0

/*注意點:
1. 不能對布林值進行轉換
2. 不能把物件型別轉換為不相干的型別(b,i)
3.在把大容量轉換為低容量時候,強制轉換;反之,自動轉換;
4.轉換的時候可能存在記憶體溢位,或者精度問題(主要針對浮點數型別)!
*/

//4.
System.out.println((int)23.7); //23
System.out.prinyln((int)-45.89f); //-45

char c ='a';
int d = c+1;
System.out.println(d); //98
System.pou.pritntln((char)d); //b

}
}

public class Demo01{
public static void main(String[] agrs){
//操作比較大的數的時候,注意溢位問題
//JDK7新特性,數字之間可以用下劃線分割
int money = 10_0000_0000;// int money = 1000000000;
System.out.println(money); //1000000000



}
}