Tag: java

“固有线程安全”是什么意思?

我碰到这一行“一些函数本质上是线程安全的,例如memcpy() ” 维基百科将“线程安全”定义为: 如果一段代码只能以保证multithreading同时安全执行的方式来操作共享数据结构,那么它是线程安全的。 好。 但是, 固有的含义是什么? 它与inheritance有关吗?

Java 7是否使用Tim Sort作为Method Arrays.Sort?

我找不到Java 7的文档,我只能findJava 6,它仍然很快或合并。 有谁知道如何在Java 7中find方法Arrays.sort的文档?

Java:整数到5的最接近的倍数(向上或向下)

我需要将一个数字舍入到最接近的5的倍数(向上或向下)。 例如,以下是需要向上/向下舍入的数字列表以及其旁边的数字。 12.5 10 62.1 60 68.3 70 74.5 75 80.7 80 数字将只是积极的。

Java 8stream映射到按值sorting的键列表

我有映射Map<Type, Long> countByType ,我想有一个列表已按sorting(最小到最大)的键相应的值。 我的尝试是: countByType.entrySet().stream().sorted().collect(Collectors.toList()); 然而,这只是给了我一个条目列表,我怎样才能得到一个types的列表,而不会失去顺序?

按位不算操作符

为什么按位操作(~0); 打印-1? 在二进制中,不是0应该是1。 为什么?

Java等待线程完成

我有一个线程下载数据,我想等到下载完成之前我加载数据。 有没有这样做的标准方式? 更多信息: 我有一个下载类,从URL(序列化POJOs)获取数据。 下载是可运行和可观察的。 它跟踪下载的字节和下载大小。 我有一个进度条,向用户显示进度。 GUI观察下载以更新进度条。 当POJO被下载时,我想得到它并转到下一步。 每一步都要等到先前完成。 问题是我不能想办法暂停我的应用程序等待下载线程。 一旦下载完成,我想调用download.getObject(),它将返回数据作为一个对象。 然后,我可以投下它,继续下一个下载。 我有一个帮助类,pipe理下载的URL,并使下载的所有电话。 这个调用将调用getObject并进行转换。 Gui调用helper.getUser()。 助手启动线程运行,我希望它知道什么时候完成,所以它可以返回铸造的对象。 任何build议/例子? 我正处于这个devise的开始阶段,所以我愿意改变它。 非常感谢你。 更新: 我遵循http://download.oracle.com/javase/6/docs/api/javax/swing/SwingWorker.html#get并使用模态来阻塞,直到线程完成。 代码非常混乱,我不喜欢这种方法。 我将继续努力寻找一种“干净”的方式来处理下载过程的工作stream程。

什么是Java中的无状态对象?

目前,我正在阅读“实践中的Java并发”,其中包含以下语句: 由于访问无状态对象的线程的操作不会影响其他线程上操作的正确性,因此无状态对象是线程安全的。 那么,什么是无国籍的对象呢?

以编程方式获取Android设备的操作系统版本

我怎样才能以编程方式获取当前的Android设备版本(1.5,1.6,2.0等)? 即我已经在Android 2.2设备上安装了我的apk。 我需要得到设备版本(我的应用程序正在运行的Android模拟器版本)。

应用程序在Mac OS X上使用Apple的Java 6而不是Oracle的Java 7?

我正在使用安装了Oracle的Java 7的Mac OS Xtesting当前的应用程序。 而是使用Oracle的Java 7,而是使用Apple的Java 6。 java -version的默认系统输出显示为7 。 我尝试了不同网站中提到的大部分内容,但是我无法解决这个问题。 JAVA_HOME也正确设置。 我只用于testing目的使用Mac。 我真的需要一些指导。 当我通过selectJRE 7运行Eclipse时,它运行正常。 因此,应用程序没有任何问题。 我在Mac OS X上缺less一些东西。 我的Java系统环境如下所示: OS X版本 10.8 /usr/libexec/java_home -V Matching Java Virtual Machines (3): 1.7.0_12, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_12.jdk 1.6.0_37-b06-434, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 1.6.0_37-b06-434, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home /Library/Java/JavaVirtualMachines/jdk1.7.0_12.jdk/Contents/Home /usr/libexec/java_home /Library/Java/JavaVirtualMachines/jdk1.7.0_12.jdk/Contents/Home echo $JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_12.jdk/Contents/Home/ […]

“自动激活bundle com.android.ide.eclipse.adt时发生错误”

当到这里时:右键单击我的项目>属性> Android下面的错误发生。 这个错误发生在我去项目或任何一个库的属性>安卓(忽略BibleTriviaPro)。 这个错误似乎是从哪里来的。 我想不出任何我已经改变的东西,现在突然间,今天突然出现这个错误。 我怎样才能解决这个问题?