public class BasisTest { /** * 封裝類/包裝類 : 把 基本數據類型轉換成對象! * * 基本數據類型 包裝類 * byte Byte * short Short * int Integer * long Long * float Float * double Double * char Character * boolean Boolean * * 使用咱們的封裝類 ,就能夠使用類中對應的方法 * 集合中在存儲基本數據類型時!只能存放封裝類! */ // 全部的封裝類 都有將對應的基本數據類型做爲參數的方法 來構造實例 @Test public void test01() { /** * 除了Character來構造實例的時候,沒有String類型的參數! * Float有三個實例化構造方法 分別是 傳遞 double float String */ Byte a = new Byte((byte) 1); Short s = new Short((short) 1); Integer b = new Integer(5); Long l = new Long(1); Float f = new Float(2); Double c = new Double(5); // 上面的六個封裝類都繼承了Number Boolean boolean1 = new Boolean(true); Character character1 = new Character((char) 1); Character character2 = new Character('1'); } /** * 六個封裝類繼承了Number * 用String來構造實例的時候,String中存放的必須是數值類型的字符串 */ @Test public void test02() { Byte a = new Byte("1"); Short s = new Short("1"); Integer b = new Integer("1"); Long l = new Long("1"); Float f = new Float("1"); Double c = new Double("1"); // 除了大小寫的true 其它都返回false Boolean boolean1 = new Boolean(""); System.out.println(boolean1); // 編譯報錯 Character character1 = new Character("1"); } @Test public void test03() { System.out.println(Integer.toBinaryString(28)); // 轉換成2進制 System.out.println(Integer.toHexString(28)); // 轉換成16進制 System.out.println(Integer.toOctalString(28)); // 轉換成8進制 } /** * 六個封裝類繼承了Number,只要不是傳遞 字符串類型的數值 * 都會拋出NunberFormatException */ @Test public void test04() { // Integer integer = new Integer(null); double a = 1; System.out.println(a); Double double1 = new Double(1); System.out.println(double1); } /** * *除了Character,都有對應的parse的方法 */ @Test public void test05() { Integer integer = new Integer(5);
//第一個參數是對應進制的寫法 System.out.println(integer.parseInt("11011", 2)); /** String num = "27"; System.out.println(Integer.parseInt(num) + 1); Double.parseDouble("20"); Byte.parseByte("1"); Short.parseShort("1"); System.out.println(1 + 1 + "2"); // 22 System.out.println("1" + (1 + 2)); // 13 */ } /** * valueOf * 把基本數據類型轉換成對應的封裝類 * 除了Character沒有傳遞String類型的參數 * * xxxValue * 把xxx類型轉換成xxx對應的基本數據類型 */ @Test public void test06() { // 基本數據類型和對應封裝類之間的轉換 咱們稱之爲 裝箱和拆箱操做 int a = 5; Integer integer = Integer.valueOf(a); integer.intValue(); Double double1 = Double.valueOf(20); double1.doubleValue(); Character character = Character.valueOf('a'); character.charValue(); } @Test public void test07() { Integer a = new Integer(1); Integer b = new Integer(1); int c = 1; System.out.println(a == b); // false 都是new出來的對象 System.out.println(a == c); } @Test public void test08() { /** *底層默認執行了valueOf() *若是值在 -128到127 之間 則不會new對象 *不然 會new出來新的對象 */ Integer a = 128; Integer b = 128; System.out.println(a == b); // false } }
@Test public void testMath() { System.out.println("向上取值:" + Math.ceil(50.1)); System.out.println("向下取值:" + Math.floor(50.9)); System.out.println("絕對值:" + Math.abs(-50.9)); System.out.println("最大值:" + Math.max(50, 60)); System.out.println("最小值:" + Math.min(50, 60)); System.out.println("隨機數:" + (int) (Math.random() * 10)); // 以前使用的Math.random() 實際上是調用了Random.nextDouble(); } @Test public void testRandom() { Random random = new Random(); for (int i = 0; i < 100; i++) { // System.out.println(random.nextBoolean()); 隨機boolean類型的值 // System.out.println(random.nextDouble()); 0-1之間 // System.out.println(random.nextInt()); int取值範圍 System.out.println(random.nextInt(10)); // 參數的範圍 可是不包含自己 參數必須大於0 } }
//隨機數 @Test public void test12(){ Scanner scanner=new Scanner(System.in); System.out.println("請輸入一個4位數字:"); String num=scanner.next(); //把String類型的num轉換成int int realNum=Integer.parseInt(num); //獲取百位 int bai=realNum/100%10; Random random=new Random(); //定義一個標記 boolean flag=false; for (int i = 1; i <=100; i++) { int a= random.nextInt(10); System.out.println("第"+i+"次的隨機數:"+a); if (a==bai) { //找到了 flag=true; break; } } if (flag) { System.out.println("中獎了"); }else { System.out.println("下次努力..."); } } }