老师想问一下为什么会这样
主机名称跟IP地址一样?
为什么要修改host文件内容(把“127.0.0.1 activate.navicat.com”改成“上条视频获取的百度的IP www.baidu.com“?)
意思是本视频获取的也只能是在自己电脑里预先设定好的值?
//for循环删除 for (int i=0;i<list.size();i++){ list.remove(i); }
//迭代器删除 for(Iterator<String> it = list.iterator();it.hasNext();){ it.next(); it.remove(); }
问题:使用迭代器删除元素时,iterator.remove()方法执行过程中,list数组是没有做动态变化的吧?
在list.remove()执行过程中list数组有做动态变化,所以出现在for循环中调用list.remove()删除全部元素时,无法删除干净的情况。
如果使用迭代器删除元素时,list数组动态变化了,而游标的位置又不变,那么也会出现无法删除干净的情况。
老师,您好。想问一下再main方法中哪里调用了compareTo方法,为什么添加进去就排好序了
class Server { public static void main(String[] args) { System.out.println("服务器开始监听..."); try( //创建服务端套接字 ServerSocket serverSocket = new ServerSocket(8888); //开始监听 Socket socket = serverSocket.accept(); //创建输入输出字符流 BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter pw = new PrintWriter(socket.getOutputStream());){ System.out.println("连接成功"); //循环接收客户端信息,直到接收数据为exit时退出程序 while(true){ //读取客服端数据 String str = reader.readLine(); //显示数据 System.out.println("客户端: " + str); //当输入为exit时退出 if ("exit".equals(str)){ break; } //返回数据 pw.print(str); pw.flush(); } } catch (IOException e) { System.out.println("服务器启动失败"); } } } class Client { public static void main(String[] args) { try(Socket socket = new Socket("127.0.0.1",8888); Scanner scanner = new Scanner(System.in); PrintWriter pw = new PrintWriter(socket.getOutputStream()); BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()))){ //循环接收键盘输入信息并发送给服务端,当输入信息为exit时,发送服务端后退出程序 while(true){ //接受键盘输入 System.out.println("请输入: "); String str = scanner.nextLine(); //发送到服务端 pw.print(str); pw.flush(); //当输出为exit时关闭客户端 if ("exit".equals(str)){ break; } //接受服务端数据 System.out.println("服务端返回: " + reader.readLine()); } }catch (Exception e){ } } }
老师,为什么在发送数据时,用print()方法会显示不出来,用println()方法则是正常的
老师,这是啥意思。
//口红类 class Lipstick{ } //镜子类 class Mirror{ } //化妆线程类 class Makeup extends Thread{ private int flag = 0; //flag=0=口红 ,flag !=0 为镜子 private String girlName; static Lipstick lipstick = new Lipstick(); static Mirror mirror = new Mirror(); public Makeup(int flag,String girlName){ this.flag = flag; this.girlName = girlName; } @Override public void run() { this.doMakeup(); } //开始化妆 public void doMakeup(){ if(this.flag ==0){ synchronized (lipstick){ System.out.println(this.girlName+"拿着口红"); try { Thread.sleep(1000); } catch (InterruptedException e) { throw new RuntimeException(e); } synchronized (mirror){ System.out.println(this.girlName+"拿着镜子"); } } }else{ synchronized (mirror){ System.out.println(this.girlName+"拿着镜子"); try { Thread.sleep(1000); } catch (InterruptedException e) { throw new RuntimeException(e); } synchronized (lipstick){ System.out.println(this.girlName+"拿着口红"); } } } } public class DeadLockThread { public static void main(String[] args) { new Makeup(0, "小丫").start(); new Makeup(1, "大丫").start(); } }
main方法里的 static 会报错
老师,我的这个可以直接打印出来,有点不太理解 还是说这个直接打印的不是数组?
为啥我的每次运行结果都一模一样???
public class haunchongThread { public static void main(String[] args) { Zaocarcahng zaocar = new Zaocarcahng(); Thread scz = new Thread(new scz(zaocar)); Thread xfz = new Thread(new xfz(zaocar)); scz.start(); xfz.start(); } } //缓冲区 class Zaocarcahng { ArrayList c = new ArrayList<>(10); //存车 synchronized public void scc(Ccar ccar, String s){ while (c.size()>=10){//如果到10了就满了,休息 try { this.wait();//线程休息 } catch (InterruptedException e) { throw new RuntimeException(e); } }//到这里线程还在休息,无法执行下面的唤醒,所以没有冲突 this.notify();//唤醒 c.add(ccar); System.out.println(s+"生产了"+ccar.toString()); } //取车 synchronized public Ccar xsc(int ccarid){ if (c.size()<=0){//车不够了,等着休息 try { this.wait();//线程休息 } catch (InterruptedException e) { throw new RuntimeException(e); } }//到这里线程还在休息,无法执行下面的唤醒,所以没有冲突 this.notify();//唤醒 return (Ccar) c.remove(ccarid); } } //产物 class Ccar { private int id ; public Ccar() { } public Ccar(int id) { this.id = id; } @Override public String toString() { return "Ccar{" + "id=" + id + '}'; } public int getId() { return id; } public void setId(int id) { this.id = id; } } //生产者 class scz implements Runnable{ Zaocarcahng zcc; public scz(Zaocarcahng zcc) { this.zcc = zcc; } @Override public void run() { //生产 for (int i = 0; i < 20; i++) { zcc.scc(new Ccar(i),"生产者----"); } } } //消费者 class xfz implements Runnable{ Zaocarcahng zcc; public xfz(Zaocarcahng zcc) { this.zcc = zcc; } @Override public void run() { for (int i = 0; i < 20; i++) { Ccar xsc = zcc.xsc(0);//只取第1个 System.out.println("消费:"+xsc.toString()); } } }
Java在读取文件和写文件的时候底层应该是交给操作系统进行处理的吧,我理解输入的时候是不是操作系统把数据放到了输入流中,输出的时候程序把内容放到输出流中,输出流把数据交给操作系统进行写入
SetName01类直接继承了Thread类
为什么不直接使用Thread类的setName方法啊?
反而要去用构造器构造名字
批处理文件无法打开怎么办
为什么我这个不是随机的而是按顺序执行的
为什么是fis!=null的时候要关闭。
不应该是流对象他读完了是null了才关闭吗?
视频里的api文档在哪下载?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637