标签:android blog http ar os 使用 sp for java
<A href="http://www.goodprogrammer.org/" target="blank">android培训</a>------我的java笔记,期待与您交流!
1.数组内存----栈 堆
栈内存:数据使用完毕,会自动释放
堆内存:放的都是 new 出来的实体(对象或数组),有内存地址值,且数组都有默认值,例如:0,false,0.0,当堆内存中实体无引用后,一段时间内会被JVM的垃圾回收机制回收,释放内存
例如: (1) int x=1; 只在栈内存中生成 x=1
(2) int[] x = new int[3]; 在栈内存中生成 x,在堆内存中生成 new int[3],并将new int [3]的首地址值(十六进制,如:0x0078)赋给x
2.两个引用指向同一地址
int[] x = new int[3];
int[] y = x;
y[1]=1; --->x[1]=1
3.排序
//选择排序
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-1-i;y++){
if(arr[y]>arr[y+1]){
swap(arr,y,y+1);
}
}
}
}
//位置交换
public static void swap(int[] arr,int x,int y){
int temp = arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
//Java中定义好的一种排序方式
Arrays.sort(arr);
//Java中定义好的输出
printArray(arr);
4.查找
(1).折半查找(第一种方式)(前提是数组已经排序)
public static int halfSearch(int[] arr,int key){
int min,max,mid;
min = 0;
max = arr.lenth-1;
mid = (max + min)/2;
while(arr[mid] != key){
if(key > arr[mid])
min = mid + 1;
else if(key < arr[mid])
max = mid - 1;
if(min > max)
return -1;
mid = (max + min)/2;
}
return mid;
}
(2).折半查找(第二种方式)
public static int halfSearch(int[] arr,int key){
int min = 0,max = arr.length-1,mid;
while(min<=max){
mid = (max + min)>>1;
if(key>arr[mid])
min = mid + 1;
else if(key < arr[mid])
max = mid - 1;
else
return mid;
}
return -1;
}
5.查表法:将所有元素临时存储起来,建立对应关系
//十进制--->二进制、八进制、十六进制
public class Test {
public static void main(String[] args) {
toBin(12);
toBin(-7);
toBa(12);
toBa(-7);
toHex(12);
toHex(-7);
}
//十进制-->二进制
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];// 默认值"\u0000",代表空字符
int pos = arr.length;
while (num != 0) {
int temp = num & base;
arr[--pos] = chs[temp];
num = num >>> offset;
}
for (int i = pos; i < arr.length; i++) {
System.out.print(arr[i]);
}
System.out.println();
}
}
6.二位数组定义
(1).规则 int[][] arr = new int[2][3];
(2).不规则 int[][] arr = new int[3][];
int[0] = new int[3];
int[1] = new int[2];
int[2] = new int[5];
(3).特殊 int[]arr[] = new int[2][3]; 正确
int[] x,y[]; 正确,定义的是一个x[]和一个y[][]
标签:android blog http ar os 使用 sp for java
原文地址:http://www.cnblogs.com/bye-2012lx/p/4172380.html