小编Viv*_*mar的帖子

从char转换为byte

如何在java中将字符转换为字节?如果我写

char c=12;
byte b=(byte)c;
System.out.println(b);
Run Code Online (Sandbox Code Playgroud)

然后结果是12,正如预期的那样但是...如果,我写道

char c='\u0012';
byte b=(byte)c;
System.out.println(b);
Run Code Online (Sandbox Code Playgroud)

然后结果是18.如何?

java byte char

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

JAVA中的异常处理和throws语句的使用

为什么会这样?此代码编译良好但在运行时抛出异常

public class Except
{
    public static void main(String args[])
    {
        System.out.println("Hey, I am under main");
        method();
    }
    static void method()
    {
        throw new NullPointerException();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是这段代码没有编译

public class Expect
{
    public static void main(String args[])
    {
        System.out.println("Hey, I am under main");
        method();
    }
    static void method()
    {
        throw new IllegalAccessException();
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么会这样呢?那改变了异常的类型,第二个代码没有编译.有人可以解释一下,我在第一段代码中使用了throw语句,并且由于它的编译很好,那么编写throws语句的用途是什么方法声明.我使用的是jdk 1.8.0_45

java exception-handling exception try-catch

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

如何在java中执行线程

我有一个代码 -

public class ThreadOne
{
    public static void main(String[] args)
    {
        Thread1 th=new Thread1();
        Thread1 th2=new Thread1();
        th.start();
        th2.start();
        System.exit(1);
    }
}


class Thread1 extends Thread
{
    public void run()
    {
        for(int i=0;i<10;i++)
        {
            System.out.println(i);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道的是 -

  • 为什么上面的代码不打印任何东西?虽然我创建了2个线程并启动它们,但它没有打印任何东西.为什么?
  • 如果没有用户线程,例如说一个由许多方法组成的普通程序,并且在main()方法中调用每个方法,那么默认创建多少个线程,它是否取决于我们拥有的方法的数量,或者是有一个主线程负责调用所有方法,最后谁创建主线程,它是创建它的JVM吗?

java multithreading

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

为什么case语句不带变量?

我知道这是一个愚蠢的问题,但我想知道案例标签为什么不采用变量.代码是 -

public class Hello
{
    public static void main(String[] args)
    {
        final int y=9;
        int a=1,b=2,c=3;
        switch(9)
        {
            case y:
            {
                System.out.println("Hello User");
                break;
            }
            case a:
            {
                System.out.println("Hello World");
                break;
            }
            case b:
            {
                System.out.println("Buff");
                break;
            }
            default:
            {
                System.out.println("Yo bitch");
                break;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然,我已初始化a,b和c,但它显示错误.为什么?

java case switch-statement

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

BufferedReader如何在java中工作

我想知道BufferedReader的工作原理吗?为什么使用InputStreamReader?它与Scanner类有何不同,后者也用于输入用户?哪两个更好?

java bufferedreader inputstreamreader

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

关于C++中的左移运算符

我对左移操作员有疑问,当我执行时 -

int n=(1<<1);
cout<<n;
Run Code Online (Sandbox Code Playgroud)

输出:2

int n=(1<<(1<<1));
cout<<n;
Run Code Online (Sandbox Code Playgroud)

产量:4

但是,我什么时候 -

int n=(1<<(1<<(1<<1));
cout<<n;
Run Code Online (Sandbox Code Playgroud)

产量:16

在最后一种情况下,输出不应该是8吗?为什么给16?

c++ shift

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

C的格式说明符

我在C-中有这个代码

#include <stdio.h>
void main(void)
{
    int a=90;
    float b=4;
    printf("%f",90%4);
}
Run Code Online (Sandbox Code Playgroud)

它输出0.0000,我无法理解为什么??? 我知道90%4返回2并且指定的格式说明符是%f,这是双倍的,但我期望的是 - 它会给出一个错误,但它显示0.0000作为输出.有人可以解释一下原因吗?

c int

-4
推荐指数
2
解决办法
109
查看次数