自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (1)
  • 收藏
  • 关注

转载 消息队列的使用场景

1异步处理场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种1.串行的方式;2.并行方式。(1)串行方式:将注册信息写入数据库成功后,发送注册邮件,再发送注册短信。以上三个任务全部完成后,返回给客户端。(2)并行方式:将注册信息写入数据库成功后,发送注册邮件的同时,发送注册短信。以上三个任务完成后,返回给客户端。与串行的差别是,并行的方式可以提高处理的时间。假设三个业务节...

2019-02-17 16:10:02 147

转载 详细讲解SpringBoot快速入门

https://blog.csdn.net/m0_37106742/article/details/64438892

2019-01-15 15:32:00 210

转载 JVM监控工具:jps、jstat、jinfo、jmap、jhat、jstack使用详解

一、jps(JVM Process Status Tools)jps是参照Unix系统的取名规则命名的,而他的功能和ps的功能类似,可以列举正在运行的饿虚拟机进程并显示虚拟机执行的主类以及这些进程的唯一ID(LVMID,对应本机来说和PID相同),他的用法如下:jps [option] [hostid]其中hostid默认为本机,而option选项包含以下选项Option Functio...

2019-01-08 20:47:29 446

转载 详解Docker——入门实战

I. Docker简介Docker是一种新兴的虚拟化技术,能够一定程度上的代替传统虚拟机。不过,Docker 跟传统的虚拟化方式相比具有众多的优势。我也将Docker类比于Python虚拟环境,可以有效的配置各个版本的开发环境,比如深度学习与Java环境。其他的Docker简介也不需要过多介绍,可以参考很流行的《Docker — 从入门到实践》。关于博客,文末列出了最近在掘金上看到的一些入门...

2018-12-28 16:20:54 215

转载 高并发,大流量处理及解决方法

第一:确认服务器硬件是否足够支持当前的流量。普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大,那么必须首先配置一台更高性能的专用服务器才能解决问题,否则怎么优化都不可能彻底解决性能问题。第二:优化数据库访问 前台实现完全的静态化当然最好,可以完全不用访问数据库,不过对于频繁更新的网站,静态化往往不能满足某些功能。缓存就是另一个解决方案,就是将动态数据存储到缓存文件中...

2018-12-26 21:45:43 356

原创 深入了解Tomcat的性能优化

一:Tomcat内存优化,启动时告诉JVM我要一块大内存(调优内存是最直接的方式)Windows 下的catalina.batLinux 下的catalina.sh 如:JAVA_OPTS=’-Xms256m -Xmx512m’-Xms JVM初始化堆的大小-Xmx JVM堆的最大值 实际参数大小根据服务器配置或者项目具体设置.二:Tomcat 线程优化 在server.xml中 如:...

2018-12-25 21:32:48 142

原创 方法区

很多人认为方法区(或者HotSpot虚拟机中的永久代)是没有垃圾收集的,java虚拟机规范中确实说过可以不要求虚拟机在方法区实现垃圾收集,而且在方法中进行垃圾收集的“性价比”一般比较低:在堆中尤其是在新生代中,常规应用进行一次垃圾收集一般可以回收70%~95%的空间,而永久代的垃圾收集效率远低于此。永久代的垃圾收集主要回收两部分内容=废弃常量和无用的类。回收废弃常量与回收java堆中的对象非常类...

2018-11-01 20:51:22 354

原创 程序计数器

程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型,各种虚拟机可能会通过一些更高效的方式去实现),字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支,循环,跳转,异常处理,线程恢复等基础功能都需要依赖这个计数器来完成。由于java虚拟机的多线程是通过线...

2018-10-31 20:50:27 491

翻译 本地直接内存溢出

DirectMemory容量可通过-xx:MaxDirectMemorySize指定,如果不指定,则默认与java怼最大值(-Xmx指定)一样,下面的代码中越过了DirectByteBuffer类,直接通过反射获取Unsafe实例进行内存分配(Usafe类的getUSafe()方法限制了只有引导加载器才会返回一实例,也就是设计者希望只有rt.jar中的类才能使用Unsafe的功能),因为,虽然使用...

2018-10-26 16:13:45 565

转载 解惑 spring 嵌套事务 - Spring

解惑 spring 嵌套事务在所有使用 spring 的应用中, 声明式事务管理可能是使用率最高的功能了, 但是, 从我观察到的情况看,绝大多数人并不能深刻理解事务声明中不同事务传播属性配置的的含义, 让我们来看一下 TransactionDefinition 接口中的定义/*** Support a current transaction, create a new one if non...

2018-10-26 15:45:25 166

转载 深入剖析Qt内存泄漏(总结)

一、简介Qt内存管理机制:Qt 在内部能够维护对象的层次结构。对于可视元素,这种层次结构就是子组件与父组件的关系;对于非可视元素,则是一个对象与另一个对象的从属关系。在 Qt 中,在 Qt 中,删除父对象会将其子对象一起删除。C++中delete 和 new 必须配对使用(一 一对应):delete少了,则内存泄露,多了麻烦更大。Qt中使用了new却很少delete,因为QObject的类及其...

2018-10-26 15:06:55 2951

转载 SpringMVC运行原理

一、SpringMVC运行原理图二、相关接口解释 :(1)DispatcherServlet接口: Spring提供的前端控制器,所有的请求都有经过它来统一分发。在DispatcherServlet将请求分发给Spring Controller之前,需要借助于Spring提供的HandlerMapping定位到具体的Controller。(2)HandlerMapping接口: 能够完成客...

2018-10-24 15:31:23 137

转载 深入理解spring的事务管理机制及代码实现

Spring的事务管理机制Spring事务管理高层抽象主要包括3个接口,Spring的事务主要是由他们共同完成的:PlatformTransactionManager:事务管理器—主要用于平台相关事务的管理TransactionDefinition: 事务定义信息(隔离、传播、超时、只读)—通过配置如何进行事务管理。TransactionStatus:事务具体运行状态—事务管理过...

2018-10-24 14:54:57 329

原创 Spring的事务管理机制实现的原理

Spring的事务管理机制实现的原理,就是通过这样一个动态代理对所有需要事务管理的Bean进行加载,并根据配置在invoke方法中对当前调用的 方法名进行判定,并在method.invoke方法前后为其加上合适的事务管理代码,这样就实现了Spring式的事务管理。Spring中的AOP实 现更为复杂和灵活,不过基本原理是一致的。...

2018-10-24 14:47:36 342

转载 Jvm中内存溢出的4种情况

1、java堆溢出java对用于存储对象的实例,只要不断的创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,那么在对象数量达到最大堆的容量限制之后机会产生内存溢出异常。当出现java堆内存溢出时,异常堆栈信息“java.lang.OutOfMemoryError”会跟着进一步提示“Java heap space”。要解决这个区域的异常 ,一般会先通过内存映...

2018-10-23 23:15:04 1534

原创 关于本地方法栈的详细介绍

本地方法栈(Native Method Statck)与虚拟机所发挥的作用是非常相似的,它们之间的的区别不过是虚拟机栈为虚拟机执行java方法(也就是字节码)服务,而本地方法栈则为虚拟机是有的Native方法服务。在虚拟机规范中对本地方法栈使用的语言,使用方式与数据库并没有强制规定,因此具体的虚拟机可以自由实现它。甚至有的虚拟机(譬如Sun HotSpot虚拟机)直接就把本地方法栈和虚拟机栈合二为...

2018-10-23 23:11:20 3936 1

转载 深入理解HotSpot虚拟机

一、对象创建过程当虚拟机遇到一条new 指令时,便会进行对象的创建过程。创建对象的过程如下:1.检查常量池中有没有这个类的符号引用,并且检查这个符号引用代表的类有没有被虚拟机加载过。如果没有被加载过,则执行类加载过程,然后进入下一步;如果已加载,则进入下一步。2.根据方法区中类的信息,在堆区划分一块确定大小的内存给对象。(经过类加载后,类的信息被保存在方法区中,一个类的对象所需的内存...

2018-10-23 22:50:09 787

转载 Spring Bean中循环依赖解决方案

在循环依赖是指在A中引用B,B中引用C,而C中引用A,容器创建对象时会出现死循环。相关解决方案如下:1 选择其一使其延迟加载,然后从上下文中获取AService类型的bean即可。现有AService 和BService,都在对方bean中注入,导致初始化时循环初始报错,解决方案就是选择其一使其延迟加载。用配置方式只要将其一设置lazy-init。使用@Resouce或@Autowire方式...

2018-10-23 20:43:53 697

原创 深入理解Hibernate的一级缓存和快照

hibernate分为:一级缓存也就是 Session 级别的缓存,它是属于事务范围的缓存二级缓存也就是 SessionFactory 级别的缓存,它是属于进程范围的缓存session的一级缓存使用hibernate进行查询的时候,将查询结果放置到session的一级缓存中,在一级缓存中存在对象,对象使用属性的OID的值进行区分,此时再使用相同的OID进行查询的时候,首先会在session...

2018-10-23 20:19:41 197

原创 理解什么是动态代理及代码的实现

jdk动态代理是由java内部的反射机制来实现的,cglib动态代理底层则是借助asm来实现的。总的来说,反射机制在生成类的过程中比较高效,而asm在生成类之后的相关执行过程中比较高效(可以通过将asm生成的类进行缓存,这样解决asm生成类过程低效问题)。还有一点必须注意:jdk动态代理的应用前提,必须是目标类基于统一的接口。如果没有上述前提,jdk动态代理不能应用。1、定义接口和实现(1)p...

2018-10-23 19:55:22 239

原创 关于Struts2的工作原理

1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决...

2018-10-14 22:09:15 80

转载 什么是RESTful以及深入理解RESTful架构

一、起源REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。二、名称REST,即Representational State Transfer的缩写。翻译过来是"表现层状态转化"。三、资源(Resources)REST的名称"表现层状态转化"中,省略了主语。“表现层"其实指的是"资源”(Resources)的"表现层"。所谓"资源",就是网络上的一...

2018-10-11 23:43:18 304

原创 关于SUN推出的JSP开发模型的详细介绍

1、JSP开发模型有2个:Model1和Model22、Model1:JSP+JavaBean注意:此种模型只适合开发非常简单的小应用。3、Model2:MVC(特别重要)M:Model模型 JavaBeanV:View视图 JSPC:Controller 控制器 Servlet...

2018-10-11 23:27:26 469

原创 关于Redis及redis在Linux上的安装

1.关于关系型数据库和nosql数据库关系型数据库是基于关系表的数据库,最终会将数据持久化到磁盘上,而nosql数据 库是基于特殊的结构,并将数据存储到内存的数据库。从性能上而言,nosql数据库 要优于关系型数据库,从安全性上而言关系型数据库要优于nosql数据库,所以在实 际开发中一个项目中nosql和关系型数据库会一起使用,达到性能和安全性的双保证。2.redis在Linux上的安装1...

2018-10-11 23:18:49 114

原创 如何防止表单重复提交(很重要)

解决方案:方案一:1.利用JavaScript防止(不靠谱)方案二:Redirect After Post(google)方案三:(推荐)利用HttpSession防止表单的重复提交

2018-10-11 23:05:53 184

原创 java反射

1、反射:动态获取类的信息,以及动态调用对象的方法的功能。可以理解为动态看透类的能力。2、主要功能:在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。通过java反射机制,可以在程序中访问已经装载到JVM中的java对象的描述,实现访问、检测和修改描述java对象本身信息的功能。java反...

2018-10-07 19:32:33 103

转载 哈希表的原理及实现

哈希表(Hash table,也叫散列表), 是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 哈希表hash table(key,value) 的做法其实很简单,就是把Key通过一个固定的算法函数既所谓的哈希函数转换成一个整型数字,然后就将该数字对数组...

2018-10-03 13:28:47 207

原创 负载均衡的实现原理

负载均衡(又称为负载分担),英文名称为Load Balance,其意思就是将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。 实现负载均衡主要有两个目的。第一个目的是将任务的处理负载均摊到不同的进程,以减少单一进程的负载,以达到处理能力水平扩容的目的。第二个目的则是提高容错能力。...

2018-09-24 21:23:11 1013

原创 Spring Boot和Spring Cloud的区别

1、Spring boot是Spring的一套快速配置脚手架,可以基于Spring Boot快速开发单个微服务;Spring Cloud是一个基于Spring Boot实现的云应用开发工具2、Spring Boot专注于快速、方便集成的单个个体,Spring Cloud是关注全局的服务治理框架;3、Spring boot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置,...

2018-09-20 19:52:01 140

睿博软件科技

睿博它可以在交通管理,导航,监控,互联网网站建设等方面具有丰富的经验。它给人们带来了生活和出行的方便。

2017-09-03

空空如也

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

TA关注的人

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