深圳幻海软件技术有限公司 欢迎您!

开发工具

  • 面试20K的职位必须要熟悉的Java线程池面试题

    一、背景引入今天跟大家聊一个互联网大厂的Java面试题:使用无界队列的线程池会导致内存飙升吗?因为在面互联网大厂的时候,一定会问并发,问并发的时候一定会问到线程池,问到线程池一定会问构造线程池的一些参数的含义。然后,有一些面试官会就线程池的具体场景,问一些可能会遇到的问题。所以,在这里就可能有上述那

  • React:搞了半天,我才是低代码的最佳形态

    大家好,我卡颂。你有没有发现,每过几年,「低代码」的概念就会被翻出来热炒一番。这也难怪,软件行业最大的成本就是人力成本(程序员的工资),「低代码」号称能够:用一个外包替代几个程序员。用产品、设计、财务人员替代程序员。用xxxx替代程序员。一个只有程序员受伤,还能降本增效的世界,资本怎能不爱。概念翻来

  • 性能调优——小小的log大大的坑

    引言“只有被线上服务问题毒打过的人才明白日志有多重要!”我先说结论,谁赞成,谁反对?如果你深有同感,那恭喜你是个社会人了:)日志对程序的重要性不言而喻,轻巧、简单、无需费脑,程序代码中随处可见,帮助我们排查定位一个有一个问题问题。但看似不起眼的日志,却隐藏着各式各样的“坑”,如果使用不当,不仅不能帮

  • 深入理解Stream之原理剖析

    今天我们先来聊聊深入理解Stream之原理剖析。Stream操作分类Stream中的操作可以分为两大类:中间操作与结束操作。中间操作只会进行操作记录,只有结束操作才会触发实际的计算,可以理解为懒加载,这也是Stream在操作大对象迭代计算的时候如此高效的原因之一。中间操作分为有状态操作与无状态操作,

  • 技术团队如何高效落地代码CR

    ​引言代码CR(CodeReview)是软件研发活动中保障平台产品质量的重要环节,相信很多技术团队平常都会进行代码CR。就拿阿里来说,一般周二和周四都是发布日,那么在发布上线某项功能之前都要组织进行发布代码CR,CR不通过的代码必须修改检查通过后才能发布上线,可见一线互联网大厂技术团队对于代码CR的

  • 单标签实现复杂的棋盘布局

    最近,有群友问我,他们的一个作业,尽量使用少的标签去实现这样一个象棋布局:他用了60多个标签,而他的同学,只用了 6 个,问我有没有办法尽可能的做到利用更少的标签去完成这个布局效果。其实,对于一个页面的布局而言,标签越少不一定是好事,我们在考虑DOM的消耗的同时,也需要关注代码的

  • 微服务到底该怎么样部署呢?

    微服务应用程序可以以多种方式运行,每种方式都有不同的权衡和成本结构。适用于跨越几个服务的小型应用程序可能不足以用于大型系统。从简单到复杂,以下是运行微服务的五种方式:单机多进程:购买或租用服务器并将微服务作为进程运行。多台机器,多进程:显而易见的下一步是添加更多服务器并分配负载,提供更高的可扩展性和

  • Zookeeper系列—Zookeeper应用及常用命令

    第1章常用命令zk的应用主要是针对三类:java原生zk客户端的API操作(不用去学这部分内容,会增加太多的学习成本,了解一下就好了)。zkClient的使用,它是对Zookeeper原生API的封装。ApacheCurator,也是对ZookeeperAPI的封装(本文讲的应用针对这部分内容)。在

  • 去字节面试,直接让人出门左拐:Bean 生命周期都不知道!

    大家好,我是楼仔!SpringBean的生命周期,面试时非常容易问,这不,前段时间就有个粉丝去字节面试,因为不会回答这个问题,一面都没有过。如果只讲基础知识,感觉和网上大多数文章没有区别,但是我又想写得稍微深入一点。考虑很多同学不喜欢看源码,我就把文章分为2大部分,前面是基础知识,主要方便大家面试和

  • 健康的Ceph 集群需要避免的16种操作

    前言Ceph是一个可靠地、自动重均衡、自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储、块设备存储和文件系统服务。在虚拟化领域里,比较常用到的是Ceph的块设备存储,比如在OpenStack项目里,Ceph的块设备存储可以对接OpenStack的cinder后端存储、G

  • 万字长文带你详解死锁!

    作者|王磊来源|Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)死锁(DeadLock)指的是两个或两个以上的运算单元(进程、线程或协程),都在等待对方停止执行,以取得系统资源,但是没有一方提前退出,就称为死锁。一、死锁演示死锁的形成分为两个方面,一个是使用内

  • 关于使用CompletableFuture过程中线程等待的问题

    在电商的应用场景中,通过异步多线程获取服务端信息比较常见,如用户打开个人中心查看个人综合信息,可能会展示用户的账户余额、优惠券、积分、消费红包等等信息,这时服务端就会通过异步线程将所需信息汇总后一并返回给用户。如果按单线程逐一返回个人信息,用户等待的时间显然是不能接受的,通过异步多线程的方式大大减少

  • 聊聊动态线程池的九个场景(改进版)

    大家好,我是小马哥。线程池是一种基于 池化思想管理线程 的工具,使用线程池可以减少 创建销毁线程的开销,避免线程过多导致 系统资源耗尽。在 高并发以及大批量 的任务处理场景,线程池的使用是必不可少的。如果有在项目中实际使用线程池,相信你可能

  • 手摸手教你定制 Spring Security 表单登录

    在本专栏前篇文章中介绍了HttpBasic模式,该模式比较简单,只是进行了通过携带Http的Header进行简单的登录验证,而且没有可以定制的登录页面,所以使用场景比较窄。对于一个完整的应用系统,与登录验证相关的页面都是高度定制化的,非常美观而且提供多种登录方式。这就需要SpringSecurity

  • 基础篇-SpringBoot HTTP接口实战

    一、相关注解说明SpringBoot的Controller中经常会用到注解@Controller、@RestController、@RequestMapping、@RequestParam、@PathVariable、@RequestBody等。以下针对这些注解简单使用。1、@Controller用

  • Java中自定义扩展Swagger的能力,自动通过枚举类生成参数取值含义描述的实现策略

    大家好,又见面了。在JAVA​做前后端分离的项目开发的时候,服务端需要提供接口文档供周边人员做接口的对接指导。越来越多的项目都在尝试使用一些基于代码自动生成接口文档的工具来替代由开发人员手动编写接口文档,而Swagger作为一款优秀的在线接口文档生成工具,以其功能强大、集成方便而得到了广泛的使用。在

  • 我如何使用 Groovy 分析我的音乐目录

    最近,我一直在研究Groovy是如何简化略微繁琐的Java的。在这篇文章中,我开始了一个简短的系列,通过创建一个分析我的音乐目录的工具来演示Groovy脚本。在本文中,我将演示 groovy.File​ 类如何扩展和精简 java.File​ 并简化其使用。这

  • 代码中被植入了恶意删除操作,太狠了!

    背景在交接的代码中做手脚进行删库等操作,之前只是网上听说的段子,没想到上周还真遇到了,并且亲自参与帮忙解决。事情是这样的,一老板接手了一套系统,可能因为双方在交接时出现了什么不愉快的事情,对方不提供源代码,只是把生产环境的服务器打了一个镜像给到对方。对方拿到镜像恢复之后,系统起来怎么也无法正常处理业

  • 微容器完胜大容器?

    现代开发的最佳实践,尤其是在实现微服务架构时,无不涉及使用Docker、Kubernetes和其他容器技术。容器正在改变企业部署和使用应用程序的方式。提高开发和交付效率、可移植性是吸引企业使用容器的重要原因。容器技术能够允许开发者运行软件而不用担心操作系统或依赖项。因此,由于已经内置了相关配置和库的

  • 前后端分离开发,Vue 如何处理跨域问题?

    老实说,前后端分离其实并不难,前后端分离之后,Java工程师只需要专心写页面就可以了,在我看来工作可比以前轻松多了。如果让一个专业的前端工程师来写前端页面,其实也不难,Vue算是三大前端框架中最容易上手的了。那怎么样就有难度了呢?让同一个人既写前端又写后端!我知道很多小伙伴在这里总是想不通,很多人问

  • 在Serverless环境中如何设计微服务?

    作者|RajaSaravanan编译|EthanServerless已成为企业在数字化、现代化升级过程中越来越流行的范式,不管是国内的阿里云、腾讯云、华为云,还是国外的亚马逊云科技,微软等云计算厂商,都正在大力投入无服务器计算领域。由于Serverless提供了一个微型的架构,终端客户无需部署、配置

  • 利用Python开发App实战

    Python语言虽然很万能,但用它来开发app还是显得有点不对路,因此用Python开发的app应当是作为编码练习、或者自娱自乐所用,加上目前这方面的模块还不是特别成熟,bug比较多,总而言之,劝君莫轻入。准备工作利用Python开发app需要用到Python的一个模块–kivy,kivy是一个开源

  • 24个关于设备视窗口的 CSS 单位

    过去CSS有4个你必须知道的识别视窗口的单位,并且它们能够很好地处理每个可以想象的用例。然而,随着时间的推移和时代的变化,这4种视口单位现在不足以解决所有用例。于是,CSS提供了20个更大的视窗口单位,以适应时代技术的发展需要,因此,总共为24个视窗单位,看起来感觉很多,但是,它们可能被分解为6个主

  • JavaScript框架大战已结束,赢家只有一个

     竞争者框架之战是JavaScript社区中的热门话题,也是业界众多圣战之一。一开始,jQuery崭露头角,接下来AngularJS初露锋芒,再到现代框架混战,战争愈演愈烈。如今,似Backbone或Sencha之流,许多竞争者已经马革裹尸倒在路边:只留下大量必须维护的遗留代码。如jQue

推荐阅读