firstMonth_test
/////////////////////////2016-11-24//////////////////////////
int test(){
1.对于String对象,可以使用“=”赋值,也可以使用new关键字赋值,两种方式有什么区别?
使用“=”赋值不一定每次都创建一个新的字符串,而是从“字符串实例池”中查找字符串。使用new进行赋值,则每次都创建一个新的字符串。
2. String类和StringBuffer类有什么区别?
String类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer是可变字符串类,类似String的缓冲区,可以修改字符串的值。
3. for循环中的break语句和continue语句的使用。
break可以用来中断循环,continue可以用来继续下一次循环。
4. 使用代码,创建一个长度为5的String型数组,并使用增强for循环迭代数组打印出数组中的元素。
String string[] = new String[5];
for(String s:string) {
System.out.println(s);
}
5. 说明Arrays类的作用, 并举例。
Arrays类是java.util包中的一个类,类中所有的方法都是static方法,这些方法都是数组对象的工具方法,能够对数组进行处理,如sort方法可以对数组元素进行排序.
6. Overload 和 Override 的区别。Overloaded的方法是否可以改变返回值的类型?
方法的重写Overriding 和重载Overloading 是Java 多态性的不同表现。重
写Overriding 是父类与子类之间多态性的一种表现,重载Overloading 是一个
类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参
数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用
子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定
义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方
法的重载(Overloading)。Overloaded 的方法是可以改变返回值的类型。
7. 定义类A 和类B 如下:
class A {
int a=11;
double d=2.0;
void display(){
System.out.println("Class A: a="+a +"\td="+d);
}
}
class B extends A{
float a=3.0f;
String d="Java program.";
void display(){
super.display();
System.out.println("Class B: a="+a +"\td="+d);
}
}
问:
(1) 若在应用程序的main方法中有以下语句:
A a=new A();
a.display();
则输出的结果如何?
1) 输出:Class A: a=11 d=2.0
(2) 若在应用程序的main 方法中定义类B 的对象b:
A b=new B();
b.display();
则输出的结果如何?
2)输出: Class A: a=11 d=2.0
Class B: a=3.0 d=Java program
8. 请说明什么是抽象类?抽象类有什么作用?
抽象类是不能实例化的类,使用abstract修饰。抽象类往往用来做父类使用,定义一些子类的共同属性或行为。
9. final类与final方法有什么作用?
final类是不能够被继承的类,称为终极类,如String类就是final类,不能有子类。final修饰方法后,是终极方法,不能被子类覆盖,但是可以被子类继承使用。
10. Object类中的equals方法和hashCode 方法。
Oject类中的equals方法用来比较两个引用值,hashCode用来返回引用的内地址的十六进制数值。在Set以及Map集合中,判断两个元素是否重复时,往往需要使用这两个方法。这两个方法往往被子类覆盖,覆盖的规则是:如果存在x和y两个对象,调用x.equals(y)返回true时,那么调用hashCode方法的返回值也该相同;如果x.equals(y)返回false时,那么调用hashCode方法返回的值可能相同,也可能不同。
11.throws关键字和throw关键字有什么区别和联系?
throw用来在方法体内抛出异常,而throws用来在方法声明处声明异常。这两个关键字有着一定的联系。如果一个方法中使用了throw关键字抛出了异常,那么要么立即用try/catch语句进行捕获,要么就是用throws进行声明,否则将出现编译错误。然而,并不是只有使用了throw关键字之后才能使用throws关键字,语法上来说,任何一个方法都可以直接使用throws关键字,抽象方法也可以使用。
12. List和Set集合有什么区别?
List实现了列表类型的集合,List中的元素是有序(ordered)的,每个元素根据放入集合的顺序而对应一个索引值, 可以根据这个索引值返回集合原宿。而Set实现了不重复元素集合,即Set中的元素不能够重复,重复的元素将无法添加到集合中。
13. Collectioin 和Collections有什么区别?
Collection是一个接口的名字,定义了集合类型的共同特征。而Collections是一个类的名字,是集合类型的工具类,类中定义了大量的静态方法,能够操作及和对象。
14. java中多态是什么?
方法的覆盖Overriding 和重载Overloading 是java 多态性的不同表现;覆
盖Overriding 是父类与子类之间多态性的一种表现,重载Overloading 是一个
类中多态性的一种表现。
15. 请列举Java语言中的八种基本数据类型,并说明每种数据类型的含义及长度。
Java语言的八种基本数据类型有:byte字节型,8位长度:short短整型,16位长度,int整型,32位长度:long长整型,64位长度:float单精度浮点型。32位长度:double双精度浮点型,64位长度:char字符型,16位长度:boolean型,表示逻辑值,有true和false两个值,分别表示真和假.
16. 面向对象的特征有哪些方面? 并解释特征。
抽象, 继承, 封装, 多态
解释:
1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地
注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一
部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
过程抽象是指任何一个明确定义功能的操作都可被使用者看作单个的实体看待,尽管这个操作实际上可能由一系列更低级的操作来完成。数据抽象定义了数据类型和施加于该类型对象上的操作,并限定了对象的值只能通过使用这些操作修改和观察。
2)继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了
一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称
为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原
始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,
并且类可以修改或增加新的方法使之更适合特殊的需要。
3)封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封
装的对象,这些对象通过一个受保护的接口访问其他对象。
4)多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参
数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的
优势,很好的解决了应用程序函数同名问题。
17. 作用域public,private,protected,以及不写时的区别?
作用域 当前类 同包 子孙类 其他
public √ √ √ √
protected √ √ √ ×
default √ √ × ×
private √ × × ×
不写时默认为default。
18. 写一个程序, 要求功能:求出用1,2,5这三个数不同个数组合的和为100的组合个数。如:100个1是一个组合,5个1加19个5是一个组合。。。。 请用JAVA语言写。
public void main(String[] args...){
int number=0;
for (x=0; x<=100; x++){
for (y=0; y<=50; y++){
for (z=0; z<=20; z++){
if ((x+2*y+5*z)==100){
number++;
}
}
}
}
System.out.println(number);
}
19. 说明try/catch/finally语句块的作用。
try语句块用来包含可能发生异常的语句,catch块用来捕获异常,finally用来包含必须执行的语句。
20. 返回值是多少?“beijing”.equalsIgnoreCase(new String(“beijing”))
true
}