今天面试 面试题不会 求各位大侠给看看谢谢啦 一. 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();
这个。。。感觉你是不是中间有段打错字的,但是反向输出并不难,你也不要太懒了吧。。。 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; }
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
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);//交换对应字符
}
}
}