[置顶] 剖析金额不能用浮点数表示的原因

近期支援双十一红包项目。参与到了一个涉及到钱的项目,开发自然十分的谨慎。先抛出我有问题的代码,作用是把以分为单位的金额转成以元为单位的字符串。long adjustFee; String.valueOf(adjustFee / 100.0);  很自信的以为这行代码简洁明了的完成了使命。@壹双 同学review了我的代码后,指出这段代码会造成精度丢失的问题。先演示一个demo,构造一个浮点数丢失精度...
阅读(2566) 评论(6)

[置顶] 《CSAPP》读书笔记:面向高速缓存编程

计算机发展初期,CPU是和主存直接交互。但是随后CPU的速度越来越快,甩了主存几十条街。这时候Intel的提出了一个解决方案——在CPU和主存中插入高速缓存(cache)。于是现代计算机的存储层次结构衍生成了下图的样子,图片源于《CSAPP》一书    CPU需要读数据,会首先访问L1 Cache, 如果Hit miss,就去请求L2 cache。如果L2 Cache hit miss,那么......
阅读(2521) 评论(0)

[置顶] 字符串的公共前缀对Mysql B+树查询影响回溯分析

最近项目组接微信公众号。上线之后,跟微信相关的用cid列的查询会话的SQL变慢了几十倍!思考这个问题思考了很久,从出现以来一直是我心头的一个结。这一列是建了索引的,普通的cid列更新都没问题,为何只有微信的有问题?相同的前缀又是如何影响索引的?     分析过程     1.explain下微信cid的查询     explain  select * from a...
阅读(4171) 评论(9)

[置顶] 七条基本的编码规范

接手3.0的项目接近两个Q,在阅读了这些代码的基础上开了一些新功能。对我们项目组的核心工程的代码有些批判的想法,现在拿来跟大家分享一下。 计算机巨匠 Donald Kunth(《计算机程序设计的艺术》系列作者)有一句名言:程序是写给人看的,只是偶尔让机器执行一下。言辞颇为偏激,但是至少强调了一点,代码的可读性是十分重要的。一个大型的项目,一般会有10-20次的产品迭代,就我们IM这个可以做到...
阅读(927) 评论(0)

[置顶] 个人代码量的统计

以前看到李开复写过的一本书,说是微软推荐应届毕业生最好有10万行的代码经验。于是自己我想写个程序统计写了多少行代码。正好当时在学C#的正则表达式,借助正则表达式的简便。我统计了自己的代码量,大概有8万行的样子。       程序的主要函数是一个先根遍历文件夹树的函数。因为运用了...
阅读(1634) 评论(0)

Mac Idea 实用快捷键

刀客,刀一定要快。作为开发工程师,IDE就是我们手中的刀。介绍一些Mac下的Idea的实用快捷键。实用快捷键 查看类内所有方法: Command + F12 大小写切换: command + shift + u 定位到行 : command + L 定位当前editor中的类所在jar包的位置 : Alt + F1 -> “project view” 格式化 :Command + Alt + L...
阅读(47) 评论(0)

Shell学习笔记:export的作用

export功能创建一个环境变量,并对其子shell有效。没有用export声明的变量,仅对当前的shell可见。 用代码测试export的功能一 不用export声明变量父shellecho 'parent.sh start' ss=ruzun echo $ss ./child.sh 子shellecho 'child.sh start' echo $ss执行./parent.sh, 输出结果p...
阅读(58) 评论(0)

ReactJs组件间通信的方法

一 父子组件间通信1. 父组件调用子组件父组件的容器通过refs属性调用子组件的方法2. 子组件调用父组件父组件的方法通过props传递给子组件,在子组件内部调用父组件的回调函数二 平级兄弟组件的相互调用父组件作为通信枢纽方法一: 通过父组件的state进行重绘 子组件A回调父组件的方法,父组件的方法里修改容器中的state数据 state中的数据以props的形式传递给子组件B(render方法中...
阅读(143) 评论(0)

mybatis相对于ibatis的优势

2010年,apache的Ibatis框架停止更新,并移交给了google团队,同时更名为MyBatis。从2010年后Ibatis在没更新过,彻底变成了一个孤儿框架。一个没人维护的框架注定被mybatis拍在沙滩上。1. 入参无需用对象封装(或者map封装),使用@Param注解当Ibatis需要接收超过一个参数时,则需要将多个参数封装成对象,这个时候会产生很多Domain查询类。还有很多同学偷懒...
阅读(556) 评论(0)

IDEA Debug模式下启动慢的解决办法

工程没有做什么大的改动,近期Idea在debug模式下启动耗时800s +,run模式下200s。Idea debug模式启动的时候会有这样的提示: 方法断点会戏剧性的降低debug的速度。当时并没有在意,因为并不清晰这个方法断点是个什么概念。。。。。看了网友的帖子,才知道这个method breakpoints就是方法签名上的断点。idea的这个提示能否更人性化点,就叫method signat...
阅读(1753) 评论(0)

ReactJS见习笔记

项目组要求用reactJs搭建前端页面,但是对react一点不了解,边推进项目边学习react。node.js, npm的关系Node.js 就是运行在服务端的 JavaScript。NPM是随同NodeJS一起安装的包管理工具。ReactReact 是一个用于构建UI的 JAVASCRIPT 库。 React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站,并于 20...
阅读(173) 评论(0)

volatile型变量自增操作的隐患

用FindBugs跑自己的项目,爆出两处An increment to a volatile field isn’t atomic。相应报错的代码如下:volatile int num = 0; num++;  FindBugs针对这种类型的错误给出了相应的解释 An increment to a volatile field isn’t atomic This code incremen...
阅读(2686) 评论(5)

用mvn generate命令行创建多模块Web应用骨架

昨天重新搭一个多模块Web应用,打开以前的总结帖,用maven命令行创建多模块WEB项目,mac shell命令行下直接开搞,原以为1分钟内搞定,毕竟这个方法以前屡试不爽。mvn -X archetype:create -DgroupId=com.***.*** -DartifactId=***-tag -DarchetypeArtifactId=maven-archetype-quickstart...
阅读(785) 评论(0)

MAC版Idea下ignore文件的办法

习惯了Windows下右键ignore不提交文件的方式,换了Mac后,没有找到合适的git 带UI的客户端。idea自带的git右键菜单也不能提供ignore功能能。一脸懵逼。   在Idea的官方帮助文档里找到了解决办法,https://www.jetbrains.com/help/idea/2016.2/configuring-ignored-files.html.   IntelliJ I...
阅读(2313) 评论(0)

利用zookeeper的发布/订阅模式实现配置动态变更

ZooKeeper的Watcher事件机制可以说分布式场景下的观察者模式的实现。基于这个watcher事件机制,配合注册到特定的ZNode节点,可以实现Java应用的配置运行时的变更。在学习zookeeper之前,听同事说配置可以在运行时动态变更,觉得不可思议。研习了zookeeper之后,实现这个功能是很easy的。   发布/订阅系统设计起来无非两种模式,推和拉。 1. 推模式,服务端负责把...
阅读(3366) 评论(0)

macOS Sierra 下安装svn方法

前几天mac升级了最新版的macOS Sierra 10.12。今天Idea下svn commit代码,提交失败。转而去命令行提交,命令相应如下:svn commit xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Develo...
阅读(3726) 评论(10)

LeetCodeOJ 137. Single Number II 一题三解

原题链接:https://leetcode.com/problems/single-number-ii/137. Single Number II QuestionEditorial Solution My SubmissionsTotal Accepted: 91049Total Submissions: 235598Difficulty: MediumGiven an array of int...
阅读(815) 评论(0)

无法在同一张表上查询和更新的问题解决方法

问题引入要在一张已存在并且有数据的表上建一个唯一索引,由于建索引的这列有很多重复的数据,导致无法建unique索引!要一条条数据手工删除吗?不!我是工程师,我要用技术的手段删除重复数据。写了一个删除重复数据的sql,如下: delete from entity_tag where id not in (select max(id) fr...
阅读(875) 评论(1)

Spring + Spring mvc + Ibatis + Velocity 框架搭建

总结下如何用这四个常用框架搭建一个Java Web工程,方便以后更快速的开发工程。首先得用maven搭建一个多模块的web工程,这里不再赘述,请参考以前的总结:用maven命令行创建多模块WEB项目    首先导入这些框架所需的maven依赖:3.2.2.RELEASE 1.6.3 1.2 5.1.15 org.apache.ibatis ibatis-sqlmap...
阅读(1528) 评论(0)

自定义Lucene分词器示例

集团的内部通讯工具搜同事时,需要根据姓名后缀进行搜索。譬如“徐欢春”,我们要能根据“欢春”搜出这个人;“黄继刚”,要根据“继刚”为关键字搜出“黄继刚”。这是个很人性化的用户体验,当我们有同事的名字是三个字的时候,我们通常会叫他们名字的最后两个字。Lucene本身并没有提供这种分词器,只能自己照着Lucene已有的分词器进行模仿开发。    参照ngram分词器进行开发。    实现一个Tokeni...
阅读(3634) 评论(1)

LeetCode OJ 207. Course Schedule 拓扑排序+邻接表

题目链接:https://leetcode.com/problems/course-schedule/207. Course Schedule My SubmissionsQuestionEditorial SolutionTotal Accepted: 42752 Total Submissions: 154752 Difficulty: MediumThere are a total of n...
阅读(1101) 评论(0)

LeetCode OJ 347. Top K Frequent Elements hashmap+排序求解

题目链接:https://leetcode.com/problems/top-k-frequent-elements/、347. Top K Frequent Elements My SubmissionsQuestionEditorial SolutionTotal Accepted: 15510 Total Submissions: 36453 Difficulty: MediumGiven...
阅读(2262) 评论(0)

LeetCode OJ 61. Rotate List 考虑边界条件

题目链接:https://leetcode.com/problems/rotate-list/61. Rotate List My SubmissionsQuestionEditorial SolutionTotal Accepted: 71917 Total Submissions: 311425 Difficulty: MediumGiven a list, rotate the list t...
阅读(1637) 评论(0)

Spring Aop Demo

最近做项目时,接入了四个极其重要的外部接口。为了核对接口的准确性,把这四个接口的所有入参和返回值都打了日志。完全是重复性的机械劳动。端午节的时候回想这件事,发现AOP不正是职业解决这种事情的吗!而且用AOP打日志,原有的业务代码省去了日志代码,更加精简。    先写了个AOP的demo体验下功能。导入aop相关的依赖 3.2.0.RELEASE 1.1.36...
阅读(886) 评论(0)
210条 共11页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:867473次
    • 积分:8731
    • 等级:
    • 排名:第2262名
    • 原创:209篇
    • 转载:1篇
    • 译文:0篇
    • 评论:179条
    博客专栏
    文章分类
    最新评论