黑马程序员 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;
			}
		}		
	}
}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值