一:java的基本語法
1.代碼都是存放在class里面的
2.嚴格區分大小寫(num NUM)是兩個不同的變量
3.格式自由.
4.單行注釋與多行注釋的和文檔注釋
5.標識符:
全部使用英文字母,駱駝式命名:從第二個單詞開始,每個單詞的首字母都要大寫,其它的小寫
(標識符不能為關鍵字,不能以數字開頭)
二:java中的變量
1.有八個原聲數據類型和引用數據類型.
2.類型轉換:
byte、short、char類型在運行過程中都會提升為int 類型(這樣的方式叫自動類型)我們可以將一個int類型強制轉換成byte、short、char類型 (需要強制類型轉換!顯示類型轉換丟失精度.
System.out.println('a'+1); 因為 1是int類型的,所以會升級為int 類型.
System.out.println(""+'a'+1);(任何數字和字符串相并且都自動轉換成字符串).
3.變量的生命周期:
在方法內定義的變量,當方法被調用的時候,變量被定義,當方法接收的時候。變量也會隨著方法釋放掉變量的作用域內是不可以重復定義,超出變量的作用域,變量將不能訪問.
三:java中的函數
1.定義:函數,又稱為方法,能夠完成某特定代碼的代碼塊,其個名字,方便于方法的調用函數的作用: 就是可以重復的去利用某一段代碼
2.函數必須有的: 函數名 返回值 返回值類型 (形式參數看需求而定)
3.形參:方法定義的形參相當于在方法中定義了一個局部變量,當這個方法被調用的時候,也就是對其方法里面的參數初始化啦!初始值為傳遞進來的參數
4.返回值類型:可以為任意一個類型,有一種特殊:當方法沒有返回值的時候,我們要把返回值類型定義為(void)
5.return :在方法中可以使用return 返回一個值,(返回的值必須是與返回值類型一致)
6.方法的重載:
多個函數具有相同的名字,參數的個數或者類型不同都可以. 返回值類型不能做衡量方法的重載
四:java中的運算符
1.算術運算符 % 取模,也叫做取余
++自增1,--自減1
++x 與x++的區別: 本質上是沒有區別的,x++是先參與運算再自加 ,而++x先自加一次才參與運算
在取模運算中,模數的符號會被忽略,被模數符號不能被忽略
2.賦值運算符 = 是賦值的意思
+= ,-=,*=,\=,%=
3.比較運算符號: == 是相互比較的意思
instanceof:判斷該對象是否是屬于指定的類型
4.邏輯運算符
&和&&的區別:
1. &&如果左邊為假,結果注定為假,右邊不參與運算
2.&如果左邊為假,結構注定為假,但是右邊會參與運算
|和||的區別:
1.如果左邊為真,結果注定為真,右邊不參與運算
2.如果左邊為真,結果注定為真,右邊參與運算
5.位運算符
&(與):真真得真,真假得假,假假得假
|(或):真假為真,真真為真,假假為假
^(異或):任何一個數與一個指定的數異或兩次,其結果等于本身,(第一個數異或第二個數 其結果再異或第二個.其結果等于它本身)(不同為1,相同為0)
移位運算符:
<<左移,砍掉高位,低位補0 一定要把它更改成32位。(左移N位相當于乘以2的N次方)
>>右移,砍掉低位,高位要看最高位的符號。符號位為1,就補1,符號位為0就補0(右移N位,相當于除以2的N次方)
6.switch
switch中的參數是必須是int類型的,但是byte,short,char都是隱式的自動類型提升啦~
break :結束循環
continue:提前結束本次循環,進入到下一次循環
總結:后期學習不認真!估計時間不安排好!!。。注意。
1 小算法復習: 2 /* 3 不用第三方變量交換兩個數的值 4 5 異或:第一個數異或第二個數,之后再把結果異或第二個數。其結果等于它本身! 6 7 1.<<最高位砍掉,最低位補零 8 (左移多少位,其實就是*2的N次方) 9 2.>>最低位砍掉.如果最高位是1,前面就是補1,否則補0 10 //(又移多少位,就是/2的N次方) 11 */ 12 13 class Demo 14 { 15 public static void main(String[] args) 16 { 17 int a = 3; 18 int b = 5; 19 20 a = a ^ b; 21 b = a ^ b; 22 a = a ^ b ; 23 System.out.println("a == "+a); 24 System.out.println("b =="+b); 25 26 } 27 } 28 /*某個培訓中心要為新到的學員安排房間,假設共有x個學員, 29 每個房間可以住6人,讓你用一個公式來計算他們要住的房間數 30 */ 31 32 33 class Demo 34 { 35 public static void main(String[] args) 36 { 37 int num = 48; 38 int homeNuber = getHomeNumber(num); 39 System.out.println("學生的個數為:"+homeNuber); 40 } 41 static int getHomeNumber(int num) //形式參數的初始化其實就是傳遞進來的參數幫他初始化啦~ 42 { 43 return (num+5)/6; //給一個最大的限度! 44 } 45 } 46 47 /* 48 利用無限循環實現0 - 9 之間的數之間的重復循環 49 */ 50 51 class Demo 52 { 53 public static void main(String[] args) 54 { 55 int x = 0; 56 while(true) 57 { 58 59 x = (x+1)%10; 60 System.out.println(x); 61 } 62 } 63 } 64 65 /* 66 利用小技巧把10進制轉換成2進制代碼! 67 */ 68 import java.io.*; 69 class Demo 70 { 71 public static void main(String[] args) throws Exception 72 { 73 //讀取鍵盤 74 BufferedReader br = 75 new BufferedReader(new InputStreamReader(System.in)); 76 System.out.println("本程序可以幫助您把十進制代碼轉換成二進制代碼:"); 77 String line = br.readLine(); 78 int num = Integer.parseInt(line); 79 StringBuffer sb = new StringBuffer(); 80 while(num>0) 81 { 82 int temp = num % 2; //獲取到除以2的余數! 83 sb.append(temp); 84 num = num / 2; 85 } 86 sb.reverse(); 87 System.out.println(sb); 88 } 89 } 90 91 92 /* 93 十進制轉換成十六進制之方法一。 94 */ 95 import java.io.*; 96 class Demo5 97 { 98 public static void main(String[] args) throws Exception 99 { 100 BufferedReader br = 101 new BufferedReader(new InputStreamReader(System.in)); 102 103 System.out.println("本程序可以通過十進制轉換成十六進制:"); 104 105 String line = br.readLine(); 106 int num = Integer.parseInt(line); 107 108 StringBuffer sb = new StringBuffer(); 109 while(num>0) 110 { 111 int temp = num % 16; 112 if(temp>9) 113 { 114 sb.append((char)(temp-10+'A')); 115 }else 116 { 117 sb.append(temp); 118 } 119 num = num / 16; 120 } 121 sb.reverse(); 122 System.out.println(sb); 123 } 124 } 125 126 127 /* 128 用移位的方法來求一個數 129 130 十進制轉換成十六進制 131 */ 132 import java.io.*; 133 class Demo 134 { 135 public static void main(String[] args) throws Exception 136 { 137 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 138 System.out.println("本程序可以幫助您從十進制轉換到十六進制:"); 139 String line = br.readLine(); 140 int num = Integer.parseInt(line); 141 Ten2Hex(num); 142 } 143 144 static void Ten2Hex(int num) 145 { 146 StringBuffer sb = new StringBuffer(); 147 int count = 0x00000000f; 148 for(int i = 0;i<8;i++) 149 { 150 int temp = num & count; 151 if(temp>9) 152 { 153 sb.append((char)((temp-10)+'A')); //類型要注意 154 } 155 else 156 { 157 sb.append(temp); 158 } 159 num = num >>4; 160 161 } 162 sb.reverse(); 163 System.out.println("結果為:"+sb); 164 } 165 } 166 167 /* 168 打印金字塔程序! 169 求算法的時候要注意: 170 找到求第一個的規律. 171 然后循環就可以。 172 */ 173 174 175 class Demo 176 { 177 public static void main(String[] args) 178 { 179 int n = 4; 180 for(int i = 0;i<n;i++) 181 { 182 for(int j = 0;j<n-i;j++) 183 { 184 System.out.print(" "); 185 } 186 for(int k =0;k<i*2-1;k++) 187 { 188 System.out.print("*"); 189 } 190 System.out.println(); 191 } 192 } 193 } 194 195 196 總結: 197 其實switch的參數必須是int類型的,為什么byte char short參數可以傳遞進來呢? 198 因為它的類型自動提升為int類型啦。也就是隱式的進行了強制轉換/所以是可以的.