摘要: 问题 开发环境报了一个错,如下: Caused by: java.sql.SQLException: Invalid column index at oracle.jdbc.driver.OraclePreparedStatement.setIntInternal(OraclePreparedSta 阅读全文
posted @ 2020-07-22 15:16 MaxStack 阅读(768) 评论(0) 推荐(1) 编辑
摘要: 金融和IT,是最近几十年比较赚钱的两个行业。本人有幸能够在券商从事开发工作。下面就谈谈这些年的感悟和收获。 ## 券商具体做什么 不管在哪工作,一定要搞清楚,核心业务是什么?所谓核心业务,通俗地讲,就是给公司赚钱的主力。比如谷歌,核心业务是搜索。比如携程,核心业务是票务系统。 这些公司耳熟能详,产品 阅读全文
posted @ 2020-07-10 18:21 MaxStack 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 关于异常Exception,相信大家在开发中都多多少少遇到过,也应该知道要Catch住Exception。本文从实战出发,从头再把这个知识点梳理下。 概述 Exception和Error都继承自Throwable。结构如下: Throwable Error VirtualMachineError O 阅读全文
posted @ 2020-06-23 18:28 MaxStack 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 在开发或测试中,我们有时候会遇到Queue/Topic被多余的消息堵塞的问题,这时候就需要把队列里的消息清理掉,然后新的消息才能进来。 有些JMS Provider有GUI可以查看,修改队列中的消息。有些则没有提供这样的功能。这就需要我们自己手动写程序做这件事了。 原理很简单,就是open a co 阅读全文
posted @ 2020-06-08 16:22 MaxStack 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 当线上发生了性能问题时,需要我们快速定位问题。本文模拟了一次内存泄漏,从零教学一步步手动排查。 模拟事故现场 使用如下代码模拟内存泄漏。起了几个问题线程(在不停地创建很大的StringBuilder)。另外还有一些常规线程。 import java.util.List; import java.ut 阅读全文
posted @ 2020-06-01 15:55 MaxStack 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 相信很多同学都多多少少听过Generic-泛型这个概念。下面就结合实际的例子对泛型进行讲解和剖析。 为什么要用泛型 泛,有多的意思。型,即为类型。结合起来,就是可以用泛型来指代“多种类型”,从而可以复用函数或类。 举例:写一个echo函数用来输出List种某两个位置的值。 当List里面装的是Str 阅读全文
posted @ 2020-05-27 16:12 MaxStack 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 为什么要索引 查询数据库,当数据量很大时,往往很慢,为了加快查询速度,程序员们想了一个办法,就是建立索引。但是天下没有免费的午餐,当插入新的数据时,系统会自动更新索引,所以在空间(storage)和时间(update time)上有一定地额外的开销。 总结:为什么要索引?是为了查的更快。 索引的原理 阅读全文
posted @ 2020-05-25 16:52 MaxStack 阅读(291) 评论(0) 推荐(0) 编辑
摘要: Pass by Reference和Pass by Value是编程中很基础的两个概念,相信很多同学也都并不陌生。但是实际运用起来却很容易混淆,本文从实际应用出发,将这个知识点再梳理一遍。 赋值与传参 赋值与传参是Pass by Reference和Pass by Value的两个常见应用场景,下面 阅读全文
posted @ 2020-05-18 16:19 MaxStack 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 问题 笔者对于本地调试已经有很多经验了,一般流程是:在IDE中设置断点,配置参数,开始调试。这里的程序是跑在本地的机器上的。 而在实际开发或者生产环境中,应用都是部署在某个服务器上的,服务器上的机器性能更强大,而且可以起集群协同处理。 由于本地的机器的资源限制(笔者的台式机6核16G内存),对于大型 阅读全文
posted @ 2020-05-12 18:44 MaxStack 阅读(1074) 评论(0) 推荐(0) 编辑
摘要: 起因 在生产环境下我们要在某个表 PRODUCT 上删除一些重复的数据。开始之前,我们首先对该表做了备份,如下: CREATE TABLE APP.PRODUCT_201910 TABLESPACE "TABLESPACE_1" nologging AS SELECT * FROM APP.PROD 阅读全文
posted @ 2019-10-21 17:00 MaxStack 阅读(3735) 评论(0) 推荐(0) 编辑
摘要: 在一个side project中用到了AWS的一些Services。AWS提供了很多的服务,比如 Compute EC2 Storage S3 Database RDS Networking & Content Dilivery Route 53 Developer Tools Cloud 9 Ma 阅读全文
posted @ 2019-09-10 18:45 MaxStack 阅读(708) 评论(0) 推荐(0) 编辑
摘要: 逛技术平台的时候,刷到一道算法题,一眼看去,就被其开头吸引了: 摘自知乎某 Google 分布式大神的一道题,技术是Google内部出的有史以来最难的一道题 嗯,距离下班还有一段时间,就看看把。 题目 包括你在内的一群计算机科学家被一帮邪恶的『数学毁灭教』的教徒们抓住了,各自分开关押,人数未知。现在 阅读全文
posted @ 2019-05-30 15:15 MaxStack 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 问题 工作中需要同步一些数据,大概接近百万条的量级,更新时间非常慢,需要7个多小时,更新的频率是每周一次。随着数据量的一步步增加,时间也越来越多,逐渐成为一个风险因子,于是想到要尝试做一些优化,降低同步时间。 分析 经过调查,需要同步的是TABLE_A,同步的过程可以简化表述为两步: Call AP 阅读全文
posted @ 2019-04-16 19:32 MaxStack 阅读(2953) 评论(0) 推荐(0) 编辑
摘要: 初识 A container object which may or may not contain a non-null value. 笔者理解,Optional是一个容器类。将Object放到Optional中,从而可以使用容器的一些特性,比如链式编程(Stream)等。 具体应用起来,可以分为 阅读全文
posted @ 2019-04-12 18:35 MaxStack 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 问题 现有的状态:需要部署最新代码时,手动在Bamboo上trigger build,然后手动到Nexus目录下下载tar包,然后手动用Filezila上传到Server对应目录下,解压后运行。 期望达成的状态:需要部署最新代码时,直接在Server上跑一个脚本,然后它会自动下载并解压。 分析 对于 阅读全文
posted @ 2019-04-04 12:14 MaxStack 阅读(1353) 评论(0) 推荐(0) 编辑
摘要: 历史 Unix操作系统是由Ken Thompson和Dennis Ritchie于1969-1970年发明。 它的部分技术来源可以追溯到Multics工程,后者因为过于庞大复杂而失败。 研究人员吸取教训,实现了一种分时操作系统,即Unix。 Multi是大的意思,而Uni是小的意思。表示后者相当小巧 阅读全文
posted @ 2019-01-04 17:23 MaxStack 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 问题引出 工作中习惯使用番茄时间法则,把工作时间切分为40分钟左右的一个个小块然后安排任务。这里用到了倒计时器,一般有几种形式: 手机倒计时 浏览器插件 桌面软件 手机倒计时在静音模式下依然会发出声响,适合在家一个人的时候使用。浏览器插件不会跨窗口弹出提示,适合浏览器使用较多的时候使用。桌面软件是个 阅读全文
posted @ 2018-09-12 13:52 MaxStack 阅读(859) 评论(0) 推荐(0) 编辑
摘要: 问题引出 个人习惯在白天的时候使用亮色系的风景壁纸,但是在晚上的时候就显得太刺眼了,需要更换为暗色系的壁纸。 每次手动更换不免觉得费心,于是便想写一个脚本自动化这个过程。 解决思路 在Windows系统下,写一个python脚本更换壁纸,并设置在开机时,以及每一个小时自动触发该脚本。 该脚本可根据当 阅读全文
posted @ 2018-07-17 14:45 MaxStack 阅读(481) 评论(0) 推荐(0) 编辑
摘要: 背景 在开发中,遇到这种情况,多个线程同时工作,突然一个线程遇到了fetal的错误,需要立即终止程序,等人工排查解决了问题之后重新启动。但是这样会有一个问题,程序终止时,其他线程可能正在进行重要操作,比如发一个message到另一个模块,并更新数据库状态。突然终止,可能会让这个操作只完成一半,从而导 阅读全文
posted @ 2018-05-30 18:56 MaxStack 阅读(7183) 评论(0) 推荐(1) 编辑
摘要: 什么是数据库表分区 数据库表分区(Partitioning),即将一个大的数据表(Table)及其索引(Index)切分更小的部分。这些分区可以有不同的名字,甚至是存储方式。 Oracle Partitioning Overview 为什么要做分区 存储均衡:可以分摊大量数据到不同存储介质中。 方便 阅读全文
posted @ 2018-03-12 18:02 MaxStack 阅读(810) 评论(0) 推荐(0) 编辑