1、在String类的equals方法中,要求比较的是两个String类型的对象,而不能将一个String类型的对象和char数组类型的对象比较。
2、有关hashcode和equals。
在Object类中,equals方法和==都是用来比较地址的,但是在不同的子类中,可能进行了不同的重写,就会导致某些类中,equals方法比较的是内容,==比较的是地址。
在set集合中,由于元素不能重复,会涉及到hashcode和equals的问题。
Hashcode不同,equals相同,可以存入
Hashcode相同,equals相同,不可以存入
Hashcode相同,equals不同,可以存入
先判断hashcode再判断equals。
3、subString(int a,int b)方法包前不包后。
4、字符串的spilt()方法加入参数时指的是遇到该参数就拆分。例如字符串"a1b2c3",拆分命令String[] a = test.spilt("\\d");
指的是遇到整数就拆分,结果是abc。
5、栈和队列都属于线性表。
6、List<String> strings = new ArrayList<String>();
String[] array1 = strings.toArray();
此时的toArray没有参数,所以返回的是Object类型的数组,如果需要返回字符串型的,需要传入一个字符串换类型的对象strings.toArray(new String())。
7、
public class Test {
public <T extends Comparable> T findLarger(T x, T y) {
if (x.compareTo(y) > 0) {
return x;
} else {
return y;
}
/*
这里说明谁大返回谁的类型
*/
}
public static void main(String[] args) {
Test t = new Test();
<插入代码>
}
}
下列选项放在<插入代码>处能编译通过的是:AC
A.Object x = t.findLarger(123, "456"); //使用object因为不确定返回的类型是integer还是string
B.String x = t.findLarger("java",123);
C.int x = t.findLarger(123, new Integer(456));
D.int x = (int) t.findLarger(new Double(123), new Double(456));
8、calendar的对象.getTime()返回的是Date的对象。
9、import使用 .* 时只能访问当前包下的类,不能访问子包下的类。如果import多个包,其中有相同的类名,则实例化有具体类的。如果都没有指明具体的类,则谁在前面用谁。
Import lianxi1.*; //未指明具体类
Import lianxi.Student; //指明具体类
10、注解
(1)按照运行机制来分:运行时、源码、编译时
(2)按来源来分:JDK、第三方、自己定义的
11、Math类常用方法:
ceil() 返回大于等于参数的最小整数
floor() 返回小于等于参数的最小整数
round() 返回四舍五入后的整数
12、数组是可以存不同类型的数据的,可以使用object数组。
Object[] arr = {“123”,new Integer(“1”)};
集合是不能存储基本数据类型的 长度不固定。
13、构造方法的作用:对象属性的初始化
New的作用:类的实例化
14、成员变量对象的引用在堆里
栈里放的是局部变量和参数
值是地址
15、父类的方法抛出异常,子类可以不抛出异常,也可以抛出父类异常的子类异常,或是父类的部分异常。
16、this()和super()不可以同时出现在一个构造函数中,this.方法调用的是本类的方法,super.方法调用的是父类的方法。
17、final修饰的方法是可以重载的(不可以被重写哦,要分清这里面的概念)。
18、Java中的继承对构造方法是不继承的,只是调用,所以子类是没有继承父类的构造方法的。
19、final修饰的变量是不能二次赋值的,但是如果final修饰的变量没有赋初始值,且不是用static修饰的,则可以通过构造方法来赋值。
20、抽象类不必须提供抽象方法。
21、类的各种信息是在方法区里保存的(.class文件)
22、A是一个接口 public A doit()是可以的哦。
23、 ClassC、ClassB继承ClassA。
ClassA p0 = new ClassA();
ClassB p1 = new ClassB();
ClassC p2 = new ClassC();
ClassA p3 = new ClassB();
ClassA p4 = new ClassC();
<插入代码>
下列选项中放置在<插入代码>处,使程序编译正确的是:
A.p0 = p1;
B.p1 =p2;
C.p2 = p4;
D.p2 = (ClassC)p1;
正确答案:A
只有p0和p1不是同级关系。C来说是向下转型,需要强转。