老师,有2个问题:
1.数据流是处理流,里面可以之间放节点流,可以不用先在数据流里放缓冲流,再在缓冲流里放节点流吗?
2.加多一个缓冲流和不加好像都能读写数据,有上面区别呢?
//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数组动态变化了,而游标的位置又不变,那么也会出现无法删除干净的情况。
老师,Person implements Serializable,有行private static final long serialVersionUID = -3654329494598536934L;这个怎么回事,不加就报错
为什么没数据错乱?
package cn.sxt.thread2; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Test1 { public static void main(String[] args){ //(1)创建一个线程池,线程池中只有一个线程对象 ExecutorService pool1 = Executors.newSingleThreadExecutor(); //(2)创建一个线程池,线程池中有线程的数量固定 //ExecutorService pool1 = Executors.newFixedThreadPool(10); //(3)创建一个线程池,线程池中的数量可以动态的改变 //ExecutorService pool1 = Executors.newCachedThreadPool(); /**使用线程池执行大量的Runnable命令*/ for(int i=0;i<20;i++){ final int n=i; Runnable command = new Runnable() { public void run(){ System.out.println("开始执行:"+n); try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("执行结束:"+n); } };//任务结束 //将任务交给线程池中的线程去执行 pool1.execute(command); } //关闭线程池 pool1.shutdown(); } }
不明白这里为什么要另外push右边的元素进去,不应该全部push字符串里面的元素进栈,然后再将出栈元素与从头开始扫描的str元素相比较,若不同则返回false吗?
老师,怎么找不到上课时候老师使用的板书笔记,课后不好复习啊。
package com.rongqi; import jdk.dynalink.beans.StaticClass; import java.util.Stack; public class StackTest { public static void main(String[] args) { //实例化栈容器 Stack<String> stack = new Stack<>(); //将元素添加到栈容器 stack.push("a"); stack.push("b"); stack.push("c"); //判断栈容器中的元素是否为空 System.out.println(stack.empty()); //查看栈顶元素(不会删掉栈顶元素) System.out.println(stack.peek()); //返回元素在容器中的位置 System.out.println(stack.search("c")); //获取栈容器的元素(删掉栈顶元素) String p1 = stack.pop(); System.out.println(p1); String p2 = stack.pop(); System.out.println(p2); String p3 = stack.pop(); System.out.println(p3); StackTest stackTest = new StackTest(); stackTest.summmry(); } public void summmry(){ String str="...{.....[......(...)..].....}...(..)..[...]...{...}..."; //实例化stack Stack<String> stack1 = new Stack<>(); boolean flag = true; for (int i =0;i<str.length();i++){ char c = str. charAt(i); if (c=='{'){ stack1.push("}"); } if (c=='['){ stack1.push("]") ; } if (c=='('){ stack1.push(")"); } if (c==')'||c==']'||c=='}'){ if (stack1.empty()){ flag = false; break; } String x= stack1.pop(); if (x.charAt(0)!=c){ flag = false; break; } } } if (!stack1.empty()){ flag = false; } System.out.println(flag); } } false c 1 c b a false
为什么打印的是false啊
老师 子线程交替运行时候有没有规律的呀
一、老师,这里说prev.next = null;了以后,直接就说prev没了,这是为什么啊,prev还指向hello啊,源码里面也没有删除prev,这个指针不会无缘无故消失啊
杜老师,我有个疑惑,就是我截图的第三行代码,remove方法,应该是把集合中所有的hello元素都移除,这个打印后,显示结果为什么只移除了第一个hello?麻烦您帮忙解答一下
老师,我的代码IDEAL控制台输出正常,但是浏览器没有显示 登陆成功 的字样
代码如下:
package com.bjsxt.server; import java.io.*; import java.net.ServerSocket; import java.net.Socket; public class httpServer_3 { public static void main(String[] args) { String CRLF="/r/n";//换行 String BLANK=" ";//空格 ServerSocket server=null; Socket socket=null; BufferedReader br=null; InputStream is=null; try{ server=new ServerSocket(8888); socket = server.accept(); //获取来自浏览器的信息 is=socket.getInputStream(); byte[] buf=new byte[20480]; int len=is.read(buf); System.out.println(new String(buf,0,len)); /**对web浏览器的请求作出响应*/ StringBuilder sb=new StringBuilder(); StringBuilder sbContent=new StringBuilder();//响应的文本 sbContent.append("<html><head><title>响应结果</title></head>"); sbContent.append("<body>登录成功</body></html>"); sb.append("HTTP/1.1").append(BLANK).append(200).append(BLANK).append("OK"); sb.append(CRLF); sb.append("Content-Type: text/html;charset=utf-8"); sb.append(CRLF); sb.append("Content-Length:").append(sbContent.toString().getBytes().length).append(CRLF); sb.append(CRLF); sb.append(sbContent); //通过流输出 BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"utf-8")); bw.write(sb.toString()); bw.flush(); bw.close(); }catch (Exception e){ e.printStackTrace(); }finally { if (br != null) { try { br.close(); } catch (Exception e) { e.printStackTrace(); } } if(server!=null){ try { server.close(); } catch (IOException e) { e.printStackTrace(); } } if(socket!=null){ try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
老师 我写完之后进行测试 发现每次发信息只能发一条 这是为什么啊
使用通配符会有什么缺点吗,正常情况下是不是都可以使用通配符?
老师,有Java题库吗?。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
请问如何把common-io的文档生成为docset呢
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637