老师,在foreach循环set的时候也会调用hashCode方法吗,我试了一下每次查到一个值的时候都调用了一次hashCode, 这是为什么,foreach是怎么循环set的
if (prev == null) { first = next; } else { prev.next = next; x.prev = null; } if (next == null) { last = prev; } else { next.prev = prev; x.next = null; }
老师,源码分析这边,如果是删除的x节点是头节点,那么prev==null,把next传给first就结束了,此时next的上一个节点不还是指向x吗,为什么这里不用把next.prev = null呢?
还有一个问题,把对象设置为final,其实是对象的地址不能改变了,但是对象里面的属性还是可变的是吗
为什么要把linkedList方法里面的l和newNode都定义为final
老师,我想问一下 为什么我们使用List list = new ArrayList(); 不使用AbstractList list = new ArrayList();
:String firstLine=requestInfo.substring(0, requestInfo.indexOf(CRLF)).trim();//从0开始,到第一个换行的位置。
该代码是获取下图第一行的代码,换行的位置在哪呢,是1.1后面还是整行末尾
图:
老师,流的关闭顺序应该怎么排呢,socket应该是最后关,中间还有输入,输出,以及System.in,这几个要按特定顺序的嘛
怎么老是到这里就卡住了,卸载删除重试都没有用,不能next
老师,如果是一个二维Object数组,怎么把他转为对象数组或对象集合呢。
package com.bjsxt.test.container; import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class TestArrayList { @Test public void test() { Object[][] objects = new Object[2][]; Object [] object1 = new Object[3]; object1[0] = 001; object1[1] = "张三"; object1[2] =15; Object [] object2 = new Object[3]; object2[0] = 002; object2[1] = "张一"; object2[2] =18; objects[0] = object1; objects[1] = object2; List<Object[]> list = Arrays.asList(objects); People[] peoples = list.toArray(new People[list.size()]); //报错了java.lang.ArrayStoreException } } class People{ public Integer id; public String name; public Integer age; }
这种情况只能循环List<Object[]> list 然后把每一个Object[ ]的值取出来赋给People 存起来吗
这个代码开始就写好了,是中间少了一节课吗
public class CalendarClass { public static void main(String[] args) { GregorianCalendar calendar1=new GregorianCalendar(2999,10,9,22,10,50); calendar1.add(Calendar.MONTH,-7);//月份减七 System.out.println("calendar1月份(原来10)减七:"+calendar1.MONTH); calendar1.add(Calendar.MONTH,7);//月份加七 System.out.println("calendar1月份(被减七后加七)加七:"+calendar1.MONTH); } }
月份减七加七后不应回复为原来的嘛?而且 10-7=3为什么返回值是二啊?(试了好几遍一直是这样)
DateFormatClass { (String[] args) ParseException { SimpleDateFormat s1=SimpleDateFormat()SimpleDateFormat s2=SimpleDateFormat()String daytime =s1.format(Date())System..println(daytime)System..println(s2.format(Date()))System..println(SimpleDateFormat().format(Date()))SimpleDateFormat df=SimpleDateFormat()Date dd=df.parse()System..println(dd.getTime())} }
为什么我这里最后运行报错呢?
相关代码:Request类
package com.bjsxt.server; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; import java.util.List; import java.util.Map; public class Request {//请求 private InputStream is;//输入流 private String requestInfo;//请求字符串,请求方式,请求路径,参数,协议,协议版本,请求正文 private String method;//请求方式 private String url;//请求的url //输入框name为key,值为value /** * key:username value:bjsxt * key:pwd value:123 * key:hobby value: read,ball */ private Map<String,List<String>> parametermapValues;//参数 private static final String CRLF="\r\n";//换行 private static final String BLANK=" ";//空格 //构造方法,初始化属性 public Request() { parametermapValues=new HashMap<String,List<String>>(); method=""; url=""; requestInfo=""; } public Request(InputStream is) { this(); this.is=is; try { byte[]buf=new byte[20480]; int len=this.is.read(buf); requestInfo=new String(buf,0,len); } catch (IOException e) { return; } this.parseRequestInfo(); }//分解请求信息的方法 /**请求方式 * 请求路径 * 请求参数 * */ private void parseRequestInfo() { String paraString="";//用于存储请求参数 //获取请求参数的第一行 String firstLine = requestInfo.substring(0, requestInfo.indexOf(CRLF)).trim(); //分解出请求方式 int index = firstLine.indexOf("/"); this.method=firstLine.substring(0, index).trim(); //分解url,可能包含参数(get),也可能不包含参数(post) String urlString = firstLine.substring(index,firstLine.indexOf("HTTP/") ).trim(); if ("get".equalsIgnoreCase(this.method)) { if (urlString.contains("?")) { String[] urlArray=urlString.split("\\?"); this.url=urlArray[0]; paraString=urlArray[1]; }else { this.url=urlString; } }else {//不包含请求参数 this.url=urlString; paraString=requestInfo.substring(requestInfo.lastIndexOf(CRLF)).trim(); } if (paraString.equals("")) { return; } //请求参数 System.out.println(paraString); }//用于测试 public void show() { System.out.println(this.url); System.out.println(this.method); } }
Server类
package com.bjsxt.server; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; public class Server {//服务器,用于启动和停止服务 private ServerSocket server; public static void main(String[] args) { Server server=new Server(); server.start(); } public void start() { this.start(8888); } public void start(int port) { try { server=new ServerSocket(port); this.receive();//请求接收信息的方法 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void receive() { //监听 try { Socket client=server.accept(); //获取用户请求 /*InputStream is=client.getInputStream(); byte[] buf=new byte[20480]; int len=is.read(buf); System.out.println(new String(buf,0,len));*/ //封装请求信息 Request req=new Request(client.getInputStream()); req.show(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
老师,为什么post没有显示参数啊
get方式
public <T> void setArgs(T...args){ for(T arg: args){ System.out.println(arg); } } //情况1: Integer[] i = new Integer[]{1,2,3,4,5,6}; generic.setArgs(2,i); //情况2: Integer[] i = new Integer[]{1,2,3,4,5,6}; generic.setArgs(i);
情况1效果:
情况2效果:
老师,为什么情况1打出来的是内存地址,情况2是把数值打印出来
你好,老师这一章节的提取码显示不正确,能发一个正确的吗?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637