今天笔试了一家公司,感觉总体做的还不错。但是细节上还是有不少缺陷。特记录总结下,以免下次再犯。
1.考优先级的。
这个比较有难度,我想了N久都想不起来。回来查了,也发现这根本背不下来,所以这题是做错了。
2.考指针操作
这个是考基础知识的,问题不大,只要认真分析,肯定是能做对的。
3.指针与引用的区别
这个区别点我只写了一个。网上有三点。
2.从内存分配上看:程序为指针变量分配内存区域,而引用不分配内存区域
3.从编译上看:程序在编译时分别将指针和引用添加到符号表上,符号表上记录的是变量名及变量所对应地址。指针变量在符号表上对应的地址值为指针变量的地址值,而引用在符号表上对应的地址值为引用对象的地址值。符号表生成后就不会再改,因此指针可以改变指向的对象(指针变量中的值可以改),而引用对象不能改。
4.java执行的顺序。
public class TSS {
private static int count1;//line1
private static int count2;//line2
public TSS(){//line3
count1++;
count2++;
}
private static TSS ts = new TSS(); //line4
public static TSS get(){//line5
return ts;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
TSS.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.最后又想起来,还考了内存对齐的问题。
对这个问题还算小有研究,很轻松就解出来了。
这次结果还不知道呢,但是已经逐渐有感觉了,再接再厉吧。