这个字符串类型的localhost指本机是自己起的名字吗?192.168.31.113为啥是指本机呢
为什么这里不能有set
老师:我发现Operate.java类中的每个方法都要创建一个Menu和TelNoteRegex实例对象,为什么不在类变量中直接实例化这样就不用每个方法中创建了,还是必须每个方法中创建才可以?谢谢
Operate { List<Person> Menu = Menu()TelNoteRegex = TelNoteRegex()
为什么我没有那个电脑图标?
为什么我的客户端启动第二次的时, 服务器端就线程1就开始报错
老师我这个怎么没有show in explorer
老师,size-(stackLength-1)>=0 中的减一可以省略嘛? 减一的话不是在添加了三个元素的时候就开始扩容了嘛,省略减一的话是不是就能在正好 有4个元素的时候进行扩容了?
老师,为什么这里不直接将内容写在run方法里呢
这里的音频真心比前面差了,明显有卡顿的现象
老师,在引用类中,hashcode为啥会影响equals
老师好,我看了很多的源码里,明明可以直接调用的地方,他们都要新增一个变量出来,并加上final。这是为了什么呢,安全性还是性能的提升呢
请问老师,在方法定义中,我们可以看到有时会有 E, T 这样的类型参数,请问这代表什么?
老师,在给cache数组赋值的时候为什么不能直接赋值,而需要写一个方法呢?
老师,我在这里锁的时候锁属性也可以,也就是说锁什么都行了?在使用的时候有没有什么要注意的地方呀?
这个怎么感觉跟DataOutputStream没啥区别?都能写int,char,UTF啥的
老师,是不是我那个地方写错了
package com.bjsxt.thread.prosumer2; /** * <p>Title: TestConsumer</p> * <p>Description: 消费者模式</p> * @author xiaoding * @date Jul 20, 2020 * @version 1.0 */ public class TestConsumer implements Runnable{ //功能属性 private TestSupermarket supermarket; //超市 //构造方法 public TestConsumer(TestSupermarket supermarket) { this.supermarket = supermarket; } //定义线程体 @Override public void run() { for (int i = 0;i<10;i++) { supermarket.getConsumer(); } } } package com.bjsxt.thread.prosumer2; /** * <p>Title: TestProducer</p> * <p>Description: 生产者模式</p> * @author xiaoding * @date Jul 20, 2020 * @version 1.0 */ public class TestProducer implements Runnable{ //功能属性 private TestSupermarket supermarket; //超市 //构造方法 public TestProducer(TestSupermarket supermarket) { this.supermarket = supermarket; } //定义线程体 @Override public void run() { for (int i = 0;i<10;i++) { if (i % 2 != 0) { supermarket.setProducer("旺仔","小馒头"); }else { supermarket.setProducer("康师傅","红烧牛肉面"); } } } } package com.bjsxt.thread.prosumer2; /** * <p>Title: TestSupermarket</p> * <p>Description: 超市(存储)</p> * @author xiaoding * @date Jul 20, 2020 * @version 1.0 */ public class TestSupermarket { // 功能属性 private String brand; //品牌 private String name; //名称 //构造方法 public TestSupermarket() {} public TestSupermarket(String brand,String name) { this.brand = brand; this.name = name; } //get、set public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public String getName() { return name; } public void setName(String name) { this.name = name; } //定义同步方法Producer public synchronized void setProducer(String brand,String name) { this.setBrand(brand); try { Thread.sleep(300); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } this.setName(name); System.out.println("生产者生产了:" + this.getBrand() + this.getName()); } public synchronized void getConsumer() { System.out.println("消费者消费了:" + this.getBrand() + this.getName()); } }
测试结果:
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637