Java基础小结
来源:互联网 发布:java jdk1.7 64位 编辑:程序博客网 时间:2024/05/18 03:53
1. 八种基本数据类型的大小,以及他们的封装类。
2. Switch能否用string做参数?
- JDK1.5之前,支持byte、short、char、int;
- JDK1.5,支持enum类型;
- JDK7开始,支持字符串(String);
3. equals与==的区别?
==常用于比较原生类型(
byte, short, int, long, float, double, char, boolen
);- equals()方法用于检查对象的相等性。
注:如果用于比较对象,当两个引用地址相同,==返回true。而equals()可以返回true或者false主要取决于重写实现。
以String类为例子说明eqauls与==的区别:
String str1 = "abc"; String str2 = "abc"; //从常量池中获取,因此内存地址是一致的 System.out.println(str1 == str2); //true System.out.println(str1.equals(str2)); //true String str2 = new String("abc"); //创建了一个新对象,产生了一个新地址 System.out.println(str1 == str2); //false System.out.println(str1.equals(str2)); //true
String类源码
public final class String { public boolean equals(Object anObject) { // 1.先比较内存地址,内存地址相等就说明引用指向的是同一个对象 if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String) anObject; int n = count; if (n == anotherString.count) { int i = 0; while (n-- != 0) { // 2.对比两个字符串的每一个字符 if (charAt(i) != anotherString.charAt(i)) return false; i++; } return true; } } return false; }}
4. 四种引用(强、弱、软、虚)
强引用(Strong Reference):如Object obj = new Object()。
软引用(Soft Reference):当堆将发生OOM时会回收软引用所指向的内存空间,一般用于实现内存敏感的高速缓存。
弱引用(Weak Reference): 发生GC时必定回收弱引用指向的内存空间。
虚引用(Phantom Reference) :既不会影响对象的生命周期,也无法通过虚引用来获取对象实例,仅用于在发生GC时接收一个系统通知。
5. String、StringBuffer与StringBuilder的区别?
6. try…catch…finally,try里有return,finally还执行么?
会执行,在方法返回调用者前执行。
try…catch块,try里有return,finally也有return,如何执行
7. 面向对象的三个特征?
继承:继承是从已有类得到继承信息创建新类的过程。
封装:通常是把数据和操作数据的方法绑定起来,对实现细节进行隐藏,只能通过已定义的接口进行访问。
多态:指允许不同子类对同一消息作出不同的响应。多态性分为编译时的多态性和运行时的多态性。
- 编译时的多态性:方法重载(overload);
- 运行时的多态性:方法重写(override);
8. Override和Overload的含义与区别?
- Overload(重载):一个类中多态性的一种表现,参数类型,个数,顺序不同。
- Override(重写):父类与子类之间多态性的一种表现。
9. Interface与abstract类的区别。
10. Static class 与非static class的区别?
- 内部静态类不持有外部类的引用;非静态内部类需要持有对外部类的引用。
- 静态类只能访问外部类的静态成员;非静态内部类能够访问外部类的静态和非静态成员。
- 非静态内部类不能脱离外部类实体被创建,非静态内部类可以访问外部类的数据和方法。
11. ArrayList、LinkedList、Vector的底层实现和区别?
- ArrayList/Vector:查询快,增删慢;
- LinkedList:查询慢,增删快;
12. HashMap和HashTable的区别?
- HashTable是线程安全的,不能存储 null 值;
- HashMap 不是线程安全的,可以存储 null 值 ;
0 0
- Java 基础小结
- Java基础小结
- Java基础数据类型小结
- Java基础小结
- java基础小结
- java编程基础小结
- Java基础小结
- Java语言基础小结
- java基础小结
- Java基础--小结
- Java基础小结
- java语法基础小结
- 【Java基础】Json小结
- java基础小结
- JAVA语言基础课后小结
- Java基础之多线程(小结)
- JAVA面向对象基础小结
- java面向对象基础小结
- 安装程序遇到错误0x80070422
- HTML5 表单详解
- Linux和Unix的关系
- Use Multipath TCP to create backup connections for iOS
- 【算法】程序猿不写代码是不对的24
- Java基础小结
- gprs 获取基站信息,根据基站信息定位地理位置(基站免费查询接口)
- Android UI 之实现多级列表TreeView
- JS禁用浏览器退格键实现思路及代码
- 团体程序设计天梯赛L2-001 紧急救援
- CSS伪3d旋转
- Bootstrap学习-表单
- 04_python_练习题——企业利润
- 回归分析