标签: openjdk

OpenJDK java.sql.Timestamp与Sun Java VM的时间戳类不同?

这是由于系统设置造成的差异还是由于代码差异造成的?

OpenJDK版本:

Welcome to Scala version 2.8.1.final (OpenJDK Client VM, Java 1.6.0_20).    
scala> new java.sql.Timestamp(1292141899648L)
res0: java.sql.Timestamp = 2010-12-12 08:18:19.648
Run Code Online (Sandbox Code Playgroud)

Sun Java版本:

Welcome to Scala version 2.8.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_24).
scala> new java.sql.Timestamp(1292141899648L)
res0: java.sql.Timestamp = 2010-12-12 00:18:19.648
Run Code Online (Sandbox Code Playgroud)

java openjdk timestamp scala

0
推荐指数
1
解决办法
654
查看次数

Mac上的Java 8和FreeBSD不同的文件排序顺序由修改后的数据组成

我面临着排序文件的奇怪问题.

鉴于环境

Dev: Mac OS X 10.11.3 OracleJDK 1.8.0_45
PreProduction env: FreeBSD 10 OpenJDK 1.8.0_72
Run Code Online (Sandbox Code Playgroud)

public static String getLatestTag() {
    File tagsDir = new File("./.git/refs/tags");
    ...
    File[] tags = tagsDir.listFiles();
    List<File> tagsList = Arrays.asList(tags);
    Collections.sort(tagsList, (f1, f2) -> {
       if(f1.lastModified() > f1.lastModified()) {
          return 1;
       } else if(f1.lastModified() == f2.lastModified()) {
          return 0;
       } else {
          return -1;
       }
     });
     logTagsList(tagsList);
     String latestTag = tagsList.get(0).getName();
     Logger.info("Application version is: %s", latestTag.replaceAll("[^\\d.]", ""));
     return latestTag;
}

private static void logTagsList(List<File> tags) …
Run Code Online (Sandbox Code Playgroud)

java macos openjdk freebsd java-8

0
推荐指数
1
解决办法
67
查看次数

Java HotSpot内在方法的汇编实现代码在哪里?

http://hg.openjdk.java.net/jdk8/jdk8/hotspot/file/87ee5ee27509/src/share/vm/classfile/vmSymbols.hpp,我可以看到内部方法声明如下:

do_intrinsic(_getByte, sun_misc_Unsafe, getByte_name, getByte_signature, F_RN) \
Run Code Online (Sandbox Code Playgroud)

但是如何找到该方法的实际实现(我认为是汇编代码)_getByte

java openjdk jvm intrinsics hotspot

0
推荐指数
1
解决办法
387
查看次数

关于OpenJDK源代码的JVM_ENTRY

我读取了在热点OpenJDK 7中抛出异常的代码,并跟踪使用它们的类.他们结束了在实现类JVM_ENTRY(result_type, header)中,例如jvm.cpp,java.cpp等我的问题是什么东西的功能JVM_ENTRY,它是如何工作的?

以下是示例 jvm.cpp

JVM_ENTRY(jobject, JVM_AllocateNewObject(JNIEnv *env, jobject receiver, jclass currClass, jclass initClass))
  JVMWrapper("JVM_AllocateNewObject");
  JvmtiVMObjectAllocEventCollector oam;
  // Receiver is not used
  oop curr_mirror = JNIHandles::resolve_non_null(currClass);
  oop init_mirror = JNIHandles::resolve_non_null(initClass);

  // Cannot instantiate primitive types
  if (java_lang_Class::is_primitive(curr_mirror) || java_lang_Class::is_primitive(init_mirror)) {
    ResourceMark rm(THREAD);
    THROW_0(vmSymbols::java_lang_InvalidClassException());
  }

  // Arrays not allowed here, must use JVM_AllocateNewArray
  if (Klass::cast(java_lang_Class::as_klassOop(curr_mirror))->oop_is_javaArray() ||
      Klass::cast(java_lang_Class::as_klassOop(init_mirror))->oop_is_javaArray()) {
    ResourceMark rm(THREAD);
    THROW_0(vmSymbols::java_lang_InvalidClassException());
  }

  instanceKlassHandle curr_klass (THREAD, java_lang_Class::as_klassOop(curr_mirror));
  instanceKlassHandle init_klass (THREAD, java_lang_Class::as_klassOop(init_mirror));

  assert(curr_klass->is_subclass_of(init_klass()), "just checking"); …
Run Code Online (Sandbox Code Playgroud)

c++ java openjdk jvm

0
推荐指数
1
解决办法
293
查看次数

java方法:java.lang.Integer.numberOfLeadingZeros(int)可以进行优化

原始代码是:

public static int numberOfLeadingZeros(int i) {
    // HD, Figure 5-6
    if (i == 0)
        return 32;
    int n = 1;
    if (i >>> 16 == 0) { n += 16; i <<= 16; }
    if (i >>> 24 == 0) { n +=  8; i <<=  8; }
    if (i >>> 28 == 0) { n +=  4; i <<=  4; }
    if (i >>> 30 == 0) { n +=  2; i <<=  2; }
    n -= i …
Run Code Online (Sandbox Code Playgroud)

java openjdk jvm jvm-hotspot

-3
推荐指数
1
解决办法
303
查看次数

标签 统计

java ×5

openjdk ×5

jvm ×3

c++ ×1

freebsd ×1

hotspot ×1

intrinsics ×1

java-8 ×1

jvm-hotspot ×1

macos ×1

scala ×1

timestamp ×1