从这个链接,我理解"由于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怎么办?这不是事情的复杂化.
我认为在从函数返回控件之前,应该在函数本身中获取并释放锁.我的理解是否正确?
所以基本上我想读取一个.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 询问直接全名时遇到问题。
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)
我希望名称是动态的,这样我就可以输入甚至两个单词,该怎么做?
提前致谢..
基本上我试图用这个程序做的是让系统生成一个随机数,然后将该数字分配给另一个变量.如果数字大于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) 我有代码应该解决二次方程,但结果产生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)