小编Rad*_*def的帖子

Java中布尔值和布尔值的默认值

Java中的boolean(primitive)和Boolean(primitive wrapper)的默认值是什么?

java boolean default-value

240
推荐指数
6
解决办法
38万
查看次数

Java泛型类型擦除:何时以及发生了什么?

在Oracle的网站上读到了Java的类型擦除.

什么时候发生类型擦除?在编译时还是运行时?当班级加载?当类被实例化时?

很多站点(包括上面提到的官方教程)都说在编译时会发生类型擦除.如果在编译时完全删除了类型信息,那么当调用使用泛型的方法而没有类型信息或错误的类型信息时,JDK如何检查类型兼容性?

考虑以下示例:Say class A有一个方法,empty(Box<? extends Number> b).我们编译A.java并获取类文件A.class.

public class A {
    public static void empty(Box<? extends Number> b) {}
}
Run Code Online (Sandbox Code Playgroud)
public class Box<T> {}
Run Code Online (Sandbox Code Playgroud)

现在我们创建另一个类B,该类empty使用非参数化参数(原始类型)调用该方法:empty(new Box()).如果我们编译B.javaA.class在类路径中,javac的是足够聪明,引发警告.所以A.class 一些类型信息存储在其中.

public class B {
    public static void invoke() {
        // java: unchecked method invocation:
        //  method empty in class A is applied to given types
        //  required: Box<? extends java.lang.Number>
        //  found: …
Run Code Online (Sandbox Code Playgroud)

java generics type-erasure

233
推荐指数
6
解决办法
8万
查看次数

String,StringBuffer和StringBuilder

请告诉我一个实时的情况来比较String,StringBufferStringBuilder

java oop string stringbuilder

206
推荐指数
6
解决办法
16万
查看次数

如何在没有IllegalMonitorStateException的Java中使用wait和notify?

我有2个矩阵,我需要将它们相乘,然后打印每个单元格的结果.一旦一个单元格准备就绪,我需要打印它,但是例如我需要在单元格[2] [0]之前打印[0] [0]单元格,即使[2] [0]的结果已经准备好了.所以我需要按顺序打印它.所以我的想法是让打印机线程等待,直到multiplyThread通知它正确的单元格已准备好打印,然后printerThread将打印单元格并返回等待等等.

所以我有这个线程来进行乘法运算:

public void run() 
{
    int countNumOfActions = 0; // How many multiplications have we done
    int maxActions = randomize(); // Maximum number of actions allowed

    for (int i = 0; i < size; i++)
    {       
        result[rowNum][colNum] = result[rowNum][colNum] + row[i] * col[i];
        countNumOfActions++;
        // Reached the number of allowed actions
        if (countNumOfActions >= maxActions)
        {
            countNumOfActions = 0;
            maxActions = randomize();
            yield();
        }   
    }
    isFinished[rowNum][colNum] = true;
    notify();
}
Run Code Online (Sandbox Code Playgroud)

打印每个单元格结果的线程:

public …
Run Code Online (Sandbox Code Playgroud)

java multithreading exception java-threads

128
推荐指数
6
解决办法
23万
查看次数

从扫描仪获取char输入

我试图找到一种char从键盘输入的方法.

我试过用:

Scanner reader = new Scanner(System.in);
char c = reader.nextChar();
Run Code Online (Sandbox Code Playgroud)

此方法不存在.

我试着把它c作为一个String.然而,它并不总是适用于所有情况,因为我从我的方法调用的另一种方法需要一个char输入.因此,我必须找到一种方法来明确地将char作为输入.

有帮助吗?

java input char java.util.scanner

112
推荐指数
5
解决办法
89万
查看次数

无法在Java中创建LinkedLists数组......?

我正在研究一个稀疏矩阵类,需要使用一个数组LinkedList来存储矩阵的值.阵列的每个元素(即每个元素LinkedList)代表矩阵的一行.并且,LinkedList数组中的每个元素代表一列和存储的值.

在我的课堂上,我有一个数组的声明:

private LinkedList<IntegerNode>[] myMatrix;
Run Code Online (Sandbox Code Playgroud)

并且,在我的构造函数中SparseMatrix,我尝试定义:

myMatrix = new LinkedList<IntegerNode>[numRows];
Run Code Online (Sandbox Code Playgroud)

我最终得到的错误是

无法创建通用数组LinkedList<IntegerNode>.

所以,我有两个问题:

  1. 我做错了什么,而且
  2. 如果无法创建数组的声明,为什么类型可以接受?

IntegerNode是我创建的一个类.并且,我的所有类文件都打包在一起.

java arrays generics

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

在java中为已初始化的arraylist添加多个项目

我正在谷歌搜索它似乎无法找到语法.我arraylist可能会以不同基于用户设置来填充,所以我初始化它

ArrayList<Integer> arList = new ArrayList<Integer>();
Run Code Online (Sandbox Code Playgroud)

而现在我想添加数百个整数,而不是一个一个地添加 arList.add(55);

java collections arraylist

63
推荐指数
4
解决办法
14万
查看次数

Double.parseDouble(String)和Double.valueOf(String)有什么区别?

我想转换StringDouble数据类型.我不知道是否应该使用parseDoublevalueOf.

这两种方法有什么区别?

java type-conversion

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

Java中的ArrayList或List声明

这两个声明有什么区别?

声明1:

ArrayList<String> arrayList = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)

宣言2:

List<String> arrayList = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)

java arraylist

62
推荐指数
3
解决办法
24万
查看次数

如何对Collection <T>进行排序?

我有一个通用的Collection,我试图找出如何排序其中包含的项目.我尝试了一些东西,但我不能让它们中的任何一个工作.

java sorting collections

51
推荐指数
5
解决办法
11万
查看次数