java語言的三種技術架構java
JAVAEE (J2EE) 企業版 —主要對於Web應用程序開發數組
JAVASE (J2SE) 標準版 —完成一些桌面應用程序開發架構
JAVAME (J2ME) 小型版 —開發電子產品和嵌入式設備app
JAVA 虛擬機( JVM___ Java Virtual Machine)函數
運行輸入:優化
cmd :進入DOS命令行 spa
cd\ :進入C盤根目錄命令行
md : 建立目錄設計
dir :列出當前目錄下的全部文件及文件夾code
rd : 刪除目錄
cd : 進入指定目錄
cd/: 退回到根目錄
del : 刪除文件
exit: 退出DOS命令行
set : 臨時查看編輯環境變量配置
set classpath=D:\肖海波暑假重要文件\java code ——類環境變量(classpath)
還原清理 set classpath= (等號後爲空,按回車肯定)
set classpath=C:\; 後有一分號!若是目標c盤下沒有繼續在當前目錄下查找
set classpath= . ;c:\;d:\ ------ 點;點表明當前目錄
javac :編譯
java : 運行
配置環境變量 :個人電腦屬性--高級-環境變量--系統變量(path)內加入地址。
HELLO world!
class hello
{
public static void main(String[] args)
{
System.out.println(「hello world!」);
}
}
變量 整形: byte short int long ,浮點型:float double ,float a=2.3f; 字符:char
布爾量:boolean bo = true; boolean bo1= false;
【邏輯運算符:】
&:‘與’運算,有假必假
&&:‘短路’ a>1 && a<7 左邊爲假右邊不運算,直接=false (可提升效率)
|: ‘或’有真必真
||: 左邊爲真 右邊不運算,直接得=true
! : ‘非’運算
^ : ‘異或’ 相同爲false 不一樣爲ture
~ : 反碼
【二進制移動—位運算】
<< :左移 3<<2 = 12 ——》3*2*2=12
>>: 右移 3>>1 = 1 ——》3/2 = 1
>>> n : 右移n位,左邊首部無論正負與否都補 0 ;
小結:
>>:最高位爲0,右移後,用0補空位、
最高位爲1 ,右移後,用1補空位。
>>> :不管最高位是什麼,右移後,都用0補
【算術運算符】
+ ,- , * , % , ++ , - -
//注意: short a=3;
語句1: ( a+=2; )與 語句2:( a=a+2; )
不等同! 語句1能夠經過, 語句2編譯不經過,error:類型問題,可能損失精度
【3元運算符】
(條件表達式)? 語句1: 語句2 ; //******若爲真執行1,若爲假執行2。
【3種調換值方法】
容易閱讀 大數字相加可能超出範圍 位運算不超範圍,可讀性差
int a = 2, b = 5; int a = 2,b = 5; int a = 2 ,b = 5 ;
int temp; a=a+b; a=a^b;
temp=a; b=a-b; b=a^b; // a=(a^b)^b = a
a=b; a=a-b; a=a^b // a=(a^b)^a = b
b=temp;
結果:a=5,b=2 a=5, b=2 a=5 , b = 2
【if語句】(判斷)
if (條件表達式) // if else 簡寫結構:變量=(條件表達式)? 語句1:語句2;
{ // 三元運算符 好處:能夠簡化if else 代碼
語句1; 弊端:因是一運算符,因此運算完必須有一結果
}
else
{
語句2;
}
if (條件表達式1) // 內多層 else if 結構,順序執行下去遇到第一個表達式爲真,則執行其後的語句,並退出整個if else 結構。
{
}
else if (條件表達式2)
else if(條件表達式3)
……
……
……
else
{
}
if ( 條件表達式1)
{
語句1;
}
if ()
{ //—————— 順序執行
語句2;
}
if ()
……
else
{
}
【switch語句】
switch (表達式 )
{
case 取值1:執行語句1 ;break;
case 取值2:執行語句2 ;break;
……
default :
執行語句 n ; break; // break 也能夠不寫。
}
【switch語句特色】
1: switch語句選擇的類型只有4種:byte,short,int ,char;
2: case之間與default沒有順序。先執行第一個case,沒有匹配的case執行default,default也能夠放在case前;
3:結束switch語句的2種狀況:遇到break ,執行到結尾「}」
4 :若是匹配的case或者default沒有對應的break,那麼程序會繼續向下執行,運行執行的語句,直到遇到break或switch結尾結束;
【switch與if場景選用方案】
1 若是判斷的具體數值很少,而又符合byte,short,int,char這四種類型,建議使用switch,由於效率稍高。
2 其餘狀況:對區間判斷,對boolean類型判斷,使用if,if的使用範圍更廣。
【循環結構】
while ( 條件表達式)
{
循環體;
}
do
{
循環體;
}
while( 條件表達式);
【for循環】
若是變量只用來做爲循環體的增量 用for循環語句,由於它初始化變量在內部,循環結束時將釋放變量在內存中所佔用的空間,節省內存!
小規律:1;若是尖朝下,內循環初始化 用例(y=x ; y<5 ; ;)
2;若是尖朝上,內循環條件 用例(y=0;y<x ; ;) 來小於外部
【break與continue】
Break語句 ,運用範圍:選擇結構和循環結構; // 其餘範圍無效
Continue 語句, 運用範圍:運用於循環結構; //繼續下一次循環
【標識符:】
n : for ( ; ; ; ) // n表明外循環,s表明內循環
{ 如 有語句 break n ; 表示退出外循環
s : for ( ; ; ; )
{
}
}
—————————————— ————————————————————————
—————————————————— —————————————————————
【函數\方法】
public static void name (int ,int )
修飾符 返回值類型 函數名(參數類型 形參1 ,參數類型 形參2…)
{
執行語句;
Return 返回值;
}
【函數的重載\overload】
在同一個類中,容許存在一個以上的同名函數,只要他們的參數個數或者參數類型不一樣便可(參數列表不一樣)
好處:方便閱讀,優化了程序設計;
【數組】
int [ ] x = new int[3 ] // int x [ ]=int [ ] x []位置不一樣,兩者等同
棧:自動清除 堆:垃圾回收機制
【】
StringBuffer name= new StringBuffer( ) //定義個容器name
name.append( temp ); //如將1101經過temp挨個裝進name容器中
System.out.println( name.reverse( ) ); //將 1011打印出來(反過來)
【查表】
char[ ] ss={‘1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’A’,’B’,’C’,’D’,’E’,’F’} ;
【二維數組】
定義:int[ ] [ ] arr = new int [3] [4]; //定義了名稱爲arr的二維數組,二維數組中有3 個一維數組。每個一維數組中有4個元素
int [ ] [ ] arr= { {3,5,1,7,6} ,{2,9} ,{5,0,2,4} } ;
另外一種定義方式:
int [ ] [ ] arr= new int[3] [ ] ;
int[0]=new int [5];
int[1]=new int [2];
int[2]=new int [4];
System.out.println(arr.length ); //打印二維數組的長度 =3
System.out.println(arr[0].length); //打印二維數組中第一個一維數組的長度 =5
【】
int [ ] [ ] arr=int arr [ ] [ ] = int [ ] arr [ ] ; //三個位置不一,但意思等同
int [ ] x , y[ ]; // x是一維,y是二維。 ----------考試題 int[]x; int[]y[];
【排序】
【選擇排序】——用第一個數與後面的全部進行比較,並換位。
for(int x=0;x<arr.length-1;x++)
{
for(int y=x+1;y<arr.length;y++)
{
if(arr[y]<arr[x])
{
temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
}
【冒泡排序】——相鄰2個元素進行比較,若是符合條件換位。
public static void MaoPao(int[] arr)
{
int temp;
for(int x=0;x<arr.length;x++)
{
for(int y=0;y<arr.length-x-1;y++) //-x: 讓每一次比較的元素減小;
{ -1:避免角標越界。
if(arr[y]>arr[y+1]) //冒泡排序時相鄰2數比較
{
temp=arr[y+1];
arr[y+1]=arr[y];
arr[y]=temp;
}
}
}
}
【開發經常使用排序///簡單】——JAVA中已經定義好的排序方式。小到大
類class前面輸入——》import.java.util .* ;
main 函數內輸入——》 Arrays.sort(arr); // 完成數組arr的排序
【折半查找】
折半查找提升了查找效率,要求:數組要求是順序的!
class ChaZhao
{
public static void main(String[] args)
{
int []arr={1,2,3,4,5,6,7,8,9};
int x = ZBchazhao(arr,6);
System.out.println("x="+ x);
}
public static int ZBchazhao(int[] arr,int key)
{
int min,max,mid;
min=0;
max=arr.length-1;
mid=(min+max)/2; // mid = (min+max)>>1 ;
while(min < = max)
{
mid = (min + max )>>1;
if(key>arr[mid])
min=mid + 1;
else if(key < arr[mid])
max = mid - 1;
else
return mid;
}
return -1;
}
}
【進制轉換 優化】
class ArrayTest7
{
public static void main(String[] args)
{
toBin(-6);
toHex(-60);
toBa(60);
}
/*
十進制-->二進制
*/
public static void toBin(int num)
{
trans(num,1,1);
}
/*
十進制-->八進制
*/
public static void toBa(int num)
{
trans(num,7,3);
}
/*
十進制-->十六進制
*/
public static void toHex(int num)
{
trans(num,15,4);
}
public static void trans(int num,int base,int offset)
{
if(num==0)
{
System.out.println(0);
return ;
}
char[] chs = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char[] arr = new char[32];
int pos = arr.length;
while(num!=0)
{
int temp = num & base;
arr[--pos] = chs[temp];
num = num >>> offset;
}
for(int x=pos; x<arr.length; x++)
{
System.out.print(arr[x]);
}
return ;
}
}