小编Tal*_*han的帖子

为什么ConcurrentHashMap没有ConcurrentHashSet

HashSet基于HashMap.

如果我们看一下HashSet<E>实现,一切都在管理之下HashMap<E,Object>.

<E>被用作关键词HashMap.

我们知道这HashMap不是线程安全的.这就是我们ConcurrentHashMap在Java中的原因.

基于此,我很困惑,为什么我们没有一个应该基于的ConcurrentHashSet ConcurrentHashMap

还有什么我想念的吗?我需要Set在多线程环境中使用.

另外,如果我想创建我自己的ConcurrentHashSet,我可以通过替换HashMapto来实现它,ConcurrentHashMap并将其余部分保留原样?

java collections concurrency hashmap hashset

496
推荐指数
8
解决办法
20万
查看次数

我们是否在Java中使用TimeSpan类

我只是想知道是否需要TimeSpan,java.util以便我可以定义这两次之间有多少小时,分钟和秒.

由此TimeSpan我们可以有两次之间的时间间隔.喜欢

TimeSpan getTimeSpan( Date before, Date after ){...}
Run Code Online (Sandbox Code Playgroud)

要么

long timeSpan = System.currentTimeMillis();
// ... long job
timeSpan = System.currentTimeMillis() - timeSpan;

TimeSpan ts = new TimeSpan(timeSpan);
Run Code Online (Sandbox Code Playgroud)

有了它,TimeSpan我们可以使用它SimpleDateFormat.

SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
format.format( timsSpan );
Run Code Online (Sandbox Code Playgroud)

我不确定这是否已经在Java中实现,但我还没有发现.

java timespan java.util.date

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

Singleton:如何通过Reflection停止创建实例

我知道在Java中,我们可以通过创建一个类的实例new,clone(),Reflectionserializing and de-serializing.

我创建了一个实现Singleton的简单类.

我需要一直停止创建我的类的实例.

public class Singleton implements Serializable{
    private static final long serialVersionUID = 3119105548371608200L;
    private static final Singleton singleton = new Singleton();
    private Singleton() { }
    public static Singleton getInstance(){
        return singleton;
    }
    @Override
    protected Object clone() throws CloneNotSupportedException {
        throw new CloneNotSupportedException("Cloning of this class is not allowed"); 
    }
    protected Object readResolve() {
        return singleton;
    }
    //-----> This is my implementation to stop it but Its not working. …
Run Code Online (Sandbox Code Playgroud)

java reflection singleton

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

如何在Java中将二进制数据输出到文件?

我正在尝试将数据写入二进制格式的文件以进行压缩.数据完全由浮点组成,因此我决定将数据量化为0到65535之间的整数,这样数据就可以写成两位无符号整数,最终节省空间.但是,我需要将量化数据输出到二进制文件而不是人类可读的Ascii.

目前这就是我正在做的事情

@param output将包含已经量化的数据的文件作为.txt文件中的字符串

public void generateBinaryRioFile(String materialLibrary,
        String outputFile, String group, String mtlAux) {

    try {

        // Create file
        FileWriter fileStream = new FileWriter(outputFile);
        try {

            BufferedReader br = new BufferedReader(new FileReader(new File(
                    "idx.txt")));

            while ((line = br.readLine()) != null) {
                writer.write(line + "\n");
            }
            try {
                br.close();

            } catch (FileNotFoundException e) {
                e.getMessage();
            } catch (IOException e) {
                e.printStackTrace();
            }           BufferedWriter writer = new BufferedWriter(fileStream);
Run Code Online (Sandbox Code Playgroud)

但是,它将文件写为人类可读的字符串.我需要将它写成二进制数据.如何在Java中实现这一目标?

java binary-data

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

Javascript日期变量赋值

var date1 = new Date();  
date1.setFullYear(2011, 6, 1);  

// 2011-07-01, ok  
console.log(date1);

// set date2 the same date as date1  
var date2 = date1;

// ...

// now I'm gonna set a new date for date2  
date2.setFullYear(2011, 9, 8);

// 2011-10-08, ok  
console.log(date2);

// 2011-10-08, wrong, expecting 2011-07-01  
// I didn't assign a new date to date1  
// WHY is date1 changed?  
console.log(date1);
Run Code Online (Sandbox Code Playgroud)

javascript variables date

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

java:IllegalStateException - 尚未创建缓冲区

我的服务器中有一个奇怪的例外.
相同的应用程序(java,swing)在几台服务器上运行.
每台服务器都运行双监视器.相同的jre版本(jre 6版本24)所有这些都在相当的CPU /内存消耗.

只有其中一个 - 当我将我的应用程序从一个监视器拖到另一个监视器时,它会抛出java.lang.IllegalStateException异常.我在下面附上了完整的例外情况.有谁有想法吗 ?

谢谢.

而现在,例外:

java.lang.IllegalStateException: Buffers have not been created
    at sun.awt.windows.WComponentPeer.getBackBuffer(Unknown Source)
    at java.awt.Component$FlipBufferStrategy.getBackBuffer(Unknown Source)
    at java.awt.Component$FlipBufferStrategy.updateInternalBuffers(Unknown Source)
    at java.awt.Component$FlipBufferStrategy.revalidate(Unknown Source)
    at java.awt.Component$FlipBufferStrategy.revalidate(Unknown Source)
    at java.awt.Component$FlipBufferStrategy.getDrawGraphics(Unknown Source)
    at javax.swing.BufferStrategyPaintManager.prepare(Unknown Source)
    at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
    at javax.swing.RepaintManager.paint(Unknown Source)
    at javax.swing.JComponent.paint(Unknown Source)
    at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
    at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
    at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
    at java.awt.Container.paint(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at …
Run Code Online (Sandbox Code Playgroud)

java exception

13
推荐指数
1
解决办法
5848
查看次数

如何实现像浏览器这样的后退和前进功能

我希望在我的项目中像浏览器一样实现后退和前进等功能,就像我们拥有屏幕的网页一样.我试过的是最初的设定currentscreenindex=-1

当第一个屏幕的数据到来时执行此功能

In screen data arrive function (){
   this.currentscreenindex++; 
   this.screenvisited[this.currentscreenindex]=data;

}
Run Code Online (Sandbox Code Playgroud)

这是我的后退功能我尝试过:

back(){
    currentscreenindex--;
    var screen=screenvisited[currentscreenindex];
    // will go to this screen
}
Run Code Online (Sandbox Code Playgroud)

但我的问题在于:

                    currentscreenindex  screen data in screenvisted array
When 1st screen arrived     0     Data of 1st screen 
When 2st screen arrived     1     Data of 2st screen 
When 3st screen arrived     2     Data of 3st screen 
When 4st screen arrived     3     Data of 4st screen 
When 5st screen arrived     4     Data of 5st screen 
when user click back …
Run Code Online (Sandbox Code Playgroud)

javascript algorithm

9
推荐指数
1
解决办法
5083
查看次数

Struts2,JSP,Test String for null和Empty in iteration

我正在使用Struts2.并且在测试String为null或为空时遇到问题.String处于循环中.

到目前为止我所做的是

在Action类我有一个List<User>.Useridname田地,并有吸气剂和制定者......

在JSP我喜欢

<s:iterator value="userList" var="user" status="userStatus">
    <s:if test"%{user.name != null && user.name != ''}">
       ${user.name}
       <!-- Do some thing... -->
    </s:if>
</s:iterator>
Run Code Online (Sandbox Code Playgroud)

问题是它不工作:(,我看不到名字,如果我删除<s:if>块,它们是可见的.

java string jsp struts2 java-ee

7
推荐指数
1
解决办法
3万
查看次数

在单个查询中多次使用相同的子查询

我正在运行一个查询,其中包含在子句中多次使用的相同子查询WHERE.

我有拖字段的表client_id,buyer_id.

子查询返回要从结果中排除的日期列表.

这就是我使用它的方式.

SELECT
  id, client_id, buyer_id
FROM relation
WHERE
  client_id NOT IN (SELECT <some_id> FROM <some_table> WHERE ...)
  AND buyer_id NOT IN (SELECT <some_ids> FROM <some_table> WHERE ...)
Run Code Online (Sandbox Code Playgroud)

这是按预期的方式工作但令我困扰的是,有两个相同的子查询.我想知道是否有一种方法可以使用它一次并将结果用于两个地方.

谢谢.

mysql sql subquery

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

单元测试JPA/Hibernate:没有EntityManager的持久性提供程序

我想为我的项目启用单元测试.我创建了如下结构.

目录结构

.
??? pom.xml
??? src
?   ??? main
?   ?   ??? java
?   ?   ??? resources
?   ?       ??? META-INF
?   ?       ?   ??? beans.xml        <-- Works fine in live
?   ?       ?   ??? persistence.xml  <-- Works fine in live
?   ??? test
?       ??? java
?       ?   ??? com
?       ?   ?   ??? test
?       ?   ?       ??? model
?       ?   ?           ??? TestEntityManagerUtil.java
?       ?   ?           ??? TestHibernate.java
?       ??? resources
?           ??? META-INF
?           ? …
Run Code Online (Sandbox Code Playgroud)

hibernate java-ee-6 jpa-2.0

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