// 定义比较规则 // 正数:大,负数:小,0:相等 @Override public int compareTo(Users o) { if(this.uesrage>o.getUesrage()){ return 1; // (由小到大) } if(this.uesrage == o.getUesrage()){ return this.username.compareTo(o.getUsername()); } return -1; }
老师,在这里重写Users类中的compareTo方法中,第二个return中的o.getUsername() 和o.Username有什么区别
老师,对于服务端的主函数的代码这样子写可不可以呢
老师我想问下这个端口为什么在不同的浏览器中显示也不一样啊,我端口为“6666”时火狐浏览器被禁止访问,idea也会报异常信息,IE浏览器就没问题。当为端口为“8888”时idea无法获取到来自浏览器任何信息,浏览器也一直显示正在连接。
异常信息:
"C:\Program Files\Java\jdk1.8.0_131\bin\java.exe" "-javaagent:D:\IDEA\IntelliJ IDEA 2019.3.2\lib\idea_rt.jar=57389:D:\IDEA\IntelliJ IDEA 2019.3.2\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_131\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\rt.jar;D:\httpsxt\out\production\httpServer_1" Server2 Exception in thread "main" java.lang.NullPointerException at Server2.main(Server2.java:21) Process finished with exit code 1
为什么我执行的结果是负的?
package com.itbaizhan; public class TestString2 { public static void main(String[] args) { String str8 = ""; long num1 = Runtime.getRuntime().freeMemory();//获取系统剩余内存空间 long time1 = System.currentTimeMillis();//获取系统的当前时间 for(int i=0;i<5000;i++){ str8 = str8+i;//相当于产生了5000的对象 } long num2 = Runtime.getRuntime().freeMemory(); long time2 = System.currentTimeMillis(); System.out.println("String占用内存:"+(num1-num2)); System.out.println("String占用时间:"+(time2-time1)); /**使用StringBuilder进行字符串的拼接*/ StringBuilder sb1 = new StringBuilder(""); long num3 = Runtime.getRuntime().freeMemory(); long time3 = System.currentTimeMillis(); for(int i=0;i<5000;i++){ sb1.append(i); } long num4 = Runtime.getRuntime().freeMemory(); long time4 = System.currentTimeMillis(); System.out.println("StringBuilder占用内存:"+(num3-num4)); System.out.println("SttingBuilder占用时间:"+(time4-time3)); } }
addLast和pop();啥意思,什么关系啊
老师江湖救急,看看是哪里出问题了
老师,这里是先定义了一个泛型方法MethodGeneric,
第一个没有返回值,第二个有返回值,然后再定义一个Test3类测试,实例化泛型方法,没有返回值的直接往括号里传名字,有返回值的要用等号赋值的方式,往回传名字。
我的第一个疑问是,我理解的对吗
第二个疑问是,有返回值的时候,往回传它的类型是怎么自动生成的?
我for循环打出来的“-”会自动换行,前面试过加制表符但是没用好像
问题:在循环时,-1是作为结束的标志,那如果在文本数据中就有-1这个数据,理论上会在此-1就截止,但是我再遍历时,程序却把-1分别转换成了ASCII码,进行输出,若是我就想实现在-1就截止,该如何做???
程序代码如下:
实验结果:
txt文本图:
这里会报错是JDK版本问题吗
这个配置不成功啊
老师。我下载的Tomcat7版本和JDK9版本一直出现闪退,环境变量配置了好多次不行,发现是版本不兼容原因,没换JDK,下载tomcat 8 版本,服务器可以打开,网站打不开,如图所示
问题:在使用文件字节流的时候,先使用 int read() 方法进行读取,再使用 int read(char[] c) 方法进行读取,但输出的时候只有使用 int read() 方法读取的结果,没有使用 int read(char[] c) 读取的结果。只单独使用 int read(char[] c) 方法 或 int read() 方法的时候输出结果却没有问题
代码(问题在注释为操作那里):
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class TestFileInoutStream { public static void main(String[] args) { //创建源 File file = new File("/media/nexfia/0D86051E0D86051E/学习/百战/eclipse-workspace/IO/IO.txt"); //选择流 FileInputStream fis = null; try { fis = new FileInputStream(file); /** * 操作 * 使用 int read() 方法进行读取 * 使用 int read(char[] a) 进行读取 */ //使用 int read() 方法进行读取 int temp; while((temp=fis.read())!=-1) { System.out.println((char)temp); } //使用 int read(char[] a) 进行读取 byte[] c = new byte[3]; int len = -1;//接收长度 while((len=fis.read(c))!=-1) { String str = new String(c,0,len); System.out.println(str); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { try { //释放流 fis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
IO.txt 内容
I am Nexfia.
输出结果
I a m N e x f i a .
对照资料中的源码反复检查了多次还是还没发现问题,尤其是getServlet方法中的代码更是一个个去看,还是没看出哪不一样,麻烦老师帮我看看
源码.zip
如下图:我的XML文件有两个子元素:servlet;为第二个loginTwo就不能映射出对应的值(cn.sxt.servlet.login2Servlet)呢? 总是报异常,改成映射login的值就不报错,这个为什么?
源码如下:
package cn.sxt.server; import java.util.List; import java.util.Map; import cn.sxt.servlet.Servlet; /** * 本类的作用: * 1.初始化程序运行的数据 * 2.根据不同的url创建所请求的servlet对象 * @author User * */ public class WebApp { //应用程序类 private static ServletContext context; //使用静态代码块来初始化数据 static { //创建ServletContext对象 context=new ServletContext(); //获取对应关系Map(servlet、mapping)集合 Map<String,String> servlet=context.getServlet(); Map<String,String> mapping=context.getMapping(); //创建解析XML文件的对象 WebDom4j wd=new WebDom4j(); wd.parse(wd.getDocument());//解析XML文件 //获取解析XML后的List集合 List<Entity> entityList=wd.getEntityList(); List<Mapping> mappingList=wd.getMappingList(); //将List集合中数据存储到Map集合中,遍历集合 for(Entity temp:entityList) { servlet.put(temp.getName(), temp.getCla());//servlet-name作为key,servlet-class作为value } for(Mapping temp:mappingList) { //遍历mappingList for(String s:temp.getUrlPattern()) { //遍历getUrlPattern()集合 mapping.put(s, temp.getName()); //添加key-value对 } } System.out.println(mapping); } /** * 根据url创建不同的Servlet对象 * @param url * @return */ //根据url来创建servlet对象 public static Servlet getServlet(String url) { //处理url不正确的情况 if(url==null||url.trim().equals("")) { return null; } //处理url正常的情况 //根据url的key获取value String servletName=context.getMapping().get(url); //的得到String类型的servlet-name String servletClass=context.getServlet().get(servletName);//根据servlet-name得到 想对应的value Servlet servlet=null; try { //使用反射创建servlet对象 Class<?> clazz=Class.forName(servletClass); //调用无参构造函数创建对象 servlet=(Servlet) clazz.newInstance(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } return servlet; } //测试main方法 public static void main(String[] args) { System.out.println(getServlet("/login2")); } }
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637