if (numMoved > 0) System.arraycopy(elementData/*原数组*/,index+1/*要删除元素的下一个元素*/, elementData/*新数组*/, index,numMoved);
老师,按照这段代码的意思,应该是从要删除元素的下一个元素开始拷贝,size=3,index=1,拷贝元素个数nummoved=1;那应该只拷贝一个元素,把元素组索引为2的元素拷贝到新数组索引为1的地方,前面的应该丢失了啊,为什么还会拷贝过去呢?
package com.nuc.server; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; 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=(OutputStream) client.getOutputStream(); os.write("收到了!".getBytes()); //(5)关闭流,关闭Socket if(os!=null) { os.close(); } if(is!=null) { is.close(); } if(client!=null) { client.close(); } } }
package com.nuc.client; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; public class Test { public static void main(String[] args) throws IOException { System.out.println("---------------------------客户端-----------------------------"); //(1)创建一个Socket对象 Socket client = new Socket("localhost",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(buf))!=-1) { System.out.println(new String(buf,0,len)); } //(4)关闭流 if(is!=null) { is.close(); } if(os!=null) { os.close(); } if(client!=null) { client.close(); } } }
@Inherited 请问老师这个元注解是什么意思,以及它的用法是什么?
请问老师右边的描述是错了吧,有正确的描述没有,望告知一下。
问题:使用FileReader读取txt文件中的中文,出现乱码。
import java.io.FileReader; import java.io.IOException; public class TestFileReader { public static void main(String[] args) throws IOException { //(1)搭桥 FileReader reader=new FileReader("D:\\test.txt"); //(2)读取 一个字符 // int b=reader.read(); //读到的字符的int类型 数据 // System.out.println((char)b); //(2)循环读取字符,每次读取一个; int c=0;//用于存储每次读到的字符数据的整数值 while((c=reader.read())!=-1){ System.out.print((char)c); } //(3)关闭 reader.close(); } }
源文件内容:
运行结果:
老师,这个代码报错的内容有bos对象没有close write flush方法,同时,构造器后面不给放fos,但是视频中的代码却可以,请您帮忙看一下,不胜感激
老师能否给个反编译工具,我想看一些包中的代码
这块不讲原理吗?应该是工厂模式 不然记不住啊
xml文件黄色感叹号,右键validate没有反应,没有生成dtd
老师,请问xml文件中的标签名 是有标签库吗?还是怎么弄的,我的意思就是 视频中不是讲的books等标签吗,然后会不会有 car 标签呢,是有标签库还是需要自己定义。
老师,这一段代码,对于无参的read()方法api解释如下:
我写入的内容是char类型的,read时被返回为int类型,并返回给b,所以此时b是int类型的
当写出b的时候:fos.wirte(b); 为什么结果在文本中是char类型的,而不是int类型的????
老师,请您帮忙解答一下
if (ignoreCase) { // If characters don't match but case may be ignored, // try converting both characters to uppercase. // If the results match, then the comparison scan should // continue. char u1 = Character.toUpperCase(c1); char u2 = Character.toUpperCase(c2); if (u1 == u2) { continue; } // Unfortunately, conversion to uppercase does not work properly // for the Georgian alphabet, which has strange rules about case // conversion. So we need to make one last check before // exiting. if (Character.toLowerCase(u1) == Character.toLowerCase(u2)) { continue; } }
老师,将两个字符转化为大写比较之后如果不相等不就说明两个字符不一致了吗,为什么还要转为小写再比较一次?
这是什么什么问题啊
我找了半天没有找到
麻烦老师了
package com.url; import java.io.BufferedWriter; import java.io.FileOutputStream; import java.net.URL; import org.omg.CORBA.portable.InputStream; public class TestURL2 { /* * 网络爬虫 * (1)从网络上获取资源www.baidu.com * (2)存储到本地 */ //(1)创建URL对象 URL url=new URL("https://www.baidu.com"); //主页资源 //(2)获取字节输入流 InputStream is=url.openStream(); //(3)缓冲流 BufferedReader br=new BufferedReader(new InputStreamReader(is,"utf-8")); //(4)存储到本地 BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("index.html","utf-8"))); //(5)边度边写 String line =null; while((line=br.readLine)!=null) { bw.write(line); bw.newLine(); bw.flush(); } //(6)关闭流 bw.close(); br.close(); } }
问题:
找不到错误之处
public static void main(String[] args) throws InterruptedException, ExecutionException { // 如何创建一个线程池 ExecutorService pool1 = Executors.newCachedThreadPool(); /**使用线程池执行大量的Callable任务*/ for(int i=0;i<20;i++){ //使用匿名内部类 //创建任务 Callable<Integer> task=new Callable<Integer>() { @Override public Integer call() throws Exception { Thread.sleep(2000); return (int)(Math.random()*10)+1; } }; //任务结束 //将任务交能线程池 Future f=pool1.submit(task); System.out.println(f.get()); } pool1.shutdown(); }
老师请问,Callable是一个接口。它凭什么就能被new出来,居然还能被执行。
我查过,没有同名类
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637