社区
Java SE
帖子详情
IBM java 面试题目
soseasky
2010-09-13 05:02:44
如何知道类 com.ibm.ClassA 正在运行?
...全文
463
38
打赏
收藏
IBM java 面试题目
如何知道类 com.ibm.ClassA 正在运行?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
38 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
coooliang
2010-09-14
打赏
举报
回复
我只知道这题
和IBM一点关系都没有
zhenge1020
2010-09-14
打赏
举报
回复
28楼的有道理
kokobox
2010-09-14
打赏
举报
回复
你怎么知道什么时候拿到cpu的时间片?
kokobox
2010-09-14
打赏
举报
回复
正在运行? 怎么知道? 是否被加载可以知道,但是不代表正在运行。
harveywoo
2010-09-14
打赏
举报
回复
学习下,谢谢
soseasky
2010-09-14
打赏
举报
回复
看来这个问题不是只难倒了我一个 额~~~~~~~~~~~~~~~~
bekeer
2010-09-14
打赏
举报
回复
给那个类里面加一个静态块 然后再静态块里面加一个死循环
static{
while(true){
int i = 0;
System.out.println(i);
i++;
}
}
如果一直输入 就证明在运行
哈哈 ibm肯定得毙了我
魔芋红茶
2010-09-14
打赏
举报
回复
25楼说的有道理,应该从两个方面来看,1 类是否还未被加载过 2 类加载过的所有实例是否都已经被回收。
这个题。。。我发现比较像软件测试的题。。。
魔芋红茶
2010-09-14
打赏
举报
回复
查看文档后发现classLoad类下的findClass和findLoadedClass更适合解决楼主问题。两者均返回一个class列表
具体用哪个我也很疑惑。
从文档来看,
findClass会按双亲加载的方式来查找加载器中有无二进制名对应class?!其中有提到双亲加载模型中loadClass会调用findClass,我猜测是为了检测当前有无加载该实例,如果没,就开始加载,如果这样的话,findClass应该是返回已加载的类吧。
findLoadedClass会以有无指定启动加载器的标准来衡量一个实例是否被加载并返回,我不清楚这样是不是存在漏洞,比如指定启动加载器,但并未加载。我不知道指定加载器是不是等同于已经被加载。
最后要说的是看过英文文档后仍有疑惑,不知道两者真正要表达的意思,等高手或测试帝吧。
bayougeng
2010-09-14
打赏
举报
回复
25楼说的有理,加载并不代表运行。
魔芋红茶
2010-09-14
打赏
举报
回复
[Quote=引用 10 楼 salever 的回复:]
引用 6 楼 zhuzeitou 的回复:
Java code
public static boolean isClassRunning(String className) {
try {
Class cls = Class.forName(className);
ClassLoader classLoader = ClassLoader.getSystemClassLoader(……
[/Quote]
getSystemClassLoader
public static ClassLoader getSystemClassLoader()
返回委托的系统类加载器。该加载器是新的 ClassLoader 实例的默认委托父类加载器,通常是用来启动应用程序的类加载器。
在运行时启动序列的早期首先调用此方法,这时会创建系统类加载器并将其设置为调用 Thread 的上下文类加载器。
默认的系统类加载器是此类的一个与实现有关的实例。
第三句看不懂,从第一第二句来看,的确有可能是其他加载器加载目标类。
谈祥庆
2010-09-14
打赏
举报
回复
[Quote=引用 6 楼 zhuzeitou 的回复:]
Java code
public static boolean isClassRunning(String className) {
try {
Class cls = Class.forName(className);
ClassLoader classLoader = ClassLoader.getSystemClassLoader();
……
[/Quote]
这只能知道这个类是否被JVM的系统类加载器加载了,并无法知道该类的实例化对象是否存在,所以这个问题本身是有问题,问这个问题的人本身对JVM的类加载机制不是很理解。
类是无法运行的,只有类的实例化对象才能在JVM中存活。所以所谓这个类是否存在运行,正确的说法是这个类的实例化对象是否GC回收掉,如果回收掉那就不算在运行,如果没有被回收掉,那就证明在运行中。
但是GC对我们CODER来说是透明的,也就无法知道一个类的对象是否正在运行,除非使用jprofile之类的JVM监控工具。
shehun
2010-09-14
打赏
举报
回复
关注一下
bigpretty
2010-09-14
打赏
举报
回复
从虚拟机里面查询啊.应该可以的,
kaysondong
2010-09-14
打赏
举报
回复
六楼的,有道理奥
魔芋红茶
2010-09-14
打赏
举报
回复
[Quote=引用 30 楼 bekeer 的回复:]
给那个类里面加一个静态块 然后再静态块里面加一个死循环
static{
while(true){
int i = 0;
System.out.println(i);
i++;
}
}
如果一直输入 就证明在运行
哈哈 ibm肯定得毙了我
[/Quote]
你这个。。。如果让你测车速你是不是要把车拆了装个计速器?
凉岑玉
2010-09-13
打赏
举报
回复
[Quote=引用 6 楼 zhuzeitou 的回复:]
Java code
public static boolean isClassRunning(String className) {
try {
Class cls = Class.forName(className);
ClassLoader classLoader = ClassLoader.getSystemClassLoader();
……
[/Quote]
对!!!学习了!!!
xinmutou
2010-09-13
打赏
举报
回复
看不懂,呵呵等高手
sdxazly
2010-09-13
打赏
举报
回复
问题问的也太纠结了
hbin_apple
2010-09-13
打赏
举报
回复
真不会
加载更多回复(15)
java
面试
题集,微软
面试
题集,
IBM
面试
题集,MBA
面试
题集
java
面试
题集 微软
面试
题集
IBM
面试
题集 MBA
面试
题集 无偿下载,衷心希望能对大家的那么点点帮助就行,无聊人别GGYY,觉得还好的话,请评下分,真诚感谢.
java
面试
题目
汇总
java
面试
题目
微软
java
IBM
java
面试
java
面试
题目
微软
java
IBM
java
面试
IBM
java
英文
面试
题目
NULL 博文链接:https://jinchun1223.iteye.com/blog/466291
IBM
、SUN等公司的
Java
面试
题集
IBM
、SUN等公司的
Java
面试
题集
IBM
、SUN等公司的
Java
面试
题集
java
知识
java
面试
知识
java
面试
题集
大公司的
Java
面试
题集 找工作要
面试
,有
面试
就有对付
面试
的办法。以下一些
题目
来自我和我朋友痛苦的
面试
经历,提这些问题的公司包括
IBM
, E*Trade, Siebel, Motorola, SUN, 以及其它大小公司。
面试
是没什么...
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章