- 博客(93)
- 收藏
- 关注
转载 EasyExcel引入
好久没更了,都在有道云上面记录,没时间搬过来。easyexcel是最近项目做优化涉及的一个改善点吧。简介导出是后台管理系统的常用功能,当数据量特别大的时候会内存溢出和卡顿页面,曾经自己封装过一个导出,POI百万级大数据量EXCEL导出 采用了分批查询数据来避免内存溢出和使用SXSSFWorkbook方式缓存数据到文件上以解决下载大文件EXCEL卡死页...
2019-08-02 16:32:00
175
转载 深入笔记(为了记录一些图片)
目录:1.Mysql相关2.Spring相关1.Mysql相关>>> mybatis加载过程mybatis底层还是采用原生的jdbc对数据库进行操作解析配置文件,创建sqlSessionFactory建造者模式,初始化Configuration对象,解析mappers节点时,会读取该节点下所有的mapper文件,然后进行解析,并将解析后的结果存到co...
2018-11-01 15:33:00
268
转载 2018/4/11
Java研发方向如何准备BAT技术面试答案(上)https://www.nowcoder.com/discuss/6890?type=5&order=0&pos=14&page=1Java研发方向如何准备BAT技术面试https://www.nowcoder.com/discuss/6685?type=5&order=0&pos=26...
2018-04-11 17:48:00
129
转载 2018/04/04
1.@Qualifier(合格者)通过这个标示,表明了哪个实现类才是我们所需要的,我们修改调用代码,添加@Qualifier注解,需要注意的是@Qualifier的参数名称必须为我们之前定义。2.@Configuration 和@ComponentScan注解背后会做什么呢?其实很简单,@ComponentScan告诉Spring 哪个packages 的用注解标识的类...
2018-04-09 20:16:00
96
转载 jdk各版本
1.jdk1.7:1.1二进制变量的表示,支持将整数类型用二进制来表示,用0b开头;1.2 Switch语句支持string类型;2.jdk1.8:转载于:https://www.cnblogs.com/novalist/p/8671490.html...
2018-03-29 18:21:00
520
转载 jedisLock—redis分布式锁实现
https://www.cnblogs.com/0201zcr/p/5942748.html转载于:https://www.cnblogs.com/novalist/p/8597329.html
2018-03-18 20:40:00
50
转载 Java的三种代理模式
Java的三种代理模式1.代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法举个例子来说明代理的作用:假设我们想邀请一位明星,...
2018-03-01 11:11:00
54
转载 jar包和war包的介绍和区别
JavaSE程序可以打包成Jar包(J其实可以理解为Java了),而JavaWeb程序可以打包成war包(w其实可以理解为Web了)。然后把war发布到Tomcat的webapps目录下,Tomcat会在启动时自动解压war包。JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。为 J2EE 应用程序创建的 JAR 文件是...
2018-02-28 16:32:00
50
转载 ConcurrentHashMap原理分析(1.7与1.8)
前言以前写过介绍HashMap的文章,文中提到过HashMap在put的时候,插入的元素超过了容量(由负载因子决定)的范围就会触发扩容操作,就是rehash,这个会重新将原数组的内容重新hash到新的扩容数组中,在多线程的环境下,存在同时其他的元素也在进行put操作,如果hash值相同,可能出现同时在同一数组下用链表表示,造成闭环,导致在get时会出现死循环,所以HashMap是线程...
2018-02-26 17:16:00
68
转载 java8 新特性入门 stream/lambda
Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。Stream API 借助于同样新出现的 Lambda 表达式,极大的提高编程效率和程序可读性。同时它提供串行和并行两种模式进行汇聚操作,并发模式能够...
2017-11-29 22:38:00
73
转载 Mybatis运行原理
要执行sql语句必须得到一个SqlSession,那么我们是怎么获得这个对象的呢?我们来慢慢解析这几句话: 第一步:通过Resources加载配置好的mybatis.xml配置文件。Resources是ibatis.io包下面的类,也就是一个io流,用于读写文件,通过getResourceAsStream把xml文件加载进来,降配置文件解析为一个流。 第二步:然后看第...
2017-11-23 14:51:00
62
转载 注解
Annotation的作用:修饰编程元素,包、类、构造方法、方法、成员变量等注解的语法与定义形式:①以@interface关键字定义;②注解包含成员,成员以无参数的方法的形式被声明。其方法名和返回值定义了该成员的名字和类型;③成员复制是通过@Annotation(name=value)的形式;④注解需要表明注解的生命周期,注解的修饰目标等信息,这些信息是通过元注...
2017-08-12 17:35:00
54
转载 程序性能优化 总结
1.程序性能的表现方式 (执行速度,内存分配,启动时间,负载承受能力)性能的参考标准 (执行时间,CPU时间,内存分配,磁盘吞吐量,网络吞吐量,响应时间)2.最优可能成为系统瓶颈的计算资源3.性能调优层次设计调优,代码调优,JVM调优,数据库调优,操作系统调优4.设计模式4.1单例模式4.2代理模式转载于:https:...
2017-07-12 18:01:00
82
转载 分布式 集群
一.先说区别:一句话:分布式是并联工作的,集群是串联工作的。1.分布式是指将不同的业务分布在不同的地方。 而集群指的是将几台服务器集中在一起,实现同一业务。分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给...
2017-04-06 17:53:00
565
转载 Redis
1. 使用Redis有哪些好处?(1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)(2) 支持丰富数据类型,支持string,list,set,sorted set,hash(3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行(4) 丰富的特性:可用于缓存,消息,按ke...
2017-03-30 18:53:00
43
转载 泛型
一.什么是泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。看着好像有点复杂,首先我们看下上面那个例子采用泛型的写法。public c...
2017-03-30 11:43:00
50
转载 优先级内容
1.https://www.nowcoder.com/discuss/21783?type=2&order=4&pos=21&page=1转载于:https://www.cnblogs.com/novalist/p/6612759.html
2017-03-24 17:55:00
99
转载 Java 匿名内部类 & 内部类
一、JAVA中内部类和匿名内部类的区别 内部类:内部类可以是static的或者非static的,static内部类只能包含静态方法和静态类变量,只能访问外部类的静态元素,内部类可以实例化,多次使用。 匿名内部类:它只能使用一次,不区分static和非static。如果用到外部类的变量的话,必须是类变量或者实例变量,就是必须是类定义的变量,或者fi...
2017-03-23 15:23:00
68
转载 JVM如何加载一个类的过程,双亲委派模型中有哪些方法
1、类加载过程:加载、验证、准备、解析、初始化加载在加载阶段,虚拟机主要完成三件事: 1.通过一个类的全限定名来获取定义此类的二进制字节流。 2.将这个字节流所代表的静态存储结构转化为方法区域的运行时数据结构。 3.在Java堆中生成一个代表这个类的java.lang.Class...
2017-03-23 10:09:00
193
转载 ThreadLocal
Why ThreadLocal?无论如何,要编写一个多线程安全(Thread-safe)的程序是困难的,为了让线程共享资源,必须小心地对共享资源进行同步,同步带来一定的效能延迟,而另一方面,在处理同步的时候,又要注意对象的锁定与释放,避免产生死结,种种因素都使得编写多线程程序变得困难。尝试从另一个角度来思考多线程共享资源的问题,既然共享资源这么困难,那么就干脆不要共享,何不为每个...
2017-03-21 10:48:00
50
转载 spring BeanFactory
spring的IOC容器能够帮我们自动new对象,对象交给spring管之后我们不用自己手动去new对象了。那么它的原理是什么呢?是怎么实现的呢?下面我来简单的模拟一下spring的机制,相信看完之后就会对spring的原理有一定的了解。 spring使用BeanFactory来实例化、配置和管理对象,但是它只是一个接口,里面有一个getBean()方法。我们一般都不直接用...
2017-03-20 11:08:00
58
转载 DBCP数据库连接池原理分析
在比较大的项目中,需要不断的从数据库中获取数据,Java中则使用JDBC连接数据库,但是获取数据库的连接可是相当耗时的操作,每次连接数据库都获得 、销毁数据库连接,将是很大的一个开销。为了解决这种开销,则使用了对象池的技术。程序启动时,先创建一定数量的数据库连接对象,然后只要一用到就直接从对象池中取出连接对象,然后使用完成后不对其销毁,而是再返回到对象池中,这样使连接池对象能反复使用,...
2017-03-16 17:51:00
113
转载 java NIO、BIO、AIO全面剖析
在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解。具体如下:序号问题1什么是同步?2什么是异步?3什么是阻塞?4什么是非阻塞?5什么是同步阻塞?6什么是同步非阻塞?7什么是异步阻塞?8什么是异步非阻塞?散仙不...
2017-03-16 09:41:00
58
转载 Tomcat启动过程[更详细]
原文地址:http://blog.csdn.net/jiaomingliang/article/details/47427083转载于:https://www.cnblogs.com/novalist/p/6554885.html
2017-03-15 16:26:00
60
转载 数据库连接池原理
DBCP连接池介绍-----------------------------目前 DBCP 有两个版本分别是 1.3 和 1.4。DBCP 1.3 版本需要运行于 JDK 1.4-1.5 ,支持 JDBC 3。DBCP 1.4 版本需要运行于 JDK 1.6 ,支持 JDBC 4。1.3和1.4基于同一套源代码,含有所有的bug修复和新特性。因此在选择DBCP版本的时...
2017-03-14 16:37:00
53
转载 Druid
参考地址1:http://blog.csdn.net/renfufei/article/details/39553639参考地址2:http://blog.csdn.net/hj7jay/article/details/51686418https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%9...
2017-03-10 17:33:00
50
转载 Spring的注解积累
需要在applicationContext.xml中注册: 如:在base-package指明一个包 <context:component-scan base-package="cn.wind"/> 也可以在<context:component-scan base-package=” ”/>中指定多个包,如:==========1...
2017-03-09 15:42:00
51
转载 spring各版本之间的特性增加
一、Spring3.0以后不再提供一个大的完整的jar包,而是分成20个小的jar包:org.springframework.aop, 包含在应用中使用Spring的AOP特性时所需的类。org.springframework.asm,Spring独立的asm程序,Spring2.5.6的时候需要 asm.jar 包,3.0开始提供自己独立的asm.jarorg....
2017-03-07 15:34:00
72
转载 ConcurrentHashMap之实现细节
ConcurrentHashMap是Java 5中支持高并发、高吞吐量的线程安全HashMap实现。在这之前我对ConcurrentHashMap只有一些肤浅的理解,仅知道它采用了多个锁,大概也足够了。但是在经过一次惨痛的面试经历之后,我觉得必须深入研究它的实现。面试中被问到读是否要加锁,因为读写会发生冲突,我说必须要加锁,我和面试官也因此发生了冲突,结果可想而知。还是闲话少说,通过仔细...
2017-03-06 19:05:00
43
转载 Java线程池
简单介绍: 创建线程有两种方式:继承Thread或实现Runnable。Thread实现了Runnable接口,提供了一个空的run()方法,所以不论是继承Thread还是实现Runnable,都要有自己的run()方法。 一个线程创建后就存在,调用start()方法就开始运行(执行run()方法),调用wait进入等待或调用sleep进入休眠期,顺利运行完毕或休眠被中断...
2017-03-06 18:47:00
58
转载 缓存
在现代系统的设计过程中,为了减轻请求的压力,通常采用缓存技术,为了进一步提升缓存的命中率,同常采用分布是缓存方案。调度模块针对不同内容的用户请求分配给不同的缓存服务器向用户提供服务。请给出一个分布式缓存方案,满足如下要求:1) 单台缓存服务器故障,整个分布式缓存集群,可以继续提供服务。2)通过一定得分配策略,可以保证充分利用每个缓存服务的存储空间,及负载均衡。当部分服务器故障或系...
2017-03-06 18:38:00
74
转载 maven常用命令
maven是java的项目构建工具,c++同学可以对比Make工具。在牛客网的机器学习课程中,课后的hadoop在线作业是基于maven构建的,这里介绍一下几个maven常用的命令,掌握好以下几个命令,就可以畅快的在牛客网上提交代码了。1.maven命令行创建工程mvn archetype:create -DgroupId=com.learn -DartifactId...
2017-03-05 12:40:00
71
转载 [转]一次使用Eclipse Memory Analyzer分析Tomcat内存溢出
一次使用Eclipse Memory Analyzer分析Tomcat内存溢出前言在平时开发、测试过程中、甚至是生产环境中,有时会遇到OutOfMemoryError,Java堆溢出了,这表明程序有严重的问题。我们需要找造成OutOfMemoryError原因。一般有两种情况:1、内存泄露,对象已经死了,无法通过垃圾收集器进行自动回收,通过找出泄露的代码位置和原因,才好确定...
2017-03-04 17:35:00
58
转载 Git命令
工作区 --> 暂存区 --> 仓库git statusgit add filegit commit -m "note" git rm a 删除暂存区git reset HEAD a .gitignore*.[oa] 以oa结尾的文件过滤*.pyc!test.pyc 不过滤该文件\!test.py 文件目录git init 仓库git add .【git...
2017-03-03 09:08:00
57
转载 MySQL索引背后的数据结构及算法原理
原文地址http://blog.jobbole.com/24006/转载于:https://www.cnblogs.com/novalist/p/6492318.html
2017-03-02 20:05:00
39
转载 老年代溢出
利用Java heap dump查找、分析问题http://autumnice.blog.163.com/blog/static/555200201143163723346/?fromdm&fromSearch&isFromSearchEngine=yes开发、应用中老是会遇到OutOfMemory异常,而且常常是过一段时间内存才被吃光,这里可...
2017-03-02 15:52:00
302
转载 排序 & 常用算法
一、快速排序QuickSort快速排序和归并排序都使用分治法来设计算法,区别在于归并排序把数组分为两个基本等长的子数组,分别排好序之后还要进行归并(Merge)操作,而快速排序拆分子数组的时候显得更有艺术,取一个基准元素,拆分之后基准元素左边的元素都比基准元素小,右边的元素都不小于基准元素,这样只需要分别对两个子数组排序即可,不再像归并排序一样需要归并操作。二、深度优先 与...
2017-03-02 15:38:00
49
转载 wms
select w.warehouse_name,p.barcode,p.product_name,ii.quantity from wms.inventory_item iiinner join wms.product p on ii.product_id = p.product_idinner join wms.warehouse w on w.warehouse_id = ii.wa...
2017-02-24 19:06:00
87
转载 大端格式 与 小端格式
1. 什么是大端,什么是小端:所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。2.为什么会有大小端:为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但是在C语言中除了...
2017-02-23 11:27:00
175
转载 mysql数据库引擎
Innodb引擎Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别,关于数据库事务与其隔离级别的内容请见数据库事务与其隔离级别这篇文章。该引擎还提供了行级锁和外键约束,它的设计目标是处理大容量数据库系统,它本身其实就是基于MySQL后台的完整数据库系统,MySQL运行时Innodb会在内存中建立缓冲池,用于缓冲数据和索引。但是该引擎不支持FULLT...
2017-02-18 17:28:00
44
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人