更新于:06-21 18:04

有关[技术]标签推荐

详解 equals() 方法和 hashCode() 方法

于07-19 16:00 - TiuVe2 - 基础技术 hashCode
Java的基类Object提供了一些方法,其中equals()方法用于判断两个对象是否相等,hashCode()方法用于计算对象的哈希码. equals()和hashCode()都不是final方法,都可以被重写(overwrite). 本文介绍了2种方法在使用和重写时,一些需要注意的问题. Object类中equals()方法实现如下:.

数据库压缩探索

于07-19 04:21 - 十七树 - IT技术 数据库
作者:雷鹏,Terark核心技术发明人. 曾就职奇虎360,负责搜索引擎核心研发;曾就职Yahoo. 北研所负责搜索广告、广告交易(AdExchange)等项目. 在数据库、高性能计算、分布式、系统架构上都深有造诣. 作为数据库,在系统资源(CPU、内存、SSD、磁盘等)一定的前提下,我们希望:. 存储的数据更多:采用压缩,这个世界上有各种各样的压缩算法;.

记一次 MySQL 主从复制延迟的踩坑

于07-16 08:32 - hoohack - IT技术 MySQL 数据库
最近开发中遇到的一个 MySQL 主从延迟的坑,记录并总结,避免再次犯同样的错误. 一个活动信息需要审批,审批之后才能生效. 因为之后活动要编辑,编辑后也可能触发审批,审批中展示的是编辑前的活动内容,考虑到字段比较多,也要保存审批活动的内容,因此设计采用了一张临时表,审批中的活动写进审批表(activity_tmp),审批通过之后才把真正的活动内容写进活动表(activity).

如何理解并正确使用 MySQL 索引

于07-14 04:47 - 十七树 - IT技术 MySQL 数据库 索引
索引是存储引擎用于快速查找记录的一种数据结构,通过合理的使用数据库索引可以大大提高系统的访问性能,接下来主要介绍在MySql数据库中索引类型,以及如何创建出更加合理且高效的索引技巧. 注:这里主要针对的是InnoDB存储引擎的B+Tree索引数据结构. 1、大大减轻了服务器需要扫描的数据量,从而提高了数据的检索速度.

欢迎来到后 ASO 时代

于07-06 06:50 - 何, 六六 - 前端技术 SEO ASO App Store iOS11
6 月 WWDC 上所宣布的「App Store 将迎来大改版」的消息,给 ASO 界砸下了一枚重磅炸弹. 虽说 iOS11 要到今年秋季才会正式推送,且正式版面世到大面积使用还需要一定时间,到底会不会迎来一个新的 ASO 时代,目前尚不可知. 为了做好迎接新时代的准备,咱们先来看看苹果砸下的到底是一枚什么样的「炸弹」.

实现前后端分离的心得

于07-02 07:46 - (●'◡'●) - IT技术 前端 后端
对目前的web来说,前后端分离已经变得越来越流行了,越来越多的企业/网站都开始往这个方向靠拢. 那么,为什么要选择前后端分离呢. 前后端分离对实际开发有什么好处呢?. 在以前传统的网站开发中,前端一般扮演的只是切图的工作,只是简单地将UI设计师提供的原型图实现成静态的HTML页面,而具体的页面交互逻辑,比如与后台的数据交互工作等,可能都是由后台的开发人员来实现的,或者是前端是紧紧的耦合后台.

谈一下我们是如何开展code review的

于06-28 08:50 - (●'◡'●) - IT技术 Code Review 代码审查
众所周知,代码审查是软件开发过程中十分重要的环节,楼主结合自己的实际工作经验,和大家分享一下在实际工作中代码审查是如何开展的. 笔者水平有限,若有错误和纰漏,还请大家指正. 我想不通公司不同部门对代码审查这项工作的重视程度还是不一样的,对于代码审查的阻力总结了以下几点:. 国内的整体环境,国内的公司,尤其是互联网公司,讲究速度致上,软件开发的迭代周期周期短,速度快,因为竞争太大,开发的产品要求快速上线,对代码审查不是很重视,先上线,出了问题再解决.

【译】Reddit如何统计每个帖子的浏览量

于06-17 16:01 - TiuVe2 - 基础技术 HyperLogLog Reddit
之前没听过也没了解过 HyperLogLog,通过翻译这篇文章正好简单学习下. 我们想要更好的向用户展示 Reddit 的规模. 为了这一点,投票和评论数是一个帖子最重要的指标. 然而,在 Reddit 上有相当多的用户只浏览内容,既不投票也不评论. 所以我们想要建立一个能够计算一个帖子浏览数的系统.

自建一个电话呼叫中心要多少钱?

于06-17 16:46 - ideawu - IT技术和评论 SIP VoIP
我十分看不惯任何行业的潜规则行为. 自建一个电话呼叫中心的报价是多少钱. 我明说吧,自建一个电话呼叫中心,只需要3万元左右,而且还能更省钱. 这个报价是针对小型企业的,也就是广大人民群众. 至于大型企业,它们自己去定制,钱不是问题. 3万元建一个电话呼叫中心,包括什么. 软件是硬件设备上免费赠送的,不要钱.

Spring Boot异常处理详解

于05-31 02:35 - TiuVe2 - 基础技术 spring boot 异常处理
在《 Spring MVC异常处理详解 》中,介绍了Spring MVC的异常处理体系,本文将讲解在此基础上Spring Boot为我们做了哪些工作. 下图列出了Spring Boot中跟MVC异常处理相关的类. Spring Boot在启动过程中会根据当前环境进行AutoConfiguration,其中跟MVC错误处理相关的配置内容,在ErrorMvcAutoConfiguration这个类中.

Spark Shuffle过程分析:Map阶段处理流程

于05-26 15:13 - Yanjun - Spark 开源技术 Spark-2.0.0
默认配置情况下,Spark在Shuffle过程中会使用SortShuffleManager来管理Shuffle过程中需要的基本组件,以及对RDD各个Partition数据的计算. 我们可以在Driver和Executor对应的SparkEnv对象创建过程中看到对应的配置,如下代码所示:. 如果需要修改ShuffleManager实现,则只需要修改配置项spark.shuffle.manager即可,默认支持sort和 tungsten-sort,可以指定自己实现的ShuffleManager类.

一个轻量级分布式 RPC 框架 — NettyRpc

于05-18 16:01 - TiuVe2 - 基础技术 NettyRPC RPC
最近在搜索Netty和Zookeeper方面的文章时,看到了这篇文章《 轻量级分布式 RPC 框架》,作者用Zookeeper、Netty和Spring写了一个轻量级的分布式RPC框架. 花了一些时间看了下他的代码,写的干净简单,写的RPC框架可以算是一个简易版的 dubbo. 这个RPC框架虽小,但是麻雀虽小,五脏俱全,有兴趣的可以学习一下.

Netty 超时机制及心跳程序实现

于05-14 16:02 - TiuVe2 - 技术架构 Netty
本文介绍了 Netty 超时机制的原理,以及如何在连接闲置时发送一个心跳来维持连接. Netty 超时机制的介绍. Netty 的超时类型 IdleState 主要分为:. ALL_IDLE : 一段时间内没有数据接收或者发送. READER_IDLE : 一段时间内没有数据接收. WRITER_IDLE : 一段时间内没有数据发送.

Java常见面试题之Forward和Redirect的区别

于05-09 16:01 - TiuVe2 - 基础技术 Forward Redirect 面试
一:间接请求转发(Redirect). 二:直接请求转发(Forward). 用户向服务器发送了一次HTTP请求,该请求可能会经过多个信息资源处理以后才返回给用户,各个信息资源使用请求转发机制相互转发请求,但是用户是感觉不到请求转发的. 根据转发方式的不同,可以区分为直接请求转发(Forward)和间接请求转发(Redirect),那么这两种转发方式有何区别呢.

Spring boot executable jar/war 原理

于05-05 16:02 - TiuVe2 - 基础技术 spring boot
spring boot里其实不仅可以直接以 Java -jar demo.jar的方式启动,还可以把jar/war变为一个可以执行的脚本来启动,比如./demo.jar. 把这个executable jar/war 链接到/etc/init.d下面,还可以变为Linux下的一个service. 只要在spring boot maven plugin里配置:.

JVM诊断调优CheatSheet

于04-10 23:16 - liuchi1993 - 基础技术 JVM 调优
使用top去获取进程cpu使用率;使用/proc文件查看进程所占内存. 查看类的一些信息,如字节码的版本号、常量池等. 查看进程的gc情况. jstat -gcutil [pid] (显示总体情况). jstat -gc [pid] 1000 10(每隔1秒刷新一次 一共10次). 查看jvm内存使用状况.

SpringBoot的事务管理

于04-07 22:57 - liuchi1993 - 技术架构 springboot
Springboot内部提供的事务管理器是根据autoconfigure来进行决定的. 比如当使用jpa的时候,也就是pom中加入了spring-boot-starter-data-jpa这个starter之后(之前我们分析过 springboot的自动化配置原理). Springboot会构造一个JpaTransactionManager这个事务管理器.

2017年你不能错过的Java类库

于03-12 23:02 - liuchi1993 - 基础技术 Guice okhttp
这篇文章是在我看过  Andres Almiray 的一篇 介绍文后,整理出来的. 因为内容非常好,我便将它整理成参考列表分享给大家, 同时附上各个库的特性简介和示例. Guice (发音同 ‘juice’) ,是一个 Google 开发的轻量级依赖性注入框架,适合 Java 6 以上的版本.   GitHub,  JavaDoc,  使用指南,  FactoryModuleBuilder.

Android优化

于03-09 23:37 - liuchi1993 - 基础技术 Android开发 JVM 性能优化
更多网络优化,可参考:  Android网络. http头信息带Cache-Control域 确定缓存过期时间 防止重复请求. 直接用IP直连,不用域名,策略性跟新本地IP列表. – DNS解析过程耗时在百毫秒左右,并且还有可能存在DNS劫持. 图片、JS、CSS等静态资源,采用CDN(当然如果是使用7牛之类的服务就已经给你搭建布置好了).

Spring Cloud Netflix构建微服务入门实践

于03-03 09:01 - Yanjun - Spring 开源技术 Eureka SpringCloud
在使用Spring Cloud Netflix构建微服务之前,我们先了解一下Spring Cloud集成的Netflix OSS的基础组件Eureka,对于Netflix的其他微服务组件,像Hystrix、Zuul、Ribbon等等本文暂不涉及,感兴趣可以参考官网文档. 这里,我们用最基础的Eureka来构建一个最基础的微服务应用,来演示如何构建微服务,了解微服务的基本特点.

http request乱码的真相

于03-02 22:32 - liuchi1993 - 基础技术 javaee Request 乱码
首先,从浏览器端看下有多少种情况:. 1.在浏览器的地址栏,或者搜索框里输入地址:http://www.test.com/衣服/search?keyword=T恤. 2.在一个指定了编码的网页中,提交一个form,如:. <input name="keyword" class="keyword" value="T恤" maxlength="30">.

防范 CSRF 跨站请求伪造

于03-01 01:48 - 管宜尧 - IT技术 csrf 安全
CSRF(Cross-site request forgery,中文为 跨站请求伪造)是一种利用网站可信用户的权限去执行未授权的命令的一种恶意攻击. 通过 伪装可信用户的请求来利用信任该用户的网站,这种攻击方式虽然不是很流行,但是却难以防范,其危害也不比其他安全漏洞小. 本文将简要介绍CSRF产生的原因以及利用方式,然后对如何避免这种攻击方式提供一些可供参考的方案,希望广大程序猿们都能够对这种攻击方式有所了解,避免自己开发的应用被别人利用.

Linux下正确删除海量文件的姿势

于02-16 10:16 - 歪脖骇客 - 技术技巧 linux 删文件
这里说的“海量”并不是指体积大,而是指数量,比如一个目录下有数百万个小文件. 最近在优化服务器时发现postfix下的maildrop目录和clientmqueue目录下发现有大量的文件,进入这些目录里使用ls命令是愚蠢的做法,而直接执行 rm *,没有任何反应,文件数量也没有减少,也就是说,在海量文件目录里直接使用rm命令进行删除是无效的.

每天自动备份MySQL数据库的shell脚本

于02-15 09:50 - 歪脖骇客 - 技术技巧 shell 备份 数据库
经常备份数据库是一个好习惯,虽然数据库损坏或数据丢失的概率很低,但一旦发生这种事情,后悔是没用的. 一般网站或应用的后台都有备份数据库的功能按钮,但需要去手工执行. 我们需要一种安全的,每天自动备份的方法. 下面的这个shell脚本就是能让你通过过设定Crontab来每天备份MySQL数据库的方法.

分布式系统中唯一 ID 的生成方法

于02-05 15:29 - 伯小乐 - IT技术 分布式
本文主要介绍在一个分布式系统中, 怎么样生成全局唯一的 ID. 在分布式系统存在多个 Shard 的场景中, 同时在各个 Shard 插入数据时, 怎么给这些数据生成全局的 unique ID?. 在单机系统中 (例如一个 MySQL 实例), unique ID 的生成是非常简单的, 直接利用 MySQL 自带的自增 ID 功能就可以实现..

从Gitlab误删除数据库想到的

于02-02 08:11 - 陈皓 - 技术新闻 程序设计 系统架构 Design Gitlab
昨天,Gitlab.com发生了一个大事,某同学误删了数据库,这个事看似是个低级错误,不过,因为Gitlab把整个过程的细节都全部暴露出来了,所以,可以看到很多东西,而对于类似这样的事情,我自己以前也干过,而在最近的两公司中我也见过(Amazon中见过一次,阿里中见过至少四次),正好通过这个事来说说一下自己的一些感想和观点吧.

JVM上最快的Bloom filter实现

于01-29 03:41 - 唐尤华 - 基础技术 BloomFilter JVM Scala
英文原始出处:  Bloom filter for Scala, the fastest for JVM. 本文介绍的是我用Scala实现的Bloom filter. 依照 性能测试结果,它是JVM上的 最快的Bloom filter实现. 零分配(Zero-allocation)和高度优化的代码.

Apache Beam:一个开源的统一的分布式数据处理编程库

于01-18 10:16 - Yanjun - Beam 开源技术
Apache Beam是一个开源的数据处理编程库,由Google共享给Apache的项目,前不久刚刚成为Apache TLP项目. 它提供了一个高级的、统一的编程模型,允许我们通过构建Pipeline的方式实现批量、流数据处理,并且构建好的Pipeline能够运行在底层不同的执行引擎上. 刚刚接触该开源项目时,我的第一感觉就是:在编程API的设计上,数据集及其操作的抽象有点类似Apache Crunch(MapReduce Pipeline编程库)项目;而在支持统一数据处理模型上,能够让人想到Apache Flink项目.

JVM初探——使用堆外内存减少Full GC

于01-17 23:51 - liuchi1993 - 基础技术 GC JVM
GCIH可以联想到:  将长期存活的对象(如Local Cache)移入堆外内存(off-heap, 又名. 直接内存/direct-memory), 从而减少CMS管理的对象数量, 以降低Full GC的次数和频率, 达到提高系统响应速度的目的.. 这个idea最初来源于TaobaoJVM对OpenJDK定制开发的GCIH部分(详见 撒迦的分享- JVM定制改进@淘宝), 其中GCIH就是将CMS Old Heap区的一部分划分出来, 这部分内存虽然还在堆内, 但已不被GC所管理.

RESTful 架构风格下的 4 大常见安全问题

于01-05 13:47 - ThoughtWorks - IT技术 Rest 微服务
伴随着RESTful架构风格的大量应用微服务架构的流行,一些本来难以察觉到的安全问题也逐渐开始显现出来. 在我经历过的各种采用RESTful微服务架构风格的应用中,某些安全问题几乎在每个应用中都会出现. 然而它们并非是什么高深的技术难题,只不过是借着微服务的流行而显得越发突出,这些都可以通过一些安全实践来避免.