java吧 关注:1,308,072贴子:12,881,643

回复:【学习】【直播】【长期】【常见的面试题,标题要长长长长长

取消只看楼主收藏回复

16、作用域public,private,protected,以及不写时的区别
区别如下:
作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×


78楼2012-03-05 10:56
回复
    你用过java 7?我木有用过


    80楼2012-03-05 11:18
    回复
      2026-08-26 11:03:14
      广告
      不感兴趣
      开通SVIP免广告
      17、abstract class和interface有什么区别?
        声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract
      类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract
      类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
        接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。


      84楼2012-03-05 11:26
      回复
        1.7以后 switch( String )必须是String?
        应该是可以String吧


        85楼2012-03-05 11:28
        回复
          18、char型变量中能不能存贮一个中文汉字?为什么?
          答:是能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的


          87楼2012-03-05 11:36
          回复
            after java 6 : switch( enum )
            after java 7 : switch( String )
            因为你是这么写的。所以核实一下


            88楼2012-03-05 11:37
            回复
              19、JSP有哪些内置对象和动作?它们的作用分别是什么?
              JSP共有以下9种基本内置组件:
              request 用户端请求,此请求会包含来自GET/POST请求的参数
              response 网页传回用户端的回应
              pageContext 网页的属性是在这里管理
              session 与请求有关的会话期
              application servlet 正在执行的内容
              out 用来传送回应的输出
              config servlet的构架部件
              page JSP网页本身
              exception 针对错误网页,未捕捉的例外
              常用的组件:request、response、out、session、application、exception


              89楼2012-03-05 11:45
              回复
                20、排序都有哪几种方法?用伪代码实现一个快速排序 答:排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序) 快速排序的伪代码:使用快速排序方法对a[ 0 :n- 1 ]排序从a[ 0 :n- 1 ]中选择一个元素作为middle,该元素为支点;把余下的元素分割为两段left和right,使得left中的元素都小于等于支点,而right中的元素都大于等于支点; 递归地使用快速排序方法对left进行排序;递归地使用快速排序方法对right进行排序;所得结果为left + middle + right。


                90楼2012-03-05 12:35
                回复
                  2026-08-26 10:57:14
                  广告
                  不感兴趣
                  开通SVIP免广告
                  今天整理出很多题,笔试面试,不是从搜索引擎上粘的,各种基础,各种疑点的。慢慢直播


                  92楼2012-03-05 13:04
                  回复
                    被吞!?


                    95楼2012-03-05 13:51
                    回复
                      21、请用JAVA实现两个类,分别实现堆栈(Stack)和队列(Queue)操作。
                      public class MyStack {
                      private List list;
                      public MyStack(){ list = new ArrayList(); }
                      public boolean isEmpty(){ return list.size() == 0; }
                      public void push(Object obj){ list.add(obj); }
                      public Object pop(){ if(list.size()>0){ Object obj = list.get(list.size()-1); list.remove(list.size()-1); return obj; }else{ return null; }}
                      //上stack 下queue
                      public int getNumber(){ return list.size(); } }
                      class IntegerQueue {
                      public int[] integerQueue;// 用来当队列
                      public int tail;// 队尾
                      public int size;// 队的长度,也可以设置一个默认值,溢出时从新申请
                      public IntegerQueue(int size) { integerQueue = new int[size]; this.size = size; tail = 0; }
                      public void inQueue(int i) { if (tail < size) { this.integerQueue[tail] = i; tail++; } else { System.err.println("溢出啦!"); } }
                      public int outQueue() { if (tail >= 0) { int tmp = this.integerQueue[0]; tail--; return tmp; } else { System.err.println("队列为空!"); throw new RuntimeException(); } } }


                      96楼2012-03-05 13:53
                      回复
                        这下好点了


                        97楼2012-03-05 13:54
                        回复
                          22、简述JAVA代码安全性
                          类加载器(class loader)加载程序运行所需要的所有类,它通过区分本机文件系统的类和网络系统导入的类增加安全性,这可以限制任何的特洛伊木马程序,因为本机类总是先被加载,一旦所有的类被加载完,执行文件的内存划分就固定了,在这个时候特定的内存地址被分配给对应的符号引用,查找表(lookuo table)也被建立,由于内存划分发生在运行时,解释器在受限制的代码区增加保护防止未授权的访问;然后字节码校验器(byte code verifier)进行校验,主要执行下面的检查:类符合JVM规范的类文件格式,没有违反访问限制,代码没有造成堆栈的上溢或者下溢,所有操作代码的参数类型都是正确的,没有非法的数据类型转换(例如将整型数转换成对象类型)发生;校验通过的字节码被解释器(interpreter)执行,解释器在必要时通过运行时系统执行对底层硬件的合适调用。


                          98楼2012-03-05 14:17
                          回复
                            今天就到这,明天继续
                            没人看也会更完


                            99楼2012-03-05 14:55
                            回复
                              2026-08-26 10:51:14
                              广告
                              不感兴趣
                              开通SVIP免广告
                              开工了


                              100楼2012-03-06 13:21
                              回复