为了悬赏分,我也插一嘴吧!
站在用户的角度思考问题,与客户深入沟通,找到澧县网站设计与澧县网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、网站制作、企业官网、英文网站、手机端网站、网站推广、主机域名、网络空间、企业邮箱。业务覆盖澧县地区。
第个public打错了,
void打错了,
static打错了,
括号里是 String[] args,也即字符串数组 参数的意思,
貌似有内容检错吧?有错还能运行,并且你用的CMD调用执行的,没用相关软件么,难道你已经到了手写代码的地步了?强人!!!
采纳吧,另小小建议,打字的时候开启中文的输入法,某些单词可以联想的就不会出错!
PS:
怎么样设置快捷键打出System.out.println。
Window -- Preferences -- General -- Keys,寻找到Content Assist,选定后在下面的Binding里直接按快捷键组合即可,最后Apply和OK退出就好了。平时只要打出syso后即可快捷键按出来,建议Alt+S方便点。
看不出有问题,而且都能正常运行了,就算是没问题了吧。不过这个需求没说一张一张的卖。
import java.util.*;
public class Test
{
public static void main (String[] args)
{
Thread t1 = new Thread(new TicketWindow("窗口1"));
Thread t2 = new Thread(new TicketWindow("窗口2"));
Thread t3 = new Thread(new TicketWindow("窗口3"));
Thread t4 = new Thread(new TicketWindow("窗口4"));
t1.start();
t2.start();
t3.start();
t4.start();
}
}
//这是车票资源, 需要同步的是这个东西
class TicketDB {
private int ticketCount = 100;
public synchronized void getTicks(int n) throws Exception {
if(n ticketCount) throw new TicketNotEnoughException();
if(n = 0) throw new TicketNumNotValid();
ticketCount -= n;
}
public synchronized int getTicketCount() {
return ticketCount;
}
}
//售票窗口
class TicketWindow implements Runnable {
private static TicketDB td = new TicketDB();
private String name;
public TicketWindow(String name) {
this.name = name;
}
public void run() {
while(td.getTicketCount() 0) {
//模拟购票数量, 为了不处理各种异常情况,让生成的值总是
//小于剩余数量,大于0.
Random r = new Random();
int ticketOrder = r.nextInt(td.getTicketCount()) + 1;
try {
td.getTicks(ticketOrder);
System.out.println(name + "卖出" + ticketOrder + "张票, 剩余" + td.getTicketCount() + "张票." );
} catch(Exception e) {
System.out.println(name + e.getMessage());
}
try {
Thread.sleep(2000);
} catch(Exception e) {}
}
System.out.println("票卖完," + name + "关闭");
}
}
//自定义异常
class TicketNotEnoughException extends Exception {
private String message;
public TicketNotEnoughException() {
this.message = "Ticket left is not enough!";
}
public String getMessage() {
return this.message;
}
}
class TicketNumNotValid extends Exception {
private String message;
public TicketNumNotValid() {
this.message = "Please input valid number!";
}
public String getMessage() {
return this.message;
}
}
把double[] num=null改成double[] num = new double[n]就 不会报错了。
在null上调用num[i],是一定会报空指针的。
1、java 编译错误,说明你的java代码源文件存在明显的语法错误。
2、请仔细看你的源代码,错误信息提main方法所在这一行有语法错误。
3、你把public 写成了 publec 了吧,低级错误。
4、希望对你有帮助。