草庐IT

弱引用

全部标签

java - java中的硬引用是什么?

当我在研究permgen时,我遇到了硬引用这个词。我不知道硬引用是什么意思。任何人都可以解释一下或给我一些相关的教程吗? 最佳答案 这里有几个关于java中的硬引用(又名强引用)和弱引用的教程http://weblogs.java.net/blog/2006/05/04/understanding-weak-referenceshttp://www.coderanch.com/t/433742/java/java/WeakReference-hard-reference-scope-JIT通过简单的谷歌搜索找到

Java SnakeYaml - 防止转储引用名称

我使用以下方法将对象转换为yaml表示(例如,我可以打印到控制台)@NonnullprivateStringoutputObject(@NonnullfinalObjectToPrintpackageSchedule){DumperOptionsoptions=newDumperOptions();options.setAllowReadOnlyProperties(true);options.setPrettyFlow(true);returnnewYaml(newConstructor(),newJodaTimeRepresenter(),options).dump(ObjectT

java - 不同语言的数组 - 存储引用或原始对象?

在使用数组时,我正在努力思考原始内存在不同语言中的样子。考虑以下Java代码:Stringa="hi";Stringb="there";Stringc="everyone";String[]array={a,b,c};很明显数组保存的是引用,而不是对象;也就是说,内存中有一个包含三个引用的连续数组,每个引用都指向内存中对象所在的某个其他位置。所以对象本身不一定位于三个连续的桶中;而是引用。现在考虑一下:String[]array={"hi","there","everyone"}我想在这种情况下字符串与内存中的所有其他常量一起存在于某个地方,然后数组保存对内存中这些常量的引用?因此,同

Java 方法引用抛出 NPE

所以我上课了publicclassMenuBarextendsJMenuBar{MenuBarControllercontroller;publicMenuBar(){JMenumenu=newJMenu("File");menu.add(createMenuItem("Report",controller::writeReport));menu.add(createMenuItem("Save",controller::save));menu.add(createMenuItem("Import",controller::importFile));menu.add(createMen

java - 将 lambda 转换为方法引用

有人可以帮我转换以下代码以使用方法引用吗?我正在努力思考这个新语法,但当它变得比映射到单个方法调用的单个变量更复杂时,我很快就迷路了:getWorkspaces().stream().forEach((ws)->{DataStoreInfodefaultDataStore=getDefaultDataStore(ws);if(defaultDataStore!=null){other.setDefaultDataStore(ws,defaultDataStore);}});我从这个开始,但它不起作用:)getWorkspaces().stream().map(this::getDefa

java - 如何使用 java 流打印嵌套列表,其中对象包含对自身的引用列表

我有一个类似于下图的对象:publicclassObj{privateListobjs;privateStringobjId;publicListgetObjs(){returnobjs;}publicStringgetobjId(){returnobjId;}@OverridepublicStringtoString(){return"Obj[objs="+objs+",objId="+objId+"]";}}如何使用流打印objId的列表?编辑Obj可以包含一个Obj列表,它的子元素可以包含一个obj对象列表。如果深度为5级,是否可以打印从最顶层obj到第5级子级的值的所有objI

java - 非静态变量不能从静态上下文中引用 - 为什么在这里?

我有一个代码:packagewhy;publicclassFoo{publicclassFoo1{Stringbar;publicFoo1(Stringbar){this.bar=bar;}publicstaticFoo1MYCONSTANT=newFoo(null);}}为什么我得到“无法从静态上下文中引用的非静态变量”?我分配了非静态类的实例。为什么还要在这里?publicstaticFoogetMYCONSTANT(){returnnewFoo(null,null);}谢谢 最佳答案 让我们看一下这个例子:publicclas

java - 对象引用未保存的 transient 实例 : how to flush or return saved object

我使用Spring3.2.3、Hibernate4.2.3和JDK7。我有一个简单的实体:@EntitypublicclassLanguage{@Id@GeneratedValueprivatelongid;@Column(nullable=false,length=3,unique=true)privateStringcode;}我使用带有@Transactional注释方法的@Service注释类保存了该实体的实例,该方法使用DAO保存实体sessionFactory.getCurrentSession().save(object);之后,我使用savedLanguage实体创建E

java - 如何初始化循环依赖(final 字段相互引用)?

你如何初始化它:classA{finalBb;A(Bb){this.b=b;}}classB{finalAa;B(Aa){this.a=a;}}DI框架、反射、更好的设计?动机和用例(已添加):我的特定用例是简化A和B子类中的字段访问。因此,我将它们注入(inject)到派生类中的字段中以快速引用它们,而无需在每个子类中显式声明。还有关于DI的建议,对象最好是不可变的:Guicebestpracticesandanti-patterns. 最佳答案 你可以使用工厂方法classA{finalBb;A(Bb){this.b=b;}}a

java - 从引用中窃取位

如何从一个地址窃取2个MSB来进行原子操作?我正在尝试做一个单词CAS一个例子publicclassNode{longkey;longvalue;Nodelchild;//formatisflag1,flag2,addressNoderchild;//formatisflag1,flag2,address}publicvoidcreateNode(){Noden1=newNode();//thisshouldcreateanodewithformat0,0,address1}publicvoidsetFlag1(Noden1){Nowthenewaddressshouldbeinfor