Java开发技术总结.ppt

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
顺丰同城架构数据部 UDATA产品及JAVA开发心得 20XX/5/22 UDATA技术架构 UDATA后续工作 任务调度系统 取代CRONTAB 自助报表系统 万花筒 Kylin Ad-hoc 即席查询 Hive Impala、Presto、Spark SQL JAVA-WEB技术体系 开发框架:Spring-boot 数据访问 基础:JDBC JdbcTemplate JPA(ORM): JAVA Persistence API(Hibernate) 实时调度:Quartz 接口访问:RestController 项目管理:Maven,私有maven仓库 其他:AOP, 注解,Filter,SSO(CAS),Servlet JAVA开发坑-1:整数比较 基础:比较引用用==,比较数值用equals方法 示例 Integer a = 123; Integer b = 123; Integer c = new Integer(123); (a == b)? true (b == c)? false Integer e = 1000; Integer f = 1000; (e == f)? false 自动装箱缓存: 默认:-128~127 -XX:AutoBoxCacheMax=300 JAVA开发坑-2:空引用null引起的 不直接使用引用,而是使用函数,比如: 使用String.valueOf(a) 而不使用a.toString三; //容易引起空指针异常 函数形参中有引用类型变量时,一定要先判断空引用再使用。 void doSomething(String a, String b){ if(a == null || b == null) return;} JAVA开发坑-3:pom jar包版本冲突 通过maven自带的工具:??mvn dependency:tree –Dverbose 通过里面的信息可以看到 两个jar都commons-logging存在依赖,但是版本不同。里面的详细信息显示引用了 commons-logging:commons-logging:jar:1.1 去掉了commons-logging:commons-logging:jar:1.0.3 (omitted for duplicate) JAVA开发坑-4:@Around 切面注解 使用前提条件 @Component? //没有导致切面不能正产工作 @Aspect @Around切面可以拦截函数返回值 public?Object?doAround(ProceedingJoinPoint?pjp)?throws?Throwable{?? Object?object?=?pjp.proceed三;? return?object;??????//正常返回 }?? JAVA开发坑-5:减少SQL访问 改进前:比如通过uid获取用户权限,以前是先获取用户,然后获取用户对应角色,最后循环获取每个角色的权限。 改进后:自定义查询,一条SQL获取用户所有权限,性能能够提升3倍以上。 @Query(value=select * from privilege where id in (select privilege_id from role_privilege WHERE role_id in (select role_id from account_role left join role on account_role.role_id=role.id where account_id in ( select id from account where uid = :uid and status = 1) and role.status=1 ) and privilege.status=1), nativeQuery = true) ListPrivilegeDO findByUid(@Param(uid) String uid); JAVA开发坑-6:组合索引 组合索引生效原则:从左到右依次匹配 为where,order by, group by后字段建立合适索引 对用and连接的多个条件建立组合索引 使用数据量少的列和字符串前缀来建立索引 使用explain来分析索引的优劣 在区分度高的列上建立索引 JAVA开发坑-7:IDEA JVM优化 IDEA默认的堆内存最大值和初始值都为128M,如果需要跑一些大数据集,显得很吃力。优化设置如下: -Xms4096m 初始值 -Xmx4096m 最大值 优化后运行效率提高10多倍。 顺丰同城架构数据部

文档评论(0)

dalianzi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档