你竟然不知道count(1)、count(*)与count(列名)的执行区别?
作者:BigoSprite来源:https://blog.csdn.net/iFuMI/article/details/77920767#执行效果:1.count(1)andcount(*)当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了!从执行计划来看,c
老哥,你遇到过log4j2线程阻塞的场景吗?
作者:Ye_yang来源:https://www.cnblogs.com/yeyang/p/10400486.html在使用log4j2打日志时,当发生大量异常时,造成大量线程block问题的问题。#大量线程block原因发生异常,打印异常栈时,会调用org.apache.logging.log4j
写 JSP 的痛点,真的非常痛
作者:杨明翰来源:https://blog.csdn.net/piantoutongyang/article/details/50878214一、前戏前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为
MyBatis底层实现原理:动态代理的运用
作者:祖大俊来源:https://my.oschina.net/zudajun/blog/666223一日小区漫步,我问朋友:Mybatis中声明一个interface接口,没有编写任何实现类,Mybatis就能返回接口实例,并调用接口方法返回数据库数据,你知道为什么不?朋友很是诧异:是啊,我也很纳
JVM性能调优监控工具使用详解
作者|优雅先生来源|my.oschina.net/feichexia/blog/196575现实企业级Java应用开发、维护中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露线程死锁锁争用(LockContention)Java进程消耗CPU过高......这些问题
详解 Redis 内存管理机制和实现
来源关注程序员历小冰,作者历小冰Redis是一个基于内存的键值数据库,其内存管理是非常重要的。本文内存管理的内容包括:过期键的懒性删除和过期删除以及内存溢出控制策略。最大内存限制Redis使用maxmemory参数限制最大可用内存,默认值为0,表示无限制。限制内存的目的主要有:用于缓存场景,当超出内
springboot与微服务从0到1 的实践
来源公众号花椒技术,作者花椒服务端Java微服务初探微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。微服务的概念源于2014年3
为什么建议MySQL列属性尽量用 NOT NULL?
作者:忆蓉之心来源:公众号Java面试那些事儿写这篇文章,来自一个小伙伴的提问,他在二面的过程中被问到,由于他简历中写道有MySQL调优经验,但这个问题没有回答好,二面被刷了。其实我们刚学习C语言的时候,就接触过NULL,比如下面这句代码。int*p=NULL;它实际上表示将指针指向一块不被使用的内
Mybatis用到了哪些设计模式?
虽然我们都知道有26个设计模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。Mybatis至少遇到了以下的设计模式的使用。Builder模式,例如SqlSessionFactoryBuilder、
HashMap为什么是线程不安全的?
一直以来只是知道HashMap是线程不安全的,但是到底HashMap为什么线程不安全,多线程并发的时候在什么情况下可能出现问题?HashMap底层是一个Entry数组,当发生hash冲突的时候,hashmap是采用链表的方式来解决的,在对应的数组位置存放链表的头结点。对链表而言,新加入的节点会从头结
Java原生参数校验注解满足不了需求?
自定义参数注解1.比如我们来个自定义身份证校验注解这个注解是作用在Field字段上,运行时生效,触发的是IdentityCardNumber这个验证类。message定制化的提示信息,主要是从ValidationMessages.properties里提取,也可以依据实际情况进行定制groups这里
postman一键切换环境,效率真高
postman是有登录功能的,建议一个项目放一个Collection,注明每个接口的作用,这样自测完可以把账号给测试,测试不用再自己重新构造请求参数。另外请求的url要写成支持多环境切换的。因为开发环境和测试环境的域名是不一样的,但是后面的请求路径是不变的。多环境配置在这里可以看到我现在配置了3个环
图解Nginx限流配置
本文以示例的形式,由浅入深讲解Nginx限流相关配置,是对简略的官方文档的积极补充。Nginx限流使用的是leakybucket算法,如对算法感兴趣,可移步维基百科先行阅读。不过不了解此算法,不影响阅读本文。空桶我们从最简单的限流配置开始:limit_req_zone$binary_remote_a
为什么不建议使用Date,而是使用Java8新的时间和日期API?
在Java8之前,所有关于时间和日期的API都存在各种使用方面的缺陷,因此建议使用新的时间和日期API,分别从旧的时间和日期的API的缺点以及解决方法、Java8新的时间和日期API进行讲解。旧的时间和日期的API的缺陷Java的java.util.Date和java.util.Calendar类易
javascript前端开发:阿里巴巴超难面试题让你理解call的用法
关于javascript中的call方法,网上总很难找到全面而通俗的解释,就我个人的理解来说,call有两个作用:1、继承2、修改函数运行时的this指针。下面这段代码来自阿里的前端面试题库functionfn(a,b){console.log(this);console.log(a);consol
Javascript前端开发:京东JS面试题让你深入了解原型与继承
题目如下:varF=function(){}Object.prototype.a=function(){console.log('a()')}Function.prototype.b=function(){console.log('b()')}varf=newF()F.a()F.b()f.a()f.
JDK介绍与初次编程实现
一、Java入门之JDK目录介绍JDK安装完成后,在JDK安装路径下会生成一个目录,称为JDK安装目录,如下图。开发人员应熟悉JDK安装目录下各个子目录的意义和作用,JDK安装目录下的子目录具体用途如下。lbin:该目录存放一些编译器和工具,常用的有javac.exe(Java编译器)、java.e
类的加载过程
类加载过程主要包含加载、验证、准备、解析、初始化、使用、卸载七个方面,下面一一阐述。一、加载在加载阶段,虚拟机主要完成三件事:1.通过一个类的全限定名来获取定义此类的二进制字节流。2.将这个字节流所代表的静态存储结构转化为方法区域的运行时数据结构。3.在Java堆中生成一个代表这个类的java.la
jQuery选择器的性能优化技巧
现在做前端开发的,基本都会用jquery,相比原生的javascript,jquery的确提高了代码书写效率。jQuery很多新手朋友使用jquery往往只为了快速完成项目任务,而不太注意性能上的优化,但是菜鸟和高手的主要差别就细节之中,细微之处见高下。我们知道在javascript的所有操作中,对
程序开发中MySql、SQLServer、SQLite数据库的使用场景及性能评测
程序开发中,这三个是最常用的数据库了,当然也有用Oracle数据库的,但是这种大型数据库不在这章节的讨论范围,这里只讨论最常用的这三种数据库。那么大家最关心的问题是:这三个数据库哪个好,这么选择呢?其实这个要看应用场景,不同应用场景选择不同的数据库。我们做开发时候,Php程序员和Java程序员一般用