1.Dalvik虚拟机与jvm的区别
a.dalvik虚拟机是基于寄存器的,jvm基于栈
b.Dalvik运行的是.dex字节码格式,java虚拟机运行的是java字节码
c.Dalvik虚拟机运行环境做了优化,允许在有限的内存中同时运行多个虚拟机的实例,每一个 Dalvik应用作为一个独立的Linux进程执行
2.android进程间通信
a.bundle,Activity、Service、Receiver之间的数据传递
b.contentprovider,不同应用程序之间进行数据交换的组件。一个应用程序通过它公开自己的数据操作接口,另一个应用程序都可以通过接口来操作它的内部数据。可以操作的数据的格式:数据库,文件,对象。
c.messenger,进程间基于消息的通信实现方式,基于aidl
d.aidl,基于binder
e.broadcastreceiver,基于binder
f.binder机制,包含Client、Server、Service Manager和Binder驱动程序四个组件,Client、Server和Service Manager实现在用户空间中,Binder驱动程序实现在内核空间中
g.socket,应用层和传输层之间的一个抽象层,用于网络进程间通信
3.冒泡算法
public static void bubbleSort(int[] arr) {
for(int i =0;i<arr.length-1;i++) {
for(int j=0;j<arr.length-i-1;j++) {
if(arr[j]>arr[j+1]) {
int temp = arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
4.快速排序
public static void sort(int[] a,int low,int high){
int start = low;
int end = high;
int key = a[low];
while(start<end){
//从右比较
while(start<end&&a[end]>=key)
end--;
//起始位置与结束位置的值交换
if(start<end){
int temp = a[end];
a[end] = a[start];
a[start] = temp;
start++;
}
//从左比较
while(start<end&&a[start]<=key)
start++;
if(start<end){
int temp = a[end];
a[end] = a[start];
a[start] = temp;
end--;
}
}
//start=end 递归调用
if(start>low)
sort(a,low,start-1);
if(end<high)
sort(a,start+1,high);
}
5.二分法查找(数组是递增的)
public static int binarySearch(int[] array, int value)
{
int low = 0;
int high = array.length - 1;
while(low <= high)
{
int middle = (low + high) / 2;
if(value == array[middle])
{
return middle;
}else if(value > array[middle])
{
low = middle + 1;
}else
{
high = middle - 1;
}
}
return -1;
}
6.计算1-n的递增数列中字符“1”出现的次数
public static int calcNumOne(int n){
if(n<1)
return 0;
int count = 0;
//当前的位数,如,1代表各位,10带代表十位
int digit = 1;
//十进制的最大值
int value = n;
//从低位到高位求十进制数“1”出现次数
//至计算到最高位时,value=0,循环退出
while(value>0){
int reminder = value%10;
value/=10;
count += value*digit;
if(reminder==1){
count+=n%digit+1;
}else if(reminder>1){
count+=digit;
}
digit*=10;
}
return count;
}
7.猴子吃桃
public class test {
public static void main(String[] args){
int t = 1;
for(int i=1;i<10;i++){
t=(t+1)*2;
}
System.out.println("the initial number of peachs is:"+t);
}
}