Java快速提升_java快速复习 一 基础语法
最近看很多算法書,比較不錯(cuò)的有不少都是java語言描述,所以用一天時(shí)間快速研究并整理java? ,參考資料:java入門經(jīng)典
Call this file "Example2.java".
class Example2 {
public static void main(String args[]) {
int a; //聲明變量
a = 100; //賦值
if(a = 100) print(a); // if(condition) statement;
int x ;
char y = 'x';
byte z = 22;
int d = 3, e, f = 5;
for(x = 0; x<10; x = x+1) // for(initialization; condition; iteration) statement;
System.out.println("This is x: " + x);
}
}
java文件名和類名要相同,運(yùn)行Java解釋器實(shí)際上是指定你想要解釋器運(yùn)行的類的名字,它會(huì)自動(dòng)搜索包含該名字且?guī)в?class擴(kuò)展名的文件。如果找到,它將運(yùn)行含在該指定類中的代碼。
所有的Java應(yīng)用程序都通過調(diào)用main( )開始執(zhí)行。關(guān)鍵字public是一個(gè)訪問說明符(access specifier),它允許程序員控制類成員的可見性。如果一個(gè)類成員前面有public,則說明該成員能夠被聲明它的類之外的代碼訪問(與public相對(duì)的是private,它禁止成員被所屬類之外的代碼訪問)。在本例中,main( )必須被定義為public類型因?yàn)楫?dāng)程序開始執(zhí)行時(shí)它需要被它的類之外的代碼調(diào)用。
關(guān)鍵字static允許調(diào)用main( )而不必先實(shí)現(xiàn)該類的一個(gè)特殊實(shí)例
關(guān)鍵字void僅通知編譯器main()不返回任何值
Java是區(qū)分大小寫的。
即使一個(gè)方法不需要參數(shù),你仍然需要在方法名后面放置一對(duì)空括號(hào)。main( )僅是解釋器開始工作的地方。一個(gè)復(fù)雜的程序可能包含幾十個(gè)類,但這些類僅需要一個(gè)main( )方法以供解釋器開始工作。
java?數(shù)據(jù)類型
整數(shù):該組包括字節(jié)型(byte),短整型(short),整型(int),長(zhǎng)整型(long),
它們有符號(hào)整數(shù)。
浮點(diǎn)型數(shù):該組包括浮點(diǎn)型(float),雙精度型(double),它們代表有小數(shù)精度
要求的數(shù)字。
字符:這個(gè)組包括字符型(char),它代表字符集的符號(hào),例如字母和數(shù)字。
布爾型:這個(gè)組包括布爾型(boolean),它是一種特殊的類型,表示真/假值。
在Java中,字符串實(shí)際上是對(duì)象類型。因?yàn)镴ava對(duì)字符串是作為對(duì)象實(shí)現(xiàn)的,因此,它有廣泛的字符串處理能力,而且功能既強(qiáng)又好用。
變量作用域和生存期
大多數(shù)其他計(jì)算機(jī)語言定義了兩大類作用域:全局和局部。在JAVA中不適用。
程序塊被包括在一對(duì)大括號(hào)中。一個(gè)程序塊定義了一個(gè)作用域(scope)。這樣,你每次開始一個(gè)新塊,你就創(chuàng)建了一個(gè)新的作用域。你可能從先前的編程經(jīng)驗(yàn)知道,一個(gè)作用域決定了哪些對(duì)象對(duì)程序的其他部分是可見的,它也決定了這些對(duì)象的生存期。
方法定義的作用域以它的左大括號(hào)開始。但是,如果該方法有參數(shù),那么它們也被包括在該方法的作用域中。?if?for?這些都是方法。
作為一個(gè)通用規(guī)則,在一個(gè)作用域中定義的變量對(duì)于該作用域外的程序是不可見。
作用域可以進(jìn)行嵌套。例如每次當(dāng)你創(chuàng)建一個(gè)程序塊,你就創(chuàng)建了一個(gè)新的嵌套的作用域。這樣,外面的作用域包含內(nèi)部的作用域。這意味著外部作用域定義的對(duì)象對(duì)于內(nèi)部作用域中的程序是可見的
變量在其作用域內(nèi)被創(chuàng)建,離開其作用域時(shí)被撤消。
如果一個(gè)聲明定義包括一個(gè)初始化,那么每次進(jìn)入聲明它的程序塊時(shí),該變量都要被重新初始化
類型轉(zhuǎn)換
下列2個(gè)條件都能滿足將一種類型的數(shù)據(jù)賦給另外一種類型變量時(shí),將執(zhí)行自動(dòng)類型轉(zhuǎn)換
這2種類型是兼容的。
目的類型數(shù)的范圍比來源類型大
例如,int型的范圍比所有byte型的合法范圍大,因此不要求顯式強(qiáng)制類型轉(zhuǎn)換語句
對(duì)于拓寬轉(zhuǎn)換,數(shù)字類型,包括整數(shù)(integer)和浮點(diǎn)(floating-point)類型都是彼此兼容的
數(shù)字類型和字符類型(char)或布爾類型(bollean)是不兼容的
不兼容類型的強(qiáng)制轉(zhuǎn)換
int a;
byte b;
// ...
b = (byte) a;
當(dāng)把浮點(diǎn)值賦給整數(shù)類型時(shí)一種不同的類型轉(zhuǎn)換發(fā)生了:截?cái)?truncation)。你知道整數(shù)沒有小數(shù)部分。這樣,當(dāng)把浮點(diǎn)值賦給整數(shù)類型時(shí),它的小數(shù)部分會(huì)被舍去
class Conversion {
public static void main(String args[]) {
byte b;
int i = 257;
double d = 323.142;
System.out.println("\nConversion of int to byte.");
b = (byte) i;
System.out.println("i and b " + i + " " + b);
System.out.println("\nConversion of double to int.");
i = (int) d;
System.out.println("d and i " + d + " " + i);
System.out.println("\nConversion of double to byte.");
b = (byte) d;
System.out.println("d and b " + d + " " + b);
}
}
表達(dá)式中類型的自動(dòng)提升
byte a = 40;
byte b = 50;
byte c = 100;
int d = a * b / c;
//中間項(xiàng)結(jié)果a*b很容易超過它的任何一個(gè)byte型操作數(shù)的范圍。為處理這種問題,當(dāng)分
析表達(dá)式時(shí),Java自動(dòng)提升各個(gè)byte型或short型的操作數(shù)到int型。這意味著子表達(dá)式a*b使
用整數(shù)而不是字節(jié)型來執(zhí)行
自動(dòng)類型提升的問題
byte b = 50;
b = b * 2; // Error! Cannot assign an int to a byte!
該程序試圖將一個(gè)完全合法的byte型的值50*2再存儲(chǔ)給一個(gè)byte型的變量。但是當(dāng)表達(dá)
式求值的時(shí)候,操作數(shù)被自動(dòng)地提升為int型,計(jì)算結(jié)果也被提升為int型。這樣,表達(dá)式的
結(jié)果現(xiàn)在是int型,不強(qiáng)制轉(zhuǎn)換它就不能被賦為byte型
byte b = 50;
b = (byte)(b * 2); //正解
類型提升一直以最高級(jí)的類型為目標(biāo)提升。
數(shù)組
聲明數(shù)組
int month_days[];? //type var-name[ ];
聲明并初始化為0
month_days = new int[12];? //array-var = new type[size];
賦值
month_days[0] = 31;
month_days[1] = 28;
聲明并初始化
int month_days[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31,30, 31 };
二維數(shù)組
int twoD[][] = new int[4][5];
第二種聲明形式以下兩種等價(jià)
int al[] = new int[3];
int[] a2 = new int[3];
Java不支持或不允許指針因?yàn)檫@樣做將允許Javaapplet(小應(yīng)用程序)突破Java運(yùn)行環(huán)境和主機(jī)之間的防火墻?后面說解決方案。
運(yùn)算符
+ - * / % ++ += -= *= /= %= --
關(guān)系運(yùn)算符
== != > < >= <=
邏輯運(yùn)算符 & |? ^? || && ! &= |= ^= == != ?:
注意java有三元運(yùn)算
expression1 ? expression2 : expression3
ratio = denom == 0 ? 0 : num / denom;
if(condition)
statement;
else if(condition)
statement;
else if(condition)
statement;
else
statement;
switch (expression) {
case value1:
// statement sequence
break;
case value2:
// statement sequence
break;
.
.
.
case valueN:
// statement sequence
break;
default:
// default statement sequence
}
表達(dá)式expression必須為byte,short,int或char類型。每個(gè)case語句后的值value必須是與表達(dá)式類型兼容的特定的一個(gè)常量(它必須為一個(gè)常量,而不是變量)。重復(fù)的case值是不允許的
switch可以嵌套
三種循環(huán)
while(condition) {
// body of loop
}
do {
// body of loop
} while (condition);
for(initialization; condition; iteration) {
// body
}
Java允許你在for循環(huán)的初始化部分和反復(fù)部分聲明多個(gè)變量,每個(gè)變量之間用逗號(hào)分開。
for(a=1, b=4; a
break,continue和return?都支持
總結(jié)
以上是生活随笔為你收集整理的Java快速提升_java快速复习 一 基础语法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql设置查询结果最大值_查找MyS
- 下一篇: mysql alter 唯一键_MySQ