零、说明
包含全球200+国家和地区的信息
本列表属于之前有外国人整理过
利用有道翻译API翻译了国家名
涉及到全球的业务应该会用的上
一、SQL
sql如下:
题目要求:
Determine if a 9x9 Sudoku board is valid. Only the filled cells need to be validated according to the following rules:
每一行都不能重复1-9
每一列都不能重复1-9
每个33的小格子(99分为9个3*3)不能重复
开始解题的时候可以一个大循环解决一个小问题,后续再把循环合并即可;
开始的时候我是写了三个双重for循环:
当发现每一步都可行之后,尝试着合并,以减少时间复杂度;
1 | public static boolean isValidSudoku(char[][] board) { |
可运行demo
做这件事的目的是为了了解一条数据库记录从创建到使用的一个情况;
查询分布时间计算方式采用Top Percentile方式,就是按一定排序的数据,前面xx%的最大值是多少;
TP999 1ms 代表某接口99.9%的响应都在1ms之内;
最终的目的也就是为了知道数据多久之后可以打入冷宫,使用廉价存储;
冷热数据分级处理有利于在性能和成本上达到一定的平衡;
如把内存缓存时间设置为tp90所处的时间,那么90%的数据都能快速返回,其它少量数据回源处理;
关键字
java格式化输出
java8
stream
parallelStream
分组
排序
DoubleSummaryStatistics数据分析
TP999
日志源数据预览
1 | 19-10-24.14:47:12.721 [THREAD-22000-18-T-17] INFO FacadeImpl - response yw:jiaoyi, orderId:123456, time:2019-10-24T14:46:44 |
yw | count | min(ms) | max(ms) | tp50(ms) | tp90(ms) | tp99(ms) | tp999(ms) |
---|---|---|---|---|---|---|---|
hisen | 1000 | 1 | 10000 | 20 | 60 | 90 | 130 |
hisen-1 | 200 | 2 | 16000 | 16 | 50 | 70 | 110 |
ps 输出是格式化的数据,并不是表格,可以通过:
world->粘贴输出文本->插入->表格->文本转换成表格->空格
即可完成文字到表格转换
这种过程可能比较low,但是也需要时间去处理,过程中还得配合linux命令等整合文本;
完整:github-CallerAnalyze.java
摘要如下:
一些简单的黑产攻防介绍
很不错的一本书,作为程序员都值得去看一看,170+页周末一天可以看完, 还包括做笔记
医学专业已经建立起一套严密的辅导体系
软件行业建立一种包含学徒期、实习期、和长期指引的机制已是迫在眉睫
有人指导大多数人都可以快速的成长,节省很多走弯路的时间
当然,事在人为,只是说掌握了书中的那些要领,成为专业人员的几率更高,做更好的自己
如果从小学开始就一直有人引路并且自己也愿意跟着走的话,应该会很棒,现在也不晚,抓住时间就好
主要内容:
专业主义
学会说“不”,学会说“是”
编码的正确姿势
TDD
卡塔练习很重要,肌肉反应
验收测试(各方都一致同一的检验方式)
测试策略,自动化测试是趋势
时间管理,番茄工作法,注意力点数
预估的概念以及方法
压力,避免与面对
协作,学会与人交流
团队与项目,有凝聚力的团队战斗力强
软件开发如医生一样培训更佳
合适的工具事半功倍
业务当中多处用到线程池进行异步处理;
为了得知线程池设置是否合理,故需要增加线程池监控;
常见的实现方式:
本文使用1的方式实现,主要是方便进行配置,可以托管多个任务;
1 | taskName:pool1-monitor. taskCount:820, completedTaskCount:820, largestPoolSize:30, poolSize:30, activeCount:0, corePoolSize:30, maximumPoolSize:50, queueSize:0 |
代码如下:
这是一本人类大脑可塑性研究先驱与翘楚的故事书,正是让我们用触觉看到世界的巴赫-利塔这类先驱,使得我们正在成为来自地球的神。
这本书对我来讲还是很棒的,刷新了我对大脑的认知;
以前还停留在左右脑分工上,殊不知这是日本鬼子整出来的不严谨的概念;
看完书,感觉对个人技术、学习方面都有帮助,增加信心,因为之前错过了学校的大把学习时间;
运动和学习是互补的,前者产生新的神经干细胞,后者使它们的寿命延长;
这本书我是很推荐看的;
犹如最近看完的reids英文版文档;
每天看一点点,持续的刺激大脑相关区域,收获还是可以;
之前也咨询过英语比较好的同事;
反馈说目前想提高,就拿着领域内的文档硬看,坚持下来会有收获的;
每次看完书都会发个微博,避开朋友圈的尴尬,扩大散播范围,与更多的同好交流;
《重塑大脑,重塑人生》0822~0901
在持续不断噪声环境中长大的孩子都好动和吵闹,白噪声对大脑发育也有影响。
关键错误信息:
java.lang.RuntimeException: RESTeasy Provider Factory is null, do you have the ResteasyBootstrap listener configured?
java.lang.RuntimeException: Illegal to inject a message body into a singleton into public com.alibaba.fastjson.support.jaxrs.FastJsonProvider(java.lang.String)
resteasy:JBoss的一个开源项目,提供一套完整的框架帮助开发人员构建RESTful Web Service和RESTful Java应用程序。
fastjson:由阿里开发的一个性能很好的Java JSON 解析器和生成器。
引起错误的依赖
1 | <dependency> |
本地启动Server报错
一个接口的关键指标应该就是响应速度,要想提高响应速度,结果在缓存中最好;
那么怎么确定一个合理的缓存时间,以平衡性能与成本呢?
我们可以通过记录业务请求,看读取缓存的时间分布,比如 99% 的请求都是 1天内;
近期在做日志分析,找到比较理想的一个缓存过期时间,使 90% 的查询都能被缓存覆盖;
发现有些同学不太懂 TP 指标,故写文记录一下。
常见指标:TP50、TP80、TP90、TP99、TP999
正式解释:TP=Top Percentile,Top百分数,是一个统计学术语,与平均数、中位数都是一类;
通俗理解:TP99 100ms,99%的查询都能在100ms内返回;
本质理解:它是一个分位值,看数据的一个分布;
计算方式:拿到所有请求耗时,升序排序,取 99% 位置的数据,就是 TP99;
比如说:拿 100 次请求的耗时,升序排序,取第 99 个的数据,就是TP99的值;
具体的代码方式就是,先算出耗时,放入 List ,然后排序,按指定的下标取值即可;
代码如下:
项目中看到有一个缓存接口存在多个实现类,
但是在代码中使用@Resource注解注入,
之前有了解过@Autowire @Resource的区别,
于是就尝试着搜索@@Resource,于是就有本文的总结了。
1.1.1 Spring开发;
1.1.2 按照type来注入;
1.2.1 JDK开发;
1.2.2 按照名称注入,若无,则按type来注入(未指定name的情况下);