终端是程序员的必备工具之一,10 倍程序员的终端跟普通程序员有何不同?本文将介绍许多牛逼且实用的开源工具,用上这些工具后你不一定会变成 10 倍程序员,但绝对能够让你感觉自己像个 10 倍程序员。本文仅对工具做基本介绍,不提供安装方法,因为这些工具的安装方法在项目的 github 首页上基本都会提供,在掘金上也能找到许多具体的使用教程。在终端准备部分介绍的工具是跟操作系统相关的,终端内的命令行工具
说起MySQL的查询优化,相信大家积累一堆技巧:不能使用SELECT *、不使用NULL字段、合理创建索引、为字段选择合适的数据类型….. 你是否真的理解这些优化技巧?是否理解其背后的工作原理?在实际场景下性能真有提升吗?我想未必。因而理解这些优化建议背后的原理就尤为重要,希望本文能让你重新审视这些优化建议,并在实际业务场景下合理的运用。MySQL逻辑架构如果能在头脑中构建一幅MySQL各
场景日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段:优先判断条件,条件不满足的,逻辑及时中断返回;融入策略模式;策略模式+工厂+单例模式,锦上添花;接
目录什么是哨兵原理环境设置哨兵从宕机及恢复主宕机及恢复配置多个哨兵 1、什么是哨兵 哨兵是对Redis的系统的运行情况的监控,它是一个独立进程,功能有二个:监控主数据库和从数据库是否运行正常;主数据出现故障后自动将从数据库转化为主数据库; 2、原理 单个哨兵的架构:多个哨兵的架构:多个哨兵,不仅同时监控主从数据库,而且哨兵之间互为监控。多个哨兵,防止哨兵单点故障。 3、环境 当前处于一主多从的
疑惑,System.currentTimeMillis真有性能问题? 最近我在研究一款中间件的源代码时,发现它获取当前时间不是通过System.currentTimeMillis,而是通过自定义的System.currentTimeMillis的缓存类(见下方),难道System.currentTimeMillis的性能如此不堪吗?竟然要通过自定义的缓存时钟取而代之?/**
软件外包公司入职须知
项目调优作为一名工程师,项目调优这事,是必须得熟练掌握的事情。在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行。一、修改配置文件关于修改配置文件application.properties。https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-proper
引言这几天突然有个读者问:能说一说Spring的父子容器吗?说实话这其实也是Spring八股文里面一个比较常见的问题。在我的印象里面Spring就是父容器,SpringMvc就是子容器,子容器可以访问父容器的内容,父容器不能访问子容器的东西。有点类似java里面的继承的味道,子类可以继承父类共有方法和变量,可以访问它们,父类不可以访问子类的方法和变量。在这里就会衍生
1、分布式队列使用路径为/queue的znode下的节点表示队列中的元素。/queue下的节点都是顺序持久化znode。这些znode名字的后缀数字表示了对应队列元素在队列中的位置。znode名字后缀数字越小,对应队列元素在队列中的位置越靠前 1)、offer方法 offer方法在/queue下面创建一个顺序znode。因为znode的后缀数字是/queue下面现有
数据库架构说说MySQL 的基础架构图给面试官讲一下 MySQL 的逻辑架构,有白板可以把下面的图画一下。Mysql逻辑架构图主要分三层:(1)第一层负责连接处理,授权认证,安全等等 (2)第二层负责编译并优化SQL (3)第三层是存储引擎。一条SQL查询语句在MySQL中如何执行的?先检查该语句是否有权限,如果没有权限,直接返回错误信息,如果有权限会先查询缓存(MySQL8.0 版本以前)。如果
一、数据库为什么需要锁?为了保证数据的一致性。mysql数据库存在多种数据引擎,MySQL各存储引擎使用了三种类型(级别)的锁定机制:表级锁定,行级锁定和页级锁定。二、表级锁 1.表级锁(表级锁一次会将整个表锁定,所可以很好的避免死锁问题) (1)锁定粒度大,锁冲突概率高、并发度低;(2)好处是不会出现死锁、开销小、获取锁和释放锁的速度很快;(3)使用表级锁定的主要是MyISAM,MEMORY,C
案例分析
前言 先来说说为啥要写这篇文章,之前小编看了下nginx 的访问日志,发现每天有好多国外的IP地址来访问我的网站,并且访问的内容基本上都是恶意的。因此 我决定 禁止国外IP 来访问我的网站想要实现这个功能有很多方法,下面我就来介绍基于 NGINX的ngx_http_geoip2模块 来禁止国外IP 访问网站 一、安装geoip2扩展依赖 [root@fxkj ~]# yum instal
方法一、使用Listpublic static boolean useList(String[] arr, String targetValue) { return Arrays.asList(arr).contains(targetValue);}方法二、使用Setpublic static boolean useSet(String[] arr, String targetValue)
面试官:你好,你先做个自我介绍吧某人:面试官你好,我叫开局一张嘴面试全靠吹,某某年毕业,毕业自家里蹲大学,做过某某项目。。。。。。面试官微微一笑,捋了捋稀疏的头发:看你简历,你精通多线程?那你手写过堵塞队列吗?某人心里出现一万个问号,堵塞队列是啥玩意?平时基本都是crud,顶多用多线程跑数据图片某人:没有手写过。面试官:哦,那你说下堵塞队列吧某人支支吾吾:这个有点忘了面试官:没事,那我们下一个。此
Sharding-Jdbc实现读写分离、分库分表,妙!
分布式定时任务框架选型,写得太好了!
日常在做后台系统的时候会很频繁的遇到Excel导入导出的问题,正好这次在做一个后台系统,就想着写一个公用工具来进行Excel的导入导出。一般我们在导出的时候都是导出的前端表格,而前端表格同时也会对应的在后台有一个映射类。所以在写这个工具的时候我们先理一下我们需要实现的效果:导出方法接收一个list集合,和一个Class类型,和HttpServletResponse 对象导出是可能会有下拉列表,所以
对于正在运行的mysql,性能如何,参数设置的是否合理,账号设置的是否存在安全隐患,你是否了然于胸呢?俗话说工欲善其事,必先利其器,定期对你的MYSQL数据库进行一个体检,是保证数据库安全运行的重要手段,因为,好的工具是使你的工作效率倍增!今天和大家分享几个mysql 优化的工具,你可以使用它们对你的mysql进行一个体检,生成awr报告,让你从整体上把握你的数据库的性能情况。 mysqltune
线程状态先来个开场四连问Java线程状态有几个?Java线程状态是如何转换?Java线程状态转换什么情况会进入锁的等待队列?Java线程状态转换什么情况会进入锁的同步队列?一提到Java线程状态,不少读者立马想到线程状态转换图,但细想,印象又不深刻,只记得有那么几个状态。再要你说出Java线程状态是如何转换的,脑子里可能就如下图一样,已经是一团浆糊
前言最近在写一些业务代码时遇到一个需要产生随机数的场景,这时自然想到 jdk 包里的 Random 类。但出于对性能的极致追求,就考虑使用 ThreadLocalRandom 类进行优化,在查看 ThreadLocalRandom 实现的过程中,又追了下 Unsafe 有部分代码,整个流程下来,学到了不少东西,也通过搜索和提问解决了很多疑惑,于是总结成本文。 Random
看业务代码的时候,有些逻辑用到了短链接服务,感觉还蛮有意思的,这里简单的记录一下。这种营销短信大家应该都收到过,短信有最大字符限制,而且为了更好的观感体验,短信里的链接一般都很短。现成的短链接生成服务也比较多,比如新浪、百度等,谷歌之前也有短链接服务,号称是最快的,但是在 2018 年关闭了。一、短链接原理我们点击短链接会发起一个 GET 方式的 HTTP 请求,当请求到对应的 API 后,会解析
消息队列MQ/JMS/Kafka,你都了解吗?
安装插件教程在这里直接搜索就行了 强烈推荐的插件 Presentation Assistant 快捷键展示 录屏或者共享的时候,效果极佳 Codota— 代码智能提示 还可以搜索相关代码的示例Codota还包含一个网站:https://www.codota.com/code Alibaba Java Code Guidelines— 阿里巴巴 Java 代码规范 可以切换中英文有什么不符合阿里巴
SpringBean默认是单例的,高并发情况下,如何保证并发安全?
瘦身
WebMagic是一个开源的java爬虫框架。WebMagic框架的使用并不是本文的重点,具体如何使用请参考官方文档:http://webmagic.io/docs/。本文是对spring boot+WebMagic+MyBatis做了整合,使用WebMagic爬取数据,然后通过MyBatis持久化爬取的数据到mysql数据库。本文提供的源代码可以作为java爬虫项目的脚手架。 1.添加maven
日常生活中,有哪些需要限流的地方?像我旁边有一个国家景区,平时可能根本没什么人前往,但是一到五一或者春节就人满为患,这时候景区管理人员就会实行一系列的政策来限制进入人流量, 为什么要限流呢?假如景区能容纳一万人,现在进去了三万人,势必摩肩接踵,整不好还会有事故发生,这样的结果就是所有人的体验都不好,如果发生了事故景区可能还要关闭,导致对外不可用,这样的后果就是所有人都觉得体验糟糕透了。限流的思想
控制台仿真器是一种模拟传统计算机终端功能的程序。简单地说,与使用硬件执行功能的经典终端不同,控制台终端仿真器在软件中执行相同的任务。控制台终端仿真器使主机能够使用命令行或图形界面访问远程计算机。除了访问另一台计算机上的文件外,该程序还允许主机在远程计算机上运行应用程序。此外,终端仿真器还支持在主机和远程 PC 之间传输文件。两台计算机之间的此类通信可使用加密网络协议 – 安全外壳 (SSH) 实
我们知道像stop、suspend这几种中断或者阻塞线程的方法在较高java版本中已经被标记上了@Deprecated过期标签,那么为什么她们曾经登上了java的历史舞台而又渐渐的推出了舞台呢,到底是人性的扭曲还是道德的沦丧呢,亦或是她们不思进取被取而代之呢,如果是被取而代之,那么取而代之的又是何方人也,本文我们将一探究竟。一、stop的落幕首先stop方法的作用是什么呢,用java源码中的一
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号