通过java程序模拟实现地铁票价2+2=12

发布时间:2024-11-25 14:29

《地铁模拟器》模拟真实地铁运营,挑战与满足并存。 #生活乐趣# #游戏乐趣# #模拟经营#

地铁票价在这周六开始就要上涨了,这几天做地铁明显感觉人比平常多了很多。大家也都在默默的等待这一刻的到来,尽管很不情愿,但是终究会来。
到时候肯定吐槽的人一抓一大把,毕竟一天上班4块的时代就要终结,一下子变成十几块,票价涨了,生活成本都在上涨,其它都没有变化,生活着实不容易啊。
我每天从二号线转到四号线,一天下来成本是6+6=12块。如果还是4块钱的成本就好了。最后通过程序来模拟了实现了2+2=12.

我们先来看一个简单的例子。
import java.lang.reflect.Field;

public class TestPlus {
 public static void main(String args[]) {
  Integer ticket_fee1=new Integer(2);
  Integer ticket_fee2=new Integer(2);
  System.out.println(ticket_fee1==ticket_fee2);

     ticket_fee1=2;
  ticket_fee2=2;
  System.out.println(ticket_fee1==ticket_fee2);
  System.out.println(ticket_fee1+ticket_fee2);
   }

}

程序的输出是:
false
true
4
这个程序是用java实现,巧妙地运用了对象缓存。对象申请的原则来说,每次new出来的对象地址是不一样的。但是标黄的部分使用到了缓存,所以这个时候得到的地址是相同的。这个是在JVM中,默认生成了一些对象的实例,如果需要实例在池中已经存在的时候,直接返回已经生成对象的引用。这样可以减少实例的数目和改善程序性能。
补充一下,如果上面的Integer换成int,结果又会不一样。

明白了这些之后我们来实现2+2=12,毕竟我们想要的是这个结果。

import java.lang.reflect.Field;
public class TestPlus {
 public static void main(String args[]) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException{
  Integer ticket_fee1=new Integer(2);
  Integer ticket_fee2=new Integer(2);

  Class ticket_fee=Integer.class.getDeclaredClasses()[0];
  Field c =ticket_fee.getDeclaredField("cache");
  c.setAccessible(true);
  Integer[] array=(Integer[]) c.get(ticket_fee);
  array[132]=array[140];

     System.out.printf("票价实付金额为:%d元",ticket_fee1+ticket_fee1);

 }
 

}

程序的输出就是:
票价实付金额为:12元
基本原理就是利用缓存的读写接口,把4这个缓存对象的指针改为指向12的实例对象了。这样程序取出4的时候,实际上返回的是12的引用
如果能够妥善使用这个程序,对于大家的生活现实意义是巨大的:)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23718752/viewspace-1379169/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23718752/viewspace-1379169/

网址:通过java程序模拟实现地铁票价2+2=12 https://www.yuejiaxmz.com/news/view/263313

相关内容

10年Java面试总结:Java程序员面试必备的面试技巧
重学 Java 设计模式:实战策略模式「模拟多种营销类型优惠券,折扣金额计算策略场景」
java+vue计算机毕设大学校园旧物捐赠网站设计与实现【开题+程序+论文+源码】
基于微信小程序旧物共享平台设计和实现java+springboot的项目
Java程序员必备:高效应对压力面试的技巧与策略
北京过年买票=博票?
java计算机毕业设计东大日程app(开题+程序+论文)
java计算机毕业设计基于springboot的小区旧物交易系统的设计与实现(开题+程序+论文)
java计算机毕业设计宠物喂养资讯分享平台的设计与实现(开题+程序+论文)
java计算机毕业设计宠物管理系统(开题+程序+论文)

随便看看