自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小辣鸡的博客

小辣鸡的学习笔记本

  • 博客(60)
  • 收藏
  • 关注

原创 Docker部署springboot项目

一、前言之前没有用docker的经验,这几天正好有需求要部署项目,于是正好学习了一波,简单部署了一个dubbo服务吧,记录一下过程。二、环境准备及基础服务Linux contos 7Docker version:18.06.0-cejdk 1.8+git 1.8+zookeeper三、部署步骤• zookeeper• dubbo-admin• service(具体项目)dubbo + zookeeperzookeeper:// Run zookeeper:docker r

2020-06-30 17:25:36 258

原创 mongoose多条件模糊查询使用

多条件模糊查询查询条件:需要在Hosts文档中同时模糊查询字段hostIp与字段localIp并且组合条件查询出categoryTag字段与hostType字段,categoryTag字段与hostType字段查询未非模糊查询(上图状态条件先不作为条件查询)const where = { $or:[{ hostIp: new RegExp(47) }, { localIp: new...

2019-07-17 11:34:47 1427

原创 node.js新手入门初学

新公司后端需要用到node.js做开发,由于本人在此之前实习亦或是在学校做的项目仅仅使用java所谓后端语言进行项目的开发,所以在入职之前先是自己学习node.js基础的知识,方便进公司后能快速上手工作内容。以下是本人在学习时候做的笔记内容,仅仅是基础知识的概括,并未深入研究以及使用。Node.js 是什么JavaScript 运行时既不是语言,也不是框架,它是一个平台Node.j...

2019-06-10 00:56:40 321

原创 面试题13

object有哪些方法hashCode()返回对象的哈希码值。hashCode()相等equals()不一定truefinalize()当垃圾收集确定不再有对该对象的引用时,垃圾收集器在对象上调用该对象。一个子类覆盖了处理系统资源或执行其他清理的finalize方法。clone()创建并返回此对象的副本HashMap便利方式(推荐使用entrySet())第一种:效率高Ma...

2019-05-16 00:04:26 190

原创 面试题12

InnoDB页溢出会怎么办?我们知道数据页的大小是 16KB,Innodb 存储引擎保证了每一页至少有两条记录,如果一页当中的记录过大,会截取前 768 个字节存入页中,其余的放入 BLOB Page。行溢出数据InnoDB存储引擎可以将一条记录中的某些数据存储在真正的数据页面之外,即作为行溢出数据。 InnoDB存储引擎表是索引组织的,即B+树的结构。因此每个页中至少应该有两个行记录(否...

2019-01-22 17:54:30 187

转载 JVM垃圾收集器详解

1. 前言  在上一篇文章中,介绍了JVM中垃圾回收的原理和算法。介绍了通过引用计数和对象可达性分析的算法来筛选出已经没有使用的对象,然后介绍了垃圾收集器中使用的三种收集算法:标记-清除、标记-整理、标记-复制算法。  介绍完原理,在这篇文章中,我们将介绍当前JVM中已经实现的垃圾收集器,以及与收集器主题相关的一些内容。  首先,我们将在上一篇文章中提到分代收集机制的基础上,...

2019-01-21 11:53:05 195

原创 面试题11

阻塞IO,非阻塞IO(IO与NIO)阻塞IO应用程序调用IO函数,导致应用程序阻塞,等待数据准备好。如果数据没有准备好,一直等待数据准备好了,从内核拷贝到用户空间,IO函数返回成功指示。当用户线程发出IO请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出CPU。当数据就绪之后,内核会将数据拷贝到用户线程,并返回结果给用户线程,用户线程才...

2019-01-08 09:44:05 140

原创 面试题10

找出两文件种包含的相同的url问题:给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?分析:50亿个url,每个url64字节,就是320G,显然是无法一次读入内存的。因此这里需要采用分治法。方案:分治法,分支方法:哈希步骤:1 将AB两个文件,用相同的哈希函数,分解为1000个独立哈希值相同的小文件,这里哈希函数的设计是...

2018-12-26 11:05:50 301

原创 面试题9

缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。解决方案有很多种方法可以有效地解决缓存穿透问题,1.最常见的则是采用布隆过滤器,将所有可能存在的数据哈希到...

2018-11-14 20:43:34 214

原创 备战秋招:面试题8

谈谈你对面向对象的理解在我理解,面向对象是向现实世界模型的自然延伸,这是一种“万物皆对象”的编程思想。在现实生活中的任何物体都可以归为一类事物,而每一个个体都是一类事物的实例。面向对象的编程是以对象为中心,以消息为驱动,所以程序=对象+消息。面向对象有三大特性,封装、继承和多态。封装就是将一类事物的属性和行为抽象成一个类,使其属性私有化,行为公开化,提高了数据的隐秘性的同时,使代码模块化。这...

2018-10-04 15:23:00 256

转载 CAS实现单点登录原理

原 CAS实现单点登录SSO执行原理探究(终于明白了) 2016年09月05日 13:56:01 javaloveiphone 阅读数:129282 <span class="tags-box artic-tag-box"&am

2018-10-01 00:01:05 198

原创 备战秋招:面试题7

volatile的原理对volatile修饰的变量进行修改时,JVM会向CPU发出Lock前缀指令:线程本身并不直接与主内存进行数据的交互,而是通过线程的工作内存来完成相应的操作。这也是导致线程间数据不可见的本质原因。因此要实现volatile变量的可见性,直接从这方面入手即可。对volatile变量的写操作与普通变量的主要区别有两点:(1)修改volatile变量时会强制将修改后的值刷新的...

2018-09-23 14:18:31 321

转载 Redis持久化方式RDB、AOF

1、前言最近在项目中使用到Redis做缓存,方便多个业务进程之间共享数据。由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据。redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在...

2018-09-21 15:12:04 150

原创 双重检验的单例模式,为什么要用volatile关键字

双重检验的单例模式是比较推荐的单例写法,在该代码中的单例对象的是用volatile关键字修饰的。这时就产生的一个疑问,为什么需要volatile来修饰呢?上网查看多个博客,下面简单通俗分析一下当中的原因:贴上不加volatile单例代码public class Singleton { private static Singleton s; private Singleton(){}; ...

2018-09-19 18:10:37 1213 7

原创 备战秋招:面试题6

死锁产生的4个必要条件1、互斥:某种资源一次只允许一个进程访问,即该资源一旦分配给某个进程,其他进程就不能再访问,直到该进程访问结束。2、占有且等待:一个进程本身占有资源(一种或多种),同时还有资源未得到满足,正在等待其他进程释放该资源。3、不可抢占:别人已经占有了某项资源,你不能因为自己也需要该资源,就去把别人的资源抢过来。4、循环等待:存在一个进程链,使得每个进程都占有下一个进程所需的...

2018-09-19 14:35:39 204

原创 备战秋招:面试题5

count(1)与count(*)比较1、如果你的数据表没有主键,那么count(1)比count(*)快2、如果有主键的话,那主键(联合主键)作为count的条件也比count(*)要快3、如果你的表只有一个字段的话那count(*)就是最快的啦4、count(*) count(1) 两者比较。主要还是要count(1)所相对应的数据字段。5、如果count(1)是聚索引,i...

2018-09-11 21:02:08 191

原创 备战秋招:面试题4

不可重复读和幻读的区别当然, 从总的结果来看, 似乎两者都表现为两次读取的结果不一致.但如果你从控制的角度来看, 两者的区别就比较大对于前者, 只需要锁住满足条件的记录 对于后者, 要锁住满足条件及其相近的记录我这么理解是否可以?避免不可重复读需要锁行就行 避免幻影读则需要锁表不可重复读和幻读的区别很多人容易搞混不可重复读和幻读,确实...

2018-09-10 01:19:10 233

转载 Spring AOP

定义官方解释AOP,Aspect Oriented Programming的缩写,意为面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP通俗理解:一个组件A,不关心其它常用的服务组件B,但是A要使用组件B的时候,不是组件A自己去调用,而是通过配置等其他方式,比如Spring中的xml配置文件,这样A不需要知道组件B的任何事情,A只关心自己的...

2018-09-08 11:07:02 148

原创 备战秋招:面试题3

JAVA多线程实现的四种方式Java多线程实现方式主要有四种: 1. 继承Thread类 2. 实现Runnable接口 3. 实现Callable接口通过FutureTask包装器来创建Thread线程 4. 使用ExecutorService、Callable、Future实现有返回结果的多线程。HashMap和HashTable区别线程安全不同是否允许null...

2018-09-07 00:38:54 258

原创 备战秋招:面试题2

error和exception区别error表示恢复不是不可能但是很苦难的情况下的一种严重问题,比如说内存溢出。不可能指望程序能处理这样的情况。exception表示一种设计或实现的问题,也就是说,他表示如果程序运行正常,从不会发生的情况。NollpointerException、ArrayOutOfBoundsException、ClassCastExceptionTCP释放链接...

2018-09-04 00:55:25 178

原创 备战秋招:面试题1

MVCCHTTP和HTTPS区别1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协...

2018-08-30 22:41:35 633

转载 多线程面试题Top50

原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-answers/1) 什么是线程?  线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要...

2018-08-21 12:03:48 249

转载 为什么Mysql用B+树做索引而不用B-树

先从数据结构的角度来答。 题主应该知道B-树和B+树最重要的一个区别就是B+树只有叶节点存放数据,其余节点用来索引,而B-树是每个索引节点都会有Data域。 这就决定了B+树更适合用来存储外部数据,也就是所谓的磁盘数据。 从Mysql(Inoodb)的角度来看,B+树是用来充当索引的,一般来说索引非常大,尤其是关系性数据库这种数据量大的索引能达到亿级别,所以为了减少内存的占用,索引也会被存储...

2018-08-12 11:36:46 468

转载 MySQL面试题

1. 如何设计一个高并发的系统① 数据库的优化,包括合理的事务隔离级别、SQL语句优化、索引的优化② 使用缓存,尽量减少数据库 IO③ 分布式数据库、分布式缓存④ 服务器的负载均衡2. 锁的优化策略① 读写分离② 分段加锁③ 减少锁持有的时间④ 多个线程尽量以相同的顺序去获取资源等等,这些都不是绝对原则,都要根据情况,比如不能将锁的粒度过于细化,不然可能...

2018-08-12 11:33:15 17609 2

原创 网页静态化技术Freemarker简单Demo

为什么要用网页静态化技术网页静态化解决方案在实际开发中运用比较多,例如新闻网站,门户网站中的新闻频道或者是文章类的频道。 对于电商网站的商品详细页来说,至少几百万个商品,每个商品又有大量的信息,这样的情况同样也适用于使用网页静态化来解决。 网页静态化技术和缓存技术的共同点都是为了减轻数据库的访问压力,但是具体的应用场景不同,缓存比较适合小规模的数据,而网页静态化比较适合大规模且相对变化...

2018-08-04 14:00:35 520

原创 Spring Data Redis简单使用

项目常见问题思考在项目中发现:对于首页每天有大量的人访问,对数据库造成很大的访问压力,甚至是瘫痪。那如何解决呢?我们通常的做法有两种:一种是数据缓存、一种是网页静态化。我们今天讨论第一种解决方案。将首页的数据进行缓存。Redisredis是一款开源的Key-Value数据库,运行在内存中,由ANSI C编写。企业开发通常采用Redis来实现缓存。同类的产品还有memcache 、mem...

2018-07-29 16:52:47 208

原创 FastDFS介绍及简单入门小demo

什么是FastDFSFastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。FastDFS 架构包括 Tracker server 和 Storage server。客户端请求 Tracker s...

2018-07-23 14:17:35 3080 2

原创 Spring Security入门简单小demo,外加结合自己项目中使用

pom.xml配置<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.o

2018-06-27 12:16:47 2773 3

原创 SpringMVC学习笔记1:SpringMVC框架工作原理

什么是SpringMVCspringmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。(struts2与Spring整合的时候需要借助单独的jar包) springmvc是一个基于mvc的web框架。 mvc在b/s系统 下的应用mvc是一个设计模式,mvc在b/s系统 下的应用: MVC的原理图:分析:M-Model 模型(...

2018-06-09 10:16:21 306

原创 SpringMVC:properties属性加载配合controller使用

为了controller上的减少硬编码,在springmvc.xml中配置属性文件的加载,给controller提供使用。1.编写crm.propertiescustomer_from_type=002customer_industry_Type=001customer_level_Type=0062.在springmvc.xml中配置crm.properties ...

2018-06-07 23:50:53 1535 2

原创 Mybatis学习笔记2,环境搭建以及入门程序编写实现

环境搭建eclipse mysqlmybatis运行环境(jar包):从https://github.com/mybatis/mybatis-3/releases下载,3.2.7版本 lib下:依赖包 mybatis-3.2.7.jar:核心 包 mybatis-3.2.7.pdf,操作指南加入mysql的驱动包 log4j.properties my...

2018-05-14 21:58:10 162

原创 Mybatis学习笔记1,Mybatis介绍

原始jdbc程序:Public static void main(String[] args) { Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; ...

2018-05-14 21:16:52 127

转载 JVM 类加载机制详解

类加载机制: 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,解析和初始化,最终形成可以被虚拟机直接使用的java类型。如下图所示,JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。 加载加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数...

2018-05-02 21:35:37 1332

原创 Spring学习笔记7,基于AOP使用声明式事务控制

什么是AOPAOP是Spring提供的关键特性之一。AOP即面向切面编程,是OOP编程的有效补充。使用AOP技术,可以将一些系统性相关的编程工作,独立提取出来,独立实现,然后通过切面切入进系统。从而避免了在业务逻辑的代码中混入很多的系统相关的逻辑——比如权限管理,事物管理,日志记录等等。这些系统性的编程工作都可以独立编码实现,然后通过AOP技术切入进系统即可。从而达到了 将不同的关注点分离出来...

2018-04-28 10:05:27 420

原创 Spring学习笔记6,Spring提供的事务控制支持

spring提供了三个对象对事务控制统一管理:1、PlatformTransactionManager 事务管理器(统一接口) commit 提交事务 rollback 回滚事务 根据持久层框架选择具体事务管理器实现类: org.springframework.orm.hibernate5.HibernateTransactionManager 2、TransactionDefi...

2018-04-28 09:20:14 119

原创 Spring学习笔记5,HibernateTemplate简单测试使用

了解事务我们一般说的事务是来源于关系数据库,当有数据持久化需求时一般都需要事务控制。关系数据库:支持事务控制,mysql数据库存储引擎为InnoDB支持事务,存储引擎为MyIsam不支持事务。 jdbc:支持事务控制,设置CommitAuto(false) Hibernate:支持事务,使用session.beginTransaction(),再session.getTransacti...

2018-04-26 10:07:48 8142 2

原创 Spring学习笔记4,注解方式管理Bean

Spring框架的Bean管理注解方式的快速入门1. 步骤一:下载Spring框架的开发包解压后的目录结构如下 * docs – API和开发规范 * libs – jar包和源码      Spring框架的jar包的特点是每个jar包都有3个(使用的jar包、文档的jar包和源...

2018-04-23 14:15:28 203

原创 Spring学习笔记3,Bean的作用域,基于Spring简单完整开发

spring提供bean的作用域:1、singleton:单例,系统在运行中只有一个实例 在加载spring容器时候将bean实例化好了,只实例化一次。 spring容器对bean的管理默认就是单例。2、prototype:多例,每次访问都要创建一个实例。 调用applicationContext.getBean方法时,都会创建一个实例 ...

2018-04-22 13:33:43 124

原创 Spring学习笔记2,依赖注入DI,简单实现

DI分析 控制反转,哪些对象被反转,获得依赖对象的过程被反转了。 action:调用service,action依赖service,在action中所依赖的service创建被反转到spring容器。 service:依赖dao,依赖的dao创建被反转到spring容器依赖注入(Dependency Injection) 所谓依赖注入,就是由IOC容器在运行期间,动态地将对象的依赖...

2018-04-19 11:40:18 142

原创 Spring学习笔记1,Spring框架入门及环境搭建

Spring框架介绍Spring 是一个提供了解决J2EE问题的一站式框架 核心:控制反转,通过配置文件来完成业务对象之间的依赖注入,他鼓励一个良好的习惯,那就是注入对接口编程而不是对类编程 事务处理:他能够在各种底层事务处理技术上提供一个统一的编程模型Spring是分层的JavaSE/EE应用一站式的轻量级开源框架( 官网 ),以Ioc(Inverse of control)控制...

2018-04-19 11:07:13 235

空空如也

空空如也

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

TA关注的人

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