ARTS打卡第一周6.16

Algorithm

经典题型:threeSum 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。

个人实现思路:数组排序,循环遍历穷举法,List.contains()去重;最终导致超出时间限制
缺点:效率太低
改进参考方法:二分查找法,非hashSet去重,效率比hashSet去重更高一点;
三种方法+最终提交的方法已放入以下项目中:
[email protected]:DoraYC/leet-code.git

Review

https://dzone.com/articles/research-the-skills-you-need-to-boost-your-java-ca
2019年你需要点亮的Java技能

读后感加个人理解:
1.Java在当前国内招聘市场上依然强劲;
2.Web编程
目前有几大前端流行框架:Angular,React.js,Vue JS(自用)等,作为Java工程师可以不掌握前端框架,但需要明白前端框架如何运作,及前端框架如何和后端代码进行相互作用;后端主要使用Spring MVC进行搭建;
3.数据处理
大数据虽然不像Java那么流行,但是大数据越来越吃香了。个人非常看好大数据行业的发展。依据IBM,90%的数据产生于过去的2年里(2018年就听过这话啊,貌似有点不严谨)。所以如何利用这些庞大的数据做些有意义的事情,非常重要,是绝大多数公司都需要考虑的问题。作者认为将来有一天,Java可以和Python共享数据科学市场上。个人觉得当前Python占领了数据科学市场半壁江山(应该不止)。本人学过一些Python知识、数据分析、机器学习算法,觉得用Python进行数据分析、挖掘还是非常方便、快捷的。当然,现在已经有不少Java语言体系的数据分析、挖掘工具产生,与Java进行很好的融合,本人没有深入研究。
大数据相关的解决方案包括:kafka,Hadoop,Azure,Spark,Zookeeper,Hive,Hbase and so on。 这些是企业越来越看中的技能,也是自己非常非常想点亮的技能,希望以后有机会好好研究。
4.JVM 语言
此处主要提及Scala语言,【Scala是在JVM和Java生态系统上构建的,因此可以从Java的工具库中获益。当前很多大数据的组件比如Hadoop、Spark以及Cassandra都是在JVM生态系统内,这使得使用Scala编程的框架可以直接调用他们的库,摘自其他文章】。
5.微服务
先不谈其优劣,目前国内很多企业都在转微服务。从Spring到Spring Boot(自用),再过渡到Spring Cloud(自用),或者Dubbo等其他分布式微服务框架,是当前的大趋势。阿里爸爸已经开发了可用的NACOS 对应Spring Cloud的部分组件功能,听说很强大,还没尝试把Spring Cloud 的部分组件转移到NACOS.
6.Web服务器和数据库
Nginx,Tomcat 等Web服务器,关系型数据库国内用的较多的还是mySQL\Oracle等,还有常用的Redis,MongoDB等
7.部署维护(个人补充)
Docker 部署(自用)、Kubernetes (K8),还有自动化部署方案Jenkins。
Java要运用的炉火纯青,除了Java 基础和Spring基础要扎实,还有上面列出来的很多技能要会使用,个人感觉这条路想要走的更远还有很多技能等着我去点亮啊。啊。。

Tips

Java 基础运用 String VS StringBuilder
String,StringBuilder在频繁的字符串拼接时,效率高低比较:
场景:在后端接口中完成一个HTML 带样式的复杂报表(实际是多个类似的报表),填充不同内容:包含基础信息,及自动生成的多个条目、APP上传的图片、备注、签名等信息;
一开始使用String 定义body,追加新内容: body += "....";
升级版本:使用StringBuilder 定义body,分不同模块,追加新内容:body.append(......)


使用spring调用用时.jpg
使用StringBuilder用时.jpg

StringBuilder 完胜String!所以在频繁的字符串拼接时,需要使用StringBuilder。当然,还有一个线程安全的StringBuffer,在此不做扩展。

Share

不仅仅要读书,还要有自己的理解:有输入有输出。输入容易,输出难。伴着微风虫鸣,coding、写感想。希望我,ZLin,能够坚定的走下去,瑜伽、高效带娃,防脱发防贫血o(╥﹏╥)o,做娃的好榜样! 加油!

你可能感兴趣的:(ARTS打卡第一周6.16)