自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (11)
  • 收藏
  • 关注

原创 java里面的锁详解

1、为什么要用锁      在了解为什么要用锁之前需要了解两个概念,线程安全和线程不安全,线程安全指的是多个线程对共享变量访问时的结果和单线程下顺序对共享变量访问的结果是一致的,是符合预期的;而线程不安全指的是多个线程对共享变量访问的结果每次都是不确定的。为了保证线程安全这里又几种方法,第一个不用共享变量,各自用各自的变量就不会有线程...

2018-10-31 15:11:29 5308

原创 HashMap 的常见用法及对应源码详解

1、介绍HashMap是一个散列表,存储的内容是键值对(HashMap),存储结构由数组加单向链表组成的,如图: 2、使用这里说明一些hashmap的用法和对应的源码解析,这里使用的的jdk1.7版本。 1、定义HashMap<String, String> hashMap = new HashMap<>();HashMap<Stri

2018-10-31 15:11:22 404

原创 JAVA内存区域

1、运行时数据区     java运行时数据区可以分为以下几个部分,程序计数器,虚拟机栈,本地方法栈,堆,和堆中的方法区。如下图所示: 其中程序计数器、本地方法栈和虚拟机栈是线程私有的,方法区和堆是线程共享的,其中方法区是堆的逻辑组成部分。 1.1、程序计数器  &n

2018-10-31 15:11:11 2324

原创 java类加载机制

1、类加载过程     类的生命周期如下图所示: 可以看到类的生命周期包含了加载、验证、准备、解析、初始化、使用、卸载七个步骤,其中验证、准备和解析可以叫做一步连接。其中类的加载过程是前面的步,加载、验证、准备、解析和初始化。接下来详细介绍每个步骤要干的事情。首先是加载,加载要完成三件事情,首先将通过一个类的全限定名获取到类的class文...

2018-10-31 15:11:03 4051

原创 代理模式

1、静态代理     代理模式是客户不直接访问到委托类,实现与委托类之间的解耦,并且代理类可以给委托类添加一些额外的功能例如日志、权限等。静态代理是指代理类是在编译阶段就生成class文件的代理模式,工程结构如下: 第一个包中是动态代理用到的日志类,第二个包中委托类和静态代理类,第三

2018-10-31 15:10:56 207

原创 java多线程编程详细入门教程

1、概念     线程是jvm调度的最小单元,也叫做轻量级进程,进程是由线程组成,线程拥有私有的程序技术器以及栈,并且能够访问堆中的共享资源。这里提出一个问题,为什么要用多线程?有一下几点,首先,随着cpu核心数的增加,计算机硬件的并行计算能力得到提升,

2018-10-31 15:10:49 41380 6

原创 java线程池详细入门教程即源码解析

1、线程池概念     线程池是线程的集合,通过线程池我们不需要自己创建线程,将任务提交给线程池即可。为什么要使用线程池,首先,使用线程池可以重复利用已有的线程继续执行任务,避免线程在创建和销毁时造成的消耗。其次,由于没有线程创建和销毁时的消耗,可以提高系统响应速度。最后,通过线程可以对线程进行合理的管理,根据系统的承受能力调整可运

2018-10-31 15:10:41 2861

原创 CocurrentHashMap实现原理及源码解析

1、CocurrentHashMap概念     结构图: 2、CocurrentHashMap与HashMap区别3、通过源码分析CocurrentHashMap的实现

2018-10-31 15:10:34 18962 1

原创 JVM垃圾回收

1、哪些数据是垃圾     java语言和C/C++很大的不同就是后者是程序员自己管理内存,自己开辟内存空间和释放内存空间,而java是虚拟机来管理内存,由虚拟机对内存进行开辟和释放。首先,java栈中的数据是根据方法的调用出栈和入栈的,一般不用虚拟机回收,方法区中的数据大多是一些描述信息,常量等,一般情况也不用回收,而频繁需要回收

2018-10-31 15:10:26 133

原创 剑指offer二叉树题型解析

题目四:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。...

2018-10-31 15:10:18 200

原创 spring学习之IOC的学习

1、xml配置文件模板创建一个applicationContext.xml的文件,内容如下:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/sch

2018-10-31 15:10:02 308

原创 springmvc学习

1、Springmvc框架原理springmvc的框架原理以及通过框架原理进行配置在我的另外一篇博客中已经进行了详细的讲解:Springmvc工作原理及通过原理进行配置 这不多介绍,直接介绍一些常见的只是使用。 2、redirectredirect叫做界面的重定向,也就是浏览器重新进行界面跳转,页面的url会改变。在spring中的用法: @RequestMappin...

2018-07-25 10:50:38 211

原创 mybatis学习

1、mybatis框架介绍首先看框架结构图: 如图所示:使用通过mybatis访问数据库首先需要一个SqlSessionFactory来创建SqlSession,而SqlSessionFactory的创建需要mybatis的配置文件,这个配置文件中配置了数据源、数据库事务等mybatis的运行环境以及映射文件(在后面整合了spring后数据源、事务、映射等重要信息基本都在spring中配...

2018-07-23 10:41:10 304

原创 Spring学习之AOP

1、AOP的概念AOP全拼Aspect Oriented Programming,意思是面向切面编程,是对面向对象编程的一个补充,AOP是由动态代理实现,将那些与业务无关却被多个业务共同调用的逻辑给抽取和封装起来,形成切面。常用的地方如权限检查,日志输出等情况。如图: 2、AOP的注解配置第一步编写切面类:public class LogInterceptor { ...

2018-07-18 16:37:15 229

原创 spring学习之环境搭建

1、maven工程创建 这样便创建完成。 2、pom文件配置pom文件中主要添加spring的jar包,测试类jar包,jsp servlet的jar包具体文件如下:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins...

2018-07-17 10:28:14 169

原创 HashMap的死循环解析

HashMap死循环问题图解     在HashMap的数组真实长度达到阈值后,会调用扩容方法: void resize(int newCapacity) { Entry[] oldTable = table; int oldCapacity = oldTable.length; i...

2018-05-16 15:17:15 3842

原创 单例模式

1、懒汉式     懒汉式实现代码:class Singleton2{ private static Singleton2 singleton2 = null; private Singleton2(){} public static synchronized Singleton2 getInstance() {...

2018-05-08 10:10:25 154

原创 工厂模式

1、简单工厂模式     简单工厂模式即是将我们之前需要自己新建的对象,通过工厂来产生,并且每个产品对应着一个工厂。实现如下,首先看工程结构: 第一个包里面包含了一个工厂接口和两个不同产品的工厂,第二个包里面包含了一个移动的接口和两个移动的实现类。最后一个包是测试:Factory factory = new CarFactory(...

2018-05-07 23:15:37 160

原创 HashSet 的常见用法及对应源码介绍

1、介绍HashSet是一个没有重复元素的集合,无序的,他事通过HashMap实现的,所以他也是线程不安全的。接下来介绍使用。 2、使用1、构造方法HashSet<Integer> hashSet = new HashSet<>();HashSet<Integer> hashSet2 = new HashSet<>(20);Ha...

2018-04-04 09:40:02 709

原创 队列

1、介绍同栈一样,队列也是一种线性存储结构,先入先出(FIFO),队列只能在队尾执行添加操作,在队头进行删除操作。 2、数组实现(可以存任何类型)①、接口interface Queue<T>{ public void push(T data); public T pop(); public T peek(); public bool...

2018-04-03 23:20:33 121

原创 链表

1、链表的介绍链表是一种线性存储结构,拥有n(n>=0)个同类型的元素组成,链表中的元素通常包含数据和一个或两个指向其他节点的引用。 2、java实现单向链表(可以存储任意类型)首先写一个通用的接口:interface Link<T>{ public void addFirst(T item); public void addLast(T ite...

2018-04-02 11:16:03 132

原创

1、介绍栈是一种线性存储结构,栈中的数据是按照“后进先出”(LIFO)的规则进出栈的。栈有三种操作,peek,获取栈顶元素,pop将栈顶的值弹出,push,存入新值到栈顶。在添加和删除元素时只能在栈顶进行操作。 2、用数组实现(能存任何类型的数据) ①、接口interface Stack<T>{ public T pop(); public bool...

2018-04-01 19:35:33 148

原创 java基础学习之函数、数组

1、函数1、函数的定义 函数是定义在类中有特定功能的一小段程序,也称方法。定义格式: 修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2, ) { 执行语句; return 返回值; } 2、功能 定义函数可以对功能代码进行封装,提高代码的复用性,减少代码的重复度,提升程序的可读性。函数只有被调用时才会执行。 3、函数的重载 同一个类中可以允许出现同一个...

2018-03-31 14:47:09 170

原创 LinkedList 的常见用法及对应源码介绍

1.介绍      LinkedList是对一个双向链表的封装,在链表的基础上实现了增、删、改、查等功能,容量也是动态增加,LinkedList继承于AbstractSequentialList类,实现了List接口(可进行队列操作)、Deque 接口(可作为双端队列)、Cloneable(可以克隆)、Serializable序列化接...

2018-03-30 20:05:33 423

原创 ArrayList 的常见用法及对应源码介绍

1、介绍      ArrayList其实就是对数组的封装,在数组的基础上实现了很多功能,增删改查等,是一个动态数组,它继承了AbstractList抽象类,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。 2、使用   ...

2018-03-29 17:29:29 345

原创 java基础学习之语言基础二

1、运算符1.1、算数运算符       常用的有加减乘除,然后还有取模(取余数),自增,自减,和字符串相加。 这里取模对于正数的取模都很好理解 对于负数的取模如果被模数为负数可以忽略负号,对于被模数为负数则结果再加个负号即可: 自增有两种a++和++a,前面一种是先用再加,后面是先加在用: 字符串相加能将非字...

2018-03-28 00:12:10 238

原创 java基础学习之语言基础一

1、java语言基础       java语言基础主要有一下几个部分,通过图片表示: 下面对这这几个部分依次学习。 2、关键字       关键字是java语言中赋予了特定含义的单词,字母都是小写的.有以下这些: 注意main不是关键字。 3、...

2018-03-27 00:01:23 4537 1

原创 Dubbo介绍及使用教程

1、dubbo是什么Dubbo是阿里巴巴开源的一个高性能的分布式服务框架,使得应用可以通过高性能的RPC实现服务的输入和输出,并且是soa服务治理方案,和spring框架无缝衔接。2、rpc是什么Rpc(Remote Procedure CallProtocol),远程过程调用协议,基于这个协议我们可以通过网络从远程计算机调用服务,并且不需要了解网络底层技术,能够为dubbo实现远...

2018-03-20 16:12:30 4098

原创 ActiveMQ详细入门使用教程

ActiveMQ介绍     MQ是消息中间件,是一种在分布式系统中应用程序借以传递消息的媒介,常用的有ActiveMQ,RabbitMQ,kafka。ActiveMQ是Apache下的开源项目,完全支持JMS1.1和J2EE1.4规范的JMS Provider实现。 特点: 1、支持多种语言编写客户端 2、对spring的支持,很容易和spring整合 3、支持多种传输协议:TCP,

2018-01-22 15:47:12 99268 19

原创 solrcloud入门详细使用教程

一、solrcloud介绍      solrcloud是solr提供的分布式的搜索方案,当我们需要大规模,容错,分布式搜索和索引时使用solrcloud。当系统的索引量少,请求并发性低的时候不需要用到solrcloud。solrcloud是基于solr和zookeeper的分布式搜索方案,使用zookeeper作为集群的配置信息中心。 特色功能: 1、集中式的配置信息。 使用ZK进行集

2018-01-19 17:16:52 1616

原创 solr入门使用教程

一、solr介绍     solr是基于Lucence搜索引擎的搜索服务器。lucene是一个搜索库,不是应用程序,solr对lucene进行了包装拓展,提供了比lucene更加丰富的查询语言,同时实现了可配置、可拓展并对查询语句进行优化,还提供了非常完善的功能界面。 Solr的特性包括: 1、高级的全文搜索功能 2、专为高通量的网络流量进行的优化 3、基于开放接口(XML和HTTP)

2018-01-19 15:38:51 308

原创 redis入门使用教程

1、简介1.1、特点    redis是一个开源的key-value存储系统,支持多种数据结构,包括:String,hashes,lists,sets和sorted sets。redis将数据存储于内存中,在内存不足的时候使用虚拟内存来保存数据,redis又两种持久化方案: 1、定时将当前缓存数据存到硬盘。(默认) 2、aof形式:把所有对redis 的操作命令存储到文件中,恢复时使用。 re

2017-12-26 22:17:10 1371

原创 淘淘商城之商品添加功能实现

1、功能分析将表单中的数据提交到服务器中,查看item-add.jsp文件,核心表单如下:<div style="padding:10px 10px 10px 10px"> <form id="itemAddForm" class="itemForm" method="post"> <table cellpadding="5"> <tr>

2017-12-21 15:34:14 791

原创 淘淘商城商品类目选择的实现

1、效果展示2、功能分析观察我们的item-add文件中可以看到选择类目事件绑定的class: 在这个图片中我们看到,这个事件是在我们的类目组件中执行的,并且会访问到“/item/cat/list”这个url,然后这个组件又是在哪里初始化的呢: 可以看到taotao里面有个init方法会初始化类目选择组件,最后再在我们的item-add里面看: 在item-add页面加载完

2017-12-21 11:28:49 679

原创 分页插件pagehelper的使用

1、说明pagehelper是mybatis 提供的分页插件,目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库。2、使用方法第一步:把pagehelper所需用到的jar包添加到工程中,官方提供的代码对逆向工程支持不好,这里采用网上大神所修改后的工程,下载地址:pagehelper分页插件下载到maven本地仓库后便可以使用,或者直接下载我

2017-12-21 10:07:32 12189 2

原创 Springmvc工作原理及通过原理进行配置

Springmvc框架介绍    Springmvc是spring框架的一个模块,springmvc和spring不需要通过中间层进行整合,这样使用起来方便许多,springmvc是一个基于mvc的web框架。工作原理原理图: 步骤: 1、 request请求 2、 前端控制器dispatceServlet接收请求 3、 查找handler(通过处理器映射器handleMapper

2017-12-05 20:15:34 818

原创 spring三种常用注入方式的测试与总结

spring三种常用注入方式 setter方法注入 字段注入(注解实现) 构造器注入1、setter方法注入创建一个接口:public interface Axe { public String chop();}创建一个实现类:@Component("SteelAxe")public class SteelAxe implements Axe{ public S

2017-12-01 14:00:50 5756

原创 SSM框架搭建

1、web工程启动 pom文件中需要配置tomcat插件来启动web工程,代码如下: <build> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifa

2017-11-29 21:38:37 389

原创 Maven工程搭建

1、Maven打包类型1.1 jar包    jar包包括了java普通类,资源文件和普通文件,在maven工程中主要是 中的文件1.2 war包     war包中包含了整个web工程,包括java类,配置文件,jsp,js等静态文件。1.3 pom打包     pom打包主要适用于全体的父工程,用于管理jar的版本号2、 工程搭建2.1 父工程(pom包)     首先新建一个空白的m

2017-11-28 10:53:55 246

原创 BMX055驱动日记

上一篇提到过位域的问题,而我学习位域主要是,运用在BMX055的驱动上,这篇博客讲讲怎么驱动BMX055,BMX055是一款九轴传感器(包含陀螺仪,加速度计和地磁计)。用店家的例程时候发现数据完全不对,但是至少出来了数据,说明I2C部分是对的,于是我把原工程的I2C部分保留了下来,其余部分准备自己翻看手册来写。翻看手册后,大概看了一下,前面一大堆讲的是芯片特性,各种模式,中断配置等等,由于之前使用

2016-08-31 19:24:09 8437 6

静态代理动态代理测试,模拟jdk实现动态代理

本工程是对静态代理,动态代理的测试,并且实现了对jdk动态代理的简单模拟!

2018-05-08

工厂模式的测试并有spring ioc的简单实现

工厂模式几种类型的测试,并有spring ioc 的简单实现!

2018-05-07

dubbo使用测试

dubbo的使用测试程序,可以参考一下!!!!!!!!!

2018-03-20

centos搭建的redis伪集群

centos搭建的redis伪集群,3主3从,可以直接使用!!!!

2018-01-22

centos搭建solrcloud集群

centos下搭建好solrcloud集群,可以直接使用!!!!!!

2018-01-19

centos搭建的solr服务器

centos搭建的solr服务器下搭建好的solr服务器,可以直接使用!!

2018-01-19

redis伪集群虚拟机

搭建好的redis伪集群虚拟机,6个节点,3主3从,可以直接使用!

2017-12-26

pagehelper 分页插件jar包

pagehelper 分页插件jar包,可以直接使用!!!!!!

2017-12-21

pagehelper修改版

修改后对逆向工程完美支持!!!!!!!!!!!!!

2017-12-21

springmvc简单实现版本

springmvc注解版本和非注解版本的简单实现!!!!!!!

2017-12-05

mybatis逆向工程代码

mybatis逆向工程所需代码,可以直接使用!!!!!!!!!!!!

2017-11-28

空空如也

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

TA关注的人

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