已采纳回答 / 无动于衷
那要看调用equals()方法的对象所对应的类 里的equals方法是怎么写的了。举个例子。一般的类没有重写Object类的equals()方法,比如你随便定义一个类Student,那么当我Student t = new Student();t.equals(??)这里就会调用父类的equals()方法。Object类里的equals方法比较的是地址,所以我写的这个类比较的也是地址。而有些类为了一些使用上的方便合理,于是便重写了equals()方法。比如String类,当我们使用字符串时,当他们内容相同时...
2015-09-23
已采纳回答 / 无动于衷
map以简直对的形式存放数据。<K,V>这里的Key程序里定义的是Student的id,Value存放的是这个Student对象。你理解出错的地方时:get(ID)这个方法,这里参数是ID而不是得到的是ID!,get(K)是map中的一个方法,会得到K对应的V值,也就是得到这个ID对应的Student对象。输入ID,得到这个Student!好好想想把,弄明白参数和返回类型!
2015-09-22
最新回答 / 天启之魂
汗 上面说的有点问题 回复不能删除String s1 ="imooc"; 是讲s1指向堆内存中的字符串常量"imooc";而String s2=new String("imooc") 是在堆内存中开辟一个对象,对象中有一个变量记录的字符串是"imooc",s2指向这个对象
2015-09-21
已采纳回答 / 无动于衷
首先你要了解Override的范围!Overide只在当前类或子类中生效!第一个例子里,你重写的是Student类的compareTo()方法,那么当你用一个Student对象去调用这个方法时,执行的就是你Student里重写的方法,这个你应该是明白的。那么看方法中间的代码,return this.getId().compareTo(o.getId);这里的this.getId()是String类型的,而String类里的compareTo()方法并没有重写!它调用的是它自身的compareTo()方法(...
2015-09-21
已采纳回答 / 伊兮尘昔
1. 在执行速度方面的比较:StringBuilder > StringBuffer 2. StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,不像String一样创建一些对象进行操作,所以速度就快了。3. StringBuilder:线程非安全的 StringBuffer:线程安全的 当我们在字符串缓冲去被多个线程使用是,JVM不能保证StringBuilder的操作是安全的,虽然他...
2015-09-19
已采纳回答 / Java暗影
对于行数不确定的建议用while语句和数组实现。例如:<...code...>public void input(){Scanner in = new Scanner(System.in);//定义输入流对象int i = 0;//定义一个变量用于接收输入的值 int []nums = new int[20];/...
2015-09-18