小编Fin*_*arr的帖子

Java int concurrency ++ int相当于AtomicInteger.incrementAndGet()?

这两个是等价的吗?换句话说,++和 - 运算符是原子的吗?

int i = 0;
return ++i;

AtomicInteger ai = new AtomicInteger(0);
return ai.incrementAndGet();
Run Code Online (Sandbox Code Playgroud)

java int concurrency atomic

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

这是技术上线程安全,尽管是可变的吗?

是的,私有成员变量bar应该是final对的吗?但实际上,在这种情况下,简单地读取a的值是一个原子操作int.这在技术上是线程安全吗?

class Foo {
    private int bar;
    public Foo(int bar) {
        this.bar = bar;
    }
    public int getBar() {
        return bar;
    }
}
Run Code Online (Sandbox Code Playgroud)

//假设无数个线程重复调用getBar同一个实例Foo.

编辑:

假设这是Foo该类的所有代码; 任何引用Foo实例的线程都无法更改bar(不使用反射等长度)

java int concurrency

8
推荐指数
1
解决办法
618
查看次数

您使用什么静态分析器来运行Java代码,为什么?

我已经尝试了几种不同的Java静态分析器,特别是Findbugs和PMD.

我正在寻找可能值得在Java代码上运行的其他静态分析器的示例.

java static-analysis

8
推荐指数
1
解决办法
537
查看次数

Guice泛型 - 我怎样才能让它变得不那么难看?

我有一个接口Producer<T>和一个FooProducer实现的具体Producer<Foo>.在guice中绑定这个看起来像罪恶一样丑陋:

bind(new TypeLiteral<Producer<Foo>>() {}).to(FooProducer.class);
Run Code Online (Sandbox Code Playgroud)

我有很多这样的绑定.我尝试过以下方法:

static <T> TypeLiteral<Producer<T>> producer() {
    return new TypeLiteral<Producer<T>>(){};
}
Run Code Online (Sandbox Code Playgroud)

通过这种方式拨打电话:

bind(ContainingClass.<Foo>producer()).to(FooProducer.class);
Run Code Online (Sandbox Code Playgroud)

但它给出了一个错误Producer<T> is not specific enough....

我是以错误的方式解决这个问题吗?

java generics coding-style guice

8
推荐指数
2
解决办法
2600
查看次数

Java SHA256向PHP SHA256输出不同的哈希值?

PHP代码:

echo hash('sha256', 'jake');

PHP输出:

cdf30c6b345276278bedc7bcedd9d5582f5b8e0c1dd858f46ef4ea231f92731d

Java代码:

String s = "jake";
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(s.getBytes(Charset.forName("UTF-8")));
byte[] hashed = md.digest();
String s2 = "";
for (byte b : hashed) {
    s2 += b;
}
System.out.println(s2);
Run Code Online (Sandbox Code Playgroud)

Java输出:

-51-1312107528211839-117-19-57-68-19-39-43884791-1141229-4088-12110-12-223531-11011529

我曾预料到两者会返回相同的结果.显然,事实并非如此.我怎样才能让两者相匹配或者不可能?

编辑:我犯了一个错误,认为我现在已经回答了这个问题.

php java hash sha256

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

设置apache来为一个nodejs应用程序设置别名?

我有一个PHP应用程序通过端口80上的apache提供服务.我有一个nodejs应用程序在端口3000上独立运行.我想从PHP生成的客户端代码向nodejs应用程序发出ajax请求.问题是相同的源策略不允许不同的端口,我不能在端口80上运行nodejs和apache.

我理想的做法是让它们从客户端的角度看起来都在端口80上运行.如何设置apache以重新路由/别名/对nodejs应用程序的任何特定请求?

希望有道理.注意:不确定这是否可行,或者我是否以正确的方式进行 - 请接受建议.

apache routing alias ports node.js

8
推荐指数
1
解决办法
9069
查看次数

运行初始化程序,除了rake任务

与此问题相反:仅为Rake任务运行初始化程序

在rake任务期间是否可以排除初始化程序?

谢谢.

rake ruby-on-rails

8
推荐指数
1
解决办法
337
查看次数

高完整性系统的编程语言选择

哪些编程语言是高完整性系统的不错选择?

糟糕选择的一个例子是Java,因为程序员无法访问大量代码.我正在寻找强类型块结构语言的例子,其中程序员负责100%的代码,并且尽可能少地受到JVM之类的干扰.

编译器显然是一个问题.语言必须有完整而明确的定义.

编辑:高完整性系统是安全关键系统等,安全系统等的总称.

编辑编辑:我想要不受平台影响的语言示例,无论编译器如何,都会产生相同的结果,并且是完全定义的.

programming-languages high-integrity-systems

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

最终变量声明在方法中的作用是什么?

简单服务器的经典示例:

class ThreadPerTaskSocketServer {
   public static void main(String[] args) throws IOException {
      ServerSocket socket = new ServerSocket(80);
      while (true) {
          final Socket connection = socket.accept();
          Runnable task = new Runnable() {
              public void run() {
                 handleRequest(connection);
              }
          };
          new Thread(task).start();
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

为什么要Socket宣布为final?是因为Thread处理请求的新函数可以引用回方法中的socket变量并导致某种情况ConcurrentModificationException

java methods concurrency final

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

Hibernate Embedded/Embeddable非null异常

在拥有类:

...
@Embedded
private LatLon location;
...
Run Code Online (Sandbox Code Playgroud)

在引用的类中:

@Embeddable
public class LatLon implements Serializable {
    private double lat;
    private double lon;
    ...
}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用null值保存拥有类的实例时LatLon:

org.hibernate.PropertyValueException: not-null property references a null or transient value: com.*.location.

如何在拥有类中允许此值为null?我试过制作它Nullable并没有效果.

embedded hibernate embeddable

6
推荐指数
1
解决办法
1445
查看次数