小编Rav*_*avi的帖子

访谈:我们可以实例化抽象类吗?

采访者问:我们可以实例化一个抽象类吗?我说,不,他告诉我 - 错,我们可以.

我对此有点争论.然后他告诉我自己在家里试试.

abstract class my {
    public void mymethod() {
        System.out.print("Abstract");
    }
}

class poly {
    public static void main(String a[]) {
        my m = new my() {};
        m.mymethod();
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里,我正在创建我的类的实例并调用抽象类的方法.有人可以向我解释一下吗?在我的采访中我真的错了吗?

java oop class object abstract

561
推荐指数
10
解决办法
23万
查看次数

我们什么时候应该使用Observer和Observable?

一位采访者问我:

什么是ObserverObservable我们何时应该使用它们?

我不知道这些术语的,所以,当我回到家,开始对谷歌搜索ObserverObservable,我发现来自不同资源的一些要点:

1)Observable是一个类,Observer是一个接口.

2)Observable该类维护一个Observers 列表.

3)当一个Observable对象被更新时,它会调用update()每个Observers 的方法来通知它,它被改变了.

我找到了这个例子:

import java.util.Observable;
import java.util.Observer;

class MessageBoard extends Observable
{
    public void changeMessage(String message) 
    {
        setChanged();
        notifyObservers(message);
    }
}

class Student implements Observer 
{
    @Override
    public void update(Observable o, Object arg) 
    {
        System.out.println("Message board changed: " + arg);
    }
}

public class MessageBoardTest 
{
    public static void main(String[] args) 
    { …
Run Code Online (Sandbox Code Playgroud)

java design-patterns observers observable observer-pattern

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

我们何时应该在字符串文字上使用String的实习方法

根据String #intern(),intern如果在String池中找到String,则该方法应该从String池返回String,否则将在String池中添加新的字符串对象并返回此String的引用.

所以我试过这个:

String s1 = "Rakesh";
String s2 = "Rakesh";
String s3 = "Rakesh".intern();

if ( s1 == s2 ){
    System.out.println("s1 and s2 are same");  // 1.
}

if ( s1 == s3 ){
    System.out.println("s1 and s3 are same" );  // 2.
}
Run Code Online (Sandbox Code Playgroud)

我期待s1 and s3 are same将被打印为s3被实习,并且s1 and s2 are same不会被打印.但结果是:两行都打印出来.这意味着,默认情况下,字符串常量被实现.但如果是这样,那么为什么我们需要这种intern方法呢?换句话说,我们什么时候应该使用这种方法?

java string string-interning

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

Java中default关键字的用途是什么?

Java中的接口类似于类,但接口的主体只能包含抽象方法final字段(常量).

最近,我看到了一个问题,看起来像这样

interface AnInterface {
    public default void myMethod() {
        System.out.println("D");
    }
}
Run Code Online (Sandbox Code Playgroud)

根据接口定义,允许抽象方法.为什么它允许我编译上面的代码?什么是default关键字?

另一方面,当我试图写下面的代码时,它说 modifier default not allowed here

default class MyClass{

}
Run Code Online (Sandbox Code Playgroud)

代替

class MyClass {

}
Run Code Online (Sandbox Code Playgroud)

谁能告诉我default关键字的目的?是否只允许在界面内?它与default(无访问修饰符)有何不同?

java default interface java-8

80
推荐指数
5
解决办法
4万
查看次数

为什么静态初始化块中不允许使用合格的静态最终变量?

情况1

class Program {
    static final int var;

    static {
        Program.var = 8;  // Compilation error
    }

    public static void main(String[] args) {
        int i;
        i = Program.var;
        System.out.println(Program.var);
    }
}
Run Code Online (Sandbox Code Playgroud)

案例2

class Program {
    static final int var;

    static {
        var = 8;  //OK
    }

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

为什么案例1会导致编译错误?

java static final qualified-name static-initialization

52
推荐指数
2
解决办法
2053
查看次数

web.xml中url-pattern的意义是什么以及如何配置servlet?

我已web.xml为我的应用程序手动配置.现在,我在运行我的应用程序时遇到了问题.我正试图servlet从我的jsp页面访问我的.但是,它正在抛出错误page not found.

servlet位于文件夹下方

<application folder>/WEB-INF/classes/<package>
Run Code Online (Sandbox Code Playgroud)

那么,究竟应该是在Servlet中的条目url-patternservlet-mapping.这样,servlet可以通过URL访问.

java web.xml servlets url-pattern servlet-mapping

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

用于在两个已知字符串之间选择字符串的SQL查询

我需要一个SQL查询来获取两个已知字符串之间的值(返回的值应该以这两个字符串开头和结尾).

一个例子.

"我所知道的是,这条狗非常糟糕,无论其他人怎么想,都要立即受到严厉的惩罚."

在这种情况下,已知的字符串是"狗"和"立即".所以我的询问应该回归"狗一直非常糟糕,需要立刻进行严厉的惩罚"

到目前为止,我已经想出了这个,但无济于事:

SELECT SUBSTRING(@Text, CHARINDEX('the dog', @Text), CHARINDEX('immediately', @Text))
Run Code Online (Sandbox Code Playgroud)

@Text是包含主字符串的变量.

有人可以帮我解决我出错的地方吗?

sql sql-server substring

29
推荐指数
8
解决办法
17万
查看次数

工厂方法模式的真实世界示例

我刚读了Factory Method.据我所知,它提供了一种将实例化委托给子类的方法.但我无法理解现实场景中的可能用途.

任何人都可以给出一个典型的例子,展示如何使用Factory方法模式,以便我可以与我所读到的内容相关联.

工厂方法模式是最佳解决方案的问题陈述足以使其清楚.

design-patterns factory-pattern

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

编译器错误:引用调用模糊

情况1

static void call(Integer i) {
    System.out.println("hi" + i);
}

static void call(int i) {
    System.out.println("hello" + i);
}

public static void main(String... args) {
    call(10);
}
Run Code Online (Sandbox Code Playgroud)

案例1的输出:hello10

案例2

static void call(Integer... i) {
    System.out.println("hi" + i);
}

static void call(int... i) {
    System.out.println("hello" + i);
}

public static void main(String... args) {
    call(10);
}
Run Code Online (Sandbox Code Playgroud)

显示编译错误reference to call ambiguous.但是,我无法理解.为什么?但是,当我评论出任何call()方法时Case 2,它的工作正常.任何人都可以帮助我理解,这里发生了什么?

java methods polymorphism boxing java-7

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

当只有子类实现可序列化时,序列化如何工作

只有子类实现了Serializable接口.

import java.io.*;

public class NewClass1{

    private int i;
    NewClass1(){
    i=10;
    }
    int getVal() {
        return i;
    }
    void setVal(int i) {
        this.i=i;
    }
}

class MyClass extends NewClass1 implements Serializable{

    private String s;
    private NewClass1 n;

    MyClass(String s) {
        this.s = s;
        setVal(20);
    }

    public String toString() {
        return s + " " + getVal();
    }

    public static void main(String args[]) {
        MyClass m = new MyClass("Serial");
        try {
            ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("serial.txt"));
            oos.writeObject(m); …
Run Code Online (Sandbox Code Playgroud)

java inheritance serialization deserialization notserializableexception

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