1.使用length属性获取数组长度,使用length()获取字符串的长度;
2.public、private、protected、friendly区别
public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用
private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用protected对于子女、朋友来说,就是public的,可以*使用,没有任何限制,而对于其他的外部class,protected就变成private。
friendly权限是java的默认权限,也称作包(package)访问权限,所有的成员仅限同一个包内的成员访问(当然包含自己)
3.Collection和Collections区别;
Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。
Collection是个java.util下的接口,它是各种集合结构的父接口
4.、String s=new String(‘xyz’);创建了几个object对象
在jvm的工作过程中,会创建一片的内存空间专门存入string对象。我们把这片内存空间叫做string池。
String s="Hello";当jvm看到"Hello",在string池创建string对象存储它,并将他的引用返回给s。
s="Java",当jvm看到"Java",在string池创建新的string对象存储它,再把新建的string对象的引用返回给s。原先的"Hello"仍然在string池内。没有消失,他是不能被修改的。所以我们仅仅是改变了s的引用,而没有改变他所引用的对象,因为string对象的值是不能被修改的。
首先在string池内找,找到?不创建string对象,否则创建, 这样就一个string对象
遇到new运算符号了,在内存上创建string对象,并将其返回给s,又一个对象
所以总共是2个对象
4.、short s1;s1=s1+1;是否有错
有错 进行该操作需要进行强制转换 short s1=(short) s1+1 java存在这样的规则 a.高位转低位需要强制转换
b.低位转高位自动转. s1+=1 是不报错的 (s1 += 1)表达式使用的是复合赋值操作符,复合赋值表达式自动地将所执行计算的结果转型为其左侧变量的类型。如果结果的类型与该变量的类型相同,那么这个转型不会造成任何影响。
5.、Overriding和Overloading区别
子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding) 。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了. 如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型或有不同的参数次序,则称为方法的重载(Overloading)。不能通过访问权限、返回类型、抛出的异常进行重载
6、Set里面的元素不能重复,用什么方法区分重复与否
set 不包含满足e1.equals(e2)
的元素对 e1
和 e2 所以说 set用equals区分重复
7、给出一个常见的runtime exception
RuntimeException是java中所有运行时异常的父类,实际运行时出现的都是它的子类,看看RuntimeException的Java doc就可以随便列出几个:
1,
Object x = new Integer(0);
System.out.println((String)x);
当试图将对象强制转换为不是实例的子类时,抛出该异常(ClassCastException)
2,
int a=5/0;
一个整数“除以零”时,抛出ArithmeticException异常。
3,
String s=null;
int size=s.size();
当应用程序试图在需要对象的地方使用 null 时,抛出NullPointerException异常
4,
"hello".indexOf(-1);
指示索引或者为负,或者超出字符串的大小,抛出StringIndexOutOfBoundsException异常
5,
String[] ss=new String[-1];
如果应用程序试图创建大小为负的数组,则抛出NegativeArraySizeException异常。