小编The*_*ind的帖子

什么时候应该使用布尔而不是布尔值?

我什么时候应该使用布尔而不是布尔值?我的意思是,为什么我要在一个应该包含"true"或"false"的变量中有一个空值.一个自发的答案(对大多数人来说)将是值,如果值未知.即,如果我们不知道该值是真还是假.但是从编程的角度来看,我认为使用布尔可能会破坏代码,因为我们不知道里面是什么.所以,我认为使用原始类型比包装更好.如果我错了,请纠正我.

java

7
推荐指数
3
解决办法
1万
查看次数

为什么"=="有时可以使用String.trim?

我有以下代码

public static void main(String... args) {

    String s = "abc";
    System.out.println(s.hashCode());
    String s1 = " abc ";
    System.out.println(s1.hashCode());
    String s2 = s.trim();
    System.out.println(s2.hashCode());
    String s3 = s1.trim();
    System.out.println(s3.hashCode());
    System.out.println();
    System.out.println(s == s1);
    System.out.println(s == s2);
    System.out.println(s == s3);
}
Run Code Online (Sandbox Code Playgroud)

OP:

96354
32539678
96354
96354

false   -- Correct
true    -- This means s and s2 are references to the same String object "abc" .
false   -- s3=s1.trim()... which means s3="abc" yet s==s3 fails.. If the above conditon were to be …
Run Code Online (Sandbox Code Playgroud)

java string

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

Java中编译器的代码优化 - 执行"if"条件所用的时间为零

我有以下代码..

 public static void main(String[] args) {
            int i = 1234;
            int j = 1234;
            int k = 4321;
            long l1 = System.nanoTime();
            if (i == j) {
                System.out.println("equal");
            }
            System.out.println(System.nanoTime() - l1);
            l1 = System.nanoTime();

            if (i != k) {
                System.out.println("equal");
            }

            System.out.println(System.nanoTime() - l1);
            l1 = System.nanoTime();

            if (i == k) {
                System.out.println("equal");
            }

            System.out.println(System.nanoTime() - l1);


            l1 = System.nanoTime();

            if (i != j) {
                System.out.println("equal");
            }
            System.out.println(System.nanoTime() - l1);

        }
Run Code Online (Sandbox Code Playgroud)

现在当我运行这个程序时,OP是:

1. 
equal
190295
equal
22237
427 …
Run Code Online (Sandbox Code Playgroud)

java

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

什么是快速,等待通知或忙于等待Java?

我知道使用busy-wait不是一个好的编程习惯,最好尽可能使用同步对象(wait-notify).但是我想知道一个人是否准备好牺牲cpu周期,然后忙着等待更快或等待通知?

我假设wait-notify将涉及对同步对象的内部锁定,并且信号可能来自内核以唤醒线程,使得这种方法比忙碌等待慢得多,其中人们可以直接检查条件直到它是满意.只要满足此条件(例如,布尔值== true),线程就可以从繁忙的等待中退出.根据我的理解,我感到很忙 - 等待应该更快.

如果我的论点是错误的,如果其他人能分享他们的想法并纠正我,我将不胜感激.

java multithreading

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

Android-将TextView的宽度设置为按钮-1或按钮-2的左侧

背景:
我有一个TextView和两个(自定义)按钮在右边TextView.2个按钮和TextView单个包含在内RelativeLayout.现在,在任何时间点,都可以看到 button-1或button-2 .因为我不知道哪个按钮可见,所以我在两个按钮的代码中添加了

android:layout_toRightOf="@+id/MyTextView" 
Run Code Online (Sandbox Code Playgroud)

XML文件中的属性.哪个工作正常.这会根据按钮的位置(和宽度)放置按钮TextView.

问题:
语言更改后,我必须根据Button右侧的宽度更改TextView的宽度.我尝试minWidth/maxWidth了按钮和TextView它们,但它们仍然不允许TextView根据按钮的宽度动态调整大小.

无论如何,我可以指定:

android:layout_toLeftOf="@+id/button1 | @+id/button2"
Run Code Online (Sandbox Code Playgroud)

即,TextView按钮-1或按钮-2的左侧.那么文本视图将根据右边的按钮对齐?

注意:
我更喜欢需要更改XML布局文件(静态)的解决方案,而不是在java(活动)文件中添加代码.

android textview android-layout

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

添加Null检查会引发一系列编译错误

我正在测试一个CPU使用率检查程序,我得到一个空指针异常,所以我添加了null check.当我添加null检查时,我开始收到一系列错误.这是代码:

double ideltime=Double.parseDouble(cpuIdle.trim());
**String idelTimeStr=formatter.format(ideltime);
if(idelTimeStr!=null)** 
double usuage=temp - Double.parseDouble(idelTimeStr);           
cpuUsage = formatter.format(usuage);
Run Code Online (Sandbox Code Playgroud)

突出显示的行显示添加了空检查.此null检查后的编译错误如下:

CPUUsage.java:29: error: '.class' expected
                        double usuage=temp - Double.parseDouble(idelTimeStr);
                               ^
CPUUsage.java:29: error: not a statement
                        double usuage=temp - Double.parseDouble(idelTimeStr);
                        ^
CPUUsage.java:29: error: illegal start of expression
                        double usuage=temp - Double.parseDouble(idelTimeStr);
                                     ^
CPUUsage.java:29: error: ';' expected
                        double usuage=temp - Double.parseDouble(idelTimeStr);
Run Code Online (Sandbox Code Playgroud)

请帮忙解决这个问题.

java

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

使用长度为0的数组?

char[] arrNew = new char[0];
System.out.println(arrNew.length);  // length = 0
arrNew[0]='c'; // ArrayIndexOutOfBoundsException .
Run Code Online (Sandbox Code Playgroud)

在上面的代码中你可以清楚地看到,有一个大小为0的数组是没有意义的.据我所知,没有0大小数组的实际用法.有人可以解释为什么编译器允许创建0长度数组.还有一个0长度数组与初始化为null的数组有何不同?(即,分配给它的内存就好像它是一个普通的数组?).如果这个问题看起来很愚蠢,我很抱歉.

java arrays

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

优先级较高的线程获得与较低优先级相同的CPU数量?

以下是我的代码.

public class Test {
    public static void main(String[] args) throws InterruptedException {
        PrintingThread a = new PrintingThread("A");
        a.setPriority(9);
        PrintingThread b = new PrintingThread("B");
        b.setPriority(1);
        a.start();
        b.start();
    }

    static class PrintingThread extends Thread {
        private int i = 0;
        private String name;

        public PrintingThread(String name) {
            super();
            this.name = name;
        }

        @Override
        public void run() {
            while (true) {
                i++;
                if (i % 100000 == 0) {
                    System.out.println("Thread " + name + " count=" + i
                            + ". Time :" …
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading thread-priority

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

java字符串文字可以被垃圾收集吗?如果是,如何证明?

java 字符串文字可以"abc"垃圾一样收集吗?如果是,我们如何以编程方式证明他们是GCed?

java string garbage-collection classloader

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

如何在java中使用正则表达式允许空字符串?

基本上我有一个电子邮件框,它只应该包含电子邮件框中允许的字符,但可以为空,问题是当框为空时,它会弹出我创建的错误说

邮箱包含不允许的字符

String UcharSet = "[a-zA-Z0-9-~!_#(@).]+";
boolean UMORN = UserName.matches(UcharSet);
if(!UMORN)
    PopMyError();
Run Code Online (Sandbox Code Playgroud)

只要我知道我的允许列表中没有空字符,那么您能告诉我如何允许该框也可以为空吗?

并告诉我是否获得了电子邮件中允许的所有字符。

java regex

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