陣列:
本身就是乙個容器,用來儲存資料。
特點:是固定長度的。
好處:給元素進行編號,從零開始。同時也可以通過length屬性獲取陣列長度。
什麼時候使用陣列呢?
當資料較多時,通常為了方便操作這些資料都需要進行臨時儲存。
習慣:通常運算元組都需要進行遍歷。獲取陣列中的元素需要乙個指標。
通過對指標的值的改變就可以對陣列中的資料進行操作。
常出現的問題:
1,陣列角標越界異常。arrayindexoutofbound***ception
什麼時候會發生呢?當使用到了陣列中不存在的角標時就會發生該異常。
2,空指標異常。nullpointerexception
當引用型變數沒有任何指向時,還在使用該引用變數操作實體內容,會發生該異常。
int arr = new int[3];
該句**在記憶體中的分配情況。
堆記憶體:開闢乙個空間,建立乙個陣列實體,並對陣列中的元素進行了預設初始化。
棧記憶體特點:存放區域性變數,當該變數使用完畢(生命週期結束),自動被釋放。
陣列的常見操作:
1,遍歷。
public static void printarr(int arr)
for(int x=0; xif(x!=arr.length-1)
system.out.print(arr[x]+",");
else
system.out.println(arr[x]);
2,獲取最值。int arr = new int[3];
arr = null;
system.out.println(arr.length);
getmax(null);
public static int getmax(int arr)
if(arr==null)
throw new runtimeexception();
int max = arr[0];
for(int x=1; xif(arr[x]>max)
max = arr[x];
return max;
public static int getmin(int arr)
int min = 0;
for(int x=1; xif(arr[x]min = x;
return arr[min];
3,排序。
選擇排序
特點:選擇乙個位置,通過該位置上變化的元素和其他元素進行比較,走完一圈,該位置出現最值。
內迴圈結束一次,在0角標位出現最值。
**體現形式:
public static void selectsort(int arr)
for(int x=0; xfor(int y=x+1; yif(arr[x]>arr[y])
swap(arr,x,y);
public static void bubblesort(int arr)
for(int x=0; x=0; x--)
for(int y=0; yif(arr[y]>arr[y+1])
swap(arr,y,y+1);
y-x : 通過不斷迴圈,減少每一次參與比較元素的個數。
-1 :防止y+1的角標越界。
private static void swap(int arr,int x,int y)
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
4,查詢。
public static int getindex(int arr,int key)
for(int x=0; xif(arr[x]==key)
return x;
return -1;//為什麼返回-1呢?因為陣列中沒有-1這個角標,所以可以通過-1來表示元素不存在的情況。
折半查詢,二分查詢。
這種方式有乙個必要的前提:被查詢的陣列一定要是有序的。
public static int halfsearch(int arr,int key)
int max,min,mid;
max = arr.length-1;
min = 0;
mid = (max+min)/2;
while(arr[mid]!=key)
if(key>arr[mid])
min = mid + 1;
else if(keymax = mid - 1;
if(min>max)
return -1;
mid = (max+min)/2;
return mid;
public static int halfsearch(int arr,int key)
int max,min,mid;
max = arr.length-1;
min = 0;
while(min<=max)
mid = (max+min)/2;
if(key>arr[mid])
min = mid +1 ;
else if(keymax = mid - 1;
else
return mid;
return -1;
物件導向的特性以及對其理解
1.封裝 所謂封裝,就是將客觀事物封裝成抽象的方法,並且類可以吧資料和放發讓可信的類或者物件進行操作,對不可信的類或物件進行影藏。類是封裝資料和操作這些資料 的邏輯實體。在乙個類的內部,某些屬性和方法是私有的,不能被外界訪問。通過這中方式,物件內部資料進行了不同級別的訪問控制,就避免了程式中的無關部...
js值字符集編碼以及對其應用的理解
最近一直在忙專案的事,就沒有更新了。正好碰到編碼的問題,看的差不多就寫寫了。首先得搞懂字符集和編碼的區別 字符集定義的是碼點,即相應的值對應的字元 而編碼則是怎麼解析這些二進位制位數,具體的可以檢視 現在主要的字符集用的都是unicode和ascii字符集值,我今天也就主要講一下這兩種字符集。先說一...
父頁面與子頁面之間的操作以及對iframe的操作
在開發過程中,有時會遇到父頁面的內容需要在子頁面做更改,父頁面也同時能夠改變。那如何做到父頁面與子頁面的互動?子頁面呼叫父頁面的方法 window.parent.方法 或window.opener.方法 子頁面呼叫父頁面的變數 window.opener.變數名 或window.opener.變數 ...