相关疑难解决方法(0)

连接多个字符串时将创建多少个字符串对象?

在一次采访中,有人问我要在给定问题上创建的对象数量:

String str1 = "First";
String str2 = "Second";
String str3 = "Third";
String str4 = str1 + str2 + str3;
Run Code Online (Sandbox Code Playgroud)

我回答说将在字符串池中创建6个对象

三个变量中的每个变量都为3。
1代表str1 + str2(假设str)。
1代表str2 + str3
1将代表str + str3str = str1 + str2)。

我给出的答案正确吗?如果没有,正确答案是什么?

java string string-concatenation string-building string-pool

36
推荐指数
3
解决办法
1138
查看次数

java中的显式类型转换示例

我在http://www.javabeginner.com/learn-java/java-object-typecasting上遇到过这个例子,在谈到显式类型转换的部分中,有一个例子让我感到困惑.

这个例子:

class Vehicle {

    String name;
    Vehicle() {
        name = "Vehicle";
    }
}

class HeavyVehicle extends Vehicle {

    HeavyVehicle() {
        name = "HeavyVehicle";
    }
}

class Truck extends HeavyVehicle {

    Truck() {
        name = "Truck";
    }
}

class LightVehicle extends Vehicle {

    LightVehicle() {
        name = "LightVehicle";
    }
}

public class InstanceOfExample {

    static boolean result;
    static HeavyVehicle hV = new HeavyVehicle();
    static Truck T = new Truck();
    static HeavyVehicle hv2 = null;
    public static void main(String[] …
Run Code Online (Sandbox Code Playgroud)

java casting downcast

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

如何在java中实现数组?

数组实现为java中的对象吗?如果是这样,我在哪里可以查看数组类的源代码.我想知道数组中的长度变量是否被定义为常量,如果是这样,为什么它不是所有大写字母LENGTH使代码更容易理解.

java arrays constants

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

Java Spring - RowMapper ResultSet - 整数/空值

我有一个Java SE 8 Spring 4.1.6-RELEASE应用程序,我正在实现该org.springframework.jdbc.core.RowMapper<T>接口,我java.sql.ResultSet对其T mapRow(ResultSet rs, int rowNum)方法中传递的接口有一些疑问.

当我检查ResultSet类时,我看到了一堆方法来获取列值:

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
? Return Type  ?       Method        ?                                                                   Return (javadoc, se 8)                                                                   ?
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
? String       ? getString           ? the column value; if the value is SQL NULL, the value returned is null                                                                                     ?
? boolean      ? getBoolean          ? the column value; if the value is SQL NULL, the value returned is false                                                                                    ?
? byte         ? getByte             ? the column value; if …

java spring jdbc jdbctemplate

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

Java中的多维数组扩展了哪个类?

我需要知道Java中的哪个类多维数组完全延伸?

当我们分配

Object[] ref=new int[]{1,2,3};
Run Code Online (Sandbox Code Playgroud)

编译器抱怨对象是不同类型的.所以似乎一维数组扩展Object; 我已经知道了.

但是当我们分配时

Object[] ref2=new int[][]{{1,2,3},{4,5,6}};
Run Code Online (Sandbox Code Playgroud)

编译器不会抱怨.所以似乎二维数组扩展Object[].

但是当我打印它的超类名称时:

System.out.println(ref2.getClass().getSuperclass().getName());
Run Code Online (Sandbox Code Playgroud)

我有java.lang.Object.

所以有人能解释这里发生了什么吗?

java arrays multidimensional-array

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

为什么Java不允许扩展数组类型

作为一个实验,我试图int像这样扩展一个-array:

public class IntArrayExtension extends int[]{
 // additional fields and methods.
}
Run Code Online (Sandbox Code Playgroud)

在类本身中添加一些与排序,交换,子数组构建等相关的方法.但是我在编译时遇到了这个错误:

IntArrayExtension.java:1: unexpected type
found   : int[]
required: class
public class IntArrayExtension extends int[]{
                                          ^
1 error
Run Code Online (Sandbox Code Playgroud)

我很想知道:为什么Java不允许扩展数组?

java arrays syntax inheritance

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

从JVM的角度来看,是否继承了原始数组?

我的疑问是这个:

在Java中,不允许从数组继承,即,不能执行以下操作:

class FloatVec extends float[]
{
    // Vector methods.
}

FloatVec somevec = new FloatVec()[] { 1, 2, 3 }; // With array initializer.
Run Code Online (Sandbox Code Playgroud)

甚至更好:

class FloatVec3 extends float[3]
{
    // Regular accessor.
    public float getX() {
        return this[0];
    }
    // Or say, make it the 'this' implicit like with other fields:
    public void setVec(float x, float y, float z) {
        [0] = x;
        [1] = y;
        [2] = z;
    }
    // And specific vec3 methods like:
    public float …
Run Code Online (Sandbox Code Playgroud)

java arrays inheritance jvm jvm-hotspot

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

Java中的数组是什么类

数组是对象,所有对象都来自一个类.如果我执行以下代码:

public class Test {
    public static void main(String[] args) {
        String str = "Hello";
        System.out.println(str.getClass());
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是class java.lang.String.

但是如果我执行以下内容:

public class Test {
    public static void main(String[] args) {
        int arr[] = new int[10];
        System.out.println(arr.getClass());
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是class [I.

我的问题是:

  1. 数组的类是什么?
  2. 为什么结果呢?
  3. 如果我想使用instanceof操作员我应该如何使用它?如果我执行System.out.println(arr instanceof Object);,它完美地工作.

java arrays

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

Java函数参数是否总是按值传递给数组?

可能重复:
Java是"传递引用"吗?

如果我们有大byte[]数组(如40Mb),我们想用方法发送它

method(array);
Run Code Online (Sandbox Code Playgroud)

数组会被复制吗?因此,Java env => 80Mb内存将增加另外40Mb ,对吗?

如果是,我们如何在调用方法后销毁'first'数组?

java arrays pass-by-value

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

为什么数组类没有任何实用方法?

为什么Java编程语言数组不像常规类那样,例如它不能继承而且它的类中没有任何实用方法(例如a String)?

有许多方法可以设计用于数组,例如 swap()搜索方法,排序方法,分割/拼接方法等.

java arrays

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

为什么Hashmap值类型需要double []但不能加倍?

我正在开发一个java应用程序,我在其中使用Hashmap,它将字符串作为键,并将double作为值,但我知道Hashmap不能将原始类型作为泛型,但它可以使用double [].我可以知道为什么吗?

java hashmap

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

即使使用基元,List&lt;int[]&gt; 也是正确的语句

在 Java 中,在集合的尖括号 <> 内,我们应该提供像整数、字符串、字符等泛型,我们不能给出基元,但这是正确的列表/集合初始化:

List<int[]> ls = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

基元数组可以定义为泛型吗?因为据我所知Java中<>都是用来定义泛型的。当我第一次看到这种初始化时,我感到惊讶和好奇,并且不相信。

java generics collections

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

数组的子类型

如果我拥有class A {class B extends A {愿意

B[] b = new B[1];
b[0] = new B();
System.out.println(b instanceof A[]);
Run Code Online (Sandbox Code Playgroud)

打印出真或假?

java

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