小编Wat*_*l0n的帖子

了解锁定范围

从这个链接,我理解"由于lock()和unlock()方法调用是显式的,我们可以将它们移动到任何地方,建立任何锁定范围,从单行代码到跨越多个方法的范围"

所以我从上面的陈述中理解的是

public class Test {
    Lock l = new ReentrantLock();

    void myMethod1() {
        l.lock();
        // Do my stuff here
    }

    void myMethod2() {
        // Do more stuff here
        l.unlock();
    }
}
Run Code Online (Sandbox Code Playgroud)

所以基本上1可以按顺序调用method1和method2,并假设调用是线程安全的.

我不确定如上所述是否属实.

如果有人在我已经执行method1/method2对时调用method2怎么办?这不是事情的复杂化.

我认为在从函数返回控件之前,应该在函数本身中获取并释放锁.我的理解是否正确?

java multithreading reentrantlock

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

将.txt文件中的数字读入二维数组并在控制台上打印

所以基本上我想读取一个.txt文件,其中包含以下内容:

3 5 

2 3 4 5 10

4 5 2 3 7

-3 -1 0 1 5
Run Code Online (Sandbox Code Playgroud)

并将它们存储到2D数组中并在控制台上打印,我从控制台获得的结果很好,但是只缺少第一行3 5,我不知道我的代码有什么问题使它忽略了第一行。我现在得到的输出是:

2  3  4  5 10 

4  5  2  3  7

-3 -1  0  1  5 
Run Code Online (Sandbox Code Playgroud)
import java.io.*;
import java.util.*;

public class Driver0 {
    public static int[][] array;
    public static int dimension1, dimension2;

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Welcome to Project 0.");
        System.out.println("What is the name of the data file? ");
        String file = input.nextLine(); …
Run Code Online (Sandbox Code Playgroud)

java arrays multidimensional-array

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

Java Ask 字符串输入多个单词

您好,我在使用 Java 询问直接全名时遇到问题。

System.out.println("DOCTOR");
System.out.println("Enter ID Number:");
idnumber = scan.next();
System.out.println("Enter Name");
name = scan.next();
System.out.println("Enter Field of Specialization:");
field = scan.next();

System.out.println("ID               " + idnumber);
System.out.println("Name             " + name);
System.out.println("Specializtion    " + field );
Run Code Online (Sandbox Code Playgroud)

当我在下面输入此信息时:

ID = 100 姓名 = 布兰登·苏拉诺

它给了我这个结果

ID               100    
Name             Brandon    
Specializtion    Sullano
Run Code Online (Sandbox Code Playgroud)

我希望名称是动态的,这样我就可以输入甚至两个单词,该怎么做?
提前致谢..

java

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

减少随机数...逻辑错误

基本上我试图用这个程序做的是让系统生成一个随机数,然后将该数字分配给另一个变量.如果数字大于20,那么while循环将开始,直到变量的值(由随机数确定)小于20,然后结束程序.问题是,while循环似乎永远持续下去:(请帮助

这是代码:

package innocence;
import java.util.Scanner;

class GS1{

    public static void main(String[]args){


        int ranNum = (int)( Math.random()*25);
        int num=ranNum;
        System.out.println(num);
        while(num > 20){

        System.out.println("Not acceptable");   

        num= num --;
        }       
    }    
}
Run Code Online (Sandbox Code Playgroud)

java while-loop

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

二次方程求解器无法在Java中得到结果

我有代码应该解决二次方程,但结果产生NaN.

我现在环顾了两天,我找不到解决方案.任何和所有的建议将不仅仅是赞赏!

package quadratic;

import java.util.Scanner;

public class Formlua {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        System.out.println("enter value of A ");
        double a = input.nextDouble();
        System.out.println("enter value of B ");
        double b = input.nextDouble();
        System.out.println("enter value of C ");    
        double c = input.nextDouble();
        double four = 4;
        double square = Math.sqrt(b* b - 4 * a * c );

        double root1 = (-b + square) / (2*a);

        double root2 = (-b - square) / (2*a); …
Run Code Online (Sandbox Code Playgroud)

java quadratic

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