小编Lio*_*ion的帖子

Java静态导入

通过实验,我发现即使在静态上下文中,Java非静态方法也会覆盖范围内所有相同的命名方法.即使不允许参数重载.喜欢

import java.util.Arrays;    
import static java.util.Arrays.toString;

public class A {
    public static void bar(Object... args) {
        Arrays.toString(args);
        toString(args);     //toString() in java.lang.Object cannot be applied to (java.lang.Object[])
    }
}
Run Code Online (Sandbox Code Playgroud)

我在规范中找不到任何相关内容.这是一个错误吗?如果不是,有没有理由实施这样的语言?

UPD:Java 6不编译此示例.问题是 - 为什么?

java scope overloading language-design static-import

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

尝试...除了...作为Python 2.5中的错误 - Python 3.x

我想在Python 2.5,2.7和3.2中保留并使用异常的错误值.

在Python 2.5和2.7(但不是3.x)中,这适用于:

try:
    print(10 * (1/0))
except ZeroDivisionError,  error:       # old skool
    print("Yep, error caught:", error)
Run Code Online (Sandbox Code Playgroud)

在Python 2.7和3.2中(但不在2.5中),这适用于:

try:
    print(10 * (1/0))
except (ZeroDivisionError) as error:    # 'as' is needed by Python 3
    print("Yep, error caught:", error)
Run Code Online (Sandbox Code Playgroud)

是否有任何代码可用于2.5,2.7和3.2?

谢谢

python exception try-catch

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

Java中的equals()方法在Long数据类型上意外地工作

我们首先考虑Java中的以下表达式.

Integer temp = new Integer(1);
System.out.println(temp.equals(1));

if(temp.equals(1))
{
     System.out.println("The if block executed.");
}
Run Code Online (Sandbox Code Playgroud)

这些所有陈述都很好.毫无疑问.表达式按预期temp.equals(1)计算,因此块中true的唯一语句将if被执行.


现在,当我从更改数据类型IntegerLong,该语句temp1.equals(1)意外评价false如下.

Long temp1 = new Long(1);
System.out.println(temp1.equals(1));

if(temp1.equals(1))
{
    System.out.println("The if block executed.");
}
Run Code Online (Sandbox Code Playgroud)

这些是前面片段中提到的等价语句,只是数据类型已经改变,它们的行为正好相反.

表达式temp1.equals(1)被计算false,因此,if块中的唯一语句不会执行与前面语句相反的语句.怎么样?

java

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

哪些参数代表JVM内存选项中的内容?

有很多JVM参数影响JVM的内存使用情况,如 -Xms, -Xmx, -Xns, -XX:MaxPermSize...

  • 他们在做什么?
  • 还有吗?
  • 我有哪一个时,我得到了什么错误,以增加(例如OutOfMemoryError,StackOverflowError...)?

我找不到一个好的备忘单 - 让我们在这里创建一个.

java jvm jvm-arguments

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

Java中的对象创建语句不允许使用单行循环.为什么?

以下程序没有自己的重要性.它只计算使用类计数器内部的静态字段通过使用for循环创建的对象数,如下所示.

package temp;

final class Counter
{
    private static int cnt;

    public Counter()
    {
        cnt++;
    }

    public static int show()
    {
        return(cnt);
    }
}

final public class Main
{
    public static void main(String[] args)
    {
        for (int i=0;i<50;i++)
        {
            Counter counter=new Counter();
        }

        /*for (int i=0;i<50;i++)
            Counter counter=new Counter();*/

        System.out.print("\nNumber of objects constructed:->"+Counter.show()+"\n\n");
    }
}
Run Code Online (Sandbox Code Playgroud)

这里唯一的问题是注释for循环意味着与上面的for循环相同(同样的东西也应用于while循环)根本不起作用导致编译时错误,表明" 不是语句 "意味着在这种特殊情况下,即使for循环只包含一个语句,这对括号也是必需的!为什么?

java

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

Java中未初始化的类成员不会发出任何编译器错误.然而局部变量呢.为什么?

请考虑Java中的以下代码段.它不会编译.

package temppkg;

final public class Main
{
    private String x;
    private int y;

    private void show()
    {
        String z;
        int a;

        System.out.println(x.toString()); // Causes a NullPointerException but doesn't issue a compiler error.
        System.out.println(y); // Works fine displaying its default value which is zero.
        System.out.println(z.toString()); // Causes a compile-time error - variable z might not have been initialized.
        System.out.println(a); // Causes a compile-time error - variable a might not have been initialized.
    }

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

java

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

为什么使用带有硬编码种子的Random会产生相同的结果?

Java中的以下简单程序使用java.util.Random该类,以便始终显示"hello world".代码片段如下所示.

package nomain;

import java.util.Random;

final public class J
{
    public static String randomString(int seed)
    {
        Random rand = new Random(seed);
        StringBuilder sb = new StringBuilder();

        for(int i=0;;i++)
        {
            int n=rand.nextInt(27);
            if (n==0)
            {
                break;
            }
            sb.append((char) ('`'+n));
        }
        return sb.toString();
    }

    public static void main(String args[])
    {
        System.out.println(randomString(-229985452)+' '+randomString(-147909649));
    }
}
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,它总是显示"hello world",即使使用Random类导致随机数生成,因此每次运行时应更改数字,相应的字符应相应更改,但始终只显示一个稳定的字符串,如上所述"hello world".为什么会这样?

java random

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

mysql_fetch_array和mysql_fetch_row之间的区别?

这对PHP用户来说是一个简单的问题.我无法得到PHP mysql_fetch_array()mysql_fetch_row()PHP 之间的确切区别的原因是我一直在使用Java.


在我在这里发布这个问题之前,我从谷歌得到了一些答案,但我发现它们有点令人困惑.我在互联网上找到的一些链接如下.

答案1

答案2

答案3

答案4


我无法从上面的答案中得到确切的想法.那么它们之间究竟有什么区别呢?

php mysql

16
推荐指数
3
解决办法
8万
查看次数

具有多个值的MYSQL CASE THEN语句

我正在尝试用CASE语句选择多个值.我注意到我们做不到

CASE 
    WHEN wall.type="bk" 
    THEN books.id1,books.id2, // and so on
END as column_1,
Run Code Online (Sandbox Code Playgroud)

有没有办法THEN处理多个列,或者我们需要简单地编写一堆CASE THEN语句?这看起来很乱

mysql

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

浏览器如何区分用户点击和程序化点击?

如果我使用jquery启动单击window.open(),它会被弹出窗口阻止程序阻止,如果我手动执行单击,则窗口不会被阻止.浏览器如何在两者之间有所不同?

browser jquery click

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