0 Xn346

尚未进行身份认证

暂无相关简介

等级
TA的排名 9w+

上次谁说要Java开源项目来着?来!

今天推荐的几款主要包括后台管理项目、电商项目和微服务项目。项目一项目名称:Java项目简介: 这是一个基于Java的数据结构与算法的实现项目。里面包含了几乎常用所有数据结构的实现,以及诸多算法题和LeetCode习题的Java实现。主要包括:加解密算法进制转换各种数据结构分治动态规划数学类问题搜索问题排序问题LeetCode习题其他杂项算法题等对于我们的作用: 基于Ja...

2020-05-06 14:13:56

不敢想象,你写了3年程序,竟然很少写单元测试!

一、前言有同学可能看到这个标题,又以为是标题党了,你真莫笑,你可以小声去问问你在中小型公司的同学,有多少在写单测?可能有的同学就只知道Junit,连Mockito是什么都不知道,希望本文能帮助你深入的了解单测框架。相信做过开发的同学,都多多少少写过下面的代码,很长一段时间我一直以为这就是单元测试…@SpringBootTest@RunWith(SpringRunner.class)pub...

2020-04-30 12:49:06

你这代码写得真丑,满屏的try-catch,全局异常处理不会吗?下

统一返回结果在验证统一异常处理器之前,顺便说一下统一返回结果。说白了,其实是统一一下返回结果的数据结构。code、message 是所有返回结果中必有的字段,而当需要返回数据时,则需要另一个字段 data 来表示。所以首先定义一个 BaseResponse 来作为所有返回结果的基类;然后定义一个通用返回结果类CommonResponse,继承 BaseResponse,而且多了字段data;...

2020-04-27 16:53:59

五十岁的创业者告诉我们,奋斗其实没有终点

一我曾经提到过最终改行从事美缝行业的老w,他靠自己的“不够努力”,最终离开了行业。但是,这个世界其实有点讽刺。在沉迷于安逸小日子的老w每天朝九晚五,只想拿钱,不想干活的那段日子,隔壁的总经理办公室却经常通宵达旦、灯火通明,那位五十五岁的老板Y总,正在为了自己的梦想努力奋斗着。二在加入公司之前,我曾经见过一次Y总,那是在一个茶室,跟Y总有过一番简单的沟通后,我打算去公司看看,以便了解公司实...

2020-04-25 18:19:17

我的天,你工作5年了,连Java agent都不知道...下篇

老规矩,先看测试代码,测试代码很简单,每隔 100ms 运行一次 sayHi 方法,并随机随眠一段时间。packageorg.xunche.app;publicclassHelloTraceAgent{publicstaticvoidmain(String[] args)throwsInterruptedException{HelloTraceAgent helloTraceAgent =new...

2020-04-24 16:42:59

我的天,你工作5年了,连Java agent都不知道...上篇

引言在本篇文章中,我会通过几个简单的程序来说明 agent 的使用,最后在实战环节我会通过 asm 字节码框架来实现一个小工具,用于在程序运行中采集指定方法的参数和返回值。有关 asm 字节码的内容不是本文的重点,不会过多的阐述,不明白的同学可以自己 google 下。简介Java agent 提供了一种在加载字节码时,对字节码进行修改的方式。他共有两种方式执行,一种是在 main 方法执行...

2020-04-24 16:37:24

支付宝架构师的总结:为什么他们能抗住万亿级流量的高并发?(下篇)

集群对于用户访问集中的业务独立部署服务器,应用服务器,数据库,nosql数据库。核心业务基本上需要搭建集群,即多台服务器部署相同的应用构成一个集群,通过负载均衡设备共同对外提供服务, 服务器集群能够为相同的服务提供更多的并发支持,因此当有更多的用户访问时,只需要向集群中加入新的机器即可, 另外可以实现当其中的某台服务器发生故障时,可以通过负载均衡的失效转移机制将请求转移至集群中其他的服务器上,因...

2020-04-23 16:28:26

支付宝架构师的总结:为什么他们能抗住万亿级流量的高并发?

前言高并发经常会发生在有大活跃用户量,用户高聚集的业务场景中,如:秒杀活动,定时领取红包等。为了让业务可以流畅的运行并且给用户一个好的交互体验,我们需要根据业务场景预估达到的并发量等因素,来设计适合自己业务场景的高并发处理方案。在电商相关产品开发的这些年,我有幸的遇到了并发下的各种坑,这一路摸爬滚打过来有着不少的血泪史,这里进行的总结,作为自己的归档记录,同时分享给大家。服务器架构业务从...

2020-04-23 16:23:13

你做得这个SpringBoot监控,看起来真炫酷!(下篇)

使用场景:根据个人经验和实践,总结如下:有自然(物理)上界的浮动值的监测,例如物理内存、集合、映射、数值等。有逻辑上界的浮动值的监测,例如积压的消息、(线程池中)积压的任务等,其实本质也是集合或者映射的监测。举个相对实际的例子,假设我们需要对登录后的用户发送一条短信或者推送,做法是消息先投放到一个阻塞队列,再由一个线程消费消息进行其他操作:public class GaugeMain {...

2020-04-22 12:51:35

你做得这个SpringBoot监控,看起来真炫酷!(中篇)

GaugeGauge(仪表)是获取当前度量记录值的句柄,也就是它表示一个可以任意上下浮动的单数值度量Meter。Gauge通常用于变动的测量值,测量值用ToDoubleFunction参数的返回值设置,如当前的内存使用情况,同时也可以测量上下移动的”计数”,比如队列中的消息数量。官网文档中提到Gauge的典型使用场景是用于测量集合或映射的大小或运行状态中的线程数。Gauge一般用于监测有自然上...

2020-04-22 12:47:53

你做得这个SpringBoot监控,看起来真炫酷!(上篇)

前提spring-actuator做度量统计收集,使用Prometheus(普罗米修斯)进行数据收集,Grafana(增强ui)进行数据展示,用于监控生成环境机器的性能指标和业务数据指标。一般,我们叫这样的操作为”埋点”。SpringBoot中的依赖spring-actuator中集成的度量统计API使用的框架是Micrometer,官网是Micrometer.io。在实践中发现了业务开发者滥...

2020-04-21 12:48:44

颠覆你的认知:数据库连接池到底应该设多大?

本文内容95%译自这篇文章:https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing我在研究HikariCP(一个数据库连接池)时无意间在HikariCP的Github wiki上看到了一篇文章(即前面给出的链接),这篇文章有力地消除了我一直以来的疑虑,看完之后感觉神清气爽。故在此做译文分享。接下来是正文数据库连接池...

2020-04-21 12:44:04

Java是未来的第一编程语言吗?

一、前言Java语言长期以来一直霸占多数热门编程语言榜单的榜首,可见这是一个备受程序员热捧的编程语言。Java语言具有什么魅力?想必这都是已经为大多数人们所熟知的了,不值得过多赘述。而Java语言发展至今,面对发展势头迅猛又十分简单易学的python,以及各种层出不穷的高级语言,Java程序员的份额已经逐步下降,那它是否还能在未来保持领先的优势呢?本文就主要从Java语言所不擅长的领域,以及它在...

2020-04-20 14:45:10

面向对象编程,再见!

作为程序员,你是使用函数式编程还是面向对象编程方式?在本文中,拥有 10 多年软件开发经验的作者从面向对象编程的三大特性——继承、封装、多态三大角度提出了自己的疑问,并深刻表示是时候和面向对象编程说再见了。几十年来我都在用面向对象的语言编程。我用过的第一个面向对象的语言是 C++,后来是 Smalltalk,最后是 .NET 和 Java。我曾经对使用继承、封装和多态充满热情。它们是范式的三...

2020-04-20 14:40:57

NPE,让我们太头疼了,该如何优雅的处理null呢?

判空灾难作为搬砖党的一族们,我们对判空一定再熟悉不过了,不要跟我说你很少进行判空,除非你喜欢NullPointerException。不过NullPointerException对于很多猿们来说,也是Exception家族中最亲近的一员了。为了避免NullPointerException来找我们,我们经常会进行如下操作。if (data != null) {do sth.}如果一个类...

2020-04-18 13:08:38

推荐几款压箱底的IDEA插件,撸码利器

前言Idea作为我们日常使用的编辑工具之一,因其强大和人性化而被各大神推荐。笔者闲来无事学了下Idea的操作,在找插件的过程中发现了一些宝藏插件,对我们日常开发或者提升代码功力都挺有帮助的吧,特此选出十个来推荐给大家~FindBugs虽说Idea本身提供的代码检查工具已经很强大了,但Idea提供的更多是规范性的检查,如果需要深入地检查异常,可以使用此插件。使用方式:右键点击项目、包或者...

2020-04-18 13:02:48

太恐怖了,我的Linux服务器感染了kerberods病毒...

一、症状及表现1、CPU使用率异常,top命令显示CPU统计数数据均为0,利用busybox 查看CPU占用率之后,发现CPU被大量占用。注:ls top ps等命令已经被病毒的动态链接库劫持,无法正常使用,大家需要下载busybox。2、crontab 定时任务异常,存在以下内容;3、后期病毒变异,劫持sshd,导致远程登陆失败,偶尔还会跳出定时任务失败,收到新邮件等问题4、 存在异常...

2020-04-17 14:00:11

老板说,我请你来,不是叫你"无脑"拷贝的,竟然在线上搞出这么大的一个BUG...

本人是做游戏服务器开发的,碰到一个需求,给符某些要求的玩家的发送道具奖励,奖励的数量根据离线的天数计算。这个需求实现起来很简单,只需要在玩家上线的时候计算上次离线时间和当前时间间隔的天数,然后根据策划的算法,计算出道具种类与数量,发一封邮件给玩家就可以了。实现计算两个时间间隔天数的函数,没有现成的,我又懒得写,就上谷歌搜了下,选了第一条结果,代码如下public static int dif...

2020-04-17 13:55:53

一个奇怪的MySQL慢查询,打懵了一群不懂业务的DBA!

前言最近,开发人员需要定期的删除表里一定时间以前的数据,SQL如下:mysql > delete from testtable WHERE biz_date <= ‘2017-08-21 00:00:00’ AND status = 2 limit 500\G前段时间在优化的时候,我们已经在相应的查询条件上加上了索引,如下:KEY idx_bizdate_st (biz_d...

2020-04-16 13:31:00

最烂密码榜单TOP 100,那个是最烂之王?

近日,SplashData 公布了最烂密码榜单TOP 100,123456”这个烂密码,从2013年开始一直连续夺冠!而根据《中国网民个人隐私状况调查报告》,以“几个密码通用于大多数账号”的中国网民占比达到50.8%。对自己拥有的所有账号都采取同一套密码的人占14.9%。在信息泄露时,58.9%的人选择仅修改泄露平台的密码。大多数人还在“一套密码走天下”!我们应该如何设置自己的密码呢?0...

2020-04-16 13:16:45

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。