• 201603月份面试总结


    3.18号面试。金融公司 → 系统架构(有一个牛人带)  具体地址等会放上来http://ourcoders.com/thread/show/7449/

    面试题:

    1. quartz  建议看看这位老师的http://www.cnblogs.com/kay/archive/2007/11/02/947372.html
    2. 根据web请求参数返回特定值 ,/hello?p1=p1&p2=p2  返回hello  ,/hello?x=x&man=you  返回you are X man。根据以上设计xml文件。(场景:微信开发调试的时候用于返回特定的值等等—对方解释)
      <?xml version="1.0" encoding="UTF-8"?>
      <elements>
          <nodes>
              <pramas>
                  <prama name="p1">1</prama>
                  <prama name="p2">2</prama>
                 </pramas>
              <result>helloworld</result>
          </nodes>
          <nodes>
              <pramas>
                  <prama name="a">a</prama>
                  <prama name="b">b</prama>
                 </pramas>
              <result>hello</result>
          </nodes>
      </elements>

      根据特定的参数和值返回特定的值。以上个人见解。

    3.22 掌握科技 → 只和技术领导谈了谈。技术问了一个问题。一个大数整数数组*个位数。返回一个数组。

    [1,3,4,6,7,8,9,2,3,0,8,7]*8 相当于134678923087*8返回一个数组

    class BigNum {
    
        public static int[] sub(int[] item,int s){
            if(!(s > 0 && s < 10)){
                return new int[0];
            }
            
            int tens = 0;
            
            int[] rs = new int[item.length+1];
            
            for (int i = 0; i < item.length; i++) {
                int c = item[i] * s;
                int last = c%10;
                
                rs[item.length - i] = (last + tens) % 10 ;
    
                if((last + tens) >= 10){
                    tens = (c-last)/10 + 1;
                } else {
                    tens = (c-last)/10;
                }
            }
            rs[0] = tens;
            return rs;
        }
        
        public static int[][] twoSub(int[] item,int s){
            if(!(s > 0 && s < 10)){
                return new int[0][0];
            }
            
            int[][] rs = new int[item.length][2];
            
            for (int i = 0; i < item.length; i++) {
                int c = item[i] * s;
                int last = c%10;
                int first = (c-last)/10 ;
                
                rs[i][0] = first;
                rs[i][1] = last;
    
            }
            return rs;
        }
        
        
        public static void main(String[] args) {
            int[] b = new int[10];
            for (int i = 0; i < b.length; i++) {
                b[i] = 8;
            }
            
            int[] a =  sub(b,8);
            
            for (int i = 0; i < a.length; i++) {
                System.err.print(a[i]);
            }
            
            int[][] c  = twoSub(b, 8);
            
            for (int i = 0; i < c.length; i++) {
                int[] j = c[i];
                for (int j2 = 0; j2 < j.length; j2++) {
                    System.err.print(j[j2]);
                }
                System.err.println();
            }
            
            
            
        }
        
    }

    返回结果如下:
    7111111110464 64 64 64 64 64 64 64 64 64
    
    

    个人觉得用二维数组较好。

    3.28号 车风网面试  面试官主要问了一些java 相关基础知识,hashmap,treemap.io,spring 事务管理。cookie 跨域处理。

    我重点说一个题目:下图展示既是我想说的。

    搬运一个最佳答案吧。和我想的差不多。就是事务在发送exception时必须进行干预处理。

    for example

    class A{
    
        @Transactional
        public Result doStuff(){
            Result res = null;
            try {
              // do stuff 
            } catch (Exception e) {
    
            }
            return res ;
        }
    }

    If there is an exception in the method doStuff the transaction isn't rolled back.

    To rollback the exception programmatically, we can do something like below.

    declarative approach

    @Transactional(rollbackFor={MyException1.class, MyException2.class, ....})
    public Result doStuff(){
       ...
    }

    programmatic rollback you need to call it from TransactionAspectSupport.

    public Result doStuff(){
      try {
        // business logic...
      } catch (Exception ex) {
        // trigger rollback programmatically
        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
      }
    }
    
    

    You are strongly encouraged to use the `declarative approach` to `rollback` if at all possible.
    `Programmatic rollback` is available should only be used if you absolutely need it.

    谷歌翻译:强烈建议您使用`声明approach`为`rollback`如果在所有可能的。`编程回滚`是,如果你确实需要它可用时才能使用。

    我翻译:建议使用声明式事务管理。不建议使用程序回滚。

    面试还在进行中。。。。且行且努力

    talk  is  cheap,show me code。

    Interview  ing  。。。。

    顺带一句话,google,stackoverflow,github促进了coder交流学习。google大法好。

  • 相关阅读:
    Linux操作系统分析之进程的创建与可执行程序的加载
    Linux操作系统分析之计算机是怎样工作的
    求二项分布的数学期望与方差的工式及证明过程
    世界就是一个班
    软件版妻子
    时代变迁
    也许ASP真的不行了???
    新一字诗
    祝女同志节日快乐!
    写啥
  • 原文地址:https://www.cnblogs.com/shininguang/p/5338872.html
Copyright © 2020-2023  润新知