日期:2014-05-20  浏览次数:20714 次

今天面试 面试题不会 求各位大侠给看看谢谢啦
一.
public class Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
o.i++;
}
}
class Other {
public int i;
}
正确吗? 如果不正确 为什么 如果正确 输出结果是多少 这个题目 我看了 网上的解答 有几点疑问:
1. Other o = new Other(); 和
o = new Other();有什么区别?
为什么常量对象还可以++操作啊?
2.static 函数中 不是只能调静态函数吗? 但是public void addOne 不是静态的啊?

二.
给你一个StringBuffer 字符串s 函数名 int StringReverse(); 
要求:
自己实现一个reverse()函数(反向输出)
不能使用库函数直接实现!

finalize final finally 的区别

先发 这三道吧 谢谢啦


------解决方案--------------------
1. Other o = new Other(); 和
o = new Other();有什么区别?
—— 你至少要定义变量吧?或者分成两行也是可以的:
—— Other o;
—— o = new Other();


为什么常量对象还可以++操作啊?
—— 常量对象只是不能动它自身,属性随便动,也就是不允许: o = null; 或者 o = new Object();


2.static 函数中 不是只能调静态函数吗? 但是public void addOne 不是静态的啊?
—— 显然无此说法,你理解错误了。
------解决方案--------------------
二.给你一个StringBuffer 字符串s,函数名 int StringReverse();
要求:自己实现一个reverse()函数(反向输出);不能使用库函数直接实现!


这个。。。感觉你是不是中间有段打错字的,但是反向输出并不难,你也不要太懒了吧。。。
public static StringBuffer reverse(StringBuffer sb) {
StringBuffer ret = new StringBuffer();
for (int i = sb.length()-1; i >=0; i--) ret.append(sb.get(i));
return ret;
}

------解决方案--------------------
探讨

谢谢ldh911大侠 我想第二题是这样的不能使用StringBuffer中的方法 来实现反向输出的功能 否则的话直接调用reverse()方法不就可以了嘛 呵呵 能不能试着写一下啊 小弟想看看。

静态函数中不能调用非静态变量 这句话对不对啊? 那实例化之后就可以调用吗? 那这样的话 这句话是不是有问题啊 !!!!

------解决方案--------------------
探讨

二.给你一个StringBuffer 字符串s,函数名 int StringReverse();
要求:自己实现一个reverse()函数(反向输出);不能使用库函数直接实现!


这个。。。感觉你是不是中间有段打错字的,但是反向输出并不难,你也不要太懒了吧。。。
public static StringBuffer reverse(StringBuffer sb) {
St……

------解决方案--------------------
Java code
/*
给你一个StringBuffer 字符串s 函数名 int StringReverse();  
要求:
自己实现一个reverse()函数(反向输出)
不能使用库函数直接实现!
*/
class StringReverseDemo 
{
    public static StringBuffer s = new StringBuffer(new String("abcdefg"));
    public static void main(String[] args) 
    {
        StringReverseDemo.stringReverse();
        System.out.println(s.toString());
    }
    public static void stringReverse()
    {
        for(int i=0;i<s.length()/2;i++)
        {
            int index = s.length() - i - 1;
            char temp = s.charAt(index);
            s.setCharAt(index,s.charAt(i));
            s.setCharAt(i,temp);//交换对应字符
        }
    }
}