jjzjj

java - 为什么在 Java 中允许初始化对 Null 的引用?

在以下使用JDBC的示例中(尽管这个问题并不特定于JDBC):Connectionconn=null;try{.....DothenormalJDBCthinghere....}catch(SQLExceptionse){if(conn!=null){conn.close();}}如果我没有将conn初始化为null那么编译器会提示说在catchblock中我不能使用一个没有的引用被初始化。Java默认将对象引用初始化为null那么为什么我需要显式地将其初始化为null。如果编译器不喜欢以null开头的引用的原始值,为什么它甚至接受我的显式初始化?注意:我使用EclipseLuna作为

java - 为什么在 Java 中允许双文字的任意精度?

刚从PeterLawreyspost中了解到这是有效的表达式,计算结果为true。333333333333333.33d==333333333333333.3d我的问题是,为什么允许使用不能用double表示的double文字,而不允许使用不能表示的整数文字。这个决定的理由是什么。旁注,我可以实际上触发double文字的超出范围编译错误:-)9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999

java - 为什么在 java 方法重写中允许具有协变返回类型,但不允许协变参数?

例如,我有一个Processor基类,其方法返回一个Object并将Object作为参数。我想扩展它并创建一个StringProcessor,它将返回String并将String作为参数。然而协变类型只允许返回值,而不是参数。这种限制的原因是什么?classProcessor{Objectprocess(Objectinput){//createacopyofinput,modifyitandreturnitreturncopy;}}classStringProcessorextendsProcessor{@OverrideStringprocess(Stringinput){//pe

java - 为什么在 Java 中允许将 double 转换为 char?

为什么charc=(char)65.8;允许在Java中使用?因为65.8不是一个确切的Unicode值,它不应该抛出错误吗?我知道double被截断为整数,在本例中为65,但在我看来允许程序员进行这样的转换似乎是糟糕的设计。 最佳答案 这就是所谓的缩小类型转换。来自oracledocs:22specificconversionsonprimitivetypesarecalledthenarrowingprimitiveconversions:shorttobyteorcharchartobyteorshortinttobyte,s

java - Java 中允许空格字符的正则表达式

大家好,我正在尝试允许一些文本输入在发送之前通过正则表达式检查。我希望文本仅包含A-Z、0-9和空格“”字符。现在这是我的代码:if(!title.matches("[a-zA-Z0-9_]+"){//fail}else{//success}然而,当我输入类似“Thisisatest”的内容时,这仍然会给出//fail结果有什么想法吗?谢谢大家。 最佳答案 您没有在正则表达式中包含空格。尝试以下操作:if(!title.matches("[a-zA-Z0-9]+")) 关于java-Ja

Php - 在 rewriteRule 中允许空间

嘿,现在我有这个重写(用于seo):RewriteRule^([a-zA-Z0-9_-]+)$index.php?id=$1它可以工作,但只能使用这样的url:http://example.com/product/anyProduct但是当url是这样的时候:http://example.com/product/anyProduct有一个空格,我得到404-错误。所以,我如何用“-”替换任何空格?我试过:RewriteRule^([a-zA-Z0-9_-]+)$index.php?id=$1但这对我不起作用,知道吗?问候! 最佳答案

seo - Google 和 Yandex 索引是否存在路径,如果我在 robots.txt 中允许它,但其他页面不包含其中的链接

我有一些页面,比如/hidden_​​archive,没有被任何其他页面引用。我在robots.txt的下一行中包含Allow:/hidden_​​archive。搜索爬虫会索引该页面吗? 最佳答案 我会说:不。为什么不能在页面上添加一些链接?没有人声称它们必须对人类可见... 关于seo-Google和Yandex索引是否存在路径,如果我在robots.txt中允许它,但其他页面不包含其中的链接,我们在StackOverflow上找到一个类似的问题: htt

c++ - 在类定义中允许不必要的分号的目的

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭7年前。Improvethisquestion考虑以下程序:#includestructTest{inta;Test(ints):a(s){};//Observethissemicolonintgeta(){returna;}};intmain(){Testt(3);std::cout即使我在gcc和clang中使用-pedantic-errors选项,程序也能正常编译。(参见现场演示here和here。)如果我在geta()成员函数

c++ - 为什么在运算符重载中允许返回构造函数?

为什么在运算符重载中允许返回构造函数?这是一个例子:ComplexComplex::operator*(constComplex&operand2)const{doubleReal=(real*operand2.real)-(imaginary*operand2.imaginary);doubleImaginary=(real*operand2.imaginary)+(imaginary*operand2.real);returnComplex(Real,Imaginary);}它似乎返回对象的构造函数而不是对象本身?它在那里返回什么?这似乎更有意义:ComplexComplex::o

c++ - 为什么在此 constexpr 函数中允许使用 std::swap?

我写了一个计算两个数字的gcd的函数,它使用std::swap在第二个参数大于第一个参数的情况下。一段时间后,我意识到std::swap不是constexpr,但我的函数仍然编译并成功运行。我尝试使用MinGW-w648.1.0和VisualC++2017,它对两者都有效。我的第一个想法是因为constexpr允许在运行时执行函数,所以我尝试了std::integral_constant,它奏效了。但是,我不能使用我自己的任何非constexpr函数(这是我所期望的)。这是我的测试代码:#includeinlinevoidfoo()noexcept{}templateconstexpr