小编Mah*_*rma的帖子

原子操作和多线程

最近我正在阅读一个教程,因为我发现了一个声明说...

"Java语言规范保证读取或写入变量是一个原子操作(除非变量是类型long或者double).类型的操作变量longdouble只有在用volatile关键字声明时才是原子的."

AtomicIntegerAtomicLong提供类似的方法getAndDecrement(),getAndIncrement()以及getAndSet()哪些是原子方法.

我对上述陈述感到困惑.你能澄清何时使用 AtomicIntegerAtomicLong上课.

java variables multithreading synchronization atomicity

28
推荐指数
2
解决办法
3万
查看次数

java中hashcode方法的目的是什么?

当我们有equals(),compareTo()方法为什么hashcode()在Java中有一个方法?

如果我们使用 HashTable我们必须覆盖hashcode()方法,除快速访问随机密钥有什么特殊原因吗?如果我们覆盖该hashcode()方法,可能的实现是什么?

Java如何确保内存中的对象唯一性?


Hashcodes are typically used to enhance the performance of large collections of data.

hashing我们计算hash code.这是一项额外的任务.当我们为添加到集合的每个对象执行其他操作时.性能如何提高?

java hashcode

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

在变量和方法名称中使用下划线

我对变量名和方法名中使用下划线(命名约定)_作为起始字母感到困惑.例如_sampleVariable_getUserContext().任何人都可以澄清何时使用它?

java variables naming-conventions

13
推荐指数
3
解决办法
2万
查看次数

byte/short Vs int和循环计数器变量

当我们知道循环的确切数量时,使用byte/short作为计数器变量是一个好习惯吗?例如

for (byte i = 1; i <= 26; i++)
Run Code Online (Sandbox Code Playgroud)

VS

for (short i = 1; i <= 26; i++)
Run Code Online (Sandbox Code Playgroud)

VS

 for (int i = 1; i <=26; i++)
Run Code Online (Sandbox Code Playgroud)

java for-loop

10
推荐指数
2
解决办法
3348
查看次数

为什么不调用从返回null的静态方法链接的静态变量抛出NPE?

我有以下代码

public class Test {
    static String mountain = "Everest";

    static Test favorite() {
        System.out.print("Mount ");
        return null;
    }

    public static void main(String[] args) {
        System.out.println(favorite().mountain);
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为它会提高一个NPE但是它是在给出Mount Everest输出可以任何人澄清?

java null static

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

无法使用表达式增加字节值,但使用增量运算符

为什么以下是有效的

byte i=0;
i++;
Run Code Online (Sandbox Code Playgroud)

其中以下内容无效

byte i=0;
i=i+1;
Run Code Online (Sandbox Code Playgroud)

会是什么原因?

我知道在i+1整个值明确增加1(这将是int值)的情况下,i++因此将发生编译问题,但是如果它做同样但没有得到任何错误.

java byte

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

如何删除容器的所有子组件?

我有一个带有a的swing应用程序JPanel,它充当我的应用程序的视图端口.我希望我的应用程序在用户单击菜单项或按钮时删除视图端口内的所有组件,并在其中创建新组件.我知道如何从容器中删除组件,目前尚不清楚哪个组件在视口内,所以我想我不能使用下面的代码:

viewport.remove(component);
viewport.revalidate();
viewport.repaint();
Run Code Online (Sandbox Code Playgroud)

我的问题:

  1. 如何在不知道要删除哪个组件的情况下删除容器内的所有组件?

  2. 这种方法是删除所有组件并创建其他组件并将它们插入视图端口是否正确?

java swing jpanel

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

Eclipse如何找到JRE或JDK locaton?

根据Eclipse常见问题解答.我看了

Eclipse DOES NOT consult the JAVA_HOME environment variable.

我怀疑eclipse是如何初始化的Virtual Machine.它不知道的位置Java.我的eclipse.ini文件没有-vm配置.我仍然可以运行eclipse.

来源

UPDATE

根据Eclipse 安装指南.Eclipse does not write entries to the Windows registry.

java eclipse windows jvm

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

如何使用iText获取AcroField属性?

我正在使用iText来阅读pdf文件.我的pdf中有20个Acro文本字段,具有不同的fillColor属性.我试图阅读属性,但无法阅读.有没有什么办法可以让我们在java中获得具有特定颜色的字段作为fillcolor属性?

编辑: 我使用以下Adobe Javascript在pdf中创建了acro字段

   var oFld = this.addField("nameOfField", "button", 0, fldRect);
    if (oFld != null) {
        oFld.buttonSetCaption("");
        oFld.borderStyle = border.s;
        oFld.fillColor = color.gray;
        oFld.textColor = color.white;
        oFld.lineWidth = 1;
    }
Run Code Online (Sandbox Code Playgroud)

更新:

现在我能够读取颜色属性.

我不确定这是否是正确的做法?

  if(dict.getAsDict(PdfName.MK).get(PdfName.BG) !=null){
            if(dict.getAsDict(PdfName.MK).get(PdfName.BG).toString().trim().equals("     
    [0.0, 1.0, 0.0]")){
                System.out.println(entry.getKey());
                System.out.println("Green");
            }
            if(dict.getAsDict(PdfName.MK).get(PdfName.BG).toString().trim().equals("
        [1.0, 0.0, 0.0]")){
                System.out.println(entry.getKey());
                System.out.println("Red");
            }

        }
Run Code Online (Sandbox Code Playgroud)

java pdf itext

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

为什么我们更喜欢byte []对int []或long []?

这可能是如此简单的问题,

我知道这byte是一种原始类型java,属于integer家庭,需要1 byte内存中的空间.当我们处理二进制数据时(例如,当我们读/写文件时),我们将数据存储到byte array我们的操作中,我怀疑的是,当我们有其他原语时,我们short,int为什么喜欢byte[]?任何人都可以澄清

提前致谢.

java primitive-types

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