小编Bhu*_*han的帖子

-Xmn jvm选项代表什么

我尝试在互联网上搜索-Xmn选项,但没有成功.

有人可以解释这代表什么,我如何使用它来调整JVM?

java jvm-arguments

53
推荐指数
3
解决办法
12万
查看次数

并发标记和扫描算法详细信息

我正在努力理解并获得有关CMS终身收集周期所涉及的步骤的更多细节.

  1. 初始标记
  2. 并行标记
  3. 同时预清洁
  4. 备注
  5. 并发扫描
  6. 并发重置

这些步骤在很多地方都很简短.但是,如果我必须在一个带有图表和伪示例的类中描述它们,我可以从哪里获取信息?

PS - 我在谷歌上进行了广泛的搜索,它引发了许多文字的东西和我理解的行话.但我正在寻找一个更动画的解释,以便我可以教我的观众.

这些是一些流行的链接,第三个很有前途,但它没有特别解释CMS

  1. http://www.infoq.com/articles/Java_Garbage_Collection_Distilled
  2. http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html
  3. http://www.cubrid.org/blog/dev-platform/understanding-java-garbage-collection/

亲爱的,感谢评论并指出了一些资源.我试图创建CMS步骤的直观表示,如果符合您的理解,请告诉我?

此外,我似乎错过了压缩步骤,它属于哪一步?

:好的,所以压缩不是由CMS处理的,而是委托给完整的GC.

CMS GC的阶段

java garbage-collection

16
推荐指数
1
解决办法
4007
查看次数

如何检查__str__是否由对象实现

我想__str__在对象尚未实现的情况下动态实现对象的方法.

我尝试使用hasattr(obj, '__str__')它总是返回我的真实,因为它从对象类中提取它.

有没有办法确定对象是否实际实现__str__

我知道我可以使用,inspect.getmembers(obj)但我正在寻找一种更加pythonic的方式

编辑

class Employee(object):
def __init__(self, name, age, emp_code):
    self.name = name
    self.age  = age
    self.emp_code = emp_code
Run Code Online (Sandbox Code Playgroud)

测试

e = Employee("A", 23, "E1")
print hasattr(e, '__str__')
>> True
Run Code Online (Sandbox Code Playgroud)

我希望hasattr返回False,因为Employee类没有实现str

解决方案(感谢所有贡献者,总结如下)

  1. 检查是否False在对象上实现使用object
  2. 要动态添加__str__方法使用hasattr(obj, '__str__')

python

10
推荐指数
1
解决办法
1451
查看次数

Jython远程调试Intellij Idea,使用Pycharm插件

在将此标记为重复之前,请阅读完整的主题

OS                 - Windows XP
Primary Language   - Java
Scripting Language - Jython
IDE                - Intellij Idea
Python Plugin      - Pycharm
Run Code Online (Sandbox Code Playgroud)

我正在尝试远程调试我在Java中运行的应用程序并使用Jython作为脚本语言.我按照以下链接中提到的步骤
http://www.jetbrains.com/pycharm/webhelp/run-debug-configuration-python-remote-debug.html#commentsSection

  • 我可以启动调试器
  • 当我的应用程序启动时,它能够连接到调试器

然而,我正在低于严重警告 -


pydev调试器:严重警告:这个版本的python似乎被错误编译(内部生成的文件名不是绝对的)
pydev调试器:调试器可能仍然可以运行,但它会工作
得更慢并且可能会错过断点pydev调试器:相关错误:http:/ /bugs.python.org/issue1666807


问题

调试器不会在断点处停止.

我搜索了许多论坛以寻找可能的解决方案 -

  • 删除所有*.pyc文件
  • 重新安装python版本
  • 将python lib文件夹解压缩到本地文件并添加到sys.path

这些都不适合我.

debugging jython intellij-idea pycharm jython-2.5

5
推荐指数
0
解决办法
1707
查看次数

Intellij 13.0.2 始终处于领先地位

我最近在 Windows XP PC 上从 Intellij 12 升级到 13.0.2。除了缺少工具栏等次要设置外,其余部分看起来不错。

然而,最烦人的问题是 Intellij 不允许任何其他窗口位于它之上。如果我打开浏览器,它会自动进入 Intellij 窗口。

我已经尝试将“始终在最前面”设置为 false。

我知道这听起来很琐碎和愚蠢,但是我需要更改某些设置吗?

intellij-idea

5
推荐指数
1
解决办法
1865
查看次数

参数验证,Python中的最佳实践

让我们举一个API的例子

def get_abs_directory(self, path):
    if os.path.isdir(path):
       return path
    else:
       return os.path.split(os.path.abspath(path))[0]
Run Code Online (Sandbox Code Playgroud)

我的问题是验证参数的pythonic方法是什么,我应该忽略任何类型的验证(我观察到所有的python代码都没有验证)

  1. 我应该检查"路径"是否为空而不是空
  2. 我应该始终检查路径的"类型"
  3. 一般来说,我应该检查参数的类型?(我猜不是动态类型的python)

此问题并非特定于文件IO,而是仅将FileIO用作示例

python

4
推荐指数
2
解决办法
6705
查看次数