面试总结1

来源:互联网 发布:单纯性算法则么迭代 编辑:程序博客网 时间:2024/06/05 18:39

今天笔试了一家公司,感觉总体做的还不错。但是细节上还是有不少缺陷。特记录总结下,以免下次再犯。

1.考优先级的。

          这个比较有难度,我想了N久都想不起来。回来查了,也发现这根本背不下来,所以这题是做错了。

2.考指针操作

         这个是考基础知识的,问题不大,只要认真分析,肯定是能做对的。

3.指针与引用的区别

         这个区别点我只写了一个。网上有三点。

       1.从现象上看:指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变
       2.从内存分配上看:程序为指针变量分配内存区域,而引用不分配内存区域
       3.从编译上看:程序在编译时分别将指针和引用添加到符号表上,符号表上记录的是变量名及变量所对应地址。指针变量在符号表上对应的地址值为指针变量的地址值,而引用在符号表上对应的地址值为引用对象的地址值。符号表生成后就不会再改,因此指针可以改变指向的对象(指针变量中的值可以改),而引用对象不能改。

 

4.java执行的顺序。

public class TSS {private static int count1;//line1private static int count2;//line2public TSS(){//line3count1++;count2++;}private static TSS ts = new TSS(); //line4public static TSS get(){//line5return ts;}/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubTSS.get();//line6}}

请问上述程序执行的顺序:我的答案是line1->line2->line4->line3->line6->line5。我的理解是先于类对象构造,然后才去调用main函数去执行。不知道对不对
5.java 中在try{}中写入return语句,那么finally{}还会执行么?

我的答案是在try模块遇到异常时才会调用finally模块,因为如果不异常的话,会return的,直接返回了,哪里还能调用finally呢。但是网上一搜,发现答案是这样的:

一篇博客是这样写的:http://z466459262.iteye.com/blog/739366

public class Test {        public static void main(String[] args) {          System.out.println(decision());      }            public static boolean decision(){          try{              return true;          }finally{              return false;          }      }  }    打印的是什么呢?    打印: false;  因为finally只要不中断程序就一定会执行。。。。  栈中先放入true,然后栈中再放入false,然后就返回栈中的第一个了      public class Test {        public static void main(String[] args) {          decision();      }            public static void  decision(){          try{              System.out.println("try 中");              System.exit(0);          }finally{              System.out.println("finally 中");          }      }  }    打印: try中。。。    因为程序中断了,当然不执行finally      public int getName1(){          try{              System.out.println("try");              return 1;          }finally{              System.out.println("finally");                        }  }  结果:  try  finally  1    //------------------------------------------------------  public int getName1(){          try{              System.out.println("try");              return 1;          }finally{              System.out.println("finally");              return 2;          }  }    结果:  try  finally  2    Return并不是让函数马上返回,而是return语句执行后,将把返回结果放置进函数栈中,此时函数并不是马上返回,它要执行finally语句后才真正开始返回。 


6.litle endian和big endian

这两个概念纯属不知道,但是似乎又在哪见过,回来查资料才发现是“BIG-ENDIAN就是低位字节排放在内存的高端,高位字节排放在内存的低端。而LITTLE-ENDIAN正好相反。”

7.几个编程题,不用第三个变量重写strlen,还有判断一个数是否是回数,比如“121”。

这几个题都比较简单,稍微准备的人,应该都没有问题。

8.最后又想起来,还考了内存对齐的问题。

对这个问题还算小有研究,很轻松就解出来了。

这次结果还不知道呢,但是已经逐渐有感觉了,再接再厉吧。

原创粉丝点击