10 整理的简答题
有的答案略;
1权限修饰符有哪些?
2在什么情况下,finally语句不会执行?
如果在try内部执行一条System.exit(0)语句终止应用程序的执行,则finally中的语句不会被执行.
3高级for和传统for循环的区别?
增强for对数组和集合进行遍历,不能对其进行操作
for循环在循环过程中,可以操作,(在删除的时候,为了防止漏删,要自减,既 “—---“)
4. &&和&的区别?
最终结果一样;
&&具有短路效果,左边是false,右边不执行
&是无论左边是false还是true,右边都会执行
5. “==”和equals方法究竟有什么区别?
“==”是一个比较运算符,既可以比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值
“equals”方法是一个方法,只能比较引用数据类型,所有的对象都会继承object类中的方法,如果没有重写object类中的equals方法,equals方法和”==”号,在比较引用数据类型的时候毫无区别,重写后的equals方法比较的是对象中的属性
6. 写出两种排序的区别及算法
冒泡排序:
选择排序:
7. short s1 = 1; s1 = s1 + 1;有什么错? short s1 =1; shorts1 +=1;有什么错?
答:对于前者,由于 s1 + 1 运算时会自动提升表达式的类型,所以结果是 int型,再赋值给 short类型s1时,编译器会报告需要强制类型转换的错误.
对于 short s1 = 1; s1 +=1; 由于 +=是 java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译.
8. 栈内存和堆内存的特点?
9. 静态变量和实例变量的区别?
在语法定义上的区别:静态变量前要加static关键字,而实例变量则不需要
在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才回被分配空间,才能使用这个实例变量.静态变量不需要某个实例对象,而是属于类,所以也被称之为类变量,只要程序加载了类的字节码,不需要创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了,总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用.
10 .请说出final,finalize,finally的区别
Final用于声明属性,方法和类,分明表示属性不可变,方法不可覆盖,类不可继承,内部类要访问局部变量,局部变量必须定义成final类型
Finally是异常处理语句结构的一部分,表示总是执行
10. Arraylist和linkedList的区别
11. 数组和集合的区别
12. 泛型的出现解决了什么问题?
提高了安全性,(将运行时期的错误转换到了编译期)
省去了强转的麻烦
没有了黄色波浪线
11.如何理解匿名内部类?
匿名内部类也就是没有名字的内部类
正因为没有名字,所以匿名内部类只能利用一次,如果想要调用多次,建议利用有名字的类,因为匿名内部类一旦被调用完毕就是垃圾,可以被垃圾回收器回收
abstract class Person{
public abstract void eat( ) ;
}
public class Demo {
publicstatic void main(String[] args){
Person p
13. 什么是面向对象,面向对象和面向过程的区别?
首先,面向对象是一种思想
它是一种更加符合我们思想习惯的思想,
可以将复杂的事情简单化
将我们从执行者变成了指挥者
面向对象强调的是结果,是基于面向过程的, 面向过程强调的是过程
14. 继承的好处?
提高了代码的复用性
提高了代码的维护性
让类与类之间产生了关系,是多态的前提
15. static关键字有什么特点?
随着类的加载而加载
优先于对象存在
被类的所有对象共享
可以通过类名调用
注意事项:
在静态方法中是没有this关键字的
静态方法只能访问静态的成员变量和静态的成员方法
16. this和super的区别?
首先:this代表当前对象的引用,谁来调用我,我就代表谁
Super:代表当前对象父类的引用
然后:
在调用成员变量的时候:
This既可以调用本类的成员变量,也可以调用父类的成员变量
Super调用父类的成员变量
在调用构造方法的时候
This(…..)调用本类的构造方法
Super(….)调用父类的构造方法
在调用成员方法的时候
“This.”既可以调用本类的成员方法,也可以调用父类的方法
“super.”调用的是父类的成员方法
17. java中支持多继承吗?
支持,但只体现在接口与接口之间
18. 抽象类和接口的区别?
分四点来说:
和类的关系:
抽象类与类之间是继承关系
接口与类之间是实现关系
成员方法:
抽象类的成员方法可以抽象也可以非抽象
接口的成员方法只能是抽象的
构造方法:
抽象类有构造方法
接口是没有构造方法的
成员变量:
抽象类可以是变量也可以是常量
接口的成员变量只能是常量
19. 数组是引用数据类型还是基本数据类型?
int a[]={1,2,3,4,5};intb[]=a[];b[0]=100;a[0]=???
引用数据类型a[0]=100
20. Java的数据类型有哪些?
(1) 基本数据类型:整型{byte,short,int,long,}浮点型{float,double}字符类型char布尔类型Boolean
(2) 引用数据类型:类,接口,数组
21泡排序和选择排序的区别以及代码
21. String和StringBuffer的区别
1. String是一个不可变的字符序列,一旦被初始化,则不能被改变 ; StringBuffer是字符串缓冲区,则是可变的字符序列
2. String可以通过+来拼接成新的字符串 ; StirngBuffer必须通过方法来实现
3. String当做参数传递时不改变值 ; StringBuffer当做参数传递时会改变值
4. String重写了equals方法,可以比较对象的属性 ; StringBuffer没有重写,只能比较地址值
22. Date和Calender类有什么区别和联系??
23. 线程的状态有哪些?
新建,就绪,运行,阻塞,死亡
24. 集合中list和set的区别?
25. TreeSet有几种排序方式?
26. Map集合的特点?
27. Collection和collections的区别?
28. i++和++i的区别?
29. String类可以被继承吗?为什么?
不可以,因为String类是final类,故不可以被继承
30. Map的两种的两种取出方式?
31. 字节流和字符流的区别?
32. 什么是转换流
33. 什么是打印流
34. 什么是递归?
35. 重载和重写的区别?
36. Java中成员变量和局部变量的区别?
37. Jdk和jre的区别?