面试总结1

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

1.考优先级的。

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

2.考指针操作

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

3.指针与引用的区别

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

       1.从现象上看:指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变
       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.最后又想起来,还考了内存对齐的问题。

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

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值