Tag: 引用

在Java中传递值

可能重复: Java是通过引用传递的吗? Java是通过引用传递的吗? 嘿, Java是否按value传递所有内容,而且我们无法通过reference传递内容? 谢谢。

在C#Assembly中引用Java DLL?

这里有说明使用SimMetrics库创建C#程序集。 他们提供给这个图书馆的链接是在SourceForge 。 看起来最新版本的SimMetrics库是用Java创建的。 是否可能编译java代码然后在C#中引用它以用作SQL Server 2008中的程序集?

Java ArrayList:创建数组的副本并使用旧的分隔,但不要创建新对象

例如,我有一个ArrayList: ArrayList zoo = new ArrayList(); // some code to add animals to zoo 我想创建这个old zoo的副本到new zoo ,我可以使用删除/添加…来处理这个新动物园。(当然,它不会影响旧动物园)。 因此,我有一种方法:创建新动物园,克隆旧动物园中的每只动物(这意味着创建动物对象)。 所以,它太慢了。 我有另一种方式:创建旧动物园的每个动物的参考,并复制到新的动物园。 所以,新动物园只是提到了动物园的动物。 所以,每次我删除/添加,…它只是删除对动物对象的引用。 没有影响旧动物园,并且没有创建新对象。 但是,我不知道如何用Java做到这一点。 请教我。 谢谢 :)

Java:如何在一个类中创建私有字段Map不可变?

public class Hi { private final Map map; public Map getMap() { return map; } } 我有这个Hi类,我希望map是不可变的。 我还需要一个吸气剂。 目前,另一个类可以从getter修改映射。 我想返回一个地图副本来解决这个问题,但Map是一个接口,所以这意味着我必须进行getter调用: return new HashMap(map); 有没有其他方法可以做到这一点,而不强制地图是一个哈希映射? 我希望它能像以前一样保持同一级别。

Scala,Java和平等

val filesHere = (new java.io.File(“.”)).listFiles val filesHere2 = (new java.io.File(“.”)).listFiles scala> filesHere == filesHere2 res0:Boolean = false 这非常直观。 我宁愿期望filesHere和filesHere2相等。 这肯定是由于Java和Scala之间的语义不匹配,例如,关于数组或(文件)相等。 显然,我在这里遗漏了一些东西!

解析GATE文档以获取共同参考文本

我正在创建一个用于查找共同引用文本的GATE应用程序。 它工作正常,我已通过GATE中提供的导出选项创建了应用程序的压缩文件。 现在我正在尝试在我的Java代码中使用相同的代码。 Gate.runInSandbox(true); Gate.setGateHome(new File(gateHome)); Gate.setPluginsHome(new File(gateHome, “plugins”)); Gate.init(); URL applicationURL = new URL(“file:” + new Path(gateHome, “application.xgapp”).toString()); application = (CorpusController) PersistenceManager.loadObjectFromUrl(applicationURL); corpus = Factory.newCorpus(“Megaki Corpus”); application.setCorpus(corpus); Document document = Factory.newDocument(text); corpus.add(document); application.execute(); corpus.clear(); 现在我该如何解析这个文档并获得共同参考文本?

求引文解析器

我需要一个解析器来扫描学术文本,提取引文,并将这些引用解析为它们的组成部分(作者,标题,出版日期等)。 我尝试过Paracite,但速度慢得令人沮丧,并没有产生高质量的结果。 任何语言都可以,但Java是首选。

Java:将引用设置为null不会影响对象

我有一个简单的问题。 在下面的代码中,为什么s3的值仍然打印,尽管之前我将它设置为null。 似乎gargbage收集器不会被调用。 public class Test { public static void main(String[] args) { String s1 = “abc”, s2 = “def”, s3 = “ghj”; String sarr[] = {s1, s2, s3}; s3 = null; System.gc(); for(int i = 0; i < sarr.length; i++) { System.out.print(sarr[i] + " "); //prints abc def ghj } } } 任何想法将不胜感激。

在Java中设置相等:按值或引用?

我做了两次测试,第一次是从Strings开始 String str1 = “old”; String str2 = str1; str1 = “new”; System.out.println(str1); //new System.out.println(str2); //old 上面的例子表示str2 = str1, by value 现在我做类似的操作,但这次是Lists List list1 = new ArrayList(); List list2 = list1; list1.add(1); System.out.println(list1.size()); //1 System.out.println(list2.size()); //1 此示例list2 = list1, by reference指示list2 = list1, by reference 我很困惑, which Java variables/objects是按value传递的,哪些是通过reference传递的?

有没有办法在Java中强制使用弱的和/或软引用的对象?

这是我的用例。 我们正在尝试缩小应用程序中潜在的内存泄漏,我们正在使用内存分析工具对堆进行快照,以便我们可以查找对象实例和引用。 (如果它有帮助,我们正在使用YourKit。) 此应用程序广泛使用动态和CGLIB代理,最终在WeakHashMaps中存储大量类和类加载器的引用。 在我们的测试用例运行之后,我们期望对对象X及其类加载器的所有硬引用都消失了,但是由于测试用例中涉及很多代理,我们还有许多弱/软引用。 (我只能找到WeakHashMap引用,但是YourKit将弱引用和软引用都包含在摘要中的一个行项中,所以我不能确定我在某个地方没有错过软引用。) 即使在从JVM请求完整GC之后也是如此。 (在服务器模式下使用sun 1.6.0_23 JDK。) 似乎 JVM承认只有弱/软引用这些对象,但我不能强迫它对GC这些事情是100%肯定的。 (所以,我想要的是,它完全从堆中消失,其permgen的类加载器使用也会消失。) 任何人都知道配置和/或强制JVM处理仅软/弱引用的对象的方法吗?