-
&&和&的区别(3分)
短路与,非短路与和位与运算符
短路与:当两边都为真时结果为真,第一个语句为假时不执行第二条语句
非短路与:两边无论真假都执行
位与:要运算的两个数转换为二进制,两边相同时结果为1,不一样为0,结果不会超过最小的那个 -
continue、break、return的区别(3分)
Continue为结束当前次循环,执行下一次循环
Break为结束本层循环,嵌套循环中要跳出外层循环使用breakouter
return有两个作用
终止函数运行。
结束swtch分支。
返回方法的返回值,在try catch finally语句块try中不执行。 -
简述什么是数据结构(4分)
计算机储存组织数据的一种方式、方法,使用合适的数据结构能提高程序运行效率 -
列举常见的数据结构及特征(5分)
数组:查询修改快,添加删除慢
长度一旦确定无法更改
链表:查询修改慢,添加删除快
散列表:数组链表,综合数组与链表的优点,存储两个元素
树:二叉查找树和红黑树,
查询修改快,添加删除慢
按照某个规则进行排序
栈:先进后出 -
简述类和对象的关系(3分)
类:定义模板,属性定义变量,行为定义方法
对象:模板的实例化,属性有了具体的值
比如:
类是对一类对象的抽象,对象是类的具体实现 -
简述面向对象和面向过程的区别(3分)
面向过程:需要知道整个程序的实现过程
面向对象:不需要知道整个程序的过程,交由对象去处理
通俗讲就是自己做饭与请厨师做饭的区别
区别:面向对象比面向过程耦合度低,可扩展性和可重用性高,易于维护 -
Overload和Override的区别(3分)
Overload是方法重载:方法名称相同,返回值和参数列表不同
Override是方法覆写:方法名,返回值,参数列表全部相同,不能有更低的访问权限,不能有更宽泛的异常,父类方法无法满足子类 -
简述this和super的作用(3分)
This:代表当前对象,不能出现在静态上下文,区分成员变量与局部变量,写在构造方法第一行用来重载调用其它构造方法
Super:在子类中表示父类型特征,不能出现在静态上下文,区分子类属性与父类属性,默认在子类构造方法第一行,调用父类无参构造 -
final、finally、finalize的区别(4分)
Fianl:修饰符,表示最终的,修饰的类不能被继承,修饰的方法不能被覆写,修饰的变量在整个程序生命周期内不可更改,没有默认值,必须显式赋值
Finally:与try catch连用,一定会执行,一般用于释放与关闭资源
Finalize:当没有更多引用指向该对象时,这个对象会被jvm当作垃圾回收,此时自动调用该方法,垃圾回收之前自动调用,可以使用System.gc()进行建议回收 -
Object类中有哪些方法?并描述方法功能(至少4个)(3分)
Equals:比较两个值是否相等,需要根据需求覆写
HashCode:返回类的哈希值,因为只有equals方法无法判断两个对象是否完全相等
toString:对象的字符串形式描述,需要根据需求覆写,输出一个对象时会自动调用toString方法
Finalize:垃圾自动回收时自动调用该方法
Wait:线程通信,让当前线程挂起
Notify:线程通信,随机唤醒一个在该对象中挂起的线程
NotifyAll:线程通信,唤醒所有在该对象中挂起的线程 -
什么是多态?并简述多态的优点(4分)
多态:父类引用指向子类对象
同一个操作对应多种实现,有不同的解释
多态是同一个行为具有多个不同表现形式或形态的能力。
优点:降低耦合度,扩展性,复用性 -
Error和Exception的区别(3分)
Error:程序无法处理的异常,比Exception更加严重,不容易处理修复
Exception:运行时异常和编译时异常,可以通过throw创建异常并处理,或通过throws告知调用处处理异常 -
什么是设计模式(4分)
碰到问题的解决方式
前人编程中总结的编码的最佳实践,长期开发过程中约定俗成的写法,遵循设计模式开发可以提高效率,目标实现高内聚低耦合 -
简述sleep()和wait()的区别(3分)
Sleep():线程睡眠,静态方法,当线程处于睡眠状态时线程仍是执行的,如果是同步方法仍然对方法加锁,不会交出锁,睡眠结束后继续执行,用在任何地方
Wait():线程挂起,成员方法,当线程处于挂起状态不在执行,进入阻塞状态等待唤醒,释放锁,唤醒后进入就绪状态,当方法没有锁时继续执行,同步加锁的成员方法 -
TCP和UDP的区别(4分)
TCP:面向连接,可靠,效率低,点对点连接
UDP:非连接,不可靠,效率高,一对一,一对多,多对一,多对多的交互通信 -
简述Comparator和Comparable的区别(5分)
Comparator:使用conparator需要新建类继承Comparator或者使用匿名内部类,覆写compare方法进行比较,外部比较器
Comparable:使用Comparable需要让要比较的类实现Comparable接口,并在类中覆写compareTo方法进行比较,内部比较器
Comparator优先级高于Comparable
17 判断一下代码是否有错误,如果有错误请说明错误原因.如果没有请说明打印结果(3分)
18 int sum;
19 for (int i = 0; i<=10 ;i++ ){
20 sum += i;
21.}
22 System.out.println( sum );
有错误sum没有初始值,局部变量没有默认值,不赋值不能使用