Java快速提升_java快速復習 一 基礎語法

最近看很多算法書,比較不錯的有不少都是java語言描述,所以用一天時間快速研究并整理java? ,參考資料:java入門經典

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文件名和類名要相同,運行Java解釋器實際上是指定你想要解釋器運行的類的名字,它會自動搜索包含該名字且帶有.class擴展名的文件。如果找到,它將運行含在該指定類中的代碼。

所有的Java應用程序都通過調用main( )開始執行。關鍵字public是一個訪問說明符(access specifier),它允許程序員控制類成員的可見性。如果一個類成員前面有public,則說明該成員能夠被聲明它的類之外的代碼訪問(與public相對的是private,它禁止成員被所屬類之外的代碼訪問)。在本例中,main( )必須被定義為public類型因為當程序開始執行時它需要被它的類之外的代碼調用。

關鍵字static允許調用main( )而不必先實現該類的一個特殊實例

關鍵字void僅通知編譯器main()不返回任何值

Java是區分大小寫的。

即使一個方法不需要參數,你仍然需要在方法名后面放置一對空括號。main( )僅是解釋器開始工作的地方。一個復雜的程序可能包含幾十個類,但這些類僅需要一個main( )方法以供解釋器開始工作。

java?數據類型

整數:該組包括字節型(byte),短整型(short),整型(int),長整型(long),

它們有符號整數。

浮點型數:該組包括浮點型(float),雙精度型(double),它們代表有小數精度

要求的數字。

字符:這個組包括字符型(char),它代表字符集的符號,例如字母和數字。

布爾型:這個組包括布爾型(boolean),它是一種特殊的類型,表示真/假值。

在Java中,字符串實際上是對象類型。因為Java對字符串是作為對象實現的,因此,它有廣泛的字符串處理能力,而且功能既強又好用。

變量作用域和生存期

大多數其他計算機語言定義了兩大類作用域:全局和局部。在JAVA中不適用。

程序塊被包括在一對大括號中。一個程序塊定義了一個作用域(scope)。這樣,你每次開始一個新塊,你就創建了一個新的作用域。你可能從先前的編程經驗知道,一個作用域決定了哪些對象對程序的其他部分是可見的,它也決定了這些對象的生存期。

方法定義的作用域以它的左大括號開始。但是,如果該方法有參數,那么它們也被包括在該方法的作用域中。?if?for?這些都是方法。

作為一個通用規則,在一個作用域中定義的變量對于該作用域外的程序是不可見。

作用域可以進行嵌套。例如每次當你創建一個程序塊,你就創建了一個新的嵌套的作用域。這樣,外面的作用域包含內部的作用域。這意味著外部作用域定義的對象對于內部作用域中的程序是可見的

變量在其作用域內被創建,離開其作用域時被撤消。

如果一個聲明定義包括一個初始化,那么每次進入聲明它的程序塊時,該變量都要被重新初始化

類型轉換

下列2個條件都能滿足將一種類型的數據賦給另外一種類型變量時,將執行自動類型轉換

這2種類型是兼容的。

目的類型數的范圍比來源類型大

例如,int型的范圍比所有byte型的合法范圍大,因此不要求顯式強制類型轉換語句

對于拓寬轉換,數字類型,包括整數(integer)和浮點(floating-point)類型都是彼此兼容的

數字類型和字符類型(char)或布爾類型(bollean)是不兼容的

不兼容類型的強制轉換

int a;

byte b;

// ...

b = (byte) a;

當把浮點值賦給整數類型時一種不同的類型轉換發生了:截斷(truncation)。你知道整數沒有小數部分。這樣,當把浮點值賦給整數類型時,它的小數部分會被舍去

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);

}

}

表達式中類型的自動提升

byte a = 40;

byte b = 50;

byte c = 100;

int d = a * b / c;

//中間項結果a*b很容易超過它的任何一個byte型操作數的范圍。為處理這種問題,當分

析表達式時,Java自動提升各個byte型或short型的操作數到int型。這意味著子表達式a*b使

用整數而不是字節型來執行

自動類型提升的問題

byte b = 50;

b = b * 2; // Error! Cannot assign an int to a byte!

該程序試圖將一個完全合法的byte型的值50*2再存儲給一個byte型的變量。但是當表達

式求值的時候,操作數被自動地提升為int型,計算結果也被提升為int型。這樣,表達式的

結果現在是int型,不強制轉換它就不能被賦為byte型

byte b = 50;

b = (byte)(b * 2); //正解

類型提升一直以最高級的類型為目標提升。

數組

聲明數組

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 };

二維數組

int twoD[][] = new int[4][5];

第二種聲明形式以下兩種等價

int al[] = new int[3];

int[] a2 = new int[3];

Java不支持或不允許指針因為這樣做將允許Javaapplet(小應用程序)突破Java運行環境和主機之間的防火墻?后面說解決方案。

運算符

+ - * / % ++ += -= *= /= %= --

關系運算符

== != > < >= <=

邏輯運算符 & |? ^? || && ! &= |= ^= == != ?:

注意java有三元運算

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

}

表達式expression必須為byte,short,int或char類型。每個case語句后的值value必須是與表達式類型兼容的特定的一個常量(它必須為一個常量,而不是變量)。重復的case值是不允許的

switch可以嵌套

三種循環

while(condition) {

// body of loop

}

do {

// body of loop

} while (condition);

for(initialization; condition; iteration) {

// body

}

Java允許你在for循環的初始化部分和反復部分聲明多個變量,每個變量之間用逗號分開。

for(a=1, b=4; a

break,continue和return?都支持

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/528959.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/528959.shtml
英文地址,請注明出處:http://en.pswp.cn/news/528959.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

酷狗音樂linux版_酷狗音樂概念版APP內測獲用戶好評:極簡化,更高級

這兩天在網上沖浪的時候&#xff0c;發現不少網友都在安利一個叫做“酷狗音樂概念版”的APP&#xff0c;難道是酷狗又在悶聲搞大事了&#xff1f;搜了一下發現&#xff0c;原來是酷狗音樂概念版APP已經開始進入內測階段&#xff0c;嘗試著下載使用&#xff0c;果然發現“更酷更…

java 計算器類圖_多態計算器(封裝、繼承、多態、簡單工廠)

一.封裝向對象程序設計中&#xff0c;一個非常重要的技術便是封裝&#xff0c;也就是把客觀事物封裝成抽象的類&#xff0c;并且類可以把自己的數據和方法只讓可信的類或者對象操作&#xff0c;對不可信的進行信息隱藏。這樣做的好處在于可以使類內部的具體實現透明化&#xff…

圖書管理系統 java 源碼_[源碼和文檔分享]基于C語言和SQL SERVER數據庫實現的圖書管理系統...

摘 要本文根據《數據庫應用系統設計》課程要求而做。選擇圖書館管理系統設計與開發是因為覺得圖書館管理系統對我們的幫助很大&#xff0c;并且經常去圖書館&#xff0c;對圖書館的大部分功能及流程還是比較了解&#xff0c;而且現在有些地方可能還不夠完善。這次課程設計目標是…

java useragent 360 遨游 火狐_各種瀏覽器UserAgent一覽表(桌面+移動)

桌面IE而IE各個版本典型的userAgent如下&#xff1a;Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)其中&#x…

sql server 修改字段不能為空_SQL-SQL介紹

一SQL 介紹SQL&#xff08;Structured Query Language&#xff09;,語義是結構化語言&#xff0c; 是一門 ANSI 的標準計算機語言&#xff0c;用來訪問和操作數據庫系統&#xff1b;二 數據庫介紹2.1 數據庫我們已經知道了SQL是操作數據庫的語言&#xff0c;那么數據庫是什么&a…

python 數組轉音頻_Python3+將2聲道音頻,分拆成1聲道

現在是將雙聲道的音頻分拆成單聲道的。同理可以將多聲道的音頻文件&#xff0c;轉為1聲道的音頻文件。注意新形成的音頻文件的rate&#xff0c;需要與原音頻的相同。import osimport waveimport numpy as npimport pyaudiofile1 os.path.join(os.path.abspath(os.path.dirname…

java定義一個矩陣的類_java寫入一個矩陣,如何編程求該矩陣的秩

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓Fraction.java如下:(這個是網上找來的&#xff0c;處理分數的類)// 支持查找功能的分數類class Fraction implements Comparable {// 分子private int numerator;// 分母private int denominator;// 默認構造函數public Fraction()…

python動態映射_Python Django框架url反向解析實現動態生成對應的url鏈接示例

本文實例講述了Python Django框架url反向解析實現動態生成對應的url鏈接。分享給大家供大家參考&#xff0c;具體如下&#xff1a;url反向解析&#xff1a;根據url路由規則,動態生成對應的url鏈接 (防止硬編碼)。url反向解析應用在兩個地方&#xff1a;模板中的超鏈接&#xff…

java標量替換_JAVA逃逸分析、棧上分配、標量替換、同步消除

一、逃逸分析逃逸分析是編譯語言中的一種優化分析&#xff0c;而不是一種優化的手段。通過對象的作用范圍的分析&#xff0c;為其他優化手段提供分析數據從而進行優化。逃逸分析包括&#xff1a;全局變量賦值逃逸方法返回值逃逸實例引用發生逃逸線程逃逸:賦值給類變量或可以在其…

python圖像人類檢測_OpenCV人類行為識別(3D卷積神經網絡)

1. 3D卷積神經網絡相比于2D 卷積神經網絡&#xff0c;3D卷積神經網絡更能很好的利用視頻中的時序信息。因此&#xff0c;其主要應用視頻、行為識別等領域居多。3D卷積神經網絡是將時間維度看成了第三維。人類行為識別的實際應用&#xff1a;安防監控。(檢測識別異常行為&#x…

Spring Cloud Feign作為HTTP客戶端調用遠程HTTP服務

如果你的項目使用了SpringCloud微服務技術,那么你就可以使用Feign來作為http客戶端來調用遠程的http服務。當然,如果你不想使用Feign作為http客戶端,也可以使用比如JDK原生的URLConnection、Apache的Http Client、Netty的異步HTTP Client或者Spring的RestTemplate。 那么,為…

java查看weblogic服務器_java判斷服務器是那種,例如區分tomcat和weblogic | 學步園

package com.geostar.query.util;import org.apache.log4j.Logger;/*** author likehua* 服務器類型探測* Date 2011/04/13* **/public class ServerUtil {public static final String GERONIMO_CLASS "/org/apache/geronimo/system/main/Daemon.class";public s…

拼接的option會多出空行_Word空格,空行,頁眉橫線等問題,我只花一分鐘就全解決了...

從網上復制下來的資料粘貼到Word文檔上&#xff0c;出現了許多空格、空行、頁眉橫線等問題&#xff0c;這時候我們該如何快速地解決這些問題&#xff0c;看看下面的操作你就知道了。一、刪除空格1、空格案例從網上復制下來的文字到Word文檔中&#xff0c;出現字與字之間有好多空…

基于java高校教師管理系統_基于SSM框架下的JAVA高校教師業務水平綜合管理系統...

每天記錄學習&#xff0c;每天會有好心情。*^_^*今天和一個朋友共同完成了一個高校教師業務水平綜合管理系統項目&#xff0c;我們在開發時選用的框架是SSM(MYECLIPSE)框架。我這個朋友知識有限&#xff0c;只會這個框架&#xff0c;哈哈&#xff0c;都是為了方便他。和往常一樣…

oracle連接工具_扯一扯Tableau軟件配置數據源系列之Oracle

作者&#xff1a;扯蛋君編輯&#xff1a;齊天大圣聲明&#xff1a;本文章僅用于Taleau軟件的應用、學習溝通&#xff0c;不代表Taleau公司&#xff1b;文中所示截圖來源Taleau官方及軟件公開內容&#xff0c;相應著作權歸Tableau所有。 今天給大家介紹Tableau工具如何連接數據庫…

在java中原始時間_Java 日期時間

Java 日期時間java.util包提供了Date類來封裝當前的日期和時間。 Date類提供兩個構造函數來實例化Date對象。第一個構造函數使用當前日期和時間來初始化對象。Date( )第二個構造函數接收一個參數&#xff0c;該參數是從1970年1月1日起的微秒數。Date(long millisec)Date對象創建…

如何和后臺接觸的_后臺產品,不只是做支持

最近在招聘后臺產品經理&#xff0c;面試過程中提到一個問題&#xff0c;這個問題之前也困擾了我很久&#xff1a;你做的后臺產品&#xff0c;價值體現在哪里&#xff1f;只是做業務支持么&#xff1f;今天就來聊聊這個話題。我是做后臺產品出身&#xff0c;最開始入行做的是云…

java手寫的html轉圖片格式_(Java實現)HTML轉JPG,TIFF等圖片格式和TIFF圖片合并功能解決方案。...

上一篇文章說到了HTML轉PDF的實現方式&#xff0c;而就在那個需求的另外一個方面&#xff0c;項目要求要實現頁面轉圖片的需求&#xff0c;主要是JPG&#xff0c;TIFF&#xff0c;PNG等格式。弄得我有點囧&#xff0c;上次一直沒搞定。也沒找到合適的工具進行轉換。前一小段時間…

云計算呼叫中心_干貨|云呼叫中心系統和傳統呼叫中心系統的區別在哪?

隨著社會的發展&#xff0c;呼叫中心由傳統的呼叫中心逐漸發展為云呼叫中心。然而關于這兩者的區別&#xff0c;您知道嗎&#xff1f;跟隨暢遠技術一同來了解一下吧......一、購買、安裝不同傳統呼叫中心軟件在配置方面有幾個特點&#xff1a;一次購買終身使用&#xff1b;安裝…

java從鍵盤為數組賦值,java給數組賦值

java 動態數組賦值,java對象數組詳解,java二維數組賦值,java給數組賦值java數組動態賦值,從零學java筆錄-第24篇 圖解一維數組在內存中,java二維數組賦值,java給數組賦值java 數組動態賦值,從零學java筆錄-第24篇 圖解一維數組在內存中,java二維數組賦值,java給數組賦值數組的基…