老师,我用的都是课上老师给的JDK8和tomcat7,为什么启动Tomcat还是会闪退。
为啥开始定义的List类型的泛型是String类型,List<String> alist=new ArrayList<String>();
使用反射获取add方法时参数是Object类型,Method m=c.getDeclaredMethod("add", Object.class);
最后执行add方法时参数又变成了Integer类型,m.invoke(alist, 123);
老师,像这种情况在自定义比较长度的规则后为什么打印没有把world打印出来呢?而且这种情况会导致连key和value都不对应了
Comparator compareLen = new CompareLength(); TreeMap<String, Integer> treeMap = new TreeMap<String, Integer>(compareLen); treeMap.put("hello", 123); treeMap.put("world", 456); treeMap.put("java", 789); treeMap.put("world", 2345); System.out.println(treeMap);
为什么File.separator不能使用于创建多层目录呢?
package com.changyonglei; import java.util.Arrays; //自定义 一个简单的包装类(仅限于联系) public class MyInteger<toString> { private final int value; private static MyInteger[] cache;//缓存【-128 , 127】 private static final int LOW=-128; private static final int HIGH=127; static{ cache=new MyInteger[HIGH-LOW+1]; for(int i=LOW;i<HIGH;i++){ cache[i-LOW]=new MyInteger(i); } System.out.println(Arrays.toString(cache)); } public MyInteger(int value){ this.value=value; } public static MyInteger valueOf(int value){ return new MyInteger(value); } public int intValue(){ return value; } public static void main(String[] args) { MyInteger a=new MyInteger(10); MyInteger b=MyInteger.valueOf(100); int c=b.intValue(); } }
老师请问这里面toString不重写为什么返回的是地址呢?这里面调用了Arrays 的toString,已经覆盖了Object的toString了呀 ,应该返回的是字符串值 为什么还是地址呢?我点开Arrays类的toString方法看了也是返回数值中的字符串值呀 ,实在想不明白了!
老师讲的自定义Integer类应该是没初始化cache数组,在测试时发现报错
代码如下:
/** * 自定义一个Integer的简单包装类 */ public class MyInteger { private static MyInteger []cache; private int value; private static final int LOW = -128; private static final int HIGH=127; static{ cache= new MyInteger[1000];//初始化缓存数组 for (int i = LOW; i < HIGH; i++) { cache[i+128] = MyInteger.valueOf(i); } } public MyInteger(int value) { this.value=value; } public static MyInteger valueOf(int num) { if (num>=LOW&&num<=HIGH){ //-128~127 return cache[num+128]; } return new MyInteger(num); } public static void main(String[] args) { // write your code here MyInteger integer =MyInteger.valueOf(30000); MyInteger integer1=MyInteger.valueOf(30000); System.out.println(integer==integer1); } }
但是在cache初始化时,数组容量怎么设定比较合理呢?
请问老师有没IDEA导入工具包的详细步骤么??网上搜索了半天都没有成功。
老师 ,为什么第一次put的时候key是不存在的,不是已经在map集合里面添加了key="a"和value="A"吗
Igeneric<String> igeneric1 = new IgenericImpl();
老师为什么 后边new 的是这个实现类 是因为不能new 接口吗
相关代码: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(); } } }
这里的异常老师都是Try/catch解决了 可不可以通过throws来解决
//在第8个字节插入一个新的数据,66,替换之前的30; raf.seek(8); raf.writeInt(66); for (int b=0 ;b<10;b+=1){ raf.seek(b*4); System.out.print(raf.readInt()+"\t"); }
为什么,想读出所有的数据, b++报EOFException文件结束异常,使用b+=1;不会报,
为啥这里可以输出oldlu啊 明明没用到输出啊
可否把中文的API发给我。找不到链接了在哪里了
老师,我的getname红了,系统维护是让我多加一个t泛型,给这个older一个older的数据类型,但我门目的应该是做成sring类的呀,不知道哪里错了
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637