阿里巴巴校园招聘面试试题合集总结


    
    1 forward redirect区

    1址栏显示说
    forward服务器请求资源服务器直接访问目标址URLURL响应容读取然容发浏览器浏览器根知道服务器发送容里址栏原址
    redirect服务端根逻辑发送状态码告诉浏览器重新请求址址栏显示新URL
    2数享说
    forward转发页面转发页面享request里面数
    redirect享数
    3运方说
    forward般户登陆时候根角色转发相应模块
    redirect般户注销登陆时返回页面跳转网站等
    4效率说
    forward高
    redirect低


    2 servlet方法 doget dopost区
    3 ArrayList里装Person类象样根Person类属性年龄排序
    4 HashMap键值否意象



    面试总结
    首先介绍
    1        面试官着简历会挑中项目然说出框架流程
    2        画出框架流程图会问部分干什
    3        针2问题做web项目框架中servlet应部分
    4        前两问题牵引出webxml文件配置中属性作
    5        spring解
    6        spring赖注入方式种(注意spring注入方式赖注入)
    7        关事物问题做项目中做事物关事物控制写
    8        触发器存储程说点
    9        项目开发中果遇问题知道该什技术解决解决该查
    10    三年项目开发验觉优势方
    11    会问公司什解机会问问题


    1介绍做项目擅长技术
    2框架擅长?
    3知道MVC框架?
    4常什样网站什样算规划
    5喜欢技术(喜欢)举例子说明喜欢技术
    6前项目中没加班频率加班时间长度加班法
    7前项目中做什容SE级开发
    8项目组样做项目没详细设计做?
    9Struts什版
    10Struts2?Struts1什区
    11SpringAOP解项目方面
    12前项目规模
                              
    1     首先介绍
    2     问熟悉项目
    3     画出STRUTS框架响应jsp流程图
    4     针2问题做web项目框架中servlet应部分
    5     前两问题牵引出webxml文件配置中属性作
    6     spring解
    7     spring赖注入方式种(注意spring注入方式赖注入)
    8     关事物问题做项目中做事物关事物控制写
    9     Struts底层相关知识
    10     项目开发中果遇问题知道该什技术解决解决该查
    11     三年项目开发验觉优势方
    12     会问公司什解机会问问题


    1     首先介绍
    2     框架中较喜欢
    3     问做项目中收获收获什
    4     ibatis Hibernate 区
    5     servlet 生命周期
    6     spring 两特性(AOP IOC)
    7     说理解J2EE什
    8     什说JBOSS 符合J2EE求TOMCAT 符合J2EE求
    9     Hibernate 优点缺点
    10     认项目中重什
    11     分务感完成困难会办
    12     支付宝什问

    次杭州支付宝面试面试官开发框架方面技术问少部分根问项目延伸Sql UML等问题简历项目中果快钱项目准备快钱项目非常感兴趣问题:

    1        首先面试官介绍然介绍
    2        家公司?年出生?年毕业?工作年?问题回答简历样简历没作假回答定考虑
    3        协力员工法?
    4        生规划职业规划样?
    5        项目加班什法?加班极限少?
    6        熟悉新框架需长时间?(支付宝框架)
    7        说出认影响深项目说出原
    8        Oracle中分页Sql写?
    9        简单懂计算机说明java态
    10    说知道java设计模式
    11    strutsspring中应写java设计模式?
    12    说spring代理模式画spring代理模式类图
    13    快钱项目中担模块根回答展开问题
    14    宝钢物流项目入库模块开发中致类?接口?画UML图
    问题问题根回答延伸
                                    
    1 简单介绍
    2 根介绍提问
    3 mvc开发模式模式
    4 生规划
    5 业余爱
    6 做项目中做模块
    7 做项目
    总结根面试官喜欢面试官喜欢做事计划


     Java集合框架解? 否说说常类? 
     
     说说HashtableHashMap区: 源代码级区呢?
     
     时List? (ArrayListLinkedList)ArrayListLinkedList区?
     
     ArrayList特点部容器扩充?
     
     Properties类特点? 线程安全 
     

     时框架? (提Struts2)
     
     请说Struts2初始化?类创建?(源代码角度出发)
     
     解反射什方式动态创建象?(提CGLIB…… 会接着问CGLIB揪心中……结果没问)
     
     请说Struts2 Action交Spring托?单例例? 页面表单象例单例?
     
     请说业务层象单例例?
     
     请说Struts2源代码中设计模式?
     

     
     请说觉熟悉技术特点? (提发编程)
     
     请说线程安全出现原? 
     
     请说线程池中断策略(4)? 什特点?
     
     请说Tomcat配置应端口配置? 配置数源? 实现动态部署?
     
     请说Java常优化? 
     
     解新Servlet规范? 简单说?(提推)
     
     请说推实现?
     
     线程安全StringBufferStringBuilder区? 扩充部数组容量? (源代码)
     
     请说Tomcat中设计模式?(提观察者模式)
     
     否说说Java反射相关优化机制? (说太清楚…… 说没关系 )
     
     请说Mysql常优化策略?
     
     前提推知识面较感兴趣说说时什书解什技术范畴
     (首先提SOA说解未趋势提云计算说定解未深究)
     
     
     职业方面问题?
     
     觉潜力? 团队中位置? 觉团队中差距?花少时间赶?
     
     阿里巴巴什疑问? (囧问阿里巴巴牛时互动?意指培训话没说清楚……囧……)

    PS面时候问题整理里面纯粹仅限浅见果错误希位指点二

    · Java集合框架解? 否说说常类? 
    Java集合框架类图:


     
    常类:
    HashMapHashtableHashSetArrayListVectorLinkedListCollectionsArrays

    · 说说HashtableHashMap区(源代码级)

           1明显区Hashtable 步(方法synchronized)HashMap
           2HashMap继承AbstractMapHashtable继承Dictionary 前者Map骨干 部已实现Map需           做部分工作 子类需实现少量方法具Map项特性者部抽象方法需           实现类作实现该类已时
            3两者检测否含key时hash算法致HashMap部需keyhash码重新计算边检测                    Hashtable直接利key身hash码做验证
    HashMap
     
    Java代码
    1 int hash  (key  null)  0  hash(keyhashCode())   
    2   
    3 static int hash(int h) {   
    4         h ^ (h >>> 20) ^ (h >>> 12)   
    5         return h ^ (h >>> 7) ^ (h >>> 4)   
    6     }  
    Java代码
    1 int hash  (key  null)  0  hash(keyhashCode())   
    2   
    3 static int hash(int h) {   
    4         h ^ (h >>> 20) ^ (h >>> 12)   
    5         return h ^ (h >>> 7) ^ (h >>> 4)   
    6     }  
    int hash (key null) 0 hash(keyhashCode())

    static int hash(int h) {
    h ^ (h >>> 20) ^ (h >>> 12)
    return h ^ (h >>> 7) ^ (h >>> 4)
    }
     
      Hashtable:
     
    Java代码
    1 int hash  keyhashCode()  
    Java代码
    1 int hash  keyhashCode()  
    int hash keyhashCode()
     
      4两者初始化容量致HashMap部 16*075 Hashtable 11*075
    HashMap
     
    Java代码
    1 static final int DEFAULT_INITIAL_CAPACITY  16   
    2 static final float DEFAULT_LOAD_FACTOR  075f   
    3 public HashMap() {   
    4      thisloadFactor  DEFAULT_LOAD_FACTOR   
    5      threshold(int)(DEFAULT_INITIAL_CAPACITY*DEFAULT_LOAD_FACTOR)   
    6      table  new Entry[DEFAULT_INITIAL_CAPACITY]   
    7      init()   
    8 }      
    9 ………………………………  
    Java代码
    1 static final int DEFAULT_INITIAL_CAPACITY  16   
    2 static final float DEFAULT_LOAD_FACTOR  075f   
    3 public HashMap() {   
    4      thisloadFactor  DEFAULT_LOAD_FACTOR   
    5      threshold(int)(DEFAULT_INITIAL_CAPACITY*DEFAULT_LOAD_FACTOR)   
    6      table  new Entry[DEFAULT_INITIAL_CAPACITY]   
    7      init()   
    8 }      
    9 ………………………………  
    static final int DEFAULT_INITIAL_CAPACITY 16
    static final float DEFAULT_LOAD_FACTOR 075f
    public HashMap() {
    thisloadFactor DEFAULT_LOAD_FACTOR
    threshold(int)(DEFAULT_INITIAL_CAPACITY*DEFAULT_LOAD_FACTOR)
    table new Entry[DEFAULT_INITIAL_CAPACITY]
    init()
    }
    ………………………………
     
     Hashtable
     
    Java代码
    1 public Hashtable() {   
    2     this(11 075f)   
    3 }   
    4   
    5  public Hashtable(int initialCapacity float loadFactor) {   
    6            
    7     thisloadFactor  loadFactor   
    8     table  new Entry[initialCapacity]   
    9     threshold  (int)(initialCapacity * loadFactor)   
    10     }     
    Java代码
    1 public Hashtable() {   
    2     this(11 075f)   
    3 }   
    4   
    5  public Hashtable(int initialCapacity float loadFactor) {   
    6            
    7     thisloadFactor  loadFactor   
    8     table  new Entry[initialCapacity]   
    9     threshold  (int)(initialCapacity * loadFactor)   
    10     }     
    public Hashtable() {
    this(11 075f)
    }

    public Hashtable(int initialCapacity float loadFactor) {

    thisloadFactor loadFactor
    table new Entry[initialCapacity]
    threshold (int)(initialCapacity * loadFactor)
    }
     
       实续区应该 里先列出4点
     
    · 时ArrayListLinkedList外List?
    ArrayListLinkedList区?
     
    事实List2 外Vector
    ArrayListLinkedList区:
     
    1 毫疑问第点两者部数结构 ArrayList部元素容器Object数组
    LinkedList部实际链表数结构部类表示链表
    Java代码
    1 (ArrayList)   
    2 private transient Object[] elementData    
    3   
    4 ………………………………………………………………………………   
    5   
    6 (LinkedList)   
    7 private transient Entry header  new Entry(null null null)链表头    
    8   
    9 部链表类   
    10 private static class Entry {   
    11     E element 数元素   
    12     Entry next  前驱   
    13     Entry previous驱   
    14     Entry(E element Entry next Entry previous) {   
    15         thiselement  element   
    16         thisnext  next   
    17         thisprevious  previous   
    18     }   
    19 }     
    Java代码
    20 (ArrayList)   
    21 private transient Object[] elementData    
    22   
    23 ………………………………………………………………………………   
    24   
    25 (LinkedList)   
    26 private transient Entry header  new Entry(null null null)链表头    
    27   
    28 部链表类   
    29 private static class Entry {   
    30     E element 数元素   
    31     Entry next  前驱   
    32     Entry previous驱   
    33     Entry(E element Entry next Entry previous) {   
    34         thiselement  element   
    35         thisnext  next   
    36         thisprevious  previous   
    37     }   
    38 }     
    (ArrayList)
    private transient Object[] elementData

    ………………………………………………………………………………

    (LinkedList)
    private transient Entry header new Entry(null null null)链表头

    部链表类
    private static class Entry {
    E element 数元素
    Entry next 前驱
    Entry previous驱
    Entry(E element Entry next Entry previous) {
    thiselement element
    thisnext next
    thisprevious previous
    }
    }
     
    2 两者父类决定两者存储形式 ArrayList继承 AbstractListLinkedList继承AbstractSequentialList 两者实现List骨干结构前者访问形式趋 机访问数存储(数组)者趋 连续访问数存储(链接列表)
    Java代码
    1 public class ArrayList extends AbstractList      
    2   
    3 public class LinkedList extends AbstractSequentialList      
    Java代码
    4 public class ArrayList extends AbstractList      
    5   
    6 public class LinkedList extends AbstractSequentialList      
    public class ArrayList extends AbstractList

    public class LinkedList extends AbstractSequentialList
     
    3 两者效率问题 ArrayList基数组实现毫疑问直接标索引索引数快插入元素设计数组元素移动者数组扩充插入元素慢LinkedList基链表结构插入元素需改变插入元素前项指插入数快索引元素需前遍历索引元素慢
    · ArrayList特点部容器扩充?
    点谈ArrayList特点里略重点部容器扩充:
    Java代码
    1 public void ensureCapacity(int minCapacity) {   
    2         modCount++   
    3         int oldCapacity  elementDatalength   
    4         if (minCapacity > oldCapacity) {   
    5             Object oldData[]  elementData   
    6              里扩充原概 60   
    7             int newCapacity  (oldCapacity * 3)  2 + 1   
    8             if (newCapacity < minCapacity)   
    9                 newCapacity  minCapacity   
    10             创建指定新数组覆盖原数组   
    11             elementData  ArrayscopyOf(elementData newCapacity)   
    12         }   
    13     }     
    Java代码
    1 public void ensureCapacity(int minCapacity) {   
    2         modCount++   
    3         int oldCapacity  elementDatalength   
    4         if (minCapacity > oldCapacity) {   
    5             Object oldData[]  elementData   
    6              里扩充原概 60   
    7             int newCapacity  (oldCapacity * 3)  2 + 1   
    8             if (newCapacity < minCapacity)   
    9                 newCapacity  minCapacity   
    10             创建指定新数组覆盖原数组   
    11             elementData  ArrayscopyOf(elementData newCapacity)   
    12         }   
    13     }     
    public void ensureCapacity(int minCapacity) {
    modCount++
    int oldCapacity elementDatalength
    if (minCapacity > oldCapacity) {
    Object oldData[] elementData
    里扩充原概 60
    int newCapacity (oldCapacity * 3) 2 + 1
    if (newCapacity < minCapacity)
    newCapacity minCapacity
    创建指定新数组覆盖原数组
    elementData ArrayscopyOf(elementData newCapacity)
    }
    }
     
    · Properties类特点? 线程安全 
    Properties 继承Hashtable线程安全 特点 表示持久属性集保存流中者流中加载属性列表键应值字符串 中常方法load()方法流中加载属性:
    Java代码
    public synchronized void load(InputStream inStream) throws IOException {   
             输入流转换成LineReader   
            load0(new LineReader(inStream))   
        }   
      
        private void load0(LineReader lr) throws IOException {   
            char[] convtBuf  new char[1024]   
            int limit   
            int keyLen   
            int valueStart   
            char c   
            boolean hasSep   
            boolean precedingBackslash   
             行行处理   
            while ((limit  lrreadLine()) > 0) {   
                c  0   
                keyLen  0   
                valueStart  limit   
                hasSep  false   
                precedingBackslash  false   
                 面2循环处理keyvalue   
                while (keyLen < limit) {   
                    c  lrlineBuf[keyLen]   
                     need check if escaped   
                    if ((c  '' || c  '') && precedingBackslash) {   
                        valueStart  keyLen + 1   
                        hasSep  true   
                        break   
                    } else if ((c  ' ' || c  '\t' || c  '\f')   
                            && precedingBackslash) {   
                        valueStart  keyLen + 1   
                        break   
                    }   
                    if (c  '\\') {   
                        precedingBackslash  precedingBackslash   
                    } else {   
                        precedingBackslash  false   
                    }   
                    keyLen++   
                }   
      
                while (valueStart < limit) {   
                    c  lrlineBuf[valueStart]   
                    if (c  ' ' && c  '\t' && c  '\f') {   
                        if (hasSep && (c  '' || c  '')) {   
                            hasSep  true   
                        } else {   
                            break   
                        }   
                    }   
                    valueStart++   
                }   
      
                String key  loadConvert(lrlineBuf 0 keyLen convtBuf)   
                String value  loadConvert(lrlineBuf valueStart limit   
                         valueStart convtBuf)   
                 存入部容器中里Hashtable 部方法   
                put(key value)   
            }   
        }  
    Java代码
    public synchronized void load(InputStream inStream) throws IOException {   
             输入流转换成LineReader   
            load0(new LineReader(inStream))   
        }   
      
        private void load0(LineReader lr) throws IOException {   
            char[] convtBuf  new char[1024]   
            int limit   
            int keyLen   
            int valueStart   
            char c   
            boolean hasSep   
            boolean precedingBackslash   
             行行处理   
            while ((limit  lrreadLine()) > 0) {   
                c  0   
                keyLen  0   
                valueStart  limit   
                hasSep  false   
                precedingBackslash  false   
                 面2循环处理keyvalue   
                while (keyLen < limit) {   
                    c  lrlineBuf[keyLen]   
                     need check if escaped   
                    if ((c  '' || c  '') && precedingBackslash) {   
                        valueStart  keyLen + 1   
                        hasSep  true   
                        break   
                    } else if ((c  ' ' || c  '\t' || c  '\f')   
                            && precedingBackslash) {   
                        valueStart  keyLen + 1   
                        break   
                    }   
                    if (c  '\\') {   
                        precedingBackslash  precedingBackslash   
                    } else {   
                        precedingBackslash  false   
                    }   
                    keyLen++   
                }   
      
                while (valueStart < limit) {   
                    c  lrlineBuf[valueStart]   
                    if (c  ' ' && c  '\t' && c  '\f') {   
                        if (hasSep && (c  '' || c  '')) {   
                            hasSep  true   
                        } else {   
                            break   
                        }   
                    }   
                    valueStart++   
                }   
      
                String key  loadConvert(lrlineBuf 0 keyLen convtBuf)   
                String value  loadConvert(lrlineBuf valueStart limit   
                         valueStart convtBuf)   
                 存入部容器中里Hashtable 部方法   
                put(key value)   
            }   
        }  
    public synchronized void load(InputStream inStream) throws IOException {
    输入流转换成LineReader
    load0(new LineReader(inStream))
    }

    private void load0(LineReader lr) throws IOException {
    char[] convtBuf new char[1024]
    int limit
    int keyLen
    int valueStart
    char c
    boolean hasSep
    boolean precedingBackslash
    行行处理
    while ((limit lrreadLine()) > 0) {
    c 0
    keyLen 0
    valueStart limit
    hasSep false
    precedingBackslash false
    面2循环处理keyvalue
    while (keyLen < limit) {
    c lrlineBuf[keyLen]
    need check if escaped
    if ((c '' || c '') && precedingBackslash) {
    valueStart keyLen + 1
    hasSep true
    break
    } else if ((c ' ' || c '\t' || c '\f')
    && precedingBackslash) {
    valueStart keyLen + 1
    break
    }
    if (c '\\') {
    precedingBackslash precedingBackslash
    } else {
    precedingBackslash false
    }
    keyLen++
    }

    while (valueStart < limit) {
    c lrlineBuf[valueStart]
    if (c ' ' && c '\t' && c '\f') {
    if (hasSep && (c '' || c '')) {
    hasSep true
    } else {
    break
    }
    }
    valueStart++
    }

    String key loadConvert(lrlineBuf 0 keyLen convtBuf)
    String value loadConvert(lrlineBuf valueStart limit
    valueStart convtBuf)
    存入部容器中里Hashtable 部方法
    put(key value)
    }
    }
     LineReader类Properties部类:
    Java代码
    class LineReader {   
            public LineReader(InputStream inStream) {   
                thisinStream  inStream   
                inByteBuf  new byte[8192]   
            }   
      
            public LineReader(Reader reader) {   
                thisreader  reader   
                inCharBuf  new char[8192]   
            }   
      
            byte[] inByteBuf   
            char[] inCharBuf   
            char[] lineBuf  new char[1024]   
            int inLimit  0   
            int inOff  0   
            InputStream inStream   
            Reader reader   
      
            **  
             * 读取行  
             *   
             * @return  
             * @throws IOException  
             *  
            int readLine() throws IOException {   
                int len  0   
                char c  0   
                boolean skipWhiteSpace  true 空白   
                boolean isCommentLine  false 注释   
                boolean isNewLine  true 否新行   
                boolean appendedLineBegin  false 加 行开始   
                boolean precedingBackslash  false 反斜杠   
                boolean skipLF  false   
                while (true) {   
                    if (inOff > inLimit) {   
                         输入流中读取定数量字节存储缓区数组inCharBufinByteBuf中里区分字节流字符流   
                        inLimit  (inStream  null)  readerread(inCharBuf)   
                                 inStreamread(inByteBuf)   
                        inOff  0   
                         读取空   
                        if (inLimit < 0) {   
                            if (len  0 || isCommentLine) {   
                                return 1   
                            }   
                            return len   
                        }   
                    }   
                    if (inStream  null) {   
                         字节流需ISO88591解码   
                        c  (char) (0xff & inByteBuf[inOff++])   
                    } else {   
                        c  inCharBuf[inOff++]   
                    }   
      
                    if (skipLF) {   
                        skipLF  false   
                        if (c  '\n') {   
                            continue   
                        }   
                    }   
                    if (skipWhiteSpace) {   
                        if (c  ' ' || c  '\t' || c  '\f') {   
                            continue   
                        }   
                        if (appendedLineBegin && (c  '\r' || c  '\n')) {   
                            continue   
                        }   
                        skipWhiteSpace  false   
                        appendedLineBegin  false   
                    }   
                    if (isNewLine) {   
                        isNewLine  false   
                        if (c  '#' || c  '') {   
                             注释行忽略   
                            isCommentLine  true   
                            continue   
                        }   
                    }   
                     读取真正属性容   
                    if (c  '\n' && c  '\r') {   
                         里类似ArrayList部容量扩充字符数组保存读取容   
                        lineBuf[len++]  c   
                        if (len  lineBuflength) {   
                            int newLength  lineBuflength * 2   
                            if (newLength < 0) {   
                                newLength  IntegerMAX_VALUE   
                            }   
                            char[] buf  new char[newLength]   
                            Systemarraycopy(lineBuf 0 buf 0 lineBuflength)   
                            lineBuf  buf   
                        }   
                        if (c  '\\') {   
                            precedingBackslash  precedingBackslash   
                        } else {   
                            precedingBackslash  false   
                        }   
                    } else {   
                         reached EOL 文件结束   
                        if (isCommentLine || len  0) {   
                            isCommentLine  false   
                            isNewLine  true   
                            skipWhiteSpace  true   
                            len  0   
                            continue   
                        }   
                        if (inOff > inLimit) {   
                            inLimit  (inStream  null)  readerread(inCharBuf)   
                                     inStreamread(inByteBuf)   
                            inOff  0   
                            if (inLimit < 0) {   
                                return len   
                            }   
                        }   
                        if (precedingBackslash) {   
                            len  1   
                            skipWhiteSpace  true   
                            appendedLineBegin  true   
                            precedingBackslash  false   
                            if (c  '\r') {   
                                skipLF  true   
                            }   
                        } else {   
                            return len   
                        }   
                    }   
                }   
            }   
        }     
    Java代码
    class LineReader {   
            public LineReader(InputStream inStream) {   
                thisinStream  inStream   
                inByteBuf  new byte[8192]   
            }   
      
            public LineReader(Reader reader) {   
                thisreader  reader   
                inCharBuf  new char[8192]   
            }   
      
            byte[] inByteBuf   
            char[] inCharBuf   
            char[] lineBuf  new char[1024]   
            int inLimit  0   
            int inOff  0   
            InputStream inStream   
            Reader reader   
      
            **  
             * 读取行  
             *   
             * @return  
             * @throws IOException  
             *  
            int readLine() throws IOException {   
                int len  0   
                char c  0   
                boolean skipWhiteSpace  true 空白   
                boolean isCommentLine  false 注释   
                boolean isNewLine  true 否新行   
                boolean appendedLineBegin  false 加 行开始   
                boolean precedingBackslash  false 反斜杠   
                boolean skipLF  false   
                while (true) {   
                    if (inOff > inLimit) {   
                         输入流中读取定数量字节存储缓区数组inCharBufinByteBuf中里区分字节流字符流   
                        inLimit  (inStream  null)  readerread(inCharBuf)   
                                 inStreamread(inByteBuf)   
                        inOff  0   
                         读取空   
                        if (inLimit < 0) {   
                            if (len  0 || isCommentLine) {   
                                return 1   
                            }   
                            return len   
                        }   
                    }   
                    if (inStream  null) {   
                         字节流需ISO88591解码   
                        c  (char) (0xff & inByteBuf[inOff++])   
                    } else {   
                        c  inCharBuf[inOff++]   
                    }   
      
                    if (skipLF) {   
                        skipLF  false   
                        if (c  '\n') {   
                            continue   
                        }   
                    }   
                    if (skipWhiteSpace) {   
                        if (c  ' ' || c  '\t' || c  '\f') {   
                            continue   
                        }   
                        if (appendedLineBegin && (c  '\r' || c  '\n')) {   
                            continue   
                        }   
                        skipWhiteSpace  false   
                        appendedLineBegin  false   
                    }   
                    if (isNewLine) {   
                        isNewLine  false   
                        if (c  '#' || c  '') {   
                             注释行忽略   
                            isCommentLine  true   
                            continue   
                        }   
                    }   
                     读取真正属性容   
                    if (c  '\n' && c  '\r') {   
                         里类似ArrayList部容量扩充字符数组保存读取容   
                        lineBuf[len++]  c   
                        if (len  lineBuflength) {   
                            int newLength  lineBuflength * 2   
                            if (newLength < 0) {   
                                newLength  IntegerMAX_VALUE   
                            }   
                            char[] buf  new char[newLength]   
                            Systemarraycopy(lineBuf 0 buf 0 lineBuflength)   
                            lineBuf  buf   
                        }   
                        if (c  '\\') {   
                            precedingBackslash  precedingBackslash   
                        } else {   
                            precedingBackslash  false   
                        }   
                    } else {   
                         reached EOL 文件结束   
                        if (isCommentLine || len  0) {   
                            isCommentLine  false   
                            isNewLine  true   
                            skipWhiteSpace  true   
                            len  0   
                            continue   
                        }   
                        if (inOff > inLimit) {   
                            inLimit  (inStream  null)  readerread(inCharBuf)   
                                     inStreamread(inByteBuf)   
                            inOff  0   
                            if (inLimit < 0) {   
                                return len   
                            }   
                        }   
                        if (precedingBackslash) {   
                            len  1   
                            skipWhiteSpace  true   
                            appendedLineBegin  true   
                            precedingBackslash  false   
                            if (c  '\r') {   
                                skipLF  true   
                            }   
                        } else {   
                            return len   
                        }   
                    }   
                }   
            }   
        }     
    class LineReader {
    public LineReader(InputStream inStream) {
    thisinStream inStream
    inByteBuf new byte[8192]
    }

    public LineReader(Reader reader) {
    thisreader reader
    inCharBuf new char[8192]
    }

    byte[] inByteBuf
    char[] inCharBuf
    char[] lineBuf new char[1024]
    int inLimit 0
    int inOff 0
    InputStream inStream
    Reader reader

    **
    * 读取行
    *
    * @return
    * @throws IOException
    *
    int readLine() throws IOException {
    int len 0
    char c 0
    boolean skipWhiteSpace true 空白
    boolean isCommentLine false 注释
    boolean isNewLine true 否新行
    boolean appendedLineBegin false 加 行开始
    boolean precedingBackslash false 反斜杠
    boolean skipLF false
    while (true) {
    if (inOff > inLimit) {
    输入流中读取定数量字节存储缓区数组inCharBufinByteBuf中里区分字节流字符流
    inLimit (inStream null) readerread(inCharBuf)
    inStreamread(inByteBuf)
    inOff 0
    读取空
    if (inLimit < 0) {
    if (len 0 || isCommentLine) {
    return 1
    }
    return len
    }
    }
    if (inStream null) {
    字节流需ISO88591解码
    c (char) (0xff & inByteBuf[inOff++])
    } else {
    c inCharBuf[inOff++]
    }

    if (skipLF) {
    skipLF false
    if (c '\n') {
    continue
    }
    }
    if (skipWhiteSpace) {
    if (c ' ' || c '\t' || c '\f') {
    continue
    }
    if (appendedLineBegin && (c '\r' || c '\n')) {
    continue
    }
    skipWhiteSpace false
    appendedLineBegin false
    }
    if (isNewLine) {
    isNewLine false
    if (c '#' || c '') {
    注释行忽略
    isCommentLine true
    continue
    }
    }
    读取真正属性容
    if (c '\n' && c '\r') {
    里类似ArrayList部容量扩充字符数组保存读取容
    lineBuf[len++] c
    if (len lineBuflength) {
    int newLength lineBuflength * 2
    if (newLength < 0) {
    newLength IntegerMAX_VALUE
    }
    char[] buf new char[newLength]
    Systemarraycopy(lineBuf 0 buf 0 lineBuflength)
    lineBuf buf
    }
    if (c '\\') {
    precedingBackslash precedingBackslash
    } else {
    precedingBackslash false
    }
    } else {
    reached EOL 文件结束
    if (isCommentLine || len 0) {
    isCommentLine false
    isNewLine true
    skipWhiteSpace true
    len 0
    continue
    }
    if (inOff > inLimit) {
    inLimit (inStream null) readerread(inCharBuf)
    inStreamread(inByteBuf)
    inOff 0
    if (inLimit < 0) {
    return len
    }
    }
    if (precedingBackslash) {
    len 1
    skipWhiteSpace true
    appendedLineBegin true
    precedingBackslash false
    if (c '\r') {
    skipLF true
    }
    } else {
    return len
    }
    }
    }
    }
    }
     里特实际Properties流中加载属性集合通流中字符者字节分成行行处理

    · 请说Struts2初始化?类创建?(源代码角度出发)
    (时回答问题思路想应该 说通反射加配置文件做)
    问题研究起外写篇专门模块里列出相简单流程续会希时间整理出具体细节 首先Struts2基Xwork框架果仔细Xwork文档会发现初始化程基类: Configuring XWork2 centers around the following classes 1 ConfigurationManager 2 ConfigurationProvider 3 Configuration ConfigurationProvider实现类XmlConfigurationProvider 部面代码
    Java代码
     public XmlConfigurationProvider() {   
            this(xworkxml true)   
    }  
    Java代码
     public XmlConfigurationProvider() {   
            this(xworkxml true)   
    }  
    public XmlConfigurationProvider() {
    this(xworkxml true)
    }
     样Struts2初始化样类继承Xwork原类针Struts2做特定制
    Java代码
    1 public class StrutsXmlConfigurationProvider    
    2    extends XmlConfigurationProvider {   
    3     public StrutsXmlConfigurationProvi








    1 JDK5支持泛型泛型实现应反射API操作泛型变量时泛型起作
    2 ClassforName(oracleddddriver)newInstance()?new出实例什作?什newInstance()

    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 积分 [ 获取积分 ]

    下载文档

    相关文档

    阿里巴巴校园招聘面试试题合集总结

    1. forward 和 redirect区别1.从地址栏显示来说forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏...

    9年前   
    439    0

    阿里巴巴校园招聘测试笔试题总结

    选择题(每题5分)1. 某校园网用户无法访问外部站点210.102.58.74,管理人员在windows 操作系统下可以使用( )判断故障发生在校园网内还是校园网外。  A. p...

    9年前   
    606    0

    阿里巴巴校园招聘笔试试题(java)

    阿里巴巴java笔试java笔试Question 1. (单选)在60年代初石油危机的时候,美国总统肯尼迪要求美国石油公司不要将石油的价格提得太快,但是美国石油公司拒绝了肯尼迪的要求。因此,肯...

    10年前   
    414    0

    阿里巴巴校园招聘笔试试题(java)

    阿里巴巴java笔试java笔试Question 1. (单选)在60年代初石油危机的时候,美国总统肯尼迪要求美国石油公司不要将石油的价格提得太快,但是美国石油公司拒绝了肯尼迪的要求。因此,肯...

    10年前   
    419    0

    阿里巴巴校园招聘阿里云笔试试题题目

    1. 有一个文件:c:/c.txt,写java程序把该文件内容复制两遍,追加到c:/c.txt;2. 写正则表达式 1.邮箱 2.数字3. HashMap 改变map类对用户会不会有影响?4....

    9年前   
    448    0

    2012阿里巴巴校园招聘阿里云C++笔试试题

    阿里云C++1、(2分)1)请列出两个线程(或进程)死锁的三个必要条件2)当异常(Exception)发生的时候,智能指针(SmartPointer)的析构函数是被谁调用的?3)一般的台式机硬...

    12年前   
    390    0

    阿里巴巴校园招聘阿里云笔试试题题目

    1. 有一个文件:c:/c.txt,写java程序把该文件内容复制两遍,追加到c:/c.txt;2. 写正则表达式 1.邮箱 2.数字3. HashMap 改变map类对用户会不会有影响?4....

    10年前   
    529    0

    2012阿里巴巴校园招聘阿里云C++笔试试题

    阿里云C++1、(2分)1)请列出两个线程(或进程)死锁的三个必要条件2)当异常(Exception)发生的时候,智能指针(SmartPointer)的析构函数是被谁调用的?3)一般的台式机硬...

    11年前   
    473    0

    阿里巴巴校园招聘销售类笔试题

    阿里巴巴销售类笔试题 数字推理题主要有以下几种题型: 1.等差数列及其变式 例题:1,4,7,10,13,() A.14 B.15 C.16 D.17 答案为C。我们很容易从中发现相邻两个数字...

    10年前   
    460    0

    阿里巴巴校园招聘销售类笔试题

    阿里巴巴销售类笔试题 数字推理题主要有以下几种题型: 1.等差数列及其变式 例题:1,4,7,10,13,() A.14 B.15 C.16 D.17 答案为C。我们很容易从中发现相邻两个数字...

    11年前   
    537    0

    阿里巴巴校园招聘Oracle_DBA笔试题及参考答案

    阿里巴巴的Oracle DBA笔试题及参考答案 - 数据库基本概念类 1:pctused and pctfree 表示什么含义有什么作用  pctused与pctfree控制数据块是否出现在...

    9年前   
    298    0

    阿里巴巴校园招聘Oracle_DBA笔试题及参考答案

    阿里巴巴的Oracle DBA笔试题及参考答案 - 数据库基本概念类 1:pctused and pctfree 表示什么含义有什么作用  pctused与pctfree控制数据块是否出现在...

    12年前   
    384    0

    阿里巴巴校园招聘前端在线笔试

    1.你做过的最满意的前端作品?2.你了解哪些新技术?3.你是怎样接触前端的?4.你对你的学校和专业怎么看?5.写一段脚本,实现:当页面上任意一个链接被点击的时候,alert出这个链接在页面上的...

    8年前   
    452    0

    阿里巴巴校园招聘前端在线笔试

    1.你做过的最满意的前端作品?2.你了解哪些新技术?3.你是怎样接触前端的?4.你对你的学校和专业怎么看?5.写一段脚本,实现:当页面上任意一个链接被点击的时候,alert出这个链接在页面上的...

    12年前   
    540    0

    毕马威面试招聘——2006校园招聘——员工待遇

    员工待遇 咨询人员有 70% 的工作时间都花在出差上。雇员们力图在本地完成业务,但由于客户位于世界各地,所以出差是不可避免的。咨询人员都非常年青,从事大项目的员工的年龄范围在 25-35 岁之...

    14年前   
    720    0

    毕马威面试招聘——2006校园招聘——KPMG招聘流程

    KPMG招聘流程:其招聘相对稍晚于其他三家。招聘分四个步骤:1.网上投简历;2.笔试;笔试分两部分。第一部分是数学推理,中文,35分钟,35道题。均是加减乘除运算,很简单但时间比较紧。第二部分...

    14年前   
    711    0

    美的集团2008年校园招聘面试题库使用指南

    美的集团2008年校园招聘面试题库使用指南益言普道咨询服务有限公司Performance Consulting International - China2020年10月28日使用指南一、题库...

    13年前   
    619    0

    宝洁招聘:宝洁的招聘流程及面试题

    宝洁招聘:宝洁的招聘流程及面试题  宝洁公司良好的薪金制度和巨大的发展空间,让“宝洁”成为大学生心目中向往的公司。而同时宝洁公司完善的选拔制度也得到商界人士的首肯。如何进入宝洁这样的机构,让我...

    10年前   
    668    0

    阿里巴巴集团2014校园招聘系统工程师北京站笔试题

    阿里巴巴集团 2014年秋季校园招聘系统工程师 北京 笔试卷 第一部分 单选题(前10题,每题2分;后10题,每题3分;共50分。选对得满分,选错倒扣一分,不选得0分。)1. 字...

    10年前   
    402    0

    阿里巴巴2014校园招聘笔试题及参考答案-研发工程师-哈尔滨站

    注:答案仅供参考2014哈尔滨阿里笔试题1. 单选题1. 假设把整数关键码K散列到N个槽列表,以下哪些散列函数是好的散列函数A: h(K)=K/N;B: h(K)=1;C: h(K)=K mo...

    9年前   
    410    0