小编pos*_*def的帖子

计算Java中Object的大小

我想记录一个对象占用多少内存(以字节为单位)(我正在比较数据结构的大小),似乎没有方法可以在Java中执行此操作.据说,C/C++有sizeOf()方法,但这在Java中是不存在的.我尝试Runtime.getRuntime().freeMemory()在创建对象之前和之后记录JVM中的空闲内存,然后记录差异,但它只会给出0或131304,而不管结构中的元素数量是什么.请帮忙!

java memory memory-management data-structures

149
推荐指数
3
解决办法
29万
查看次数

在json中发送NaN

我正在尝试编码一个包含浮点数的数组,并NaN使用Python 编译成JSON字符串json.dumps().

但编码的JSON字符串未在PHP中成功解码.是NaN造成这个问题?我该如何解决这种情况?

python json

51
推荐指数
3
解决办法
2万
查看次数

理解Java中的正则表达式:split("\ t")vs split("\\ t") - 它们何时都可以工作,何时应该使用它们

我最近发现我在代码中没有正确使用正则表达式.给出了制表符分隔字符串的示例str,我一直在使用str.split("\t").现在我意识到这是错误的,并且正确匹配标签我应该使用str.split("\\t").

然而,我碰巧偶然发现了这个事实,因为我正在为其他东西寻找正则表达式.你看,错误的代码split("\t")在我的情况下工作得很好,现在我很困惑,为什么它可以工作,如果它是一个错误的方式来声明一个正则表达式匹配制表符.因此,问题是,为了实际理解如何在Java中处理正则表达式,而不是仅仅将代码复制到Eclipse中而不是真正关心其工作原理......

以类似的方式,我发现了一段不仅以制表符分隔而且以逗号分隔的文本.更清楚地说,我正在解析的制表符分隔列表有时包括"复合"项,它们看起来像:item1,item2,item3为了简单起见,我想将它们解析为单独的元素.在这种情况下,适当的正则表达式应该是:line.split("[\\t,]"),或者我也错在这里?

提前致谢,

java regex split

31
推荐指数
1
解决办法
4万
查看次数

Gson自定义deseralizer,用于对象中的一个变量

我的例子:

我们有一个Apple的对象类型.Apple有一些成员变量:

String appleName; // The apples name
String appleBrand; // The apples brand
List<Seed> seeds; // A list of seeds the apple has
Run Code Online (Sandbox Code Playgroud)

种子对象如下所示.

String seedName; // The seeds name
long seedSize; // The size of the seed
Run Code Online (Sandbox Code Playgroud)

现在,当我得到一个苹果对象时,一个苹果可能有一个以上的种子,或者它可能有一颗种子,或者可能没有种子!

带有一个种子的示例JSON apple:

{
"apple" : {
   "apple_name" : "Jimmy", 
   "apple_brand" : "Awesome Brand" , 
   "seeds" : {"seed_name":"Loopy" , "seed_size":"14" }
  }
}
Run Code Online (Sandbox Code Playgroud)

示例JSON apple有两个种子:

{
"apple" : {
   "apple_name" : "Jimmy" , 
   "apple_brand" : "Awesome Brand" , 
   "seeds" : [ …
Run Code Online (Sandbox Code Playgroud)

java json gson

29
推荐指数
1
解决办法
2万
查看次数

递归集合联合:它是如何工作的?

我目前正在下班后的空闲时间参加Coursera的Scala课程,试图最终尝试函数式编程.我目前正在进行一项任务,我们应该"计算"包含一些对象的两个集合的并集.我故意省略细节,因为这对我在这里要问的内容并不重要.然而,相关的是集合被定义为二叉树,每个节点包含一个元素和两个子树.

既然如此; union讲座中的例子如下:

def union(other:BTSet) :BTSet = ((left union right) union other) incl element
Run Code Online (Sandbox Code Playgroud)

问题1:坦率地说,即使在阅读了相关的FAQ和其他论坛帖子之后,我仍然不明白这个功能的工作原理和原因.除了incl在头节点添加(调用)元素之外,在union实现中绝对没有完成"动作" ,它只是一遍又一遍地调用自身.我会非常感谢一些解释......

问题2:课程论坛包含许多帖子,说明这个解决方案根本没有效率,而且还不够好.看到我不明白它是如何工作的我开始并不真正理解为什么它不够好.

请注意,我不以任何方式要求为分配解决方案提供扰流板.我更愿意"为年级做好工作",但我根本不明白我应该在这里做些什么.我不相信课程中提供的说明和指导足以让您了解函数式编程的怪癖,因此我欢迎任何有关如何正确思考而不是如何正确编码的评论/答案.

theory recursion functional-programming scala

26
推荐指数
2
解决办法
4627
查看次数

在Mac上正确运行基于SWT的跨平台jar

我一直致力于基于SWT的项目,该项目旨在部署为Java Web Start,因此可以在多个平台上使用.

到目前为止,我已设法解决由于SWT所依赖的系统特定库所引起的导出问题(参见相关主题).生成的jar似乎可以在32/64位linux和64位窗口上正常工作,但是在具有以下输出的Mac上执行失败:

$ java -jar dist/test.jar 
Adding { file:/Volumes/LaCie/ChiBE_Local/swt/swt-cocoa-macosx-x86_64-3.6.1.jar } to the classpath
***WARNING: Display must be created on main thread due to Cocoa restrictions.
Exception in thread "main" java.lang.reflect.InvocationTargetException
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.ExceptionInInitializerError
   at org.eclipse.gef.tools.MarqueeSelectionTool.<init>(MarqueeSelectionTool.java:99)
   at org.gvt.MarqueeZoomTool.<init>(MarqueeZoomTool.java:16)
   at org.gvt.action.MarqueeZoomToolAction$1.<init>(MarqueeZoomToolAction.java:28)
   at org.gvt.action.MarqueeZoomToolAction.createTool(MarqueeZoomToolAction.java:28)
   at org.gvt.action.AbstractGEFToolAction.<init>(AbstractGEFToolAction.java:24)
   at org.gvt.action.MarqueeZoomToolAction.<init>(MarqueeZoomToolAction.java:20)
   at org.gvt.TopMenuBar.createBarMenu(TopMenuBar.java:113)
   at org.gvt.ChisioMain.createMenuManager(ChisioMain.java:617)
   at org.eclipse.jface.window.ApplicationWindow.addMenuBar(ApplicationWindow.java:235)
   at org.gvt.ChisioMain.main(ChisioMain.java:149)
   at org.gvt.RuntimeMain.main(RuntimeMain.java:14)
   ... 5 more
Caused by: org.eclipse.swt.SWTException: Invalid thread access
   at …
Run Code Online (Sandbox Code Playgroud)

java macos swt cross-platform

23
推荐指数
1
解决办法
2万
查看次数

何时在Java中使用哪个Writer子类; 常见做法

我一直对Java中不同IO实现的数量略有混淆,现在我完全陷入了项目开发阶段,我花时间阅读有用的东西.

我已经意识到在的不同子之间没有新手友好的比较(除了API for Writer类的简短解释)Writer.所以我想我会解决这个问题,这些不同的子类有什么用呢?

例如,我通常使用一个FileWriter包裹着BufferedWriter我的输出到文件,但我总是被这样的事实所激怒,即没有println()类似的方法,并且必须使用newLine()每一行(使输出人类可读).PrintWriterprintln()方法,但没有支持追加的构造函数...

如果你能从你的经验中给我两分钱,或者你可能偶然发现一个好的指南/方法,我真的很感激.

编辑:感谢大家的回复,我非常感谢这里传递的信息.有点不幸的是,整个append()事情最终成为焦点,它仅仅意味着它作为一个例子.我的问题主要是指所有不同实现的需要和使用,我想在一些答案中有所提及.

选择一个答案很难被接受,因为有三个非常可靠的答案,每个答案都有助于我对问题的理解.我将不得不和Anon一起去,因为他的代表人数最少.积分(我认为他是SO的新手).他有15个答案,其中一些答案非常合理,并提出了0个问题.我会说,这是值得推广的好贡献.

话虽如此,ColinD和Jay也提供了非常好的答案,并指出了有趣的想法.特别是Jay关于Java自动包装的评论BufferedWriter值得注意.再次感谢你们,真的很感激!

java io subclass writer

20
推荐指数
2
解决办法
6363
查看次数

将集合层次结构可视化为颜色编码图形

我最近一直在阅读关于Java和Javascript图形库的相关内容,但我还没有找到一个很好的方法来做我想做的事情.

基本上我有一组关于一堆元素的集合(最多几千).这些组可以完全或部分重叠,完全覆盖或完全彼此不相交.我想要做的是显示以下信息:

  • 集合的大小(与其他集合相关)
  • 根据其涵盖的元素计算的集合的"热量"值(颜色代码)
  • 单个图形中集合的完整拓扑(以便向用户显示重叠,交叉点等)

编辑:也许我应该举例说明我的意思是集合和元素以及部分重叠的层次结构.以下是我处理的那种集合的过度简化版本(请注意数字1- 10和字母a- hX表示彼此相当的元素):

Set1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
Set2 = {1, 2, 3, 4, 5, 6}
Set3 = {1, 2, 3}
Set4 = {1, 4, 5, 6, 7}
Set5 = {a, b, c, d, e, f, g, h}
Set6 = {a, b, c, d, e}
Set7 = {a, b, c, 7}
Set8 = {2, 4, 7, 8, c, …
Run Code Online (Sandbox Code Playgroud)

javascript java data-visualization graph-algorithm

20
推荐指数
3
解决办法
2229
查看次数

java.io.IOException:服务器返回HTTP响应代码505

我在我的代码中有基于HTML的查询,并且一个特定类型似乎IOExceptions在收到来自服务器的505响应时产生.我和其他似乎有类似问题的人一起查看了505的回复.显然505表示HTTP版本不匹配,但是当我将相同的查询URL复制到任何浏览器(尝试过firefox,seamonkey和Opera)时,似乎没有问题.我读过的其中一篇帖子表明浏览器可能会自动处理版本不匹配问题.

我试图通过使用Opera附带的漂亮的开发人员工具深入挖掘,看起来版本中没有不匹配(我相信Java使用HTTP 1.1)并且200 OK收到了很好的响应.当同一查询通过我的Java代码时,为什么会遇到问题?

     private InputStream openURL(String urlName) throws IOException{    
    URL url = new URL(urlName);
    URLConnection urlConnection = url.openConnection();
    return urlConnection.getInputStream();
 }
Run Code Online (Sandbox Code Playgroud)

示例链接: http://www.uniprot.org/uniprot/?query=mnemonic%3aNUGM_HUMAN&format=tab&columns=id,entry%20name,reviewed,organism,length

java http version ioexception http-status-code-505

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

致命错误:1:1:prolog中不允许内容

我正在使用Java,我正试图从一些http链接获取XML文档.我正在使用的代码是:

URL url = new URL(link);

HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
Document doc = null;

CountInputStream in = new CountInputStream(url.openStream());
doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(in);
Run Code Online (Sandbox Code Playgroud)

不注意CountInputStream,它是一些像常规输入流一样的特殊类.

使用上面的代码,我有时会遇到错误Fatal Error :1:1: Content is not allowed in prolog.我认为这与xml格式错误有关,但我不知道如何修复它.

java xml

19
推荐指数
2
解决办法
9万
查看次数