有次参加一个公司的笔试,然后有道题是让你写出能体现出自己当前水平的代码。我觉得这道题挺开放的,知道CSDN上牛人比较多,大家各抒己见,都各自写段代码出来让大家开开眼界咯!

解决方案 »

  1.   

    /**
     * 方法解析添加了注解的类,并将类的一些信息(如 作用域,配置名称)添加并返回。
     * @param packagePath 该类的全路径(包括包名)
     * @return 如果该类上有SpringBeanClass的注解,那么给这个类赋值并返回类的实例,如果该类没有添加注解,则返回null
     */
    private ClassBean getClassBeanInfo(String packagePath){
    ClassBean cb = null;
    String path = packagePath.substring(0, packagePath.lastIndexOf(".class"));
    Class<?> bean = null;
    try {
    bean = Class.forName(path);
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    }
    SpringBeanClass classBean = bean.getAnnotation(SpringBeanClass.class);  // 获取该类上面的注解类实例
    if(classBean != null){
    cb = new ClassBean();
    /**为scope设置值,默认为single模式的---------begin*/
    String scope = classBean.scope();
    if(scope == null || scope.equals("")){  // 如果scope没有设置值,即为默认值时,scope设置为single模式的
    scope = "single";    
    }
    /**为scope设置值,默认为single模式的---------end*/

    /**为xmlName设置值,默认为该类的类名首字母小写---------begin*/
    String xmlName = classBean.name();
    if(xmlName == null || xmlName.equals("")){  // 如果scope没有设置值,即为默认值时,scope设置为single模式的
    xmlName = SpringUtil.firstWordLowerCase(SpringUtil.spiltClassName(path));  //默认为该类的类名首字母小写
    }
    /**为xmlName设置值,默认为该类的类名首字母小写---------end*/
    cb.setPath(path);
    cb.setScope(scope);
    cb.setXmlName(xmlName);
    }
    return cb;
    }
      

  2.   

    体现出当前水平的代码不一定就是代码的难度系数高吧,写个helloWorld加上注释和捕捉具体异常,提高效率代码简洁都可以展现水平把
      

  3.   

    直接用PPT画个总体逻辑视图给他
      

  4.   

     很简单。用*打个3行5列的矩证。新手会用 双重循环。老手会用 三句 print。日式程序员 会把 * ,3和5 定义常量国内高手会把代码写得你看不懂 例如:
    for(int i=0;i<=3*(5+1);i++) System.out.print((char)(i%(5+1)==0?13:42));
      

  5.   

    这道考题太失败了,代码决定不了水平
    如果是,举例你看到过或写过的你个人觉得比较好的代码(包括代码组织,设计思想,逻辑思维,算法等),还说的过去
    所以对于这样的考题,是我的话我就如此回答
    public class SimpleIsBest {
        public static void main(String[] args) {
            System.out.printf("这道考题太失败,太有水平的代码你看不懂,还是你直接评价吧: %s\n", (args.length==0 ? "不评价" : args[0]));
        }
    }
      

  6.   

    for(int i=0;i<=3*(5+1);i++) System.out.print((char)(i%(5+1)==0?13:42));这个好科幻
      

  7.   

    科幻啥,就是把2维变1维,循环1维,循环到每行最后一个就换行(char)13(应该是(char)10吧),否则打印(char)42
      

  8.   

    感觉这个问题还不错,有时看看一些很NB的代码,还是感触很深的。也不能完全否认从这个角度来判断你的能力。我这里也写一段吧,也是看别人的,感觉挺好,也会在实际工作中使用:
    public String[] contents = new String[10];
    public synchronized void put(String content){
        
    /**
     * 这里用while而不是用if,放置线程假醒的情况!
     */
    while(contents.length == 10){

    try {
    wait();
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }

    }那段while用得感觉挺好!
      

  9.   

    老大,你可以拿个本子去学校里,听听学校老师是怎么讲java的,偷偷抄点代码回去,慢慢品味吧