自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

菜鸟升职记的专栏

每天进步一小点

  • 博客(108)
  • 资源 (1)
  • 收藏
  • 关注

原创 mybatis分页插件实现分页

1.了解过程:在数据库服务器中,sql语句实现分页便要每个查询语句都要写上limit(开始,结束),并且不能灵活的随前端变化,为此使用拦截器的方法,过程:拦截器拦截请求的sql语句(根据需要拦截的ID(正则匹配),进行拦截),并对根据前端传过来的页数,和每页的条数,计算出limit(开始,结束),总条数,然后,拼接到sql语句后边。其中这个处理过程,已经封装到了,分页插件中,可以不用理解,直接使用。

2018-06-22 09:06:53 9792 1

原创 理解java中的线程池

1.引入线程池的原因 对于多线程编程,处理每个请求都要创建一个线程,这不仅要花费时间在创建线程的过程中,还会出现创建线程过多未释放导致的系统内存不足,内存溢出问题,因此引入线程池的概念。线程池,就是在一个容器中创建适量的线程,在程序访问的时候直接调用该线程即可访问。2.类比数据库连接池。 数据库连接池与线程池类似,dao层访问数据库时,首先会,加载驱动,建立连接,而每次频繁的建立连接肯定会大大降

2017-04-21 14:49:54 1546 1

原创 阿里云平台ubuntu14.04下配置jdk+tomcat+mysql

用了一下午的时间,在阿里云上配置了java web后台开发平台。 下面是具体的过程: (1)首先,在阿里云官网上买esc服务器,我买的是学生版每月10元的。 (2)下载xshell,远程终端模拟器,主要用于在windows下操作云服务器 (3)下载xftp,主要实现本地平台与远程ubuntu下的文件传输。 (4)与远程服务器建立连接,xshell下: 用root 用户

2016-11-14 19:01:25 1973 1

原创 Java多线程-Thread&ThreadPool

1. 什么是多线程编程让顺序执行的没有依赖关系的操作,并行化。从而提高减少耗时。2. java怎么启动一个线程去异步执行任务extends Thread类implements Runnable接口implements Callable接口(带返回值)3. java线程生命周期,结合Thread线程的各个方法4.java线程池概念5.java线程池怎么执行任务6.java线程池实现流程(手动写一个线程池)6.工具监控,查看当前运行的线程7.线程执行过程中抛出异常的处理...

2020-09-13 09:37:34 185

原创 《人性的弱点》阅读

1、第一章少指责批评别人2、第二章【1】真诚甜美微笑【2】稳而大气。能让别人舒服【3】尊重对方,记住对方姓名。3、第三章明天继续阅读

2019-07-15 21:42:44 235

原创 springboot及springCloud环境搭建

1、springBoot是什么?springBoot是一个简化版的服务端框架。其综合了spring springMVC mybatis 及web服务器的配置。使用目的是减少配置文件的编写。2、springCloud是什么?一种微服务框架,作用为服务治理及管理。类似octo引入spring Cloud可实现服务注册,发现,服务限流等功能。3、spring Boot替代 spring及s...

2019-06-30 16:30:33 646

原创 Mysql索引

Mysql有不同的存储引擎,其中,innoDB存储引擎使用B+树存储B+树是一颗多叉树。特点:【1】利用磁盘局部预读:每次读入磁盘一页数据,其中一页包含数据及其周围的数据。B+树利用这一特点实现每一块对应磁盘的一页。即访问B+树一层对应一次IO。【2】非叶子节点不存储数据,只存储指向叶子节点的指针【3】叶子节点存储数据2、B+树非叶子节点不存储数据原因?1、B+树索引是一个多叉树的查...

2019-05-25 22:47:05 249

原创 mysql 语句执行顺序

一、mysql语句执行时会有几部分会参与:1、连接器2、查询缓存3、分析器4、优化器5、执行器二、各部分作用:1、连接器:建立连接和客户端,并管理连接2、查询缓存:key value存储,已经查询过的sql语句会保存。(缓存重新加载,耗时)参考文章:https://segmentfault.com/a/11900000030392323、分析器:语法和词法分析,主要检测sql语...

2019-05-12 12:25:13 461

原创 mysql filesort学习

一、filesort不用索引,mysql进行其它内存中或磁盘上的排序。带来问题:多次filesort排序会影响性能。二、哪种情况引起filesort?1.order by 的key不是索引的语句2.order by 的key是索引但是mysql选择的是其它索引3.group by 例子三、怎么避免【1】强制使用order by key对应索引或强制不使用mysql选择的索引【2...

2019-03-21 23:33:47 294

原创 GC学习

1.如何查看GC日志2.GC日志分析3.触发FullGC MinorGC原因待加

2018-11-25 22:20:17 139

原创 这是一条记录

上班对一些环境的熟悉记录(只记录一些比较特殊的): 1.maven安装时替换成公司的setting.xml文件,maven命令深入练习 2.mysql的客户端Selquel pro 3.cat的本地配置 4.仓库几条命令的熟悉 5.缓存框架squrrel 6.km熟悉 7.octo平台...

2018-06-19 18:46:25 176

原创 https传输的理解

1.对称加密(单密钥) 对称加密就是通信双方在通信的过程中用同一秘钥进行加解密。 2.非对称加密(密钥对) 非对称加密就是A->B通信的过程中,A用私钥对数据进行加密,B获得加密后的数据后用公钥进行解密。 在这之前A先给B传输了私钥对应的公钥。 3.非对称加密带来的问题(数据截获) 在用非对称加密进行A->B通信的过程中,A对B传输公钥的过程中,被中间人截获换成自己的公钥传...

2018-03-15 10:27:04 387

原创 关于java8新特性的一些总结

以前找工作时,看了java8新特性,不能深入理解,感觉只是看了个皮毛,今天再看了一遍,多了些新的理解: 1.Lambda表达式 优化的问题: 主要在减少代码编写方面进行了优化,主要减少了什么代码的编写,看例说明? java7与java8的对比package test;@FunctionalInterfacepublic interface MyWorld { void...

2018-03-12 16:00:49 591

原创 mysql数据库插入时更改数据

1.ignore字段解释:mysql插入数据时遇到具有相同主键或者相同唯一索引的字段就忽略插入。 用法 : insert ignore into user valus();2.replace字段 解释:replace字段是遇到主键或者唯一索引相同的数据就删除,然后插入要插入的数据,否则直接插入。 用法 : replace into user values();

2018-01-07 20:58:18 746

原创 java中单链表的操作

1. 1.1 问题描述: 单链表删除链表中的一个已知节点,要求:时间复杂度O(1) 1.2 解决描述: 假如删除的节点为del,其下一个节点为del.next 将del.next的值给del,删除del 1.3 需要考虑: <1>当链表的长度为1时,返回null; <2>当del没有下一个节点时,即要删除的节点为尾节点,需要依次遍历找到其前驱节点,然后删除。 1.4 代码:pack

2017-09-03 20:38:58 761

原创 工厂设计模式及理解

1.简单工厂设计模式 一个静态工厂类,根据传入的product的名称不同,返回不同的product,一个工厂可以生产多种类型的产品。public interface Product { public void create();}public class ProductA implements Product { @Override public void create(

2017-08-19 14:14:23 532

原创 筛选法求素数

package 素数总结;import java.util.Arrays;/** * @author wangpei * @version 创建时间:2017年8月15日 下午9:16:18 * 求1-n间的素数个数 * 素数:只有1和他本身两个因子的数字 * 不包含1 * * 筛选法:若一个数是素数,则其倍数必不是素数,标记其倍数为非素数,最终得到的未被标记的即为素数 */

2017-08-15 22:43:42 277

原创 tcp粘包,断包问题及处理

做过一个五子棋大作战游戏,当时用socket长连接在人人联网对战时进行处理,但在游戏过程中总会出现两个下棋的人接收不到对方棋子的落点的信息,这就是典型的出现了tcp粘包问题。 下来进行具体说明。 1.理解Nagle算法 当发送方每次发送的数据包都比较小时,而这种小的数据包又比较多时,就会导致网络拥塞,瘫痪,为了处理这种问题引入Nagle算法。Nagle算法:发送方首先会发送第一个小数据包,并将

2017-08-13 23:53:31 2571

原创 理解B树,B+树

1.B树 一种多叉平衡搜索树,左子树关键字的值大于右子树关键字的值,非叶子存储数据(或指向数据的指针) m阶B树主要满足: <1>树中每个节点至多含有m个孩子 <2>除根节点,叶子节点,其余节点至少有【m/2】(向上取整)个孩子。 <3>根不是叶子节点,根至少含有2个孩子。 <4>所有叶子节点均在同一层。 <5>k个子节点的分支节点有k-1个关键字。 一般结构: n p0 k0 p

2017-07-31 09:36:46 496

原创 jvm中锁的优化

除了上一篇提到通过锁膨胀来对锁机制进行优化外,还存在: 1.自旋锁(轻量级锁中用到了) 线程未获得资源时,不直接阻塞,而是通过执行一段空循环,来等待锁释放,然后获取锁,若执行了指定的循环次数后,线程还是没有获得锁资源,会被挂起。这种适用于不是很多线程,每个线程的执行时间很短。2.自适应自旋锁 是对自旋锁的优化,通过前一个线程在该锁上的自旋时间和锁拥有者的状态来决定自旋次数3.锁消除 当不存在

2017-07-22 09:43:03 286

原创 java synchronized锁的理解

mark word:存储对象的hashcode或锁记录的信息, 对象头包括:锁状态,是否是偏向锁,锁标志位 1.锁状态分类:无锁状态,偏向锁状态,轻量级锁状态,重量级锁状态。 <1>偏向锁:为了解决,在获得锁时,存在同一个对象,对锁的多次获取,释放,避免CAS操作而做的优化。 偏向锁的获得锁过程: (1)检测mark word是否为可偏向状态,即是否为偏向锁为1,锁标志位为01. (2)

2017-07-22 08:56:52 358

原创 java BIO,NIO在单服务器,多客户端通信上的应用

1.BIO,即传统的阻塞式io方式 下面是具体的例子: server:package 多线程实现socket阻塞式通信;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.Out

2017-07-19 10:22:28 377

原创 理解spring任务调度timer,Quartz,spring task

1.timer 指调用java.util.timer类来调用一个java.util.TimerTask的任务来实现每隔多长时间运行一次。 注意:timer不能实现在指定时间来运行。例如明天的2:00运行任务,不能实现。 spring-context中集成了timer调用所需的类,所以只需要拿来使用即可。 下面是具体的做法: <1>定义基础类Timetest,里面的run方法,就是你要定时执

2017-07-17 16:14:31 422

原创 理解同步与异步,及java中实现同步机制的方法

线程间的同步访问线程同步机制是解决多线程访问共享资源时导致的内存不一致问题。 一般说到的hashmap是异步的,HashTable是同步的,是说hashmap是线程不安全的,hashtable是线程安全的。线程同步访问的方法: 1.加锁 2.volatile 3.ThreadLocal 4.wait(),notify()/await(),singal()同步/异步 同步:发送一个请求,需

2017-06-11 14:39:46 1453

原创 java范型的理解

1.概念 java中类型的参数化,用一个变量来表示某种类型。2.引入泛型解决的问题 <1>在编译期间进行类型检查,避免出现classCastException(类型转换异常) <2>避免进行强制类型转换 <3>避免重复代码的编写,实现复用。3.泛型在集合类中的的应用 对于ArrayList: 不使用泛型时,此时默认是Object类型:public class Test1 { pu

2017-06-10 13:26:43 253

原创 nginx实现负载均衡

nginx实现负载均衡只需要修改一下配置文件: upstream localhost { server 112.74.46.45:8080 weight=1 max_fails=2 fail_timeout=30s; server localhost:8080 weight=3 max_fails=2 fail_timeout=30s;} server {

2017-06-09 21:04:51 297

原创 nginx负载均衡算法

1.轮询 默认负载均衡算法 每个请求按顺序给不同的后台服务器,若有一台服务器down掉,就去掉,继续轮询。2.配置不同的权值 upstream test { server 192.168.1.32:81 weight=1; servse 192.168.31:80 weight=10; } 每个后台对请求的处理比率是1:103.ip_hash 每个ip对应的hash结果对应一个后台服

2017-06-09 19:42:52 399

原创 memcached缓存与mybatis的整合

1.添加依赖 <dependency> <groupId>org.mybatis.caches</groupId> <artifactId>mybatis-memcached</artifactId> <version>1.0.0</version> </dependency>2.在dao层的xml文件中添

2017-06-07 10:26:05 2109

原创 springMVC接收前端json数据的总结

对于json对象类型(即JsonObject)的数据,springMVC主要有以下几种方式接收: 1.通过Map接收@RequestMapping(value = "/getAllStudio" ) public void getAllStudio(@RequestBody Map<String, Integer> map ) { JSONObject json = ne

2017-06-03 22:21:02 5978 1

原创 Mybatis常用查找的总结

1.添加数据返回自增的字段<!-- 添加演出厅信息 --> <insert id="addStudio" parameterType="Studio" useGeneratedKeys="true" keyProperty="studio_id" > insert into studio (studio_name,studio_row_count,studio_col_co

2017-06-03 00:28:13 318

原创 二叉树的各个考点

1.判断a树是不是b树的子树package 树;import java.util.ArrayList;import com.java.util.TreeNode;/** * @author wangpei * @version 创建时间:2017年5月21日 下午2:47:33 判断a树是不是b树的子树 */public class 判断a树是不是b树的子树 { static Arr

2017-05-22 19:46:23 819

原创 数组中出现次数第k多的数字(求次数前k多的问题)

1.思路;先定义一个map<Integer,Integer>,key:数组元素,value;该元素出现的次数。 挨个添加进map中,求出每个元素对应的出现次数。 但有一个问题:map是无序的,如何对其value排序? 将map.entry放入list中,对每一个entry中的value排序。List<`Entry<Integer,Integer>> list = new ArrayList<E

2017-05-16 00:23:38 2884

原创 java 设计模式之模板方法模式

模板方法模式:定义一个具体的框架(抽象类),每个子类调用该框架,加入自己的实现。 具体例子:package com.java.模版方法模式;/** * @author wangpei * @version 创建时间:2017年5月12日 下午8:35:00 类说明 ,封装变与不变, */public abstract class RefreshReverage { /* 封装所有子

2017-05-13 09:40:56 254

原创 java设计模式-策略模式

定义:定义一系列的算法,将它们封装起来,且这些算法具有一定的相似性,通过接口访问它们时可以相互替换。 理解:就是说对于不同的策略,有不同的具体实现方法,这些具体实现方法继承自同一个接口,业务逻辑层通过接口访问具体实现方法。 几种类型的类 1.抽象策略类(具体实现的抽象接口层) 2.具体策略类(实现抽象策略类,具体实现层) 3.场景角色类(关联抽象策略类,业务逻辑层) 具体应用 1.抽象

2017-05-07 16:40:21 292

原创 java实现文件上传下载至ftp服务器

以前做的一个项目,用到了文件上传下载至ftp服务器,现在对其进行一下复习,比较简单,一下就能看明白。 环境:首先,先安装ftp服务器,我是在win8本地用IIS配置的,比较简单,百度一下就可以找到安装文档。 1.在你的项目目录下建立ftp配置文件,目录如下图01 ftpconfig.properties:ftpIp=10.73.222.29ftpPort=21ftpUser=WPftpP

2017-05-06 23:03:30 8656 4

原创 理解java代理模式

1.java反射机制 理解代理模式的前提是先理解java中的反射机制,先看一个例子: JDBC加载驱动时,Class.forName(“com.mysql.jdbc.Driver”); 此时通过反射加载连接mysql数据库的jar包,该句等价于import com.mysql.jdbc.Driver; 可是为什么不直接导入呢?这就是反射设计的合理之处了。 <1>,用反射可以在运行时动态导入

2017-04-22 18:11:26 4327 1

原创 wait,notify,非阻塞队列实现生产者,消费者模型

import java.util.PriorityQueue;/** * @author wangpei * @version 创建时间:2017年4月20日 下午5:01:44 生产者消费者模型的wait,notify实现 */public class ShengChanZhe { private int size = 10;// 初始化非阻塞队列的长度为10 Priori

2017-04-20 17:20:08 394

原创 理解java阻塞队列BlockingQueue

java阻塞队列是一个支持阻塞的插入,移除的队列。 阻塞的插入:向队列中插入元素时,若队满,则队列会阻塞插入的线程。 阻塞的移除:移除队列中的一个元素时,若队空,则队列会阻塞移除的线程。直至队列非空。从上图中可以看出,阻塞队列的所有实现类有: 所有已知实现类: ArrayBlockingQueue, DelayQueue, LinkedBlockingDeque, LinkedBlocki

2017-04-20 15:39:08 453

原创 mysql中的group by,having,order by,where用法

1.group by:对查询结果按指定列进行分组, 2.having:对分组进行筛选, 3.where:条件作用于基本表或视图。 例子: 在车位表中,查找多于两个空车位(车位状态为0)的停车场的id信息select park_id from carspace where carspace_status=0 group by park_id having count(1)>2;解释: 首先,

2017-04-19 18:50:53 420

原创 mysql外连接的总结

1.左连接(左外连接)left join(left outer join)select * from table a left join table b on a.id=b.id;2.右连接(右外连接)right join(right outer join)select * from table a right join table b on a.id=b.id;区别:左连接以左边的表为基准,若

2017-04-19 18:28:38 382

过滤器实现鉴权

过滤器实现分目录权限控制 servlet+jsp 没加数据库

2016-11-20

空空如也

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

TA关注的人

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