自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 收藏
  • 关注

转载 快速傅里叶变换

傅里叶变换:https://www.cnblogs.com/h2zZhou/p/8405717.htmlFFT(Fast Fourier Transformation) 是离散傅氏变换(DFT)的快速算法。即为快速傅氏变换。它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。采用这种算法能使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N...

2019-10-28 15:51:01 435

转载 mysql执行计划

MySQL 使用explain + sql 语句查看 执行计划,该执行计划不一定完全正确但是可以参考。1、select_type2、table: 正在访问的表名3、type性能:all<index<range<index_merge<ref_or_null<ref<eq_ref<system/co...

2019-10-21 15:41:35 112

转载 如何设计一个高并发系统?

面试题剖析其实所谓的高并发,如果你要理解这个问题呢,其实就得从高并发的根源出发,为啥会有高并发?为啥高并发就很牛逼?我说的浅显一点,很简单,就是因为刚开始系统都是连接数据库的,但是要知道数据库支撑到每秒并发两三千的时候,基本就快完了。所以才有说,很多公司,刚开始干的时候,技术比较 low,结果业务发展太快,有的时候系统扛不住压力就挂了。当然会挂了,凭什么不挂?你数据库如果瞬间承载每秒 ...

2019-10-21 15:12:21 534

转载 jdk8 新增 接口默认方法

一、JDK8 中为什么有接口默认方法?以前创建了一个接口,并且已经被大量的类实现。 如果需要再扩充这个接口的功能加新的方法,就会导致所有已经实现的子类需要重写这个方法。 如果在接口中使用默认方法就不会有这个问题。 所以从 JDK8 开始新加了接口默认方法,便于接口的扩展。二、接口中默认方法的规则:1.默认方法使用 default 关键字,一个接口中可以有多个默认方法。2.接口中...

2019-10-20 21:32:19 462

转载 Java 8 Lambda 表达式

一、函数式编程特性1、函数是"第一等公民"什么是"第一等公民"?所谓"第一等公民"(first class),指的是函数与其他数据类型一样,处于平等地位,它不仅拥有一切传统函数的使用方式(声明和调用),可以赋值给其他变量(赋值),也可以作为参数,传入另一个函数(传参),或者作为别的函数的返回值(返回)。函数可以作为参数进行传递,意味我们可以把行为"参数化",处理逻辑可以从外部传入,这样程...

2019-10-20 21:21:57 1185 1

转载 vector和arraylist区别

1、Vector & ArrayList(1)Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。(2)当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50...

2019-10-20 20:11:16 147

转载 zookeeper

ZooKeeper 本身就是一个分布式程序(只要半数以上节点存活,ZooKeeper 就能正常服务)。为了保证高可用,最好是以集群形态来部署 ZooKeeper,这样只要集群中大部分机器是可用的(能够容忍一定的机器故障),那么 ZooKeeper 本身仍然是可用的。ZooKeeper 将数据保存在内存中,这也就保证了高吞吐量和低延迟(但是内存限制了能够存储的容量不太大,此限制也是保持zno...

2019-10-20 17:08:46 103

转载 红黑树和B树

红黑树和B树应用场景有何不同?2者都是有序数据结构,可用作数据容器。红黑树多用在内部排序,即全放在内存中的,微软STL的map和set的内部实现就是红黑树。B树多用在内存里放不下,大部分数据存储在外存上时。因为B树层数少,因此可以确保每次操作,读取磁盘的次数尽可能的少。在数据较小,可以完全放到内存中时,红黑树的时间复杂度比B树低。比如treemap。反之,数据量较大,外存中占主...

2019-10-20 16:05:23 376

转载 mysql索引实现原理与常见问题

1、数据库中最常见的慢查询优化方式是什么?加索引2、为什么加索引能优化慢查询?因为索引是一种优化查询的数据结构,比如MySQL中的索引是B+树实现的,而B+树就是一种数据结构,可以优化查询速度,可以利用索引快速查找数据,所以能优化查询!3、你知道哪些数据结构可以提高查询速度?哈希表、完全平衡二叉搜索树、B树、B+树等等;4、那这些数据结构既然都能优化查询速...

2019-10-20 13:21:41 499

转载 存储过程

优点:1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。2.当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序来完成,就变成了一条条的 SQL 语句,可...

2019-10-19 21:05:08 190

转载 解决MySQl查询不区分大小写

Mysql默认的字符检索策略:utf8_general_ci,表示不区分大小写;utf8_general_cs表示区分大小写,utf8_bin表示二进制比较,同样也区分大小写 。1、设置表的字符集属性创建表时,直接设置表的collate属性为utf8_general_cs或者utf8_bin;如果已经创建表,则直接修改字段的Collation属性为utf8_general_cs或者utf8...

2019-10-19 20:58:44 335

转载 一条sql执行过长的时间,你如何优化,从哪些方面?

1、查看sql是否涉及多表的联表或者子查询,如果有,看是否能进行业务拆分,相关字段冗余或者合并成临时表(业务和算法的优化)2、涉及链表的查询,是否能进行分表查询,单表查询之后的结果进行字段整合。3、如果以上两种都不能操作,非要链表查询,那么考虑对相对应的查询条件做索引。加快查询速度4、针对数量大的表进行历史表分离(如交易流水表)5、数据库主从分离,读写分离,降低读写针对同一表同时的...

2019-10-19 20:51:40 1226

原创 hashmap实现原理及常见问题

数组:数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表:链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。哈希表:那么我们能不能综合两者的特性,做出一种寻址容易,插入删除也容易的数据结构?答案是肯定的,这就是我们要提起的哈希表...

2019-10-19 18:09:23 182

原创 一级缓存、二级缓存、memcached

1、一级缓存一级缓存的作用域是SqlSession范围的,当在同一个sqlSession中执行两次相同的sql语句时,第一次执行完毕会将数据库中查询的数据写到缓存(内存),第二次查询时会从缓存中获取数据,不再去底层数据库查询,从而提高查询效率。需要注意的是,如果SqlSession执行了DML操作(增删改),并且提交到数据库,MyBatis则会清空SqlSession中的一级缓存,这样做的...

2019-10-19 17:14:16 311

转载 高并发、大数据量问题

1、同步和异步同步在一定程度上可以看做是单线程,这个线程请求一个方法后就待这个方法给他回复,否则他不往下执行(死心眼)。异步在一定程度上可以看做是多线程的(废话,一个线程怎么叫异步),请求一个方法后,就不管了,继续执行其他的方法。同步就是一件事,一件事情一件事的做。异步就是,做一件事情,不引响做其他事情。例如:吃饭和说话,只能一件事一件事的来,因为只有一张嘴。但吃饭和听音乐是异步的...

2019-10-19 16:11:54 508

转载 Dubbo的四种负载均衡机制

在分布式系统中有多台的服务器作为提供者负责处理各种网络请求,当同时有多个请求同时过来时,需要将其均摊在各台服务器上,避免了某台服务器压力过大而某台服务器则闲置的问题。Dubbo提供了四种实现负载均衡的机制:1、基于权重随机算法的 RandomLoadBalance这种方式的思想是为每一台服务器设置一个权值,当有请求到来时就按照大体的权重比例为该请求分配服务器。如图当ord...

2019-10-18 11:42:19 807

转载 索引

1、什么是索引?索引用于快速找出在某个列中有一特定值的行,不使用索引,MySQL必须从第一条记录开始读完整个表,直到找出相关的行,表越大,查询数据所花费的时间就越多,如果表中查询的列有一个索引,MySQL能够快速到达一个位置去搜索数据文件,而不必查看所有数据,那么将会节省很大一部分时间。MySQL中的索引的存储类型有两种:BTREE、HASH。2、索引的优点和缺点优点:大大...

2019-10-18 09:36:08 99

转载 消息队列

一、什么是消息队列我们可以把消息队列比作是一个存放消息的容器,当我们需要使用消息的时候可以取出消息供自己使用。消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削峰、降低系统耦合性。目前使用较多的消息队列有ActiveMQ,RabbitMQ,Kafka,RocketMQ。二、为什么要用消息队列我觉得使用消息队列主要有两点好处:1、通过异步处...

2019-10-18 08:34:58 15150

转载 网关

在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发...

2019-10-18 08:34:52 169

转载 单点登录

什么是单点登录?单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分。1、登录相比于单系统登录,sso需要一个独立的认证中心,只有认证中心能接受用户的用户名密码等安全信息,其他系统不提供登录入口,只接受认证中心的间接授权。间接授权通过令牌实现,sso认证中心验证用户的用户名密码...

2019-10-18 08:34:47 197

转载 分布式事务

1、什么是分布式事务?分布式事务指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。2、是否要用分布式事务?上面说过...

2019-10-18 08:34:41 111

转载 Dubbo

1、什么是 Dubbo?Apache Dubbo 是一款高性能、轻量级的开源Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。简单来说 Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。Dubbo 是由阿里开源,后来加入了 Apache 。正式由于 Dubbo 的出现,...

2019-10-18 08:34:35 199

转载 常见sql优化

1、在表中建立索引,优先考虑where、group by使用到的字段。2、避免使用select *,只返回使用到的字段。3、尽量避免使用in 、not in、or,会导致数据库引擎放弃索引进行全表扫描。4、尽量避免在字段开头模糊查询,会导致数据库引擎放弃索引进行全表扫描。如下:5、尽量避免进行null值的判断,会导致数据库引擎放弃索引进行全表扫描。可以给字段添加默认值0,对0值进行...

2019-10-18 08:34:27 268

转载 jdk8新特性

1.接口的默认方法Java 8 允许我们给接口添加一个非抽象的方法实现,只需要使用default关键字即可,这个特征又叫做扩展方法2.Lambda表达式基于函数的匿名表达式语法:( object str,....)[参数列表] ->[箭头符号]代码块或表达式在Java8中你就没必要使用这些传统的匿名对象的方式了,Java 8 提供了更简洁的语法,lambd...

2019-10-18 08:34:20 206

原创 springboot

Spring Framework旨在简化J2EE企业应用程序开发。Spring Boot Framework旨在简化Spring开发。优点:无需复杂的xml配置、内嵌web服务器如tomcat和jetty、提供pom简化maven...

2019-10-17 16:11:37 80

转载 过滤器与拦截器的区别

1、定义过滤器,是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的 action进行业务逻辑,比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者 struts的action前统一设置字符集,或者去除掉一些非法字符拦截器,是在面向切面编...

2019-10-17 16:02:02 340

原创 Spring中Bean的5种作用域和生命周期

1、Bean的5种作用域(1)singleton:单例模式,Spring IoC容器中只会存在一个共享的Bean实例,无论有多少个Bean引用它,始终指向同一对象Singleton作用域是Spring中的缺省作用域,也可以显示的将Bean定义为singleton模式,配置为:<bean id="userDao" class="com.ioc.UserDaoImpl" scope="si...

2019-10-17 15:49:18 398

原创 spring常用注解

1、@autowired@Autowired顾名思义,就是自动装配,其作用是为了消除Java代码里面的getter/setter与bean属性中的property。2、@Autowired和@Resource两个注解的区别:@Autowired默认按照byType方式进行bean匹配,@Resource默认按照byName方式进行bean匹配 @Autowired是Spring的注解...

2019-10-17 15:24:26 139

原创 spring中用到的设计模式

1、单例设计模式Spring 中 bean 的默认作用域就是 singleton(单例)的。2、工厂设计模式Spring使用工厂模式可以通过BeanFactory或ApplicationContext创建 bean 对象。3、代理设计模式Spring AOP 就是基于动态代理的...

2019-10-17 15:15:13 138

原创 redis 和 memcached

1、redis 和 memcached区别redis支持更丰富的数据类型(支持更复杂的应用场景):Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。memcache支持简单的数据类型,String。 Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用,而Memecache把数据全部存在内存之中。...

2019-10-17 13:36:58 750

转载 部署java项目

1、打war包2、放在tomcat的webapp目录下3、执行bin目录的start.sh脚本maven自动部署到远程tomcat教程:1、环境如下eclipse、apache-maven-3.0.5、apache-tomcat-7.0.392、配置如下apache-maven-3.0.5配置C:\Program Files\apache-maven-3.0.5...

2019-10-17 13:20:06 526

原创 Memcache的实现原理

memcache一般被称为查询缓存

2019-10-17 11:49:29 161

转载 maven常用命令

1、maven介绍maven最大的作用就是用于对项目中jar包依赖的统一管理。通常项目中如果不使用maven的话,项目中用到的jar包需要自己下载,然后放到项目的lib目录,比较麻烦。如果使用maven构建项目,项目中就会有有一个pom文件,该pom文件的作用就是对项目中的所有jar包依赖进行统一管理,如果想要使用哪个依赖只需要在pom文件中引入相关的依赖就可以,然后maven就会自动...

2019-10-17 11:42:00 102

转载 java常用设计模式

设计模式的原则总结起来,就是多用接口/抽象类,从而增加代码的可扩展性(减少修改代码),降低模块间的依赖和联系,体现了OOP的模块化、可扩展性等特征。1、工厂模式工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接...

2019-10-16 21:58:04 2297 1

转载 SpringMVC工作原理

第1步:浏览器发送指定的请求都会交给DispatcherServlet第2步:DispatcherServlet会查找到HandleMapping,根据浏览器的请求找到对应的Controller,并将请求交给目标Controller第3步:目标Controller处理完业务后,返回一个ModelAndView给DispatcherServlet第4步:DispatcherServlet...

2019-10-16 21:06:46 102

原创 spring生命周期

spring的生命周期就是bean的生命周期,从bean开始装载,然后默认的以单例形式实例化,然后是属性注入,然后是被装载到beanFactory,然后调用销毁方法。1、以单例模式实例化2、属性注入3、转载到beanfatory中4、销毁实例化和属性注入对应构造方法和setter方法的注入,初始化和销毁是用户能自定义扩展的两个阶段。...

2019-10-16 20:49:36 3418

转载 java动态代理

1、代理模式代理模式是23种设计模式的一种,他是指一个对象A通过持有另一个对象B,可以具有B同样的行为的模式。为了对外开放协议,B往往实现了一个接口,A也会去实现接口。但是B是“真正”实现类,A则比较“虚”,他借用了B的方法去实现接口的方法。A虽然是“伪军”,但它可以增强B,在调用B的方法前后都做些其他的事情。Spring AOP就是使用了动态代理完成了代码的动态“织入”。类A写死持有B,...

2019-10-16 20:42:20 171

原创 jdk和jre

1、JREJRE是Java Runtime Environment的缩写,顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的,还有所有的Java类库的class文件,都在lib目录下,并且都打包成了jar。2、JDKJdk是Java Development Kit的缩写,顾名思义...

2019-10-16 20:28:24 93

转载 mybatis延迟加载

1、延迟加载介绍延迟加载也叫懒加载,根据需求加载数据,先加载主要显示的数据,如果需要关联的数据显示,再加载关联的数据显示2、为什么使用延迟加载(1)假设场景:用户表和订单表,用户表有多个用户,每个用户有多个订单, 某些时候,我们需要同时查看用户信息和用户的订单信息,这个时候用户的信息和订单的信息都需要显示。但如果我们只查看订单列表,就没必要把用户信息和用户的订单的数据全部查询出来,只显...

2019-10-16 17:36:52 358

转载 spring -- 编程式事务、声明式事务

1、编程式事务所谓编程式事务指的是通过编码方式实现事务,即类似于JDBC编程实现事务管理。管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。2、声明式事务管理建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入...

2019-10-16 17:30:47 185

空空如也

空空如也

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

TA关注的人

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