在class A中定义一个 static 变量 a,在class B中对 Class A中的 a赋值为123,在class C和 class D中调用Class A中的 a得到值为123。求方法!
解决方案 »
- 搞jsp开发,如果项目中需要.xml文件,那么应该把它放在哪个目录下?
- java连接MYSQL求解
- Lucene 过滤器 如何过滤得分较低的文档。
- 图片转换问题
- 100分 通过ssh远程执行命令与本地执行命令之间的区别是什么?为什么会造成输出阻塞?
- javax.servlet.ServletException: java.lang.NullPointerException,这个是什么错误??
- html框架
- windows中socket 连结绑定数过多问题
- 如何用JSP从DOMINO 的VIEW里抓出来的资料,如何对其分页
- 在JB自己生成的EJB客户端的测试代码中都会自动生成,象String url = "t3://localhost:7001";这样的,请问:
- interceptor怎么向action传递参数
- java Zip解析问题
public class A{
public static int a = 0;
}public class B{
static{
A.a = 123;
}
}public class C{
public static void main(String args[]){
B b=new B();
System.out.println(A.a);
}
}
public static int a;
}你这个静态变量到哪都可以访问,直接:
A.a = 123;
System.out.println(A.a);只不过是存在并发隐患。
-----------------------
我再说下我要解决的问题:
我在前台有一个JSP页面,里面有个定时方法,会每10秒从一个非关系数据库里取数据,如果说打开一百个页面的话那每一秒就会查询10次数据库,所以现在想改方法,页面的定时方法从后台的一个静态变量里取数据,而这个静态变量里的数据是由另一个方法定时推送进去的(就像我上面提出的功能一样)。求思路,能给方法最好,有思路就给分。拜谢各位大神。
public class A{
public static int a = 0;
public static B b = new B();
}public class B{
static{
A.a = 123;
}
}public class C{
public static void main(String args[]){
System.out.println(A.a);
}
}
其实我这里写的new B()是为了在C要访问A的时候将类B加载进jvm,因为如果不new B()的话jvm是不会加载类B的,所以类B里对A.a的修改就没有效果。如果怕C的访问过多,每次都new B(),那么就将new B()放在A里即可。而按你的设计来说,类B实际上是启动一个定时器取查询数据库然后修改A.a的,所以当你启动定时器的时候B就加载进了jvm,而B对A.a的修改也就有效了,所以在C里也不用new B()。
客户端--》消费者-------->消费该数据