【讨论】c++ c#都能实现,java要怎么实现呢

坠落糖梨 2016-07-18 02:52:09

这是我们群里有个网友面试遇到的题目
下面是其他语言的解决方案,大java要怎么做呢

...全文
160 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
网易云捕 2016-07-19
  • 打赏
  • 举报
回复
这个问题啊,需要了解java IntegerCache...无码无真像!(运行环境jdk > 1.6)
import java.lang.reflect.Field;

public class Main {
	
	public static void method(int a, int b) throws Exception
	{
		Class cache = Integer.class.getDeclaredClasses()[0];
                Field c = cache.getDeclaredField("cache");
                c.setAccessible(true);
                Integer[] array = (Integer[]) c.get(cache);
		array[138] = 100;
                array[148] = 200;
	}
	
    public static void main(String[] args) throws Exception {        
        int a = 10; int b = 20;
        method(a, b);   
       System.out.printf("a=%d  b=%d",a, b);
    }
}
Integer在内部维持了一个IntegerCache, 用于缓存 -128 到127的数。 http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/Integer.java#Integer.IntegerCache
private static class IntegerCache {
         private IntegerCache(){} 
         static final Integer cache[] = new Integer[-(-128) + 127 + 1]; 
         static {
             for(int i = 0; i < cache.length; i++)
                 cache[i] = new Integer(i - 128);
         }
     }
上面的代码变是把这个cache数组给改了!当然,实际代码中这么写,那是肯定不行的!!! ///
tudouzi007 2016-07-19
  • 打赏
  • 举报
回复
int a=0,b=0; public void method1(int a,int b){ a = a*10; b = b*10; System.out.println("a=" + a); System.out.println("b=" + b); } 这种方法可以啊 可以显示100,100啊 还有第二种方法(字符串拼接) 把a和b强转成String型的字符串,然后在后面加个“0”的字符串,在输出出来
网易云捕 2016-07-18
  • 打赏
  • 举报
回复
应该牵扯到java中的经典问题:java传递值和传递引用 首先,基本类型作为参数传递时,是传递值的拷贝,无论你怎么改变这个拷贝,原值是不会改变的。 如果参数是引用类型,传递的是该参量所引用的对象在堆中地址值的拷贝。 意思是说如果你直接 public void method1(int a,int b){ a = a*10; b = b*10; } 是不会成功显示100,100的。 其次是,单纯考虑这道题的话,取巧可以这样,反正短时间内我想到的是这个方法: public static void method1(int a, int b) { a = 100; b = 200; System.out.println("a=" + a); System.out.println("b=" + b); System.exit(0); }

80,362

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧