自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

技术人的天空

技术人员的三大特点:学习学习再学习

  • 博客(30)
  • 问答 (1)
  • 收藏
  • 关注

转载 Java GC工作原理以及Minor GC、Major GC、Full GC、GC收集相关算法整理

名词解释:GC:垃圾收集器Minor GC:新生代GC,指发生在新生代的垃圾收集动作,所有的Minor GC都会触发全世界的暂停(stop-the-world),停止应用程序的线程,不过这个过程非常短暂。Major GC/Full GC:老年代GC,指发生在老年代的GC。JVM:Java Virtual Machine(Java虚拟机)的缩写。正文:>堆众所周知,所有通过new创建的对象的内存都在堆中分配,堆被划分为新生代和老年代,新生代又被进一步划分为Eden和Su.

2020-09-08 16:51:54 284

原创 在一台电脑上运行两个或两个以上的tomcat

前言  在开发过程中,我们可能会同时用到多个tomcat,但以正常安装的形式安装多个tomcat,无论启动哪一个tomcat,打开的都是配置了环境变量的那一个tomcat,所以进行一些设置,以达到我们同时运行多个Tomcat的目的。  首先,去下载tomcat解压版    第一种方式  解压出来后,编辑bin目录下的startup.bat文件,在此位置加入这两句代码...

2019-04-26 11:20:31 702

原创 如何判断线程池中的线程是否全部执行完毕

在使用多线程的时候有时候我们会使用 java.util.concurrent.Executors的线程池,当多个线程异步执行的时候,我们往往不好判断是否线程池中所有的子线程都已经执行完毕,但有时候这种判断却很有用,例如我有个方法的功能是往一个文件异步地写入内容,我需要在所有的子线程写入完毕后在文件末尾写“---END---”及关闭文件流等,这个时候我就需要某个标志位可以告诉我是否线程池中所有的子线...

2019-04-15 13:45:37 10049 2

原创 MQ入门总结(一)消息队列概念和使用场景

一、消息队列消息即是信息的载体。为了让消息发送者和消息接收者都能够明白消息所承载的信息(消息发送者需要知道如何构造消息;消息接收者需要知道如何解析消息),它们就需要按照一种统一的格式描述消息,这种统一的格式称之为消息协议。所以,有效的消息一定具有某一种格式;而没有格式的消息是没有意义的。而消息从发送者到接收者的方式也有两种。一种我们可以称为即时消息通讯,也就是说消息从一端发出后(消息发送者)...

2018-11-24 16:32:51 295

原创 Dubbo原理简单分析(简单易懂)

1.Dubbo原理分析alibaba有好几个分布式框架,主要有:进行远程调用(类似于RMI的这种远程调用)的(dubbo、hsf),jms消息服务(napoli、notify),KV数据库(tair)等。这个框架/工具/产品在实现的时候,都考虑到了容灾,扩展,负载均衡,于是出现一个配置中心(ConfigServer)的东西来解决这些问题。在我们的系统中,经常会有一些跨系统的调用,如在A系统中...

2018-11-24 15:38:08 919

转载 通过Dubbo注解实现RPC调用

转自:https://www.cnblogs.com/zdd-java/archive/2017/03/17/dubbo2.html启动Dubbo服务有2个方式,1是通过xml配置,2是通过注解来实现,这点和Spring相似。   采用XML配置如下:    <?xml version="1.0" encoding="UTF-8"?><beans xml...

2018-08-03 13:24:41 880

转载 mybatis 开启日志记录 打印sql语句

使用mybatis 的时候 ,无法查看sql 语句 !!非常不方便调试程序,所以 配置了日志记录输出sql  ,在控制台打印,1.要配置mybatis 使用log4j 记录日志,  导入 log4j.jar 支持包, 参考mybatis 使用说明      引用mybatis 的使用说明 关于日志的如下:Mybatis内置的日志工厂提供日志功能,具体的日志实现有以下几种方式:SLF4JApache...

2018-07-06 16:11:46 20626

转载 angular和vue还有jquery的区别

angularjs简单介绍和特点  首先angular是一个mvc框架, 使用mvc解耦, 采用model, controller以及view的方式去组织代码, 会将一个html页面分成若干个模块, 每个模块都有自己的scope, service, directive, 各个模块之间也可以进行通信, 但是整体结构上是比较清晰的, 就是说其代码组织是模块化的, angular的view可能仅仅是一个...

2018-07-06 11:28:41 390

转载 JVM参数设置、分析

不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在各个机器上的配置不同...

2018-07-06 11:26:48 110

转载 JVM堆内存参数优化,让性能飞起来

堆内存是Java进程的重要组成部分,几乎所有与应用相关的内存空间都和堆有关。现在主要介绍与堆内存相关的参数设置,这些参数对Java虚拟机中非常重要的,也是对程序性能有着重要的影响。让你彻底脱离OOM内存溢出等等带来的程序崩溃。1、 -Xms 初始堆内存大小,当Java进程启动时,虚拟机会分配一块初始堆空间,可以使用-Xms指定这块空间大小。在实际工作中,我们一般把-Xms与-Xmx的值设置为相等,...

2018-07-06 11:25:37 453

原创 Oracle 数据库的绑定变量特性及应用

关键词:绑定变量(binding variable),共享池(shared buffer pool), SGA(system global area);在开发一个数据库系统前,有谁对Oracle 系统了解很多,尤其是它的特性,好象很少吧;对初学者来讲,这更是不可能的事情;仅仅简单掌握了SQL的写法,就开始了数据库的开发,其结果只能是开发一个没有效率,也没有可扩展的系统;因此,我写这个主题也是希望让...

2018-07-05 17:14:00 293

转载 Hibernate缓存机制和MyBatis缓存机制

Mybatis缓存分为1级缓存和2级缓存,2级缓存在sessionfactory中,1级缓存在session中。session中的缓存在session连接关闭并被连接池回收时清理,或者手动清理sessionfactory中的缓存需要在mybatis配置文件中手动配置,配置如下:<setting name="cacheEnabled" value="true"/><mapper n...

2018-07-05 10:37:11 212

原创 Idea git切换分支

最近项目建了分支,在并行开发,需要切换远程分支,在网上找了很多资料都不行。远程分支代码始终更新的是其他分支。解决方案话不多说,直接看图。选择相关分支 ,如果没有出现新添加的分支直接点击下图中的刷新既可以出来操作上述之后,开始pull下远程代码,完毕后也可发现分支发生变化 ,也可以点击idea右下角进行切换分支,如下图...

2018-07-04 15:17:23 23709 2

原创 CentOS安装jdk的几种方法及配置环境变量

一、下载jdkjdk下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载jdk-8u152-linux-x64.rpm 或 jdk-8u152-linux-x64.tar.gz(根据自己的系统位数选择对应的包)如图:二、安装jdk因为我安装的CentOS7.4系统自带jd...

2018-07-02 16:14:59 28955

转载 Spring boot Mybatis 整合

本项目使用的环境:开发工具:Intellij IDEA 2017.1.3springboot: 1.5.6jdk:1.8.0_161maven:3.3.9额外功能PageHelper 分页插件mybatis generator 自动生成代码插件步骤: 1.创建一个springboot项目: 2.创建项目的文件结构以及jdk的版本  3.选择项目所需要的依赖 然后点击finish5.看一下文件的结构...

2018-06-29 11:31:51 153

转载 缓存穿透,缓存击穿,缓存雪崩解决方案分析

前言设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。解决方案有很多种方法可以有效地...

2018-06-29 10:56:47 142

原创 在分布式环境中如何解决session共享问题

一、什么是sessionsession在计算机中,尤其是在网络应用中,称为”会话控制“。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的web页面之间跳转时,存储在session对象中的变量将不会丢失,而在整个用户会话中一直存在下去。二、产生session不一致原因单台tomcat没有任何问题,但现在是集群的tomcat因此就存在session不一致问题。如图三、解...

2018-06-25 10:44:59 298

转载 Java系统高并发之Redis后端缓存优化

一:前端优化暴露接口,按钮防重复(点击一次按钮后就变成禁用,禁止重复提交)采用CDN存储静态化的页面和一些静态资源(css,js等)二:Redis后端缓存优化Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。性能极高 – Redis能读的速度是110000次/s,写的速度...

2018-06-21 17:15:59 1318

转载 深入理解Spring的两大特征(IOC和AOP)

众所周知,Spring的核心特性就是IOC和AOP,IOC(Inversion of Control),即“控制反转”;AOP(Aspect-OrientedProgramming),即“面向切面编程”。参考书《Spring In Action》,下面分享一下我对这两大特性的个人理解。IOC:IOC,另外一种说法叫DI(Dependency Injection),即依赖注入。它并不是一种技术实现,...

2018-06-21 16:58:18 189

转载 Spring面试,IoC和AOP的理解

spring 的优点?1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 2.可以使用容易提供的众多服务,如事务管理,消息服务等 3.容器提供单例模式支持 4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能 5.容器提供了众多的辅助类,能加快应用的开发 6.spring对于主流的应用框架提供了集成支持,如hibernate,JPA,Struts等 7.spring属于低侵入...

2018-06-21 16:44:25 255

转载 oracle绑定变量使用方法总结

转自:https://blog.csdn.net/gumengkai/article/details/53130449在Oracle中,对于一个提交的sql语句,存在两种可选的解析过程,硬解析和软解析。一个硬解析需要经解析,制定执行路径,优化访问计划等步骤。硬解析不仅仅会耗费大量的cpu,更重要的是会占据重要的闩(latch)资源。唯一使得oracle能够重复利用执行计划的方法就是采用绑定变量。绑...

2018-06-20 16:30:57 13962

转载 JVM运行原理详解

1.JVM简析:     作为一名Java使用者,掌握JVM的体系结构也是很有必要的。     说起Java,我们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。它们的关系如下图所示:     Java平台由Java虚拟机和Java应用程序接口搭建,Java语言则是进入这个...

2018-06-19 17:40:38 130

转载 IntelliJ Idea 常用快捷键

修改方法如下:点击 文件菜单(File) –> 点击 设置(Settings… Ctrl+Alt+S), –> 打开设置对话框。在左侧的导航框中点击 KeyMap。 接着在右边的树型框中选择 Main menu –> Code –> Completion. 接着需要做两件事: 1. 移除原来的Cycle Expand Word 的 Alt+/ 快捷键绑定。 2. 在 Bas...

2018-06-15 16:33:25 127

原创 nginx配置反向代理浏览器输入地址后点击登陆URL发生变化的处理

今天项目上需要再用NGINX配置反向代理需求如下:现在有A服务器只做为nginx服务器,B服务器作为代码服务器,用户访问A要实际上访问的是B的程序。处理方式就是用nginx的方向代理处理即可:打开nginx.conf文件找到service标签下的proxy_pass 再这个后面配置上B服务器的访问路径即可,然后启动nginx即可。但是当我进入浏览器进入A服务器的路径可以正常访问,但是点击登陆发现后...

2018-06-14 17:19:49 7231

原创 如何用命令将本地项目上传到git

1、(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库git init2、把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点“.”,意为添加文件夹下的所有文件git add .3、用命令 git commit告诉Git,把文件提交到仓库。引号内为提交说明git commit -m 'first commit'4、关联到远程库g...

2018-06-07 09:57:44 77

转载 在Linux里安装、启动nginx

由于nginx依赖于pcre和zlib,所以在安装nginx时,需要先安装pcre和zlib(为了方便起见,我把pcre、zlib、nginx的包放到了同一个目录下)。1、安装pcre从pcre的官网下载tar.gz包,官网地址为:https://sourceforge.net/projects/pcre/files/pcre/,在这里我下载的是:pcre-8.39.tar.gz[plain] v...

2018-06-05 10:02:06 332

转载 CentOS 7常用命令

CentOS 7常用命令在开发中常用的一些命令。1)目录切换2)对目录(文件夹)的操作3)对文件的操作4)文件的压缩、解压5)软件的安装6)权限的操作7)防火墙端口的开启8)一些其他的命令执行以下命令时需要注意自己对应系统的版本,不同的版本会稍有差别。1 目录切换cd / 切换到根目录cd ~ 切换到用户跟目录cd ../        切换到上一级目录cd - 切换到上次访问目录cd etc  ...

2018-06-04 15:53:22 203

原创 centos上传命令

Centos 与本地终端 上传、下载 文件首先安装lrzsz # yum -y install lrzsz 1.上传文件,执行命令rz,会跳出文件选择窗口,选择好文件,点击确认即可。# rz 运行rz命令后弹出选择文件窗口,找到要上传的文件后确认,文件会被上传到Centos当前目录下2.下载文件,执行命令sz# sz 文件名运行 sz命令后 弹出选择保存路径窗口,点击确认后 Centos上的文件会...

2018-06-04 15:51:46 6628

转载 spring data jpa 详解

本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求。这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring整合的环境中实现。如果需要了解该框架的入门,百度一下,很多入门的介绍。在这篇文章的接下来一篇,会有一个系列来讲解mybatis,这个系列从mybatis的入门开始,到基本使用,和spring整合,和第...

2018-06-04 10:48:32 525

转载 集群、分布式、负载均衡区别

参考:http://virtualadc.blog.51cto.com/3027116/615836”集群集群的概念  计算机集群通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计...

2018-06-01 15:42:21 7616 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除