
Java
文章平均质量分 73
码农突围
这个作者很懒,什么都没留下…
展开
-
太酷辣!程序员的技术测评利器免费用!
最近市场行情众所周知的差,追求降本增效已经是企业常态,企业希望不花太多成本就能快速招到“好用”的人才。如果有一款神器,能帮技术Leader 解决技术招聘中的出题难题,大家不再需要耗时间来思考怎么出题,同时还能精准考察候选人的,帮助大家招到合适的队友,**关键还免费!**是否能让广大技术 Leader 大呼万岁!原创 2024-03-14 21:55:50 · 923 阅读 · 0 评论 -
程序员做外包,真的没地位没出路吗
外包,在我们这个行业是一个很常见的名词,对应着一个特殊的工种。但是我发现很多朋友好像妖魔化了外包,觉得这玩意就是一个“坑”。但是这个问题吧,得去辩证的看。很多人一提到“外包”就是非常的消极,觉得这个人大概是“没救”了。但是外包,真的不好吗?它并不是一味的坏,它坏坏的中还透着一些些的好。说实话,外包的存在还是圆了很多打工人的“大厂梦”,也帮助不少人成功“镀金”。但大家也知道,有很多关于大厂外包的不好评价,例如:没有上升通道、没有福利没有保障、脏活累活全干、干电池人等等。其实,不管是正职还是外包,转载 2022-05-18 20:59:42 · 936 阅读 · 0 评论 -
秒懂 23 种设计模式。有点污,但真得秒啊
01 工厂方法追 MM 少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是 MM 爱吃的东西,虽然口味有所不同,但不管你带 MM 去麦当劳或肯德基,只管向服务员说「来四个鸡翅」就行了。麦当劳和肯德基就是生产鸡翅的 Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。02 建造者模式MM 最爱听的就是「我爱你」这句话了,见到不同地方的 MM,要能够用她们的方转载 2022-05-16 20:37:16 · 243 阅读 · 0 评论 -
Java 线程池配置的常见误区
前言由于线程的创建和销毁对操作系统来说都是比较重量级的操作,所以线程的池化在各种语言内都有实践,当然在 Java 语言中线程池是也非常重要的一部分,有 Doug Lea 大神对线程池的封装,我们使用的时候是非常方便,但也可能会因为不了解其具体实现,对线程池的配置参数存在误解。我们经常在一些技术书籍或博客上看到,向线程池提交任务时,线程池的执行逻辑如下:当一个任务被提交后,线程池首先检查正在运行的线程数是否达到核心线程数,如果未达到则创建一个线程。如果线程池内正在运行的线程数已经达到了核心线程数,任转载 2022-04-22 21:27:08 · 268 阅读 · 1 评论 -
Java中的 BigDecimal,80%的人都用错了....
一、BigDecimal概述Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处理,但是Double.valueOf(String) 和Float.valueOf(String)会丢失精度。所以开发中,如果我们需要精确计算的结果,则必须使用BigDeci转载 2022-04-21 22:24:18 · 241 阅读 · 0 评论 -
Spring Boot内存泄露,排查竟这么难
背景为了更好地实现对项目的管理,我们将组内一个项目迁移到MDP框架(基于Spring Boot),随后我们就发现系统会频繁报出Swap区域使用量过高的异常。笔者被叫去帮忙查看原因,发现配置了4G堆内内存,但是实际使用的物理内存竟然高达7G,确实不正常。JVM参数配置是“-XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M -XX:+AlwaysPreTouch -XX:ReservedCodeCacheSize=128m -XX:InitialCodeCache转载 2022-04-20 17:57:46 · 1042 阅读 · 1 评论 -
零侵入性:一个注解,优雅的实现循环重试功能
前言在实际工作中,重处理是一个非常常见的场景,比如:发送消息失败。调用远程服务失败。争抢锁失败。这些错误可能是因为网络波动造成的,等待过后重处理就能成功。通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码。然而spring-retry却可以通过注解,在不入侵原有业务逻辑代码的方式下,优雅的实现重处理功能。一、@Retryable是什么?spring系列的spring-retry是另一个实用程序模块,可以帮助我们以转载 2022-04-19 18:35:50 · 212 阅读 · 1 评论 -
6 款 Java 8 自带工具,轻松分析定位 JVM 问题
这篇文章中介绍下如何使用 JDK 自带工具来分析和定位 Java 程序的问题。使用 JDK 自带工具查看 JVM 情况JDK 自带了很多命令行甚至是图形界面工具,帮助我们查看 JVM 的一些信息。比如,在我的机器上运行 ls 命令,可以看到 JDK 8 提供了非常多的工具或程序:接下来,我会与你介绍些常用的监控工具。你也可以先通过下面这张图了解下各种工具的基本作用:为了测试这些工具,我们先来写一段代码:启动 10 个死循环的线程,每个线程分配一个 10MB 左右的字符串,然后休眠 10 秒。可以转载 2022-04-14 21:14:42 · 335 阅读 · 0 评论 -
为什么大厂们一边裁员,一边招人
“绝对不开除兄弟” 的东哥现在也扛不住了,京东大规模裁员的消息引爆了互联网行业。1000 名员工排队离职的名场面在京东总部大楼上演。当然也能看出东哥的无奈:然后有读者问我,说像京东这样的大厂,一边这么疯狂的裁员,为什么另一边又大面积在招人。确实是这样。今年真的是特别魔幻的一年,一方面不断传出各个大厂大规模裁员的新闻,另一方面又可以看到某某大厂给应届生开出四五十万乃至更高的Offer消息。很多问题,或许就像文中说的那样:都是在赌。真实在大厂工作过,十几年的互联网老兵告诉你事实。大厂里面有很多的业转载 2022-04-12 16:08:06 · 715 阅读 · 2 评论 -
用了这么久的 Chrome,你不会还没掌握这个功能吧?
背景最近在做公司内部的项目,测试在测试过程中发现接口请求完成之后没有带过相关的数据,随后打开控制台查看是否是接口问题,发现接口报如下的异常,状态码是 200,但返回的内容显示不出来,而且控制台是提前打开 Preserve log 的,理论上之前发送的请求是应该会有记录的,但结果确看不到 Response。经过排查过后发现是对 Preserve log 的理解有偏差,由此引发了接下来的探索。Preserve log 简介To save requests across page loads, chec转载 2022-02-24 19:44:01 · 350 阅读 · 0 评论 -
最新 955 不加班的公司名单(2022版)
发现一份955不加班公司的名单~想去955公司去享受下生活996 工作制:即每天早 9 点到岗,一直工作到晚上 9 点。每周工作 6 天。955 工作制:即每天早 9 点到岗,一直工作到下午 5 点。每周工作 5 天。944 工作制:即每天上午 9 点到岗,一直工作到下午 4 点。每周工作 4 天。说明以下公司名单,基本不属于 996 的公司,相对接近 955/965 的水平,但是依旧要看部门和地区,不能保证完全准确性。不能保证所有部门都是 955/10-6-5/965/10-7-5 的水转载 2022-02-22 21:03:38 · 246 阅读 · 1 评论 -
聊一个不常见的面试题:为什么数据库连接池不采用 IO 多路复用
今天我们聊一个不常见的 Java 面试题:为什么数据库连接池不采用 IO 多路复用?这是一个非常好的问题。IO多路复用被视为是非常好的性能助力器。但是一般我们在使用 DB 时,还是经常性采用c3p0,tomcat connection pool等技术来与 DB 连接,哪怕整个程序已经变成以Netty为核心。这到底是为什么?首先纠正一个常见的误解。IO多路复用听上去好像是多个数据可以共享一个IO(socket连接),实际上并非如此。「IO多路复用不是指多个服务共享一个连接,而仅仅是指多个连接的管理可以在同转载 2022-02-18 22:16:08 · 147 阅读 · 0 评论 -
别再写 main 方法测试了,太 Low,这才是专业 Java 测试方法
前言“If you cannot measure it, you cannot improve it”.在日常开发中,我们对一些代码的调用或者工具的使用会存在多种选择方式,在不确定他们性能的时候,我们首先想要做的就是去测量它。大多数时候,我们会简单的采用多次计数的方式来测量,来看这个方法的总耗时。但是,如果熟悉JVM类加载机制的话,应该知道JVM默认的执行模式是JIT编译与解释混合执行。JVM通过热点代码统计分析,识别高频方法的调用、循环体、公共模块等,基于JIT动态编译技术,会将热点代码转换成机器码转载 2022-02-17 21:32:22 · 187 阅读 · 0 评论 -
能解决 80% 故障的排查思路
在讲解事件、故障处理思路前,先讲一个故障场景(以呼叫中心系统作为一例子):业务人员反映呼叫中心系统运行缓慢,部份电话在自助语言环节系统处理超时,话务转人工座席,人工座席出现爆线情况。运维人员开始忙活了,查资源使用情况、查服务是否正常、查日志是否报错、查交易量还有没有……时间不知不觉的在敲键盘、敲键盘、敲键盘中过去,但是原因还未定位。经理过来了解情况:“系统恢复了吗?”、“故障影响是什么?”、“交易中断了吗?”……运维人员赶紧敲键盘,写 SQL,看交易量;敲键盘,写命令,看系统资源、情况……最终,定转载 2022-02-16 21:59:31 · 158 阅读 · 0 评论 -
提高千倍效率的 Java 代码小技巧
前言代码优化 ,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无 BUG 上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的。代码优化的目标是:减转载 2022-01-19 19:34:41 · 186 阅读 · 0 评论 -
HttpClient 设置不当引发的一次雪崩
一. 事件背景我最近运维了一个网上的实时接口服务,最近经常出现Address already in use (Bind failed)的问题。很明显是一个端口绑定冲突的问题,于是大概排查了一下当前系统的网络连接情况和端口使用情况,发现是有大量time_wait的连接一直占用着端口没释放,导致端口被占满(最高的时候6w+个),因此HttpClient建立连接的时候会出现申请端口冲突的情况。具体情况如下:于是为了解决time_wait的问题,网上搜索了些许资料加上自己的思考,于是认为可以通过连接池来保转载 2022-01-18 17:47:07 · 240 阅读 · 0 评论 -
Java 和 C 长期霸权结束
TIOBE 公布了 2021 年 10 月的编程语言排行榜。在进行了几个月的追逐之后,Python 成功在 10 月份超越了霸榜已久的 C 语言,夺得了 TIOBE 编程语言排行榜首的位置。TIOBE CEO Paul Jansen 评价称,“20 多年来,我们第一次有了一个新的领导者:Python 编程语言。Java 和 C 的长期霸权地位已经结束。Python,起初是一种简单的脚本语言,作为 Perl 的替代品,现在已经变得成熟。它的易学性、大量的库以及在各种领域的广泛使用,使它成为当今最流行的编.转载 2022-01-17 21:38:42 · 158 阅读 · 0 评论 -
工程师如何从技术转型做管理?
“我,程序员,32岁,距离退休,只剩3年了!”这句话用来形容2019年互联网行业最适合不过了。从18年开始,大大小小的互联网公司开始了不止一轮的裁员,19年网上开始充斥一类文章,专门写互联网公司超过35岁的人,如果到这个年龄,还不是leader,业务又不核心,那么请焦虑吧。昨天听罗胖的跨年演讲,主题是:基本盘。意思是不要受到人云亦云的情绪影响,而是转过头,看手中的资源,基于基本盘看清自己的努力方向,非常感慨和受启发。中国互联网经过过去十多年野蛮式的发展似乎这2年开始慢下来了,程序员35岁的退休年龄虽然只转载 2022-01-11 20:03:22 · 233 阅读 · 0 评论 -
面试官:磁盘 IO 变高,你怎么分析?
工具准备:iotop: http://guichaz.free.fr/iotop/pt-ioprofile: http://www.percona.com/downloads/percona-toolkit/2.2.1/IO高分析方法:1、查看磁盘使用率 df -lh2、安装iostat 安装命令: yum install sysstat3、iostat -d -k 2 查看IO情况:哪个磁盘的IO负载较高,接下来我们就来定位具体的负载来源%util: 一秒中有百分之多少的时间用于 I/O转载 2022-01-10 20:14:13 · 182 阅读 · 0 评论 -
竟还有这样的代码注释我笑喷了
某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路…首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗?这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是会被标记的。其实,不止这些,代码注释还有很多种玩法。毕竟,最会玩的还是你们程序员。01杀了个产品经理祭天转载 2021-12-31 20:36:13 · 182 阅读 · 0 评论 -
4种方案,帮你解决Maven创建项目过慢问题
在实际开发中,我们通常会用到maven的archetype插件(原型框架)来生成项目框架。但是无奈,创建时,总会卡在[INFO] Generating project in Batch mode等很久才构建完,有时还会报错,导致构建失败!不多废话了,直接上解决办法吧:解决办法1在创建Maven项目时加上archetypeCatalog=internal参数,点击“+”添加参数archetypeCatalog=internal。 如下:解决办法2在Maven的VM Options加上-Da转载 2021-12-30 19:32:20 · 335 阅读 · 0 评论 -
微信和QQ,终于可以互通了
近日,看到QQ又迎来新的功能了,在QQ 8.8.0版本更新中,QQ和微信可以实现支付互通了,下面一起来看看。QQ红包可以使用微信支付了,在手机QQ给好友发送红包时,可以看到新增了微信支付的选项,选择使用后会跳转微信进行支付。在手机QQ上转账同样也可以使用微信支付,这里需要先微信转入到余额,之后才能完成正常的支付。另外未使用过QQ提现的小伙伴,还可以享受1000元的余额免费提现额度,具体的介绍可以看看说明。感觉这个功能还蛮实用的,即使QQ没有绑定银行卡,现在也能进行QQ支付,能直接跳转使用微.转载 2021-12-29 22:13:47 · 783 阅读 · 0 评论 -
中国互联网寒冬的根本原因是什么?
爱奇艺裁员、百度裁员、字节跳动裁员、接下来还会有谁?阿里?腾讯?互联网大厂裁员消息层出不穷。和朋友、同学求证过,一些确实属实,一些其它传闻也正在路上。所以到底是什么导致了互联网寒冬?是什么导致了互联网股价的持续下跌。这个行业似乎一夜之间进入死亡倒计时。1.C端见顶2.清朗行动、个保法、双清单等3.商业化收入降低4.反垄断个人认为重要性从前到后依次排开。可能很多人觉得反垄断才是影响最大的,实际上稍微分析一下就能弄明白。像百度、快手、爱奇艺,这些公司根本不会被反垄断影响,为什么还出现大规模的裁员潮转载 2021-12-28 20:35:49 · 436 阅读 · 0 评论 -
一些防止 Java 代码被反编译的方法
由于Java字节码的抽象级别较高,因此它们较容易被反编译。本节介绍了几种常用的方法,用于保护Java字节码不被反编译。通常,这些方法不能够绝对防止程序被反编译,而是加大反编译的难度而已,因为这些方法都有自己的使用环境和弱点。隔离Java程序最简单的方法就是让用户不能够访问到Java Class程序,这种方法是最根本的方法,具体实现有多种方式。例如,开发人员可以将关键的Java Class放在服务器端,客户端通过访问服务器的相关接口来获得服务,而不是直接访问Class文件。这样黑客就没有办法[反编译Cl转载 2021-12-27 19:29:01 · 3903 阅读 · 0 评论 -
程序员缺乏经验的 7 种表现
知道这些表现,你才能在自己的程序员职业生涯中不犯相同的错误。软件行业的工作经验和你从事这个行业的工作年限直接相关。这句话在某种程度上是对的,但是你从事这项工作的年限,并不一定代表你获得了相同年限的工作经验,正如一句话所说:“我们以为我们是工作了十年,其实却只有一年的工作经验,只不过又重复用了九年”。有一些人虽然工作了很多年,但工作表现就像刚入行的新人。他们几乎不学习软件开发的基础知识 。除了最初几年有所成长,后期一直停滞不前,而且他们不明白为什么。与此同时,我也曾与一些只有几年工作经验的开发人员共事,转载 2021-12-24 20:52:48 · 304 阅读 · 0 评论 -
为什么都建议程序员不要做“外包”?看完这些经历,很辛酸
在程序员圈子里面,外包程序员似乎永远处于一个尴尬的角色,如果你说他们不是程序员吧,他们也是程序员。应该说是外包这个词比较尴尬吧。其实我们身边也有很多外包程序员,我身边也有从外包进一线互联网企业的例子,外包公司一般是中途培训上岗或者转行的,其实不管是不是外包,大家都是迫于生计,要不然谁想写代码对吧!雇主公司会在什么情况下雇用外包人员呢?1. 项目很急。一般这些公司的入职手续非常繁琐,如果通过正常途径招聘一个员工的时间大概需要1周的时间,而这1周对于项目是比较关键的时间。所以就找外包公司,找到一个有经验转载 2021-12-22 17:55:50 · 256 阅读 · 0 评论 -
监控告警满飞天,运维在家睡到自然醒...
本文阐述了 Netflix 的系统监控实践:自研 Telltale,成功运行并监控着 Netflix 100 多个生产应用程序的运行状况。难忘的经历相信很多运维人都有过这样的经历:监控系统某个指标超过阈值,触发告警。大半夜里,你被紧急召唤。半睁着眼,你满脸疑惑:“系统真出问题了吗,还是仅仅需要调整下告警?上一次有人调整我们的告警阈值是在什么时候?有没有可能是上游或者下游的服务出现了问题?”鉴于这是一次非常重要的应用告警,因此你不得不从床上爬起来,迅速打开电脑,然后浏览监控仪表盘来追踪问题源头。忙了转载 2021-12-20 20:02:06 · 154 阅读 · 0 评论 -
裸辞接单第一个月的收入
今天分享一位毕业一年有余的程序员裸辞之后在家接单赚钱的经历,非常有意思!下面是正文。背景鄙人本科毕业一年有余,计算机专业。全栈工程师,但更喜欢前端的工作,于是在一家游戏公司任职前端工作。在这个内卷的时代,身处一线城市,来自全国各地的优秀学院/培训机构人才辈出,涌入市场,竞争激烈,各大公司并驱争先用丰厚的薪水,优渥的待遇去吸引更优秀人才入职。但是,现在已经过了 ”不会但我会学“ 就能感动面试官的时代,随着供需关系的变化,不论是对于面试官还是面试者,面试的成本越来越高。为了筛选到更优秀的程序员,面试官们可转载 2021-12-17 17:30:41 · 165 阅读 · 0 评论 -
5号发工资和25号发工资,真能看出公司是否靠谱?
5号发工资和25号发工资,就能看出一个公司是否靠谱?对很多工薪族来说,发工资这一天基本上是脱贫致富的重要日子,也是很多人的还款日子,交房租,还信用卡……想到接下来的日子又得靠拆东墙补西墙过。即使发薪日就是还款日,但这个美好的日子还是值得每个职场人期待的!为什么有的人5号、10号就发工资,有的人要到25号才发呢?发薪日是公司生态的一个缩影,可以由此看出一个公司的好坏。我们把发薪日分为三个时间段:10号以前:多为高科技公司、上市公司、外资公司、国企。10-15号:部分A股上市公司和效益比较好的、转载 2021-12-15 16:45:19 · 214 阅读 · 0 评论 -
为什么魂斗罗只有128KB却可以实现那么长的剧情?
当代程序员A和1980年游戏程序员B的对话:A:为什么你用128KB能实现这么多画面、音乐、动画?B:128KB还不够么?其实为了表现力已经相当奢侈了,加了很多不重要的细节。A:就说你们的音乐,这个音乐,我压到最低码率的mp3,也得至少1MB吧。B:你怎么压的?一首背景音乐怎么可能超过1KB。A:那你实现全屏卷轴,用了多少显存?B:一共就只有2KB显存,多了也放不下啊。A:……1、我们对“数据量”无法直观认识除非是专家,一般人根本无法估算到底多大算大,多小算小。一般人对“数据量”并没什么转载 2021-12-14 17:20:23 · 151 阅读 · 0 评论 -
差点被开除:一次订单号重复的事故
去年年底的时候,我们线上出了一次事故,这个事故的表象是这样的:系统出现了两个一模一样的订单号,订单的内容却不是不一样的,而且系统在按照 订单号查询的时候一直抛错,也没法正常回调,而且事情发生的不止一次,所以 这次系统升级一定要解决掉。经手的同事之前也改过几次,不过效果始终不好:总会出现订单号重复的问题, 所以趁着这次问题我好好的理了一下我同事写的代码。这里简要展示下当时的代码: /** * OD单号生成 * 订单号生成规则:OD + yyMMddHHmmssSSS + 5位转载 2021-12-13 17:14:58 · 199 阅读 · 0 评论 -
清华大学开源了一项神器,已经在GitHub爆了
最近,清华大学在GitHub开源了一项神器叫万词王(Want Wrong),号称是首个支持中文及跨语言查询的开源在线反向词典。什么叫反向词典呢?普通的词典告诉你某个词语的定义,而反向词典恰好相反,可以告诉你哪些词语符合你输入描述的意思。下图为万词王在线反向词典的页面截图,其中演示了反向查词的一个示例,输入“山非常高”,系统将返回一系列模型认为表达“山非常高”意思的词语,例如“高峻”、“巍峨”等。反向词典可以用来做什么?解决“舌尖现象”(tip-of-the-tongue,又称话到嘴边说不出来),即转载 2021-12-10 17:23:19 · 210 阅读 · 0 评论 -
公司规定所有接口都用 POST请求,看不起 get ?这是为什么?
最近在逛知乎的时候发现一个有趣的问题:《公司规定所有接口都用 post 请求,这是为什么?》看到这个问题的时候其实我也挺有感触的,因为我也曾经这样问过我自己。在上上一家公司的时候接到一个项目是从零开始搭建一个微服务,当时就有了解过接口的一些规范,比如耳熟能详的 Restful 规范,就被应用到这个微服务项目中。今天再次看到这个问题,我也有了一些新的理解和感触,临时回顾了一下 get 与 post 的请求的一些区别:post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记转载 2021-12-09 17:19:24 · 770 阅读 · 0 评论 -
两年滴滴和头条的后端开发经验!字字都是肺腑之言!
先简单交代一下背景吧,某不知名985的本硕,17年毕业加入滴滴,当时找工作时候也是在牛客这里跟大家一起奋战的。今年下半年跳槽到了头条,一直从事后端研发相关的工作。之前没有实习经历,算是两年半的工作经验吧。这两年半之间完成了一次晋升,换了一家公司,有过开心满足的时光,也有过迷茫挣扎的日子,不过还算顺利地从一只职场小菜鸟转变为了一名资深划水员。在这个过程中,总结出了一些还算实用的划水经验,有些是自己领悟到的,有些是跟别人交流学到的,在这里跟大家分享一下。学会深入思考,总结沉淀我想说的第一条就是要学会深转载 2021-10-15 20:49:29 · 194 阅读 · 0 评论 -
别再用 kill -9 了,这才是微服务上下线的正确姿势!
对于微服务来说,服务的优雅上下线是必要的。就上线来说,如果组件或者容器没有启动成功,就不应该对外暴露服务,对于下线来说,如果机器已经停机了,就应该保证服务已下线,如此可避免上游流量进入不健康的机器。优雅下线基础下线(Spring/SpringBoot/内置容器)首先JVM本身是支持通过shutdownHook的方式优雅停机的。Runtime.getRuntime().addShutdownHook(new Thread() { @Override public void run()转载 2021-10-14 21:18:46 · 193 阅读 · 0 评论 -
国庆在家太无聊, 用Java爬了上千张小姐姐照片...
目的爬取搜狗图片上千张美女图片并下载到本地准备工作爬取地址:https://pic.sogou.com/pics?query=%E7%BE%8E%E5%A5%B3分析打开上面的地址,按F12开发者工具 - NetWork - XHR - 页面往下滑动XHR栏出现请求信息如下:Request URL :https://pic.sogou.com/napi/pc/searchList?mode=1&start=48&xml_len=48&query=%E7%BE%8E%E5转载 2021-10-13 20:19:04 · 175 阅读 · 0 评论 -
为什么阿里强制 boolean 类型变量不能使用 is 开头?
背景平时工作中大家经常使用到boolean以及Boolean类型的数据,前者是基本数据类型,后者是包装类,为什么不推荐使用isXXX来命名呢?到底是用基本类型的数据好呢还是用包装类好呢?例子1.其他非boolean类型 private String isHot; public String getIsHot() { return isHot; }2.boolean类型 private boolean isHot; public boolean isHot转载 2021-10-11 21:03:23 · 170 阅读 · 0 评论 -
Optional 是个好东西,你真的会用么?
引言在文章的开头,先说下NPE问题,NPE问题就是,我们在开发中经常碰到的NullPointerException.假设我们有两个类,他们的UML类图如下图所示在这种情况下,有如下代码user.getAddress().getProvince();这种写法,在user为null时,是有可能报NullPointerException异常的。为了解决这个问题,于是采用下面的写法if(user!=null){ Address address = user.getAddress();转载 2021-09-13 21:41:49 · 231 阅读 · 0 评论 -
当Java枚举遇到位掩码,还能这么玩?
相信大家都用过 Fastjson,阿里的一个开源 JSON 库,在阿里系的开源项目里应用的非常广泛。虽然有时候也被戏称“沉的快”,但 Fastjson 从功能丰富度、易用性、源码设计角度来看,都是一款十分优秀的工具库。在使用 Fastjson 时,经常会配置一些枚举参数,比如日期格式、格式化输出、NULL值格式啊等等,就像下面这样配置:String jsonStr = JSON.toJSONString(obj, SerializerFeature.Writ转载 2021-09-10 22:31:10 · 140 阅读 · 0 评论 -
技术公司与非技术公司的区别,太真实了…
工作八年多了,走过好多公司,现在已经过了三十,不想再这么奔波,这几天由于领导对我的评价,对自己产生了一系列怀疑,是自己能力不行?还是自己态度不行?还是自己工作方式不对?等等很多。这个年纪已经不再是年少轻狂的年纪了。技术公司再此之前一直在软件公司工作,虽然累,但是不断的成长不断的学习,不断的接触新鲜血液,同事之间都是搞技术的特别和谐,工作分下来都非常积极,生怕自己比其他人少干了,学习少了。每天去公司是一种快乐。公司之间也没有心机,大家都在一起玩技术。解决客户。我们统称三收益。第一我们帮客户解决问题,第二我转载 2021-09-09 16:05:35 · 368 阅读 · 0 评论