黑馬程序員 Java基礎--->數據類型,數組,switch語句

--------------android培訓java培訓、學習型技術博客、期待與您交流! --------------


 

1)數據類型:

表示大小和默認值

{byte:1*8      short:2*8    int 4*8  }  默認  0      { long 8*8}   默認    0L    {  float   4 *8 } 默認 0.0f    

{double   8*8 }  默認  0.0d                                {char:2*8 } 默認   ''(空字符,打印時無顯示)因爲用的unicode

{boolean} 默認   false                                        {引用數據類型}默認 null

 

2 ) Switch語句

         可以接收byte,short,char,int類型參數

           JDK6.0加入對枚舉類型的兼容

              JDK7.0加入了對字符串類型的兼容。

3)數組

      初始化格式:1、 int []  arr = new int [3];  arr[0]=5;

                                    2、int [] arr={1,2,3,4,5};

       初始化內存分析

   執行過程分析:1、在棧內存中開闢空間,存放數組的引用X

                             2、new int[3]在堆內存中開闢3個存放int數據的空間

                             3、把堆內存中的首地址0x0079賦給X

                             4、通過X引用找到x[0]地址並賦值爲59

 

    補充    :

                   數組在堆內存開闢空間後,就有默認的初始化值。如:int默認0boolean默認false

                   棧內存:用於存儲局部變量,當數據使用完,所佔空間會自動釋放。

                   堆內存:1、數組和對象,通過new建立的實例都存放在堆內存中。

                                   2、每一個實體都有內存地址值。

                                   3、實體中的變量都有默認初始化值。

                                   4、實體不在被使用,會在不確定的時間內被垃圾回收器回收。

                  方法區,本地方法區,寄存器

    數組排序

             

*/
class ArrayTest2 
{

	/*
	選擇排序。
	內循環結束一次,最值出現頭角標位置上。
	*/
	public static void selectSort(int[] arr)
	{
		for (int x=0; x<arr.length-1 ; x++)
		{
			for(int y=x+1; y<arr.length; y++)
			{
				if(arr[x]>arr[y])
				{
					swap(arr,x,y);
				}
			}
		}
	}
	/*
	冒泡排序
	*/

	public static void bubbleSort(int[] arr)
	{
		for(int x=0; x<arr.length-1; x++)
		{									
			for(int y=0; y<arr.length-x-1; y++)//-x:讓每一次比較的元素減少,-1:避免角標越界。
			{
				if(arr[y]<arr[y+1])
				{
					swap(arr,y,y+1);
				}
			}
		}
	}

} 
<span style="font-size:18px;">   二分查找:</span>
class QueryDemo{
	public static void main(String[] args){
		//查找得到的一定是對應所在的位置
		int num = 9;
		int[] arr = {1,2,3,4,5,6,7,8,9};
		
		int min = 0;
		int max =	arr.length-1;
		
		while(min<max){
			//比對值對應的索引
			int mid = (min+max)/2;
			//使用你要查找的數據域要比對的索引上的數據進行比對
			if(num > arr[mid]){
				//min要移動到mid+1,max不動
				min = mid + 1;
			}else if(num < arr[mid]){
				//max要移動到mid-1,min不動
				max = mid - 1;
			}else{
				System.out.println(mid);
				break;
			}
		}		
	}
}
 
發佈了23 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章