




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Java數據類型與表達式Java符號數據類型與變量表達式與運算符數據的輸入輸出常用數學方法1.標識符的定義標識符是以字母(包括漢字),下劃線(_),美元符($)開始的一個字符序列,后面可以跟字母,下劃線,美元符,數字。2.注意幾點:
(1)Java的保留字不能作為標識符。
(2)Java是大小寫敏感的語言。
(3)能見名知義。標識符一些單詞賦以特殊的用途,不能當作一般的標識符使用,這些單詞稱為關鍵字(Keyword)或保留字(reservedword)。有關Java關鍵字要注意兩點:Java語言中的關鍵字均為小寫字母表示。
TRUE、NULL等不是關鍵字。
goto和const雖然在Java中沒有作用,但仍作為關鍵字保留。關鍵字下列哪些是合法的Java標識符名字?A.counterlB.$index,
C.name-7D._byteE.1arrayF.2iG.try
H.char【答案】AD分隔符在Java中,圓點“.”、分號“;”、空格和花括號“{}”等符號具有特殊的分隔作用注釋(1)單行注釋符,在語句行中以“//”開頭到本行末的所有字符視為注釋。(2)多行注釋,以“/*”和“*/”進行標記,其中“/*”標志著注釋塊的開始,“*/”標志注釋塊的結束。(3)文檔注釋,類似前面的多行注釋,但注釋開始標記為“/**”,結束仍為“*/”
數據類型關鍵字數據類型所占字節默認值取值范圍byte字節型10-27~27-1short短整型20-215~215-1int整型40-231~231-1long長整型80-263~263-1float單精度浮點型40.0F3.4e-038
~3.4e+038
double雙精度浮點型80.0D1.7e-038
~1.7e+038
char字符型200~65535boolean布爾型1falsetrue,false基本數據類型補充:補充小心不要溢出哦!1.布爾常量
布爾常量只有true和false兩個取值。常量2.整數常量
不帶小數的數,但包括負數。在Java中整數常量分為long、int、short和byte四種類型,Java語言的整型常量默認為int類型
Java中對于數值數據的表示有以下幾種形式:十進制:數據以非0開頭,例如:4,-15;八進制:數據以0開頭,例如:054,012;十六進制:數據以0x開頭,例如:0x11,0xAD00
二進制(是JDK1.7新增功能):數據以0b開頭,例如:0b101。3.浮點常量浮點常量有兩種表示形式:小數點形式:如:6.37,-0.023;指數形式:也稱科學表示法,如:3e-2代表0.03,3.7E15代表3.7*1015區分類型---在常量后面加后綴修飾
float類型以F/f結尾,double類型以D/d結尾。如果浮點常量不帶后綴,則默認為雙精度常量。
4.字符常量
字符常量是由一對單引號括起來的單個字符或以反斜線(\)開頭的轉義符,Java的字符編碼采用了國際統一標準的Unicode碼(2字節)轉義字符描述\’單引號字符\"雙引號字符\\反斜杠\r回車\n換行\f走紙換頁\t橫向跳格\b退格5.字符串常量由雙引號括起來的有0到多個字符組成的字符系列。例如:""---含0個字符
"
"---含1個空格
"a","123456"1.變量的定義與賦值
變量必須先聲明,后使用。
聲明格式:類型變量名[=值][,變量名[=值],…];
例:doublem,n=0;
charc='a';變量的命名要符合標識符的規定;在一定范圍內不能定義兩個同名的變量;程序中用變量名來引用變量的數值。變量[]代表可選項2.變量的取值范圍
不同數值型變量的存儲空間大小不同,因此能存儲的數值范圍也不同。各種數值變量對應的包裝類中分別定義了兩個屬性常量MAX_VALUE和MIN_VALUE指示相應基本類型的數值范圍
字節型的取值范圍是:-128~127短整型的取值范圍是:-32768~32767整型的取值范圍是:-2147483648~2147483647長整型的取值范圍是:-9223372036854775808~9223372036854775807單精度浮點型的取值范圍是:1.4E-45~3.4028235E38雙精度浮點型的取值范圍是:4.9E-324~1.7976931348623157E3083.賦值與強制類型轉換
賦值語句的格式:變量=表達式;
先計算右邊表達式的值,再將結果賦給左邊的變量。
x=x+1;
自動轉換的次序為:byte-->short-->char-->int-->long-->float-->double注:兩個char型運算時,自動轉換為int型;當char與別的類型運算時,也會先自動轉換為int型的,再做其它類型的自動轉換強制類型轉換格式為:變量=(數據類型)表達式
賦值號兩邊數據類型不一致的處理:
例2-1
簡單數據類型的使用publicclassSimpleDataType{publicstaticvoidmain(Stringargs[]){inti=3;
byteb=(byte)i;
shortsi=20000;
intli=(int)4.25;floatf=3.14f;System.out.println(b+"\t"+si+"\t"+i+"\t"
+li+"\t"+f);}}【運行結果】320000343.14補充請在eclipse中輸入以上程序,并執行。新建一個工程,將書本上的例題導入到工程中,并執行。補充舉例:注意inta=24;byteb;b=24;b=a;//出錯;為何出錯?因為,人可以看出風險;但計算機沒法預計,所以就一律禁止!b=(byte)a;//這就可以了補充以上講的基本數據類型(int,short,long,byte,float,double,boolean,char)中的數據都是存儲在棧(stack)中。所以,存儲速度快但,必須明確指明類型生存周期也十分明確,本程序結束所有該程序定義的變量全部取消。而我們以后要講到的“類”的“對象”是存儲在堆(heap)中的。由垃圾收集器來統一進行動態回收。補充請關注數據類型的定義,計算機內部都做了些什么?什么是棧(stack)什么是堆(heap)?【相同點】棧(stack)與堆(heap)都是Java用來在內存中存放數據的地方。【不同點】棧(stack)存取速度比堆要快;堆(heap)慢存在棧(stack)中的數據大小與生存期必須是確定的,缺乏靈活性;堆(heap)可以動態地分配內存大小,生存期也不必事先告訴編譯器,Java的垃圾收集器會自動收走這些不再使用的數據。表達式與運算符
運算符按操作數的數目分類:
一元運算符:只需要一個運算對象的運算符稱為一元運算符。
例:x=-x;
二元運算符:需要兩個運算對象的運算符號稱為雙元操縱符。
例:x=x+2;三元運算符:三元運算符需要三個運算對象。Java有一個三元運算符“?:”,它是一個簡要的if……else語句。1.
雙目算術運算符
運算符使用形式描述舉例結果+op1+op2op1加上op25+611-op1-op2op1減去op26.2-24.2*op1*op2op1乘以op23*412/op1/op2op1除以op27/23%op1%op2op1除以op2的余數9%21幾點注意:1)
“/”運算對與整數和浮點數情況不同,7/2結果為3,而7.0/2.0結果為3.5。2)
取模運算“%”一般用于整數運算,它是用來得到余數部分。例如:7%4的結果為3。但當參與運算的量為負數時,結果的正負性取決與被除數的正負。算術運算符(3)如果出現各種類型數據的混合運算,系統將按自動轉換原則將操作數轉化為同一類型,再進行運算。如:一個整數和一個浮點數進行運算,結果為浮點型。看看如下程序段。charc='a';intd='c'-c;intx=c+1;charc2=(char)x;System.out.println(c+"\t”+d+"\t”+x+"\t”+c2);則該程序段對應的輸出結果如下:a298b字符與整數的混合運算補充輸入以下內容并執行,解釋結果。Stringstr;inti;charcha='a';str=54+"";i=cha;System.out.println(str+";"+i);單目算術運算符運算符使用形式描述功能等價++a++或++a自增a=a+1--a--或--a自減a=a-1--a求相反數a=-a幾點說明:★
變量的自增與自減與++出現的前后位置無關。無論是++x還是x++均表示x要增1。★
表達式的值與運算符位置有關。運算符用法描述舉例>op1>op2op1大于op2x>3>=op1>=op2op1大于等于op2x>=4<op1<op2op1小于op2x<3<=op1<=op2op1小于等于op2x<=4==op1==op2op1等于op2x==2!=op1!=op2op1不等于op2x!=1關系運算結果是布爾值(true或false)邏輯運算符運算符用法何時結果為true附加特點&&op1&&op2op1和op2都是trueop1為false時,不計算op2||op1||op2op1或op2是trueop1為true時,不計算op2!!opop為false
設x=3,執行下面語句結果為true。System.out.println((x==3)||(x/0>2));如果將代碼改為:System.out.println((x/0>2)||(x==3));則運行時將產生算術運算異常,不能用x去除0。
寫出程序運行結果publicclassTest1{
publicstaticvoidmain(Stringa[]){
intm=4;
System.out.println("result1="+m++);
System.out.println("result2="+(++m));
booleanx=(m>6)&&(m%2==0);
System.out.println("result3="+x);}}result1=4result2=6result3=false位運算是對操作數以二進制比特(bit)位為單位進行的操作運算運算符用法操作~~op結果是op按比特位求反>>Op1>>op2將op1右移op2個位(帶符號)<<Op1<<op2將op1左移op2個位(帶符號)>>>op1>>>op2將op1右移op2個位(不帶符號的右移)&Op1&op2op1和op2都是true|Op1|op2op1或op2是true^Op1^op2op1和op2是不同值1.移位運算符----使用示例x(十進制表示)二進制補碼表示x<<2x>>2x>>>23000011110011110000000011100000111-1711101111101111001111101100111011在處理帶符號的右移中,右移后左邊的留出的空位上復制的原數的符號位。而不帶符號的右移中,右移后左邊的空位一律填0。帶符號的左移在后邊填補0。
數據在計算機內是以二進制補碼的形式存儲,正負數的區別看最高位:0代表正數;1則為負數
30的二進制是:00011110;17是:00010001;-17他的負數補碼是反碼加1,所以-17的二進制是:11101111
2.按位邏輯運算
x=13,y=43,計算各運算結果。
首先,將數據轉換為二進制形式:x=1101,y=101011以字節數據為例,x和y均占用一個字節,所以x和y的二進制為:x=00001101,y=00101011;
~x結果應為11110010,最高位是1,所以是負數,把0010轉成補碼是1110,即14,十進制結果為-14。x&y=1001,也即十進制的9
;賦值組合運算符是指在賦值運算符的左邊有一個其它運算符例如:x+=2;//相當與x=x+2其功能是先將左邊變量與右邊的表達式進行某種運算后,再把運算的結果賦給變量。能與賦值符結合的運算符包括:算術運算符:+,-,*,/,%
位運算符:&,|,^
位移運算符:>>,<<,>>>其它運算符運算符描述?:作用相當于if-else語句[]用于聲明數組,創建數組以及訪問數組元素.用于訪問對象實例或者類的類成員函數(type)強制類型轉換new創建一個新的對象或者新的數組instanceof判斷對象是否為類的實例
Java運算符的優先級與結合性運算符描述優先級結合性()圓括號15左new創建對象15左[]數組下標運算15左.訪問成員(屬性、方法)15左++,--后綴自增、自減1
14右++,--前綴自增、自減1
13右~按位取反13右!邏輯非13右-、+算術符號(負、正號)13右(type)強制類型轉換13右*、/、%乘、除、取模12左+、-加、減11左<<、>>、>>>移位10左Java運算符的優先級與結合性(續)<、>、<=、>=
instanceof
關系運算
9左==、!=相等性運算8左&位邏輯與7左
^位邏輯異或
6左|位邏輯或
5左&&邏輯與4左||邏輯或
3左?:條件運算符2右=
+=
-=
*=
/=
%=
&=^=
|=
<<=
>>=
>>>=
賦值運算符
1右注意:1.優先級決定表達式的運算次序,優先級值大的運算先計算;x>y&&x<5相當于(x>y)&&(x<5)2.優先級相同,則運算次序取決于結合性.左結合就是按由左向右的次序計算表達式
例如,4*7%3右結合就是按由右到左的次序計算。
例如:a=b=c相當于“a=(b=c)”
再如,a?b:c?d:e相當于“a?b:(c?d:e)”1.數據的輸出(1)print()方法:實現不換行的數據輸出;(2)println()方法:與上面方法的差別是輸出數據后將換行。(3)printf()方法:帶格式描述的數據輸出。該方法包含兩個參數,第一個參數中給出輸出格式的描述,第2個參數為輸出數據,其中,輸出格式描述字符串中需要安排與輸出數據對應的格式符。常用格式符包括:%d代表十進制數;%f代表浮點數;%e代表科學表示法的指數位數;%n代表換行符;%x代表十六進制數;%s代表字符串。數據的輸入輸出例2-2數據輸出應用舉例publicclassTest{ publicstaticvoidmain(Stringa[]){ intm=12,n=517; System.out.print("n%m="+(n%m)); System.out.println("\tn/m="+(n/m)); System.out.print(Integer.toBinaryString(m)); System.out.println("\t"+Integer.toBinaryString(m>>2)); System.out.printf("ValueofPIis%.3f%n",Math.PI); System.out.printf("result1=%e%n",1500.34);System.out.printf("result2=%13.8e%n",1500.34); }}n%m=1n/m=43110011ValueofPIis3.142result1=1.500340e+03result2=1.50034000e+03精確到小數點后3位指數形式,默認6位小數總寬度13,小數8位1)字符類型數據的輸入利用標準輸入流(System.in)的read()方法,可以從鍵盤讀取字符。但要注意,read()方法從鍵盤獲取的是輸入的字符的字節表示形式(返回結果為int類型),需要使用強制轉換將其轉化為字符型單個字符的輸入charc=(char)System.in.read();2.數據的輸入數據的輸入輸出2)字符串的輸入方法1:利用獲取字符的辦法將一個個字符拼接為一個字符串。但這樣做除了編程復雜外,更重要的是效率也比較低;
方法2:將鍵盤輸入的數據看作字符流,利用InputStreamReader將從鍵盤輸入的字節流數據轉化為字符序列來識別。利用BufferedReader對字符流序列進行過濾,借助BufferedReader流對象提供的方法readLine()從鍵盤讀取一個字符串。字符串的輸入BufferedReadersr=newBufferedReader(newInputStreamReader(System.in));Strings=sr.readline();通過流變換獲取字符串System.inread(byte[]b):讀一系列字節InputStreamReader字節流字符流BufferedReaderread(char[]cbuf):讀一系列字符readLine():讀一行字符串(String)InputStream帶緩沖的字符流例2-3字符串類型數據輸入importjava.io.*;publicclassInputString{publicstaticvoidmain(Stringargs[]){Stringstr="";System.out.print("EnteraStringplease:");try{
BufferedReadersr=newBufferedReader(newInputStreamReader(System.in));
str=sr.readLine();
}catch(IOExceptione){}System.out.println("You'veenteredaString:"+str);}}3)整數和雙精度數的輸入先通過上面的方法獲取一個由數字字符組成的字符串,然后通過下面的轉換方法轉換成需要的數據。Integer.parseInt(Strings):將數字字符串轉化為整數。Double.parseDouble(Strings):將字符串形式的數字數據轉化為雙精度數。例如:Stringx="123";intm=Integer.parseInt(x);//m的值為123x="123.41";doublen=Double.parseDouble(x);//n的值為123.41java鍵盤輸入語句寫法匯總有以下三種方法:
方法一:從控制臺接收一個字符,然后將其打印出來
publicstaticvoidmain(String[]args)throwsIOException{System.out.print("EnteraChar:");chari=(char)System.in.read();System.out.println("yourcharis:"+i);}
雖然此方式實現了從鍵盤獲取輸入的字符,但是System.out.read()只能針對一個字符的獲取,同時,獲取進來的變量的類型只能是char,當我們輸入一個數字,希望得到的也是一個整型變量的時候,我們還得修改其中的變量類型,這樣就顯得比較麻煩。throwsIOException是指回避異常,是拋異常的一種方式。拋異常分為兩種方式,一種是拋出異常就處理異常就是所謂的try{}catch(){},還有一種就是寫的紅色字體這種回避異常,就是在出現異常時不處理,在調用此方法時處理該異常,什么時候調用,什么時候處理異常。java鍵盤輸入語句寫法匯總方法二:從控制臺接收一個字符串,然后將其打印出來。在這個題目中,我們需要用到BufferedReader類和InputStreamReader類
publicstaticvoidmain(String[]args)throwsIOException{BufferedReadersr=newBufferedReader(newInputStreamReader(System.in));Stringstr=null;System.out.println("EnteraStringplease:");str=sr.readLine();System.out.println("You'veenteredaString:"+str);}這樣我們就能獲取我們輸入的字符串。輸入輸出時,會發生很多情況,所以需要聲明拋出異常!java鍵盤輸入語句寫法匯總方法三:這種方法最簡單,最強大的,就是用Scanner類
publicstaticvoidmain(String[]args){
Scannersr=newScanner(System.in);System.out.println("請輸入你的姓名:");Stringname=sr.nextLine();//可以包含空格//Stringname=sr.next();//不能包含空格System.out.println("請輸入你的年齡:");intage=sr.nextInt();System.out.println("請輸入你的工資:");floatsalary=sr.nextFloat();System.out.println("你的信息如下:");System.out.println("姓名:"+name+"\n"+"年齡:"+age+"\n"+"工資:"+salary);}java鍵盤輸入語句寫法匯總Scanner類:這是一個用于掃描輸入文本的新的實用程序。Scanner類可以任意地對字符串和基本類型(如int和double)的數據進行分析。借助于Scanner,可以針對任何要處理的文本內容編寫自定義的語法分析器。可以使用該類創建一個對象:Scannerreader=newScanner(System.in);
然后reader對象調用下列方法(函數),讀取用戶在命令行輸入的各種數據類型:next.Byte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShot()
上述方法執行時都會造成堵塞,等待用戶在命令行輸入數據回車確認.把所輸入的內容傳給Scanner,作為掃描對象。如果要獲取輸入的內容,則只需要調用Scanner的nextLine()方法即可。例如,用戶在鍵盤輸入12.34,hasNextFloat()的值是true,而hasNextInt()的值是false.NextLine()等待用戶輸入一個文本行并且回車,該方法得到一個String類型的數據。數據的輸入、輸出Importjavax.swing.*;輸入Strings=JOptionPane.showInputDialog();注意:showInputDialog()的返回值類型是String,因此,如果需要將用戶輸入的數據參與算術計算,必須要將該String類型的數據轉換成相關類型。輸出JOptionPane.showMessageDialog(null,s);3.用swing對話框實現輸入輸出importjavax.swing.*;publicclassTest2{publicstaticvoidmain(Stringargs[]){Strings=JOptionPane.showInputDialog("請輸入你的姓名:");JOptionPane.showMessageDialog(null,"華東交大歡迎你:"+s);}}例2-4用Swing對話框輸入和顯示數據
常用數學方法常量Math.PI代表數學上的π
Math.E代表數學上的eMath類的主要常用靜態方法
intabs(inti)intmax(inti1,inti2)doubleceil(doubled)不小于d的最小整數doublefloor(doubled)doublerandom()
longround(doubled)
longrint(doubled)
doublelog(doubled)doubleexp(doublex)doublepow(doublea,doubleb)doublesqrt(doublea)\\開方
doublecos(doubled)產生0~1之間,不包括0和1思考?X=(int)(Math.random()*100)不大于d的最大整數
求d的四舍五入值,
2.5以內就是2,2.5就是3求最靠近d的整數,
2.5及以內就是2,2.51就是3通過“類名.方法名”的方式即可調用各進制轉換十進制轉成十六進制:
Integer.toHexString(inti)
十進制轉成八進制
Integer.toOctalString(inti)
十進制轉成二進制
Integer.toBinaryString(inti)
十六進制轉成十進制
Integer.valueOf("FFFF",16).toString()
八進制轉成十進制
Integer.valueOf("776",8).toString()
二進制轉十進制
Integer.valueOf("0101",2).toString()直接將2,8,16進制直接轉換為10進制:
Integer.parseInt(Strings,intradix)
使用第二個參數指定的基數,將字符串參數解析為有符號的整數。各數據類型轉換Strings="123";//藍色是字符串轉換成整型intn=Integer.valueOf(s);intn=Integer.parseInt(s);Strings=n+"";//紅色是不同類型整型轉換成字符串trings=Integer.toString(n);Strings=String.format("%d",n);Strings=String.format("%x",n);Strings=String.format("%o",n);char[]arr=s.toCharArray();
//綠色是字符串轉換成字符String.valueOf(arr);Stringstr[]=newString[3];
//淡藍色是字符串數組轉換成字符串Arrays.toString(str);例2-5輸入圓的半徑,計算圓面積,輸出結果精確到小數點后3位。importjavax.swing.*;publicclassTest3{publicstaticvoidmain(Stringargs[]){Strings=JOptionPane.showInputDialog("輸入圓半徑:");doubler=Double.parseDouble(s);doublearea=Math.PI*r*r;System.out.printf("圓的面積=%.3f",area);}}JAVA中import、io、util意思importjava.io.*importjava.util.*;importjava.io.IOException;importjava.util.HashMap;
import:引入非本包的public類;就是在你寫一個類的時候。里面用到了其他的類,而用到的這個類和你現在寫的這個類不是同一個包里,就需要導入那個類的全名java.io.*不是一個文件,IO而是一組java基礎的包類。它是在java.io包里的所有類,*是通配符;IOException:該包中的某個具體的類;
打個比方,其目錄層次結構如下:
java\io\IOException.java
則io指的是個文件夾,而IOException指的是其具體的文件IOException.javaJava中main函數的參數數組args[]當你在Java命令行后面帶上參數,Java虛擬機就直接把它們存放到了main
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育信息化下的數字孿生城市建設策略
- 保安工作計劃環境保護大氣污染部門
- 2025年醫保知識考試題庫及答案:醫保定點醫療機構管理政策法規解讀與實踐操作試題
- 2025年小學教師資格考試《綜合素質》時事熱點教育現象解讀試題及答案試卷
- 尤其關注生活費用的管理計劃
- 培養學生批判性思維的方法計劃
- 教育培訓領域中的數字孿生技術應用研究
- 科達集團復合投資協議書
- 生物實踐課程設計與實施計劃
- 門鎖系統維護合同范本
- 新媒體業務面試題及答案
- 廣東省廣州市2025年中考地理模擬測試卷(含答案)
- 食堂應急預案管理制度
- 中級財務會計-中級財務會計復習學習資料
- 基于《山海經》神祇形象的青少年解壓文具設計研究
- 安全生產法律法規基本知識
- 2025年新高考歷史預測模擬試卷黑吉遼蒙卷(含答案解析)
- 2025高考語文名校作文題立意與例文參考11篇
- 2025年高三語言復習【文字運用題】專項練習卷附答案解析
- 申報企業高級工程師職稱述職報告
- 5.2《稻》教案-【中職專用】高二語文同步教學(高教版2023·拓展模塊下冊)
評論
0/150
提交評論