有没有办法获取正在运行的JVM的参数?是否有像jstat这样的命令行工具,它将JVM的pid作为输入并返回其起始参数?我对启动JVM时给出的-Xmx和-Xms值特别感兴趣.谢谢.
编辑:澄清我的约束.我们要检查的JVM正在生产服务器上运行.这就是为什么,我们更喜欢最小的破坏.我们可以使用jstat监视JVM,因此我们希望有一个类似的简单解决方案来访问参数.
编辑:我们还尝试使用jvisualvm获取参数.但为了连接到远程的JVM,我们需要运行jstatd和修改JVM,我们发现是非常具有破坏性和危险的生产服务器上的安全设置.
在这篇文章中,我问了一个小问题,作为更大问题的一部分.由于我还没有得到答复,我在这里提出我的问题:
假设JUnit按顺序执行测试用例是否合理:测试用例在下一个测试用例开始之前结束.它是否在JUnit版本之间有所不同(我的优先级是在JUnit4上)?如果没有,是否有一种简单的方法可以强制JUnit按顺序执行测试?
谢谢
我知道Flex非常好,但也开始使用Java FX.我有点困惑.Java FX似乎更关注低级绘图操作和动画.减少创建像Flex这样的标准UI.
那么JavaFX更像Flash而不是Flex吗?
另一方面,JavaFX还支持Swing组件以及数据绑定,这使它看起来更像Flex.
这是我的代码:
void display(void);
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGBA);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable( GL_BLEND );
glutInitWindowSize(600,600);
glutInitWindowPosition(200,50);
glutCreateWindow("glut test");
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glPointSize(8);
glBegin(GL_POINTS);
glColor4f(.23,.78,.32,1.0);
glVertex2f(0,0);
glColor4f(.23,.78,.32,0.1);
glVertex2f(0.1,0);
glEnd();
glFlush();
}
Run Code Online (Sandbox Code Playgroud)
问题是这两个点看起来是相同的(即使我将alpha设置为0).有没有我错过了启用alpha透明度?
我正在为PostgreSQL 9寻找一个示例数据库(模式+数据).是否有一个存储库用于样本数据库?
我在很多线程中都读过,不可能在Sun的JVM上关闭垃圾回收.但是,出于我们研究项目的目的,我们需要这个功能.任何人都可以推荐一个没有垃圾收集或允许关闭它的JVM实现吗?谢谢.
我正在尝试学习java字节码,我偶然发现:我使用-g选项编译了这个非常简单的代码:
public class Test
{
public static void main(String args[])
{
double a = 1.0;
int b = (int)a;
}
}
Run Code Online (Sandbox Code Playgroud)
主要代码原来是:
0 dconst_1
1 dstore_1
2 dload_1
3 d2i
4 istore_3
5 return
Run Code Online (Sandbox Code Playgroud)
此外,main的最大局部变量为4,LocalVariableTable只有3个条目(args,a,b).我很想知道为什么编译器保留4个局部变量,而显然只有3个,并且localvariable[2]没有使用.有什么我想念的吗?谢谢
我已经在(Java)字节码上工作了一段时间,然而,我从未想过要问为什么会输入一些指令?我知道在ADD操作中,我们需要区分整数加法和FP加法(这就是为什么我们有IADD和FADD).但是,为什么我们需要区分ISTORE和FSTORE?它们都涉及完全相同的操作,即从堆栈移动32位到局部变量位置?
我能想到的唯一答案是类型安全,以防止这种情况:( ILOAD,ILOAD,FADD).但是,我认为类型安全性已经在Java语言级别实施.好的,Class文件格式没有直接与Java结合,所以这是一种为不支持它的语言强制执行类型安全的方法吗?任何想法?谢谢.
编辑:跟进Reedy的回答.我写了这个最小的程序:
public static void main(String args[])
{
int x = 1;
}
Run Code Online (Sandbox Code Playgroud)
编译为:
iconst_1
istore_1
return
Run Code Online (Sandbox Code Playgroud)
使用字节码编辑器,我改变了第二条指令:
iconst_1
fstore_1
return
Run Code Online (Sandbox Code Playgroud)
它返回了一个java.lang.VerifyError:期望在堆栈上找到float.
我想知道,如果在堆栈上没有类型的信息,只有位,FSTORE指令是如何知道它处理的是int而不是浮点数?
注意:我找不到这个问题的更好的标题.随意改进它.
在Eclipse调试视图中:

是什么意思localhost:51883?它是远程调试的连接端口吗?还是别的什么?
我正在为一个简单的用例进行面向对象设计的基本练习:一本书可以标记许多标签.
我有很多解决方案,我希望你的投入在OOD原则和可维护性方面更好.
选项1
public class Book {
private String title;
//... other attributes
private List<Tag> tags;
}
Run Code Online (Sandbox Code Playgroud)
困扰我的是我们将书籍的核心属性与其他分类或搜索数据混合在一起.我将来可能会要求某些图书无法被标记.将来,当我添加更多的责任时,Book类会变得臃肿:类别,读取它的用户列表,评级......
选项2
public class TaggedBook extends Book {
private Book book;
private List<Tag> tags;
}
Run Code Online (Sandbox Code Playgroud)
我认为这与Decorator模式类似,但我认为它不适合这里,因为我没有扩展行为.
选项3
彻底解耦书籍和标签,并使用服务从书籍中检索标签(鉴于每本书都有唯一的标识符)
List<Tag> TagService.getTags(Book book)
Run Code Online (Sandbox Code Playgroud)
但是,我没有发现这个解决方案非常优雅(是吗?),我可能需要发送两个查询:一个用于检索书籍,另一个用于标记.
我打算将最佳选项应用于其他要求:A Book有评级,Book可以分类......
我还计划使用DMS来存储Books和Tags对象.由于它不是关系数据库,因此其架构可能与类设计相对应.
谢谢
java ×6
bytecode ×2
jvm ×2
alpha ×1
apache-flex ×1
c++ ×1
database ×1
debugging ×1
eclipse ×1
flash ×1
javafx ×1
junit ×1
oop ×1
opengl ×1
postgresql ×1
sample-data ×1
testing ×1
transparency ×1
verification ×1