遇到的一点问题些

数据导出优化

今天很是兴冲冲的做出了要求的导出功能,但是导出规定条件下的七百多条,时间就要2分钟左右,实在是不太理想,不优雅。

优化呗。

目前,操作上是这样

  • 梳理操作流程
  • 分析每一步流程耗时
  • 针对性解决

其实,初步分析都看得出,问题在于数据库IO操作过多。

最优解决方案自然是重新组织sql,但从业务逻辑上来讲,明显不应该是我这边做这个工作。

所以,直观上来说,应该是把数据直接写在缓存中比较好,明天重点关注这个问题。


TypeReference

我靠,这东西简直神奇、好用;

一看,又是alibaba的东西。。。

但是我看了半天乱七八糟的,没搞懂——》什么异构容器,什么ConcurrentMap啊,什么线程安全

啊,好大一个坑,回头要填一下


split

String.split(),分隔字符串

想他的时候,总是和PHP里面的explode搞混

啊,人家那么形象不是,炸开!!

你可好,老老实实的叫split...


logger.error

如何正确的打印出错误堆栈信息,一直迷糊糊的,直接引用好了

logger.error完整打印错误堆栈信息

有时候logger.error不能完全地打印出网站的错误堆栈信息,只能打印这个错误是一个什么错误。

为什么?
看Logger.error源码
public void error(String msg, Throwable t);
public void error(String msg);

如果只传一个参数e进去,那么e就被认为是String类型(会自动调toString()方法把Exception转成String),而不是Exception类型。

如果想打印堆栈信息,那么必须传两个或以上参数,实际上就是为了调用public void error(String msg, Throwable t);

所以我们的写法可以是:
Logger.error(“xxx出错”,e); //第二个参数是e
而不是:
Logger.error(“xxx出错:”+e) 或 logger.error(e) 或logger.error(e.getMessage);


java switch

public class TestSwitch{
    public static void main(String args[]){
        char c = 'a';        //char类型字符
        switch(c){
            default:
                System.out.println("打印默认值");
                break;
            case 'a':
                System.out.println("a");
                break;
            case 'b':
                System.out.println('b');
                break;
            case 'c':
                System.out.println('c');
                break;
            case 'd':
                System.out.println("d");
                break;
            
        }
    }
}

顺带着查了下switch实现机制:Switch语句的实现机制


maven打包到底打了啥

今天新分支开发东西,看当前另外分支的东西的时候,因为依赖的API不同会出现问题,由此想到maven到底打包了啥。

其实想一下是,pom文件相关的东西吧

查到的可能只有这些

关于可执行程序(需要指定一个 main 类),打 jar 包就没这么方便了,我们需要考虑以下几个问题:

  • 配置文件需要打进 jar 包;
  • 需要指定 main 入口类;
  • 所依赖的第三方库也要打进 jar 包;

那么pom中插件些呢??也打包进去??插件是做啥用的?在哪里用的咧???

又是个小坑,短期填上呗

posted @ 2017-12-07 20:34  韧还  阅读(244)  评论(0编辑  收藏  举报