有趣的问题
程序员文章站
2022-04-19 15:37:26
...
1,有趣问题2 :运行一遍下面的代码,打印的是0,为什么,然后再运行一遍注释掉的代码,结果却是60
package othertest;
public class MyTest
{
private int i=getI();
private int j=60;
// private int j=60;
// private int i=getI();
public int getI(){
return j;
}
public static void main(String[] args){
System.out.println(new MyTest().i);
}
}
2,有趣问题1:为什么这个tmp参数在reverseStringx显示是1,在reverseChar显示的却是49?
package thread.teststatic;
public class StaticExample
{
public static void test()
{
String s = "123123";
// reverseString(s);
// System.out.println(s);
s = reverseString(s);
System.out.println(s);
}
// 转换String对象
public static String reverseString(String s)
{
for (int i = 0; i < s.length(); i++)
{
char tmp=s.charAt(i);
System.out.println("reverseString : "+tmp);
s.replace(tmp, reverseChar(tmp));
}
return s;
}
// 转换char对象
public static char reverseChar(char a)
{
// 把char强制转换为int型
int tmp = (int)a;
// 如果tmp<10意味着a 本身就是数字,转换为字母
System.out.println("reverseChar : "+tmp);
if (tmp < 10)
{
tmp = tmp + 97;
}
// 继续强转成char类型
System.out.println((char)tmp);
return (char)tmp;
}
}
3:运行一遍,看test1,test2有什么不同,为什么?
public class Test1 {
public static void main(String[] args) {
System.out.println(test1(1));
System.out.println(test2(1));
}
public static int test1(int i) {
try {
return i;
} finally {
i++;
}
}
@SuppressWarnings("finally")
public static int test2(int i) {
try {
return i;
} catch (Exception e) {
} finally {
i++;
return i;
}
}
}
上一篇: 与作用域相关的闭包、内存泄漏、this
下一篇: Vue里调用百度地图步骤详解