什么是空指针异常(java.lang.NullPointerException)以及它们的原因是什么?
可以使用哪些方法/工具来确定原因,以便停止异常导致程序过早终止?
这更像是一个设计问题.(所以,没有代码.我可以发布创建Enum的代码并将其指定为null如果你想让我这样做.:))我最近一直在思考这个问题,但不能提出一个很好的理由.Enum常量是隐式静态和最终的.Enum意味着 - "我可以取一个存在于我身上的常数值".为什么允许Enum具有空值?为什么不隐式地将Enum的值默认为a Enum.DEFAULT或Enum.None?这不是比允许Enum更好的方法null吗?
我正在学习正则表达式的高级用法,并注意到许多帖子使用(*SKIP)或(*F)在其中.
我发布了一个问题,其中的想法是匹配没有yellow但blue只有brown在蓝色之后存在的行.正确的答案是:
.*yellow.*(*SKIP)(*F)|^.*\bblue\b(?=.*brown).*$
Run Code Online (Sandbox Code Playgroud)
我也尝试了下面的外观表达式但是并没有适用于所有情况:
^((?!yellow).)*blue(?=.*brown).*$
Run Code Online (Sandbox Code Playgroud)
我不知道这些(*SKIP)(*F)标志,所以问题是,这些标志如何工作?他们在做什么?还有其他这样的旗帜吗?
谢谢.
我在C中编写了一些测试代码.我错误地插入了;一个#define,这给了我错误.为什么#defines 不需要分号?
进一步来说 :
方法1:有效
const int MAX_STRING = 256;
int main(void) {
char buffer[MAX_STRING];
}
Run Code Online (Sandbox Code Playgroud)
方法2:不起作用 - 编译错误.
#define MAX_STRING 256;
int main(void) {
char buffer[MAX_STRING];
}
Run Code Online (Sandbox Code Playgroud)
这些代码行为不同的原因是什么?这两个MAX_STRING都不是常量吗?
我的问题是:使用它是否有意义Executors.newFixedThreadPool(1)??.在两个线程(main + oneAnotherThread)场景中,使用执行程序服务是否有效?是否通过调用new Runnable(){ }比使用ExecutorService更好地直接创建新线程?在这种情况下使用ExecutorService有什么好处和缺点?
PS:主线程和oneAnotherThread不访问任何公共资源.
我经历过:使用ExecutorService有什么好处?.并且一次只有一个线程!
在C++我可以做这样的事情......
String s = "abc";
char c = s[i]; // works fine...
Run Code Online (Sandbox Code Playgroud)
但是Java,如果我尝试做同样的事情,它会抛出一个错误.为什么?.
在java,要实现上述目标,我必须做到:
s.toCharArray();
Run Code Online (Sandbox Code Playgroud)
Strings的实现与C++Java中的实现有何不同?
我有以下代码.
class Test {
int i = 0;
Test() {
System.out.println(this);
System.out.println(this.i);
}
}
public class Demo extends Test {
int i = 10;
Demo() {
super();
System.out.println("calling super");
System.out.println(this);
System.out.println(this.i);
}
public static void main(String[] args) throws IOException {
Demo d = new Demo();
}
}
O/P : Demo@2e6e1408
0
calling super
Demo@2e6e1408
10
Run Code Online (Sandbox Code Playgroud)
当我执行程序并打印"this"的值时,在超类构造函数和子类构造函数中,this(地址位置)的值显示为childClassName @ someValue ..我的问题是,为什么不是我当我在超类中打印"this"的值时,得到Test的值,即Test @ someVal(Super class).. ASAIK,Super class也会在内存中有一个位置/位置,所以,为什么我没有得到Test @someValue在第一个SOP ......
PS:我知道基于引用类型(LHS)引用变量,并且基于对象类型(RHS)调用方法.
我使用的是Spring 4和Tomcat.问题是有时我必须在我的过滤器中抛出(自定义)RuntimeException(控件甚至没有到达控制器).问题是因为我没有抛出tomcat理解的异常,它被转换为500(内部服务器错误).我相信403 Forbidden会比500更好(对于我的自定义例外).我看过@ExceptionHandler和@ControllerAdvice注释.但这些只有在控制器到达控制器时才起作用.
截至目前,我HTTPResponse在我的过滤器中手动将状态设置为403 .有没有更好的方法来处理这种情况?
为什么这样做:
struct person {
char name[50];
short mental_age;
} p1 = {"Donald", 4};
Run Code Online (Sandbox Code Playgroud)
但不是这个:
typedef struct {
char name[50];
short mental_age;
} PERSON p1 = {"Donald", 4};
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以在定义这个结构时创建一个typedef结构并初始化Donald?
我已经浏览了以下链接为什么在Java中使用静态嵌套接口?.
在我的代码库中我有:
public interface I1{
public static interface I2 {
public void doSomething();
}
//some other methods
public void myMethod(I2 myObject);
}
Run Code Online (Sandbox Code Playgroud)
在另一个不同包中的其他类中:
public abstract class SomeClass implements I2{
//mandatory method...
}
Run Code Online (Sandbox Code Playgroud)
现在,我的问题是- "难道真的有一个很好的设计,把I2在I1"?
编辑:
public interface XClientSession {
static public interface OnQueryResultSentListener {
public void onQueryResultSent(XQueryResult result);
}
public void setOnQueryResultSentListener(OnQueryResultSentListener listener);
}
Run Code Online (Sandbox Code Playgroud)
/在另一个文件中我有......
public abstract class XAppAgentBase extends IntentService
implements XClient, OnQueryResultSentListener {
}
Run Code Online (Sandbox Code Playgroud)