for(int i=1; i<=maxDay; i++) { System.out.print(i+"\t"); if(calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) { System.out.println(); } calendar.add(Calendar.DAY_OF_MONTH, 1); }
在这一段代码中add方法的第一个参数为什么是 Calendar.DAY_OF_MONTH 而不是calendar.get(Calendar.DAY_OF_MONTH)呢? 比如我输入的是2019-5-1,那么在我获取完这个字符串的Calendar类型对象之后打断点调试看到这个Calendar.DAY_OF_MONTH的值一直是5,这个又是什么现象呢?
这个为什么得到的是空值?照着敲的难道哪里还缺了什么
调用join()的线程是t,而不是主线程。那应该是阻断主线程,等t线程执行完,再执行主线程吧。老师最后写的这句话不能理解。
老师,在channel类中我的收取和发送信息的代码写成如下 则不能通信了,为什么?
public String getMsg() { String msg = null; try { msg = dis.readUTF(); System.out.println("客户端发来:" + msg); } catch (IOException e) { flag = false; e.printStackTrace(); } return msg; } public void sendMsg() { String msg = getMsg(); try { dos.writeUTF(msg); } catch (IOException e) { flag = false; e.printStackTrace(); } } public void sendOthers() { List<Channel> list = Server.list; for (Channel other : list) { if (this == other) { continue; } other.sendMsg(); } } @Override public void run() { sendOthers(); }
老师,我的代码按照视频中的敲的,但是出了问题,反复检查了几遍无结果还请老师帮忙看一下!
book.xsd中的代码:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" > <xs:element name="books"> <xs:complexType> <!-- 复杂元素 --> <xs:sequence> <xs:element name="book" maxOccurs="unbounded"><!-- 第一个元素以及可以出现多个所以为unbounded --> <xs:complexType> <xs:sequence><!-- 子标签出现是有一定顺序的 --> <xs:element name="name" type="xs:string"></xs:element> <xs:element name="author" type="xs:string" ></xs:element> <xs:element name="price" type="xs:double"></xs:element> </xs:sequence> <xs:attribute name="id" type="xs:positiveInteger" use="required"></xs:attribute> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
book.xml中的代码:
<?xml version="1.0" encoding="UTF-8"?> <books xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="{book.xsd}"> <book id="1001"> <name>java开发实战</name> <author>江小欧</author> <price>99.9</price> </book> <book id="1002"> <name>mysql从删库到跑路</name> <author>江小白</author> <price>89.7</price> </book> </books>
Test类:
package cn.sxt.schema; import java.io.File; import java.io.IOException; import javax.xml.bind.JAXBException; import javax.xml.transform.Source; import javax.xml.transform.stream.StreamSource; import javax.xml.validation.Schema; import javax.xml.validation.SchemaFactory; import javax.xml.validation.Validator; import org.xml.sax.SAXException; public class Test92 { public static void main(String[] args) throws SAXException { //1.创建SchemaFactory工厂 SchemaFactory sch = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema"); //2.建立验证文件对象 File schemaFile = new File("book.xsd"); //3.利用SchemaFactory工厂对象,接收验证的文件对象,生成Schema对象 Schema schema = sch.newSchema(schemaFile); //4.生产对此schema的验证器 Validator validator = schema.newValidator(); //5.要验证的数据(准备数据源) Source source = new StreamSource(); //6.开始验证 try { validator.validate(source); System.out.println("成功"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); System.out.println("失败"); } } }
运行错误图:
1.不是说端口号是唯一标识进程的吗?为什么使用不同的通信协议,端口号是可以重复的了?
我添加了6个对象元素为什么size只输出了5个
问题1:为什么会数组越界
同样的JAVA代码和同样的HTML代码,为什么我这边获取不到浏览器的信息?
package com.bjsxt.server; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; public class Server2 { public static void main(String[] args) { //(1)创建ServerSocket对象 ServerSocket server=null; //(2)监听是否有客户端发送请求 Socket client=null; BufferedReader br=null; try { server = new ServerSocket(8888); client = server.accept(); //获取来自浏览器的请求信息 br=new BufferedReader(new InputStreamReader(client.getInputStream(), "utf-8")); String str=null; while((str=br.readLine()).length()>0){ System.out.println(str); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ //(6)关闭流 IOClose.closeAll(br,client,server); } } }
<html> <title> Tomcat </title> <body> <form action="http://lcoalhost:8888/log" method="get"> <h1>hello world</h1 <p>用户名:<input type="text" id="uname" name="username" /></p> <p>密码:<input type="password" id="pwd" name="password" /></p> <p><input type="submit" value="登陆" /></p> </form> </body> </html>
老师,我的程序照着老师的敲的,但是我的程序有些问题,就是服务器端启动了以后,“收到了”这个数据没有发送过去,下面是我的程序的代码和运行结果
服务器端程序:
package cn.sxt.server85; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; /** * 服务器端的应用程序 * @author Mr_xi * */ public class Test { public static void main(String[] args) throws IOException { System.out.println("--------------服务器端已启动---------------------"); //1.创建ServerSocket对象 ServerSocket server = new ServerSocket(9999); //2.监听是否有客户端来请求连接 Socket client = server.accept(); //3.获取输入流 InputStream is = client.getInputStream(); System.out.println((char)is.read()); //4.获取输出流 OutputStream os = client.getOutputStream(); os.write("收到了!".getBytes()); //5.关闭流,关闭Socket if(os!=null) { os.close(); } if(is!=null) { is.close(); } if(client!=null) { client.close(); } } }
客户端程序:
package cn.sxt.client85; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; /** * 客户端程序 * @author Mr_xi * */ public class Test { public static void main(String[] args) throws IOException { System.out.println("----------------客户端启动了------------------"); //1.创建Socket对象 Socket client = new Socket("127.0.0.1",9999); //2.获取输出流 OutputStream os = client.getOutputStream(); os.write('a'); //3.获取输入流 InputStream is = client.getInputStream(); byte[] buf = new byte[1024];//中转站 int len=0;//读到的字节个数 while((len=is.read())!=-1) { System.out.println(new String(buf,0,len)); } //4.关闭流 if(os!=null){ os.close(); } if(is!=null) { is.close(); } if(client!=null) { client.close(); } } }
运行的结果是:
我只是想看磁盘中有没有创建文件,为什么会给我两个false? 还有什么是绝对什么是相对
老师,这里的主机地址可以理解是目标地址吗?就是要传输到哪里,与谁通信的地址。
1.老师,是怎么知道printstream是字符流啊?
我完全按照视频中例子操作完成代码。然后test类执行结果仍然是一个线程完成所有售票操作,执行结果如图所示:
这还是我增加了ticket数量的情况下,一直到我将ticket数量增加到上千个时,才会出现三个线程共同参与的情况,但是结果仍然是每个线程连续执行很多次,没有那种交替出现的执行情况。这是什么原因呢?难道是我电脑cpu太强而程序又太简单?
还有一个问题是当我把ticket设置为1000时,销售300张票以后程序自动终止,又是什么原因呢?
关于楼上王同学说的join方法的解释我也有点不太理解,感觉甚至是在说sleep() 方法的作用,写在哪里,那个线程就被阻塞。 join方法的含义不应该是写在哪里,那个线程就主动抢到cpu时钟去运行吗?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637