Java EE
文章平均质量分 84
Java识堂
这个作者很懒,什么都没留下…
展开
-
并发工具类:使用线程池有什么好处?
作用降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控使用通过Executors类,提供四种线程池方式特点newCachedThreadPool可缓存线程池,线程池长度超过处理需要,可回收线程,线程池为无限大,当执行第二个任务的时候,第一个任务已经完成.原创 2018-03-24 11:46:49 · 930 阅读 · 0 评论 -
Tomcat源码编译
官网下载源码https://tomcat.apache.org/download-80.cgi修改源码目录在解压后的apache-tomcat-8.5.41-src目录中新建catalina-home目录和pom.xml文件将apache-tomcat-8.5.41-src目录中的conf和webapps文件夹复制到catalina-home目录中,并删除webapps内的exampl...原创 2020-04-18 12:38:47 · 1965 阅读 · 0 评论 -
Can‘t get hostname for your address解决办法
前言意思是根据你的地址找不到主机名,试了在my.ini文件加各种东西还是不管用,看到能改服务就试了一下,果然就成功了,这个方法只限于本地访问MySQL数据库失败,要是你真是用网络服务,还是在my.ini文件中加各种东西吧打开服务页面,观察MySQL的服务是否为网络服务 我这里MySQL57已经改为本地系统了,原来是网络服务如果是网络服务,点击选中MySQL服务,右键打开属性设置为如下即可,原创 2016-11-19 08:58:30 · 21387 阅读 · 10 评论 -
InfluxDB入门教程
前言InfluxDB是一个时序性数据库,详细资料如下 http://liubin.org/blog/2016/02/18/tsdb-intro/下载和安装LZ从官网下载的是influxdb-1.2.4_windows_amd64这个版本,这种数据库不需要安装,解压后配置完毕直接使用,解压后的文件为 influx.exe—->influxdb 命令行客户端 in原创 2017-07-31 11:11:11 · 150536 阅读 · 2 评论 -
mongodb入门教程
下载和安装官网下载地址:https://www.mongodb.com/download-center?jmp=nav#communitywget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.6.4.tgz比较运算符 符号 含义 $lt < $lte ...原创 2017-08-11 19:52:39 · 716 阅读 · 0 评论 -
Redis的典型应用场景
参考博客[1]https://www.toutiao.com/i6636576359931970062/原创 2018-12-22 17:44:01 · 16794 阅读 · 1 评论 -
@Reference注入为空
线上发生事故了前天晚上上线一波,发生了一个挺有意思的事,昨天复盘了一下,分享一下。晚上的时候,我负责的系统和收银系统同时上线一波(用的是Dubbo)。然后很神奇的事情发生了,收银系统用@Reference注解注入我的接口,然后这个接口的实现类居然为空。其实我们当时没排查出来是什么原因?重启了一下就好了,毕竟重启大法好。 但本着不能给用户充钱的路上造成阻碍,还是要排查一波这个代理对象为空是如何造成的。线上dubbo的版本为2.8.9,注意包名是(com.alibaba)为了方便大家理解我说的内容.原创 2021-06-10 22:15:48 · 3333 阅读 · 8 评论 -
2w字搞懂Spring AOP的前世今生
Spring AOP概述我们在使用Spring框架的时候,经常需要和Spring的2大特性,IOC和AOP打交道,之前写了一篇《2w字搞懂Spring Bean的一生》从源码层面分析了IOC的执行流程,本篇文章就接着分一下AOP的底层实现,比较基础的内容本篇文章就不多做介绍了AOP这种设计理念设计的概念如下AOP的主要应用场景如下Spring AOP的实现主要经历了2代第一代:Spring自己实现了AOP的功能第二代:Spring集成了AspectJ的实现Spring AOP一代当我们.原创 2021-09-26 14:59:44 · 2329 阅读 · 1 评论 -
微服务(Dubbo,Spring Cloud)如何单测?
前言测试框架有很多,Junit,EasyMock,PowerMock,TestNG,DBUnit等。建议重要的业务流程写单测,使用Junit,EasyMock测试框架假如业务类为A,单测类的命名方式为ATest,ATest类和A类的包结构保持一致,测试的方法名保持一致IDEA快速生成Test类所在类按快捷键Win:Ctrl + Shift + TMac:⇧ + command + T选中要单测的方法点击OK即可Junit不要简单的打印结果,最后写上期望的断言,如assertTru原创 2021-02-06 21:10:44 · 620 阅读 · 0 评论 -
什么是聚集索引,非聚集索引,索引覆盖,回表,索引下推
介绍我们先建如下的一张表CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学号', `name` varchar(10) NOT NULL COMMENT '学生姓名', `age` int(11) NOT NULL COMMENT '学生年龄', PRIMARY KEY (`id`), KEY `idx_name` (`name`)) ENGINE=InnoDB;插入如下sqlins原创 2020-12-09 22:50:43 · 15732 阅读 · 25 评论 -
IDEA骚技巧,编码速度至少快一倍
IDEA是目前市场上最好用的IDE,公认的!前几年eclipse在市场上非常流行,因此大多数人都习惯了eclipse的一些快捷键。近年来,随着IDEA的兴起,很多人都放弃了exlipse,进而选择了IDEA,但是有些人习惯将快捷键方式更换成eclipse的。这里我不建议这样做,熟悉一套快捷键差不多一周时间就够了,直接使用IDEA默认的快捷键可以体验到更多隐藏的小技巧~下面我们一起来看看IDEA都有哪些奇淫小技巧。一、Postfix Completion相关技巧Postfix Completion其实转载 2020-11-13 23:15:32 · 703 阅读 · 0 评论 -
深入理解 Java try-with-resource 语法糖
背景众所周知,所有被打开的系统资源,比如流、文件或者Socket连接等,都需要被开发者手动关闭,否则随着程序的不断运行,资源泄露将会累积成重大的生产事故。在Java的江湖中,存在着一种名为finally的功夫,它可以保证当你习武走火入魔之时,还可以做一些自救的操作。在远古时代,处理资源关闭的代码通常写在finally块中。然而,如果你同时打开了多个资源,那么将会出现噩梦般的场景:public class Demo { public static void main(String[] args.转载 2020-09-27 22:48:02 · 1934 阅读 · 2 评论 -
糟了,银行线上跑了一年的代码出事故了
介绍周末在水群的时候,发现有个小伙伴遇到了一个线上问题线程池中线程的状态只有一个为RUNNABLE,其他都为WAITING,问有可能是哪些原因造成的?线程池有25个线程,只有一个线程卡在网络读取上面,状态为RUNNABLE,其他线程都为WAITING。本来我想让这个小伙伴把代码发过来看看的,可他却说自己做的是银行的项目,连不上外网,只能用手机开视频对着电脑让我看个大概。我复原一下这个代码的场景,估计很多小伙伴一下就能发现问题了,因为我把多余的代码都省略了,只留了会造成问题的代码public .原创 2020-09-19 17:03:13 · 2083 阅读 · 0 评论 -
强大的Stream
介绍Stream不会存储元素Stream不会改变原来的数据,会返回一个新的持有结果的StreamStream的步骤创建Stream一系列中间操作中止操作中间操作中止操作查找与匹配函数名解释allMatch是否匹配所有元素anyMatch是否至少匹配一个元素noneMatch是否没有匹配所有元素findFirst返回第一个元素findAny返回当前流中的任意元素count返回当前流中元素总个数max返回流中最大原创 2020-08-31 12:39:06 · 8560 阅读 · 10 评论 -
推荐一个浏览器插件,一键采集付费课程到印象笔记
前言前天上线的时候,看到同事在看文章,于是喵了一眼,看看他在看啥文章,没想到是某个机构的付费课程。我:付费课程还能在印象笔记看,怎么做到的?他:我买了课程然后用插件采集过来的我:付费课程的网页不都有各种安全措施吗?右键保存网页都打不开他:这个我就不清楚了,我一般觉得好的文章都会采集到印象笔记,省得到处找,麻烦。而且用搜索引擎查找的时候,还会查找到笔记中的内容,非常方便。毕竟看自己笔记的内容总归更容易理解一点我:会玩介绍打开印象笔记官网选择相应的浏览器下载安装插件即可,网站上的教程很清晰原创 2020-05-23 10:01:44 · 1428 阅读 · 0 评论 -
不吹牛,全网最全程序员效率工具及小技巧
前言楼主还没有写完,每天下班完持续更新,有好用的工具欢迎在下方留言建议收藏建议收藏建议收藏命令行CMD秒进指定目录效率低的操作win+r,输入cmd,然后跳到指定目录骚操作文件夹地址栏输入cmd,弹出cmd窗口,同时进入指定目录SSH和SCP命令ssh:从一台机器登陆到另一台机器scp:将文件从一台机器传输到另一台机器ssh命令虽然可以通过密码登陆,但还是比较麻烦...原创 2020-05-05 22:33:07 · 13022 阅读 · 30 评论 -
遇到MapStruct后,再也不手写PO,DTO,VO对象之间的转换了
介绍在工作中,我们经常要进行各种对象之间的转换。PO:persistent object 持久对象,对应数据库中的一条记录VO:view object 表现层对象,最终返回给前端的对象DTO:data transfer object数据传输对象,如dubbo服务之间传输的对象如果这些对象的属性名相同还好,可以用如下工具类赋值Spring BeanUtilsCglib BeanCopi...原创 2020-05-04 17:12:40 · 2508 阅读 · 0 评论 -
用 tomcat-maven-plugin 直接调试war包项目
前言以前我们在调试web项目的时候,需要在本地下载一个tomcat,为了项目的复用性,方便他人快速调试,这里演示一个用maven插件启动web项目的方法在pom文件中加入如下插件<plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> &l...原创 2020-03-22 00:07:28 · 1001 阅读 · 0 评论 -
配置阿里云Maven镜像库,体验秒下Jar包的快感
settings.xml配置文件详解以前就知道能配置镜像仓库,但是平时下载jar包的速度也还能接受。所以懒的配置了,直到最近编译spring boot源码,下载插件的速度那叫一个慢啊。配完重新编译了一下,真香,速度比官网的库快多了我们来详细说一下settings.xml这个文件,这个文件可以定制Maven的行为,settings.xml可以放在2个位置,~/.m2/setting.xml(默认...原创 2020-03-18 14:04:49 · 3097 阅读 · 0 评论 -
这几个IDEA高级调试技巧,用完就是香
一个项目启动两次测试分布式项目时,经常要一个项目启动2次,不用将一个项目打开多次启动,配置一下即可1.点击Edit Configurations2.勾选Allow parallel run3.依次点击如下2个按钮条件断点有如下代码,只想让它在i == 10的情况下停下来@Testpublic void condition() { for (int i = 0; i &...原创 2020-02-17 09:06:53 · 2582 阅读 · 3 评论 -
阿里大佬总结的40个多线程面试题,你能答上来几个?
1、多线程有什么用?一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓"知其然知其所以然",“会用"只是"知其然”,“为什么用"才是"知其所以然”,只有达到"知其然知其所以然"的程度才可以说是把一个知识点运用自如。OK,下面说说我对这个问题的看法:(1)发挥多核CPU的优势随着工业的进步,现在的笔记本、台式机乃至商用的应用服务器至少也都是...转载 2020-02-06 21:41:31 · 1034 阅读 · 1 评论 -
头条一面竟然问我Maven?
maven package和maven install 有什么区别?你常用的maven命令有哪些?<dependencyManagement> 是干什么的?还有用过其它构建工具吗? 和maven有啥区别?1.Maven是啥:Maven是Apache软件基金会唯一维护的一款自动化构建工具,专注于服务Java平台的项目构建和依赖管理。Maven是基于项目对象模型(POM...转载 2020-01-18 22:58:50 · 839 阅读 · 0 评论 -
全网最全RabbitMQ总结,别再说你不会RabbitMQ
RabbitMQ入门教程当初我学RabbitMQ的时候,第一时间就上GitHub找相应的教程,但是令我很失望的是没有找到,Spring,Mybatis之类的教程很多,而RabbitMQ的教程几乎找不到,看的最多的就是朱小厮大佬的博客。后来想着索性自己总结一下吧,有不恰当的地方欢迎小伙伴指出。这篇文章主要是对着我在GitHub上的源码解释的,因此本文并没有太多的源码。写了挺长时间的,为了防止迷...原创 2020-01-12 23:08:31 · 8743 阅读 · 2 评论 -
不要再粘header了,一个小技巧秒测登录接口
前言介绍请求controller@RestController@RequestMapping("user")public class UserAuthController { // 1 hour private static final int TOKEN_EXPIRE_SECONDS = 1 * 60 * 60; private static final St...原创 2019-12-27 09:47:28 · 1781 阅读 · 0 评论 -
写二进制,姿势一定要骚,省字段,省带宽,提效率...
数据库字段CREATE TABLE `base_info` ( `id` int(10) NOT NULL AUTO_INCREMENT, `orderSn` varchar(20) NOT NULL COMMENT '订单号', `goodsName` varchar(200) DEFAULT NULL COMMENT '品名', `goodsWeight` float(10,...原创 2019-12-17 10:07:06 · 1873 阅读 · 8 评论 -
花了20分钟,给女朋友们写了一个web版群聊程序
参考博客[1]https://www.byteslounge.com/tutorials/java-ee-html5-websocket-example原创 2019-11-28 11:11:10 · 366226 阅读 · 324 评论 -
互联网公司分布式系统架构演进之路
介绍分布式和集群的概念经常被搞混,现在一句话让你明白两者的区别。分布式:一个业务拆分成多个子业务,部署在不同的服务器上集群:同一个业务,部署在多个服务器上例如:电商系统可以拆分成商品,订单,用户等子系统。这就是分布式,而为了应对并发,同时部署好几个用户系统,这就是集群1 单应用架构2 应用服务器和数据库服务器分离单机负载越来越来,所以要将应用服务器和数据库服务器分离3 应用服务...原创 2019-11-27 10:36:50 · 8478 阅读 · 1 评论 -
Java世界最常用的工具类库
Apache CommonsApache Commons有很多子项目Google Guava参考博客原创 2019-11-20 09:56:52 · 51233 阅读 · 41 评论 -
项目中的if else太多了,该怎么重构?
介绍最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的if (msgType = "文本") { // dosomething} else if(msgType = "图片") { // doshomething} else if(msgType = "视频") { // doshomething} else { // doshom.........原创 2019-11-11 15:04:16 · 206942 阅读 · 274 评论 -
用spring validation减少项目中的参数校验代码
介绍@RequestParam("id") Integer id不传报错?url=则id的值为0@JsonInclude(Include.NON_NULL)@Validated:层级校验@Valid:校验@NotBlank@NotNull@RequestMapping("workorder/createOrder")@AuthenRole(parentId = UserMe...原创 2019-10-20 23:01:14 · 1289 阅读 · 1 评论 -
Java学习笔记
Stringpublic class Test { public static void main(String[] args) { String str = "agbdfgadda"; //1.是否以指定字符串开头 boolean flag = str.startsWith("agbd"); //true Sys原创 2017-01-25 11:57:08 · 1906 阅读 · 0 评论 -
Spring实战学习笔记
Spring之旅依赖注入我们想让骑士去营救少女public class DemselRescuingKnight implements Knight{ /* * 少女营救骑士类 */ private RescueDamselQuest quest;//探秘 public DemselRescuingKnight() { this.quest =原创 2017-09-27 16:02:10 · 1163 阅读 · 0 评论 -
博客链接
源码之家:www.mycodes.netMSDN,我告诉你:http://www.itellyou.cn/原创 2016-10-19 20:31:01 · 933 阅读 · 0 评论 -
Java学习路线
2017年初BAT的JAVA面试题汇集互联网+的浪潮下诞生了大批量的O2O企业,2016年火了直播,红了AI,不管是产品还是技术,互联网行业热闹程度都不亚于时尚圈的潮流更替。互联网资本寒冬到第二年,有人冬眠有人冬泳。而IT技术行业竞争愈加残酷,培训机构大量崛起大批量的培训人才,导致供大于求,当然这不意味着市场饱和,只是市场选择更趋于合理一些。有东时学员去阿里面试顺便整理了下关于JAVA的面试题目。希转载 2017-11-10 09:41:41 · 3851 阅读 · 0 评论 -
Java并发编程学习笔记
前言LZ看的是高洪岩的《Java多线程编程核心技术》和《Java并发编程核心方法与框架》,都两本书都是偏入门的书籍,《Java并发编程的艺术》和《Java并发编程实战》是业内公认的好书Java多线程技能实现多线程编程的方式主要有两种,继承Thread类和实现Runnable接口 线程启动顺序与start()方法执行顺序无关共享自定义线程类中的实例变量public class MyThread原创 2017-11-10 11:10:03 · 1012 阅读 · 0 评论 -
在阿里云上部署Java Web服务器
Windows Server版域名和服务器都买好把域名对应到公网IP地址:把服务器对应到公网IP地址即可,具体就不说了,大致就是这个意思先部署FTP,用来传输文件参考博客:http://www.cnblogs.com/jchubby/p/4429713.html 注意一定要勾选用户对文件夹操作的权限 也可以用远程连接来直接传输文件 http://jingyan.bai...原创 2016-10-21 19:40:49 · 1225 阅读 · 0 评论 -
Spring+Mybatis+Shiro开发权限管理系统
代码地址https://github.com/erlieStar/studyShiroJSP标签JSP页面添加%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %> 标签名称 标签条件(均是显示标签内容) 登录之后 不在登录状态时 用户在没有Re原创 2017-12-25 14:27:22 · 946 阅读 · 0 评论 -
CentOS搭建SVN服务器
前言LZ用的是Cenos6.9查看是否安装rpm -ql subversion安装yum install subversion查看安装位置rpm -ql subversion查看是否安装成功svnserve --version创建SVN版本库mkdir -p /opt/svn/repos/svn1原创 2017-12-08 17:10:05 · 600 阅读 · 0 评论 -
JDK源码学习(jdk1.8.0_20)
集合框架ArrayList基于jdk1.8.0_20 关注点 结论 ArrayList是否允许空 允许 ArrayList是否允许重复数据 允许 ArrayList是否有序 有序 ArrayList是否线程安全 非线程安全继承关系图 ArrayList的定义public class ArrayLi...原创 2018-02-08 11:45:51 · 11000 阅读 · 2 评论 -
Java面试总结
Java语言八种基本数据类型整型:byte,short,int,long 浮点型:float,double 逻辑型:boolean 字符型:char抽象类和接口接口和抽象类的相似性都不能被实例化接口和抽象类都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法接口和抽象类的区别接口只能包含抽象方法,静态方法和默认方法,抽象类则可以...原创 2019-08-18 00:39:28 · 4103 阅读 · 11 评论