小编Nat*_*hes的帖子

标识与关键字

我在书中读到OCJP for Java6这一部分有断言.我到达了一个部分,它概述了如果将'assert'一词用作关键字或标识符,编译器将如何反应.

a Keyword和an有identifier什么区别?任何人都可以给我一个简单的解释,另外还有一个或多个例子吗?

java scjp assertions

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

为所有组件Java设置相同的字体

我想为a中的所有组件设置一个特定的字体,JPanel但我更喜欢这个问题仍然更加通用,而不仅限于JPanel.如何将字体设置为容器中的组件列表(JFrame或JPanel)?

java fonts swing jpanel jframe

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

Visual Studio 2012代码覆盖率

我们有非常复杂的基于Web的产品,包括固定数量的Web服务等.我正在尝试使用VS 2012命令行实用程序vstest.console.exe来收集产品中所有程序集的代码覆盖率.收集单元测试的代码覆盖率非常容易,但是,没有标记或开关指示我可以将进程附加到IIS或收集Web服务(客户端和服务器端)的信息.

有什么建议?

code-coverage visual-studio-2012

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

JVM同步最终块

查看Java虚拟机规范和编译代码,告诉我们如何在java中实现"synchronized"块.以下代码:

public void testSync()
{
    Object obj = getSomeObject();
    synchronized (obj) { doSomething(); }
}
Run Code Online (Sandbox Code Playgroud)

...大致相当于这个伪代码:

public void testSync()
{
    Object obj = getSomeObject();
    Object __temp = obj;
    monitorenter __temp;
    try { doSomething(); }
    finally { monitorexit __temp; }
}
Run Code Online (Sandbox Code Playgroud)

......有一个例外.

出于某种原因,异常表显示两个finally处理程序.例如:

  Exception table:
     from    to  target type
        12    20    23   any
        23    25    23   any
Run Code Online (Sandbox Code Playgroud)

第一个处理程序是我期望的,但第二个处理程序实际上是第一个处理程序的finally块,如果它捕获异常,它会执行相同的处理程序.您可以通过以下方式将其可视化:

try { doSomething(); }
finally { beginTry: try { monitorexit __temp; } finally { goto beginTry; } }
Run Code Online (Sandbox Code Playgroud)

有谁知道这是为什么?如果它只是finally块,则表中的第二个条目不会出现.此外,如果它已经被抛出异常,我看不出任何可能的理由想要再次执行finally块. …

java multithreading jvm synchronized try-finally

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

与垃圾收集语言一起使用时,哪种代码的CPU /内存效率更高?

我有两个虚拟代码片段(让我们考虑它们是用Java或C#编写的,所有变量都是本地的):

代码1:

int a;
int b = 0;

for (int i = 1; i < 10 ; i++)
{
    a = 10;
    b += i;

    // a lot of more code that doesn't involve assigning new values to "a"
}
Run Code Online (Sandbox Code Playgroud)

代码2:

int b = 0;

for (int i = 1; i < 10 ; i++)
{
    int a = 10;
    b += i;

    // a lot of more code that doesn't involve assigning new values to "a"
}
Run Code Online (Sandbox Code Playgroud)

乍一看,我会说两个代码都消耗相同的内存量,但代码1的CPU效率更高,因为它只创建和分配变量a …

c# java garbage-collection

7
推荐指数
2
解决办法
1843
查看次数

递归头痛

任务:

给定一个m包含整个非负数的二维数组,我们将"路径"定义为相邻单元的集合(对角线步骤不算作邻居)从开始到row == 0 && col == 0结束row == m.length - 1 && col == m[0].length - 1.

"路径" 的成本是"路径"的每个单元中的值的总和.

例:

数组中的两个可能路径: 数组中的可能路径

路径1(虚线)的成本:8 + 4 + 2 + 8 + 9 + 9 + 7 + 5 = 52;

路径2的成本(实线):8 + 6 + 3 + 8 + 9 + 4 + 1 + 2 + 1 + 7 + 6 + 5 = 60

去做: …

java arrays recursion

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

这个例子中是否存在竞争条件?如果是这样,怎么可以避免呢?

我正在查看一些通知/等待示例,并遇到了这个.我理解同步块本质上定义了一个关键部分,但是这不是一个竞争条件吗?Nothing指定首先输入哪个同步块.

public class ThreadA {
    public static void main(String[] args){
        ThreadB b = new ThreadB();
        b.start();

        synchronized(b){
            try{
                System.out.println("Waiting for b to complete...");
                b.wait();
            }catch(InterruptedException e){
                e.printStackTrace();
            }

        System.out.println("Total is: " + b.total);
        }
    }
}

class ThreadB extends Thread {
    int total;

    @Override
    public void run(){
        synchronized(this){
            for(int i=0; i<100 ; i++){
                total += i;
            }
            notify();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

每个网站的输出:

等待b完成......

总计是:4950

java multithreading synchronization synchronized race-condition

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

Java使用实例方法而不是类/静态方法为每个实例化对象创建唯一ID

对此非常新,所以我希望我的标题中的术语正确.

我试图找出如何创建将执行以下操作的实例方法:

- 返回身份证号码.

- 由于每个对象是从类构造函数(实例化?)创建的,因此会为其分配唯一的整数ID号.第一个ID号是1,并且当实例化新对象时,将分配连续的数字.

我能够找到上面做的类/静态方法的例子但是我无法弄清楚如何用实例方法做到这一点.我的尝试如下:

class Coordinates
{
    private int iD = 0;
    private float xCoordinate;
    private float yCoordinate;

    public Coordinates()
    {
        //Asks for input and assigns it to the two variables below
        Scanner keyboard = new Scanner(System.in);
        System.out.println("Please enter the X Coordinate followed by the return key");
        xCoordinate = keyboard.nextDouble();
        System.out.println("Please enter the Y Coordinate followed by the return key");
        yCoordinate = keyboard.nextDouble();

        iD++;
    }

    public getiD()
    {
        return iD;
    }

}
Run Code Online (Sandbox Code Playgroud)

我的主要方法如下:

public class …
Run Code Online (Sandbox Code Playgroud)

java static increment uniqueidentifier instance-methods

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

R2DBC、Spring Jdbc、Spring Data JDBC?

关于使用 Spring JDBC,它工作得非常好,并且在使用批处理时比 JPA 有一些改进。

我很想了解当您已经拥有Spring Data JDBC 时为什么要使用 Spring Data JDBC

我很想了解当您已经拥有Spring JDBC时为什么要使用R2DBC

spring spring-jdbc spring-data-jdbc r2dbc

7
推荐指数
2
解决办法
8117
查看次数

java中内部静态类的构造函数?

我写了下面的代码

public class Reader1 {
    private int pageNumber;

    private class ReaderName1{
        public int getPage(){
        return pageNumber;
        }
    }
    static class ReaderFound{

    }
}
Run Code Online (Sandbox Code Playgroud)

当我在已编译的代码上使用Java类文件反汇编程序javap时

1. for Reader1.class



class Reader1$ReaderName1 {
              final Reader1 this$0;
              private Reader1$ReaderName1(Reader1);
              public int getPage();
            }


2. for Reader1$ReaderName1.class



    public class Reader1 {
          private int pageNumber;
          public Reader1();
          static int access$000(Reader1);
        }

3. for Reader1$ReaderFound.class



     class Reader1$ReaderFound {
          Reader1$ReaderFound();
        }
Run Code Online (Sandbox Code Playgroud)

我的问题是,因为ReaderFound是一个静态类,它怎么能有一个默认的构造函数?如果是这样的话?是允许的吗?

如果允许在Reader1 $ ReaderFound类中找到什么样的构造函数,因为它不能是静态的.(此外,由于构造函数被隐式调用以初始化一个对象,因为ReaderFound是一个静态类,所以我们没有它的对象.我对第一个问题的观点)

java oop javap

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