Android面试相关问题

来源:互联网 发布:淘宝解苹果id锁被骗 编辑:程序博客网 时间:2024/04/29 10:23

大四了,这几天一直都在忙着找工作的事,去了好几家公司,我面的是Android应用程序开发工程师,但是在笔试面试中也遇到了操作系统,数据库相关的考题,现在总结一下,以此来达到反思和以后查漏补缺的目的。

1.简述一下死锁和预防处理?

产生死锁的原因是因为竞争资源及进程推进顺序非法。产生死锁的四个必要条件是:互斥条件、请求保持条件、不可剥夺条件和环路条件。所以对于死锁的预防处理就是要打破他的四个必要条件中的一个就可以了;1)死锁预防:限制并发进程对资源的请求,有两种策略(预先静态分配法:破坏了“不可剥夺条件”,资源有序分配法:破坏了“环路条件”;2)死锁避免:最著名的是“银行家算法”,对于进程发出的每一个系统可以满足的资源请求命令加以监测,如果发现分配的资源后,系统进入不安全状态,则不预分配;3)死锁监测:对资源的分配不加限制,即允许死锁的产生,但系统定时会运行一个死锁检测程序,判断系统是否发生死锁,若检测到有死锁,则设法加以解除。

2.进程发生页面置换和发生的缺页次数?

1)最佳置换算法:理想化算法,用来评价其他的算法性能;这个算法是选择那些永远也不使用,或是在最长的时间里不在被访问的的页面置换出去;

2)先进先出置换算法:选择在主存中驻留时间最长的页面予以淘汰;性能最差。

3)最近最少使用:选择最近最少未使用的页面予以淘汰,系统在每一个页面上设置一个访问字段,用以记录这个页面子上次被访问以来所经历的时间T。

4)最近未用置换算法:将最近一段时间里没有使用的页面置换出去,这是LRU的近似算法,为每个页面设置一位访问位。

3、short i=1;i=i+1;与short i=1 i+=1;的对错

前一个表达式是错误的,i是short型,i+1就会类型扩张为int型,short型与int型类型不匹配,发生错误;后一个表达式是正确的,没有类型扩展。

4在JAVA中方法的内部不能用修饰符public,protected,private等。

5java中常用的排序算法

http://blog.csdn.net/qy1387/article/details/7752973

6判断一个数是否是素数

<pre name="code" class="java">static boolean isPrime(int number){  for(int i=2;i<=Math.sqrt(number);i++){     if(number%i==0){        return false;     }  }   return true;}


7.分解质因数

<pre name="code" class="java">static void factor(int number){    for(int i=2;i<=number/2;i++){        if(isPrime(i)){          if(number%i==0){             System.out.print(i+"\t");             int num=number/i;             if(isPrime(num)){                 System.out.print(num);             }             else{             factor(num);             }             return ;          }        }            }}


8最大公约数和最小公倍数

static int f1(int a,int b){if(a<b){a=a+b;b=a-b;a=a-b;}if(a%b==0){return b;}while(a%b>0){a=a%b;if(a<b){a=a+b;b=a-b;a=a-b;}if(a%b==0){return b;}}return 0;}
利用辗转相除法求得最大公约数,最小公倍数等于两数乘积除以最大公约数

9汉诺塔问题

static void hanoi(int n,String src,String mid,String dest){if(n==1){System.out.println(src+"-->"+dest);}else{hanoi(n-1,src,dest,mid);hanoi(1,src,"",dest);hanoi(n-1,mid,src,dest);}}






0 0
原创粉丝点击