草庐IT

contained-object

全部标签

java - synchronized(new Object()) 的用例

在最近的answer我建议可以通过在包含我们需要volatile的变量的对象上同步来实现volatile的功能(提问者没有可以访问代码中的变量)。这让我想到我实际上不需要阻塞包含对象,我只需要实现内存屏障。由于synchronized实现了两者同步和内存屏障,如果我只需要内存屏障(如本例),它实际上会更好吗使用synchronized(newObject())来实现我的内存屏障并确保锁永远不会被竞争? 最佳答案 如此处解释:http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-fa

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 - log4j2-gelf "ERROR StatusLogger appenders contains an invalid element or attribute "GELF""

刚开始接触Graylog2,想通过GELF输入记录一些Java应用程序。因此我使用了库log4j2并添加了graylog2-gelfclient。满足所有依赖项并且程序正在运行。但是我的Logmanager的初始化抛出以下错误:ERRORStatusLoggerappenderscontainsaninvalidelementorattribute"GELF"我的代码只是将错误记录到记录器:staticfinalLoggerlogger=LogManager.getLogger(Application.class);publicstaticvoidmain(String[]args){

java - 如何理解 Object.getClass() 方法?

TheJavaObject.getClass()methodjavadoc说:ReturnstheruntimeclassofthisObject.ThereturnedClassobjectistheobjectthatislockedbystaticsynchronizedmethodsoftherepresentedclass.TheactualresulttypeisClasswhere|X|istheerasureofthestatictypeoftheexpressiononwhichgetClassiscalled.Forexample,nocastisrequiredi

java - 为什么我们需要允许接口(interface)只从 java.lang.Object 而不是任何其他类扩展?

这个问题在这里已经有了答案:WhyObjectclassmethodsareavailableininterface?(5个答案)关闭7年前。AspermyunderstandingfromsomebooksonJava,interfacescannotextendclasses.ButallinterfacesdoinheritmethodsfromObjectclass.Whyisthisso?如果接口(interface)不是从对象类扩展的。那么这段代码是如何工作的呢?interfaceA{publicbooleanequals(Objecto);}classInterfaceA

java - "error_description": "AADSTS70002: The request body must contain the following parameter: ' client_secret or client_assertion'

我使用了https://github.com/AzureAD/azure-activedirectory-library-for-java/blob/master/src/samples/public-client-app-sample/src/main/java/PublicClient.java中的代码.唯一的区别是CLIENT_ID已更新。我一直收到错误消息"error_description":"AADSTS70002:Therequestbodymustcontainthefollowingparameter:'client_secretorclient_assertion'

java - 为什么 HashSet<E> 在 contains() 和 remove() 中不将参数类型限制为 E

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:WhatarethereasonswhyMap.get(Objectkey)isnot(fully)genericWhydoesJava'sTreeSetremove(Object)nottakeanE为什么HashSet在这里不限制参数类型为E:publicbooleancontains(Objecto)publicbooleanremove(Objecto)就像add()一样publicbooleanadd(Ee)我的意思是,如果编译器强制只添加E类型的对象,则该集合不能包含/删除任何其他类型

java - 为什么在 Enum hashCode() 中引用 Object hashCode() 实现,而不是 ordinal() 函数?

这个问题在这里已经有了答案:WhatisthereasonbehindEnum.hashCode()?(7个答案)关闭9年前。我一直认为enumhashCode指的是Java中的ordinal,因为ordinal似乎是hashCode的完美候选者,但事实证明enumhashCode实际上是指默认的hashCode对象实现。我明白,这与JLS并不矛盾,但这仍然让我感到惊讶,我想不出为什么要这样做。虽然我猜想JVM可能会以某种方式依赖它来提供独特的保证,但这对64位JVM来说不再适用。我已经检查了JDK1.6和最新的JDK7,两者的方式相同。有谁知道为什么会这样吗?使用ordinal作为h

java - 使用 hamcrest contains() 方法比较两个集合

我有两个集合,我试图在我的单元测试中比较它们是否相等,但我正在努力使用contains方法。这是我所拥有的:@TestpublicvoidgetAllItems(){CollectionactualItems=auction.getAllItems(joe);CollectionexpectedItems=Lists.newArrayList();expectedItems.add(iPhone);expectedItems.add(skateboard);assertThat(expectedItems,contains(actualItems));}items包含与expected

Java 8 流 : build multilevel/composite objects

我开始使用Java8流API。我想将“sql结果集”列表转换为域对象,即复合结构。领域对象:一个用户有一个权限的集合,每个权限都有一个申请年份的集合。例如,John有2个权限(MODERATOR和DEV)。版主权限仅适用于2014年和2015年其开发许可仅适用于2014年。classUser{//someprimitivesattributesListpermission;}classPermission{//someprimitivesattributesListyears;}现在我进行查询并得到一个简单的结果列表,类似于:[1,"moderator",2014][1,"modera