摘要:定義格式修飾符返回值類型函數名參數類型形式參數參數類型形式參數執行語句返回值當函數沒有具體的返回值時,返回的返回值類型用關鍵字表示。如果函數的返回值類型是時,語句可以省略不寫的,系統會幫你自動加上。
語法基礎 一. 專業術語 01. 關鍵字
某種語言賦予了特殊含義的單詞。
02. 保留字還沒有賦予特殊含義,但是準備日后要使用過的單詞。
03. 標示符在程序中自定義的名詞。比如類名,變量名,函數名。包含 0-9、a-z、$、_ ;
注意:
數字不可以開頭。
不可以使用關鍵字。
04.常量是在程序中的不會變化的數據。
05.變量其實就是內存中的一個存儲空間,用于存儲常量數據。
作用:方便于運算。因為有些數據不確定。所以確定該數據的名詞和存儲空間。
特點:變量空間可以重復使用。
什么時候定義變量?只要是數據不確定的時候,就定義變量。(01). 變量空間的開辟需要什么要素呢?
這個空間要存儲什么數據?數據類型。
這個空間叫什么名字?。孔兞棵Q。
這個空間的第一次的數據是什么? 變量的初始化值。
(02). 作用域:作用域從變量定義的位置開始,到該變量所在的那對大括號結束;
(03). 生命周期:變量從定義的位置開始就在內存中活了;
變量到達它所在的作用域的時候就在內存中消失了;
級別從低到高為:byte,char,short(這三個平級)-->int-->float-->long-->double01. 基本數據類型
自動類型轉換:從低級別到高級別,系統自動轉的;
強制類型轉換:什么情況下使用?把一個高級別的數賦給一個別該數的級別低的變量;
byte、short、int、long、float、double、char、boolean
02. 引用數據類型數組、類、接口。
三. 運算符號: 01. 算術運算符+ - * / % %:任何整數模2不是0就是1,所以只要改變被模數就可以實現開關運算。
+:連接符
++,--
= += -= *= /= %=
03. 比較運算符特點:該運算符的特點是:運算完的結果,要么是true,要么是false。
04. 邏輯運算符 (01).& | ^ ! && ||邏輯運算符除了 ! 外都是用于連接兩個boolean類型表達式。
&: 只有兩邊都為true結果是true。否則就是false。
|:只要兩邊都為false結果是false,否則就是true
^:異或:和或有點不一樣。
兩邊結果一樣,就為false。
兩邊結果不一樣,就為true.
& :無論左邊結果是什么,右邊都參與運算。
&&:短路與,如果左邊為false,那么右邊不參數與運算。
|:兩邊都運算。
||:短路或,如果左邊為true,那么右邊不參與運算。
用于操作二進制位的運算符。
& | ^
<< >> >>>(無符號右移)
對兩個變量的數據進行互換。不需要第三方變量。
int a = 3,b = 5;-->b = 3,a = 5;
a = a + b; a = 8;
b = a - b; b = 3;
a = a - b; a = 5;
a = a ^ b;//
b = a ^ b;//b = a ^ b ^ b = a
a = a ^ b;//a = a ^ b ^ a = b;
練習:高效的算出 2*8 = 2<<3;
If switch do while while for01. If switch
這些語句什么時候用?
當判斷固定個數的值的時候,可以使用if,也可以使用switch。
但是建議使用switch,效率相對較高。
switch(變量){ case 值:要執行的語句;break; … default:要執行的語句; }(01). 工作原理
用小括號中的變量的值依次和case后面的值進行對比
和哪個case后面的值相同了就執行哪個case后面的語句
如果沒有相同的則執行default后面的語句
break是可以省略的,如果省略了就一直執行到遇到break為止
switch 后面的小括號中的變量應該是byte,char,short,int四種類型中的一種
default可以寫在switch結構中的任意位置;如果將default語句放在了第一行,則不管expression與case中的value是否匹配,程序會從default開始執行直到第一個break出現
當判斷數據范圍,獲取判斷運算結果boolean類型時,需要使用if。
當某些語句需要執行很多次時,就用循環結構,while和for可以進行互換。(01). 區別
如果需要定義變量控制循環次數。建議使用for。因為for循環完畢,變量在內存中釋放。
(02). break作用于switch ,和循環語句,用于跳出,或者稱為結束。
break語句多帶帶存在時,下面不要定義其他語句,因為執行不到,編譯會失敗。當循環嵌套時,break只跳出當前所在循環。要跳出嵌套中的外部循環,只要給循環起名字即可,這個名字稱之為標號。
只作用于循環結構,繼續循環用的。
作用:結束本次循環,繼續下次循環。該語句多帶帶存在時,下面不可以定義語句,執行不到。
為了提高代碼的復用性,可以將其定義成一個多帶帶的功能,該功能的體現就是java中的函數。函數就是體現之一。01. 定義格式:
修飾符 返回值類型 函數名(參數類型 形式參數1,參數類型 形式參數1,…){ 執行語句; return 返回值; }
當函數沒有具體的返回值時,返回的返回值類型用void關鍵字表示。
如果函數的返回值類型是void時,return語句可以省略不寫的,系統會幫你自動加上。
return的作用:結束函數。結束功能。
如何定義一個函數?
函數其實就是一個功能,定義函數就是實現功能,通過兩個明確來完成:
明確該功能的運算完的結果,其實是在明確這個函數的返回值類型。
在實現該功能的過程中是否有未知內容參與了運算,其實就是在明確這個函數的參數列表(參數類型&參數個數)。
02. 函數的作用:用于定義功能。
用于封裝代碼提高代碼的復用性。
注意:函數中只能調用函數,不能定義函數。03. 主函數:
保證該類的獨立運行。
因為它是程序的入口。
因為它在被jvm調用。
函數定義名稱是為什么呢?
為了對該功能進行標示,方便于調用。
為了通過名稱就可以明確函數的功能,為了增加代碼的閱讀性。
04. 重載在一個類中,如果出現了兩個或者兩個以上的同名函數,只要它們的參數的個數,或者參數的類型不同,即可稱之為該函數重載了。
如何區分重載:當函數同名時,只看參數列表。和返回值類型沒關系。
用于存儲同一類型數據的一個容器。好處:可以對該容器中的數據進行編號,從0開始。數組用于封裝數據,就是一個具體的實體。
如何在java中表現一個數組呢?兩種表現形式。
元素類型[] 變量名 = new 元素類型[元素的個數]; 元素類型[] 變量名 = {元素1,元素2...}; 元素類型[] 變量名 = new 元素類型[]{元素1,元素2...};
二分查找法。必須有前提:數組中的元素要有序。
public static int halfSeach_2(int[] arr,int key){ int min,max,mid; min = 0; max = arr.length-1; mid = (max+min)>>1; //(max+min)/2; while(arr[mid]!=key){ if(key>arr[mid]){ min = mid + 1; }else if(key六. 內存劃分>1; } return mid; }
寄存器
本地方法區
方法區
棧
堆
01. 棧存儲的都是局部變量 ( 函數中定義的變量,函數上的參數,語句中的變量 );
只要數據運算完成所在的區域結束,該數據就會被釋放。
用于存儲數組和對象,也就是實體。啥是實體???就是用于封裝多個數據的。
1.每一個實體都有內存首地址值
2.堆內存中的變量都有默認初始化值。因為數據類型不同,值也不一樣。
3.垃圾回收機制
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/73193.html
摘要:語法使用使用翻譯一下傳值檢測從翻譯的結果可以看出,默認參數只檢查兩種情況不傳參數傳入前參后用前面的參數可以作為后面參數的默認值,甚至可以對前面的參數做一些特別的操作,比如簡單的加減乘除默認參數調用函數賦值默認參數甚至可以調用函數,可以調用函 0x000 語法 function [name]([param1[ = defaultValue1 ][, ..., paramN[ = defa...
摘要:圖片抓取上本項目主要講述項目的搭建和啟動過程,為以后繼續圖片抓取的業務展示做基礎。用于處理請求和響應的攔截處理。這樣相比容器直接發到處理,大大減少了代碼重復工作而且方便統一管理。上下文關系從上圖可以看出主要在和兩部分做工作。 【圖片抓取】003-JAVA WEB(上) 本項目主要講述java web項目的搭建和啟動過程,為以后繼續圖片抓取的業務展示做基礎。項目中采用tomcat+spr...
摘要:性能分析與實驗性能的宏觀分析在上一篇文章中,我們從是解釋性語言動態語言和底層實現等三個方面,探討了性能的問題。在開始分析之前,我們得掌握一些與性能分析相關的函數。二性能分析則下面我們根據小程序來驗證一些常見的性能差別。 【編者按】此前,閱讀過了很多關于 PHP 性能分析的文章,不過寫的都是一條一條的規則,而且,這些規則并沒有上下文,也沒有明確的實驗來體現出這些規則的優勢,同時討論的也側...
摘要:靜態塊代碼初始化其實,整個靜態代碼塊可以看作是一個靜態成員。和普通的非靜態成員初始化一樣,它的執行也發生在構造器調用之前,并且每當創建對象之前都會調用??诶^承中涉及的初始化大的原則是沒有父類,就沒子類。 這個教程,咱們來對Java中設計到的初始化規則,或者說初始化順序,來做一下匯總,這里我基本上把Java中,默認初始化,靜態成員初始化,非靜態成員初始化,靜態代碼塊,非靜態代碼塊,以及繼...
摘要:檢查對應位置中的對象和當前對象是否相等。重載是為了向表明當前對象和上所保存的對象是相等的,這樣我們才真正地獲得了這個所對應的這個鍵值對。以下例子可以作為上述說明的佐證以上即是全部。 這是Java中很經典的問題,在面試中也經常被問起。其實很多書或者文章都提到過要重載hashCode()和equals()兩個方法才能實現自定義鍵在HashMap中的查找,但是為什么要這樣以及如果不這樣做會產...
閱讀 3441·2023-04-25 23:25
閱讀 2069·2021-11-12 10:36
閱讀 2816·2019-08-30 12:47
閱讀 2037·2019-08-29 18:45
閱讀 435·2019-08-29 17:28
閱讀 1785·2019-08-29 17:15
閱讀 1707·2019-08-29 16:05
閱讀 1405·2019-08-29 14:17