编程方面
1. Java 中 switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上?
(3’)
switch(expr1)中,expr1 是一个整数表达式。因此传递给 switch 和 case 语句的参数应该
是 int、 short、 char 或者 byte。long,string 都不能作用于 swtich。
2. Java 中 String 对象能否被继承? STRING 与 STRINGBUFFER 的区别?(6’)
String:是对象不是原始类型.
为不可变对象,一旦被创建,就不能修改它的值.
对于已经存在的 String 对象的修改都是重新创建一个新的对象,然后把新的值保存进
去.
String 是 final 类,即不能被继承.
StringBuffer:
是一个可变对象,当对他进行修改的时候不会像 String 那样重新建立对象
它只能通过构造函数来建立,
StringBuffer sb = new StringBuffer();
对象被建立以后,在内存中就会分配内存空间,并初始保存一个 null.通过它的 append 方
法向其赋值.
sb.append("hello");
字符串连接操作中 StringBuffer 的效率要明显比 String 高:
String 对象是不可变对象,每次操作 Sting 都会重新建立新的对象来保存新的值.
StringBuffer 对象实例化后,只对这一个对象操作。
3. 说说你熟悉的几种 Java 的常用设计模式,一般在哪种情况下用到这些设计模式?你对
设计模式有什么看法?用 java 实现一个单例模式?(12’)
一共 23 种设计模式!
按照目的来分,设计模式可以分为创建型模式、结构型模式和行为型模式。
创建型模式用来处理对象的创建过程;结构型模式用来处理类或者对象的组合;行为型模
式用来对类或对象怎样交互和怎样分配职责进行描述。
创建型模式用来处理对象的创建过程,主要包含以下 5 种设计模式:
工厂方法模式(Factory Method Pattern)
抽象工厂模式(Abstract Factory Pattern)
建造者模式(Builder Pattern)
原型模式(Prototype Pattern)