代码工具
程序员驴子酱
IT社区Java技术布道者
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
关于spring的生命周期见解
第一种理解1.Bean的建立由BeanFactory读取Bean定义文件,并生成各个实例如果是默认的单例模式,那么在加载spring的配置文件的时候,会将bean实例化,放进Spring的IOC容器中。可以利用无参构造函数追踪实例化时机。2.设置属性(属性注入)注入属性值,对应的属性需要有set方法值加载spring配置文件时,会实例化User对象,在调用无参构造方法实例化对象后,紧接着调用了setUserName方法,为userName属性注入值3.BeanNameAware接口的setB原创 2020-10-30 14:50:28 · 174 阅读 · 0 评论 -
java数据在内存中存储详解
有这样一种说法,如今争锋于IT战场的两大势力,MS一族偏重于底层实现,Java一族偏重于系统架构。说法根据无从考证,但从两大势力各自的社区力量和图书市场已有佳作不难看出,此说法不虚,但掌握Java的底层实现对Java程序员来说是至关重要的,本文介绍了Java中的数据在内存中的存储。 2 内存中的堆(stack)与栈(heap) Java程序运行时有6个地方可以存储数据,它们分别是寄存器、栈、堆、静态存储、常量存储和非RAM存储,主要是堆与栈的存储。 &nb原创 2020-10-30 14:46:57 · 3435 阅读 · 0 评论 -
前端和后端的超时问题相关解决思路
最近在写前后端项目过程中,针对容易出现的timeout问题,查阅相关资料,自己整理分享一些处理方式如下:针对前端请求,后端因为断点或者电脑反应延迟、网络延迟等现象,明明后端接口能正常返回数据还报连接超时问题,可在前端vue的utils里面的request.js里面设置如下:因为最近写的springcloud微服务项目,在fegin调用过程中,出现的超时问题,可在application.properties文件增加两行配置如下图:代码为:feign.client.config.default.原创 2020-10-28 10:59:11 · 16495 阅读 · 0 评论 -
JVM优化-基本垃圾回收算法
常用的垃圾回收算法有以下四种:1 标记-清除算法概念:该算法分为标记和清除两个阶段,首先标记出所有需要回收的对象,标记完成后统一回收所有被标记的对象。第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,把未标记的对象清除。此算法需要暂停整个应用,同时,会产生内存碎片。缺点:标记和清除两个过程效率都不高;标记清除之后会产生大量不连续的内存碎片。2 复制算法把内存分为大小相等的两块,每次存储只用其中一块,当这一块用完了,就把存活的对象全部复制到另一块上,同时把使用过的这块内存空间全部清原创 2020-10-28 10:57:02 · 128 阅读 · 0 评论 -
项目配置Swagger2生成API接口文档
一、Swagger2介绍前后端分离开发模式中,api文档是最好的沟通方式。Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。及时性 (接口变更后,能够及时准确地通知相关前后端开发人员)规范性 (并且保证接口的规范性,如接口的地址,请求方式,参数及响应格式和错误信息)一致性 (接口信息一致,不会出现因开发人员拿到的文档版本不一致,而出现分歧)可测性 (直接在接口文档上进行测试,以方便理解业务)二、配置Swagger21、创建common原创 2020-10-28 10:56:06 · 1269 阅读 · 0 评论 -
项目模块在maven里变成灰色怎么解决
建错项目,后来删除重建的时候,突然一直项目识别不了,一直提示项目找不到,后来看右边栏的maven里面,显示项目是灰色,如下图:鉴于这个原因,找到相关解决办法,步骤如下:1 file–setting2 搜maven–ignored files,如下图3 点保存后,maven里面灰色就消失了:...原创 2020-09-25 11:39:57 · 2348 阅读 · 2 评论 -
@RequestBody注解的使用场景解析
最近在做一个项目的过程中,碰到前端传过来有值,后端接收不到,开始还以为是属性名不一致导致的,反复检查也没找到属性名不一致的问题,后面才发现问题所在,先上图:前端是通过json穿过来的一个对象,后端代码如下:后来改成如下代码:以前最开始使用mvc时没太留意这个区别,找资料后整理@Requesbody的用法区别如下:1 GET、POST方式提交时, 根据 request header Content-Type 的值来判断:1.1application/x-www-form-urlencoded:原创 2020-09-25 11:38:11 · 380 阅读 · 0 评论 -
RabbitMQ安装说明
第一章 Windows版本安装如果计算机登录名是中文安装mq,安装不上,需要解决计算机登录名中文的问题:参考文章:https://www.cnblogs.com/bade/p/10303687.html参考文章:https://zhidao.baidu.com/question/2271164366310780988.html先按照pdf文件进行安装。安装完成之后,在看如下操作第二章 linux版本安装1.安装依赖环境在线安装依赖环境:yum install build-essentia原创 2020-09-25 11:36:05 · 157 阅读 · 0 评论 -
内存泄漏与内存溢出的对比
内存泄露 (memory leak):是指程序在申请内存后,无法释放已申请的内存空间就造成了内存泄漏,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出。内存溢出(out of memory): 指程序申请内存时,没有足够的内存供申请者使用,或者说,给了你一块存储int类型数据的存储空间,但是你却存储long类型的数据,那么结果就是内存不够用,此时就会报错OOM,即所谓的内存溢出,简单来说就是自己所需要使用的空间比我们拥有的内存大内存不够使用所造成的内存溢出。内存泄漏的解决方法:a)原创 2020-09-03 14:32:37 · 128 阅读 · 0 评论 -
Springcloud和dubbo的区别
随着近几年微服务的兴起,最近大家对springcloud和dubbo的讨论越来越多,那么下面我们简单来看看这两者使用中的不同有哪些,以下观点仅供参考。1、 架构完整度(见上图)或许很多人会说Spring Cloud和Dubbo的对比有点不公平,Dubbo只是实现了服务治理,而Spring Cloud下面有17个子项目(可能还会新增)分别覆盖了微服务架构下的方方面面,服务治理只是其中的一个方面,一定程度来说,Dubbo只是Spring Cloud Netflix中的一个子集。但是在选择框架上,方案完整度原创 2020-08-31 17:34:52 · 1294 阅读 · 0 评论 -
mvn install解决依赖报红
写一个简单的spark读取phoenix的工具类代码,导入phoenix-spark的依赖之后,maven依赖一直报红,尝试各种解决办法,包括删除仓库中.lastupdated文件后reimport,使用compile命令下载依赖,使用invalidate cache and restart重启idea等等,均未得到解决。而且在maven仓库里可以找到这个jar包,但是这个jar包的依赖包全线爆红,怀疑是maven对这个jar包的安装有问题。pom文件如下<dependency> &原创 2020-08-27 17:08:52 · 1162 阅读 · 0 评论 -
线程池相关问题
线程池相关问题问题1:为什么要使用线程池,优势是什么?线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最 大数量超出数量的线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。他的主要特点为:线程复用;控制最大并发数:管理线程。第一:降低资源消耗。通过重复利用己创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无原创 2020-08-03 15:32:19 · 361 阅读 · 0 评论 -
CAS算法的认识和看法
ASCCAS的全称为Compare-And-Swap,它是一条CPU并发原语。它的功能是判断内存某个位置的值是否为预期值,如果是则更改为新的值,这个过程是原子的。CAS并发原语体现在JAVA语言中就是sun.misc.Unsafe类中的各个方法。调用UnSafe类中的CAS方法,JVM会帮我们实现出CAS汇 编指令。这是一种完全依赖于硬件的功能,通过它实现了原子操作。再次强调,由于CAS是一一种系统原语,原语属于操作系统用语 范畴,是由若干条指令组成的,用于完成某个功能的一-个过程,并且原语的执行必须原创 2020-08-03 15:30:14 · 373 阅读 · 0 评论 -
谈谈你对JMM的理解和认识?
JMM(Java内存模型Java Memory Model,简称JMM)本身是一种抽象的概念并不真实存在,它描述的是一组规则或规范,通过这组 规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式。JMM关于同步的规定:1线程解锁前,必须把共享变量的值刷新回主内存2线程加锁前,必须读取主内存的最新值到自己的工作内存3加锁解锁是同一把锁由于JVM运行程序的实体是线程,而每个线程创建时JVM都会为其创建一-个工作内存(有些地方称为栈空间),工作内存是每个线程 的私有数据区域,原创 2020-08-03 15:27:49 · 545 阅读 · 1 评论 -
百度地图的使用教程
内容介绍1.了解地图的使用场景2.百度地图介绍3.显示公司地址案例4.展示到公司路线案例一、使用场景地图的使用场景非常广泛。地图定位可以更直观的说明位置及周边环境,让用户更好的了解地理位置信息,导航功能更好的规划路径,以方便出行。定位,导航等成功互联网上最常见的功能之一。例如:链家地产:https://wh.lianjia.com/ershoufang/104103030107.html尚硅谷官网:http://www.atguigu.com/teacher_sz.shtml这是原创 2020-07-28 15:19:19 · 14304 阅读 · 0 评论 -
ElasticSearch的安装与启动
1.1 windows版本安装1.1 下载ES压缩包ElasticSearch分为Linux和Window版本,基于我们主要学习的是ElasticSearch的Java客户端的使用,所以我们课程中使用的是安装较为简便的Window版本,项目上线后,公司的运维人员会安装Linux版的ES供我们连接使用。ElasticSearch的官方地址: https://www.elastic.co/products/elasticsearch1.2 安装ES服务Window版的ElasticSearch的安装原创 2020-07-28 15:07:12 · 3160 阅读 · 0 评论 -
SpringCloud Nacos入门教程
一、Nacos概述官方地址:https://nacos.iogithub地址:https://github.com/alibaba/nacos1 什么是 NacosNacos 是阿里巴巴推出来的一个新开源项目,这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos原创 2020-07-28 14:44:44 · 4645 阅读 · 0 评论 -
hadoop源码下载本地后,使用idea查看源码步骤
Hadoop源码是这么做,其他源码环境也类似。1、到官网下载Hadoop源码包,例如hadoop-3.1.3-src.tar.gz.https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.1.3/hadoop-3.1.3-src.tar.gz2、将下载的源码包解压到某个目录下,记住这个目录,后面导入Idea时需要这个目录。3、打开Idea,点击Import Project选项卡。选择Import project from extern原创 2020-07-20 15:47:44 · 1409 阅读 · 0 评论 -
一招搞定之如何遍写shell脚本
注释“# ”开头的就是注释,被编译器忽略单行注释: #多行注释: :<<EOF … EOF 或者 :<<! … ! (:<< 标识多行注释开始,并指定一个标识符作为开始结束的标志)变量变量类型运行shell时,会同时存在三种变量:局部变量:局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。环境变量:所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。原创 2020-07-20 15:32:21 · 230 阅读 · 0 评论 -
idea设置scala自动推断变量类型
idea设置scala自动推断变量类型在写scala代码的时候可以使用.var方式得到变量的返回值类型,设置方式如下:先写一个变量,这里以一个字符串为例。后边接着写.var,出现快捷提示后按回车出现以下提示后,点击settings按照下图所示进行勾选,并点击OK配置OK之后,查看此处是否有勾选,若无勾选,进行勾选然后就可以愉快的写代码啦,可以方便的查看自己的代码的返回值类型是什么,对于scala新手来说还是很友好的。...原创 2020-06-27 17:52:15 · 3849 阅读 · 0 评论 -
idea远程调试hive自定义函数jar包
1.进入客户端[atguigu@hadoop102 hive ]$ hive --debugListening for transport dt_socket at address: 80002.进入idea,编写自定义函数,并进入Edit Configurations3.点击+,添加Remote并进行Apply4.配置Remote,并点击应用注意:这里一定要修改port 和hive 监听的端口对应上,具体看步骤一5.一定要先执行步骤一,然后点击右上角的DeBug图标,即可进入调试。原创 2020-06-24 10:26:53 · 598 阅读 · 0 评论 -
Flume 组件(source、channel、sink)远程调试
1.创建Maven工程2.编写所需要自定义组件的代码(以Source为例),打包放到服务器上3.添加idea Debug 配置4.在服务器上广播Debug端口[atguigu@hadoop102 flume]$ export FLUME_JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"提示:这里需要将suspend=n,改为suspend=y.5.启动Flume 程序,测试连接原创 2020-06-24 10:19:23 · 310 阅读 · 0 评论 -
Idea 远程调试Jar包
Idea 远程调试Jar包1.在idea中创建Maven工程,并进行打包2.拷贝target目录下的jar包到远程服务器上3.在Idea工具上做如下操作4.添加如下命令,修改suspend=n为y,并运行服务器上的jar包5.在Idea上DeBug6.查看远程服务器jar包运行窗口和本机运行窗口1.在idea中创建Maven工程,并进行打包2.拷贝target目录下的jar包到远程服务器上3.在Idea工具上做如下操作4.添加如下命令,修改suspend=n为y,并运行服务器上的jar包5原创 2020-06-24 10:08:43 · 808 阅读 · 0 评论 -
分布式事务之Seata
Seata使用https://github.com/seata/seata-samples引入依赖:<!--Seata依赖--><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-seata</artifactId> <version>2.1.0.RELEASE</versi原创 2020-06-22 16:25:54 · 371 阅读 · 0 评论 -
Nginx详解
第一章 Nginx概述Nginx (“engine x”) 是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等Nginx可以作为静态页面的web服务器,同时还支持CGI协议的动态语言,比如perl、php等。但是不支持java。Java程序只能通过与tomcat配合完成。Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率 ,能经受高负原创 2020-06-22 16:21:25 · 900 阅读 · 0 评论 -
Docker的使用详解
1 Docker简介1.1 什么是虚拟化虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等等。1.2 问题:为什么会有docker出现?一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协作原创 2020-06-22 16:12:47 · 446 阅读 · 0 评论 -
MyBatis 逆向工程
一、逆向工程简介MyBatis Generator: 简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的根据表生成对应的映射文件,接口,以及bean类。支持基本的增删改查,以及QBC风格的条件查询。但是表连接、存储过程等这些复杂sql的定义需要我们手工编写官方文档地址http://www.mybatis.org/generator/官方工程地址https://github.com/mybatis/generator/releases二、逆向工程的配置1)导入逆向工程的原创 2020-06-20 18:53:06 · 182 阅读 · 0 评论
分享