自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ZZBoss

一点点笔记

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

原创 Mybatis 一级缓存与二级缓存(用例测试)

一级缓存:Mybatis 一级缓存作用域是一个sqlsession(缓存属于当前会话独享),即一次sqlsession从打开到关闭,这个过程中,重复的查询语句只执行一次,第一次查询会将结果放入一级缓存,sqlsession关闭之前,重复的查询语句将直接读取缓存。 当发生增删改操作时,在事务commit前会先清空sqlsession的缓存数据(此时清空的只是当前sqlsession的缓存,其他...

2018-09-14 16:40:38 764 1

原创 List 与 Set

一、简介List 与 Set 是两个常用的容器接口,其中List的特点是有序,Set的特点是元素唯一。 常用的List实现有ArrayList、LinkedList、Vector。 常用的Set实现有HashSet、LinkedHashSet、TreeSet。二、List实现1、ArrayList: ArrayList底层由数组实现,因此查询效率很高,而对于插入删除操作,需要...

2018-08-31 16:55:39 301

原创 Java 自动拆装箱与缓存浅析

简介自动拆装箱就是jvm隐式的将java中的基本数据类型与包装类型进行转换的过程,大大简化了我们的编码。 小例子:public class TestAutoUnpacking { public static void main(String[] args) { int i1 = 10; Integer i2 = 10; Intege...

2018-08-21 17:16:42 335

原创 Spring (二)扫描与依赖注入

一、包扫描前文中配置类里显示的构造了类对象,而创建bean还有一种更为简便的方式,即包扫描,仅需在配置类上添加@ComponentScan,即可扫描当前配置文件所在包及子包下的类,将带有@Component注解的类创建并注入到Spring容器中。package com.zdg.beanfit;import org.springframework.context.annotation.A...

2018-08-16 16:25:41 297

原创 Spring (一) Bean创建与周期函数

简介本文记录学习Spring的Bean装配过程(基于Spring4以上)。一、配置文件装配bean需要一个配置类,该类只需要添加@Configration注解即可:@Configurationpublic class MyConfig { @Bean public Dog createDog() { return new Dog(); ...

2018-08-15 17:22:07 161

原创 String源码学习

简介String 是 由 final 声明的一个不可被继承的类,其值在初始化后便不可更改。属性 private final char value[]; private int hash; // Default to 0value属性就是String类的核心,一个String字符串本质就是一个char类型的数组,另外hash属性则是用于比较的优化,后面的注释是指...

2018-08-13 16:59:17 199

原创 Java编译与反编译

一、Java编译原理Java 源代码编译执行的过程: 如图所示:1、.java到.class的编译第一行为java源程序编译为class文件的过程,其中,词法分析是将java文件一个字符一个字符读入,将其转换为标记序列,如:括号可以识别为一个标记,但该标记并不判断是否有与其匹配的括号。 语法分析则是分析程序语法是否正确,括号是否正确匹配,关键词书写的正确性,程序格式是否正确...

2018-07-27 16:34:01 1014

原创 Java常用命令(二)jstat、javap

一、jstatjstat用于查看虚拟机各种状态信息。 通常格式为jstat -option pid [interval] [count]: option:功能选项,用于选择查看不同的状态信息; pid:进程号; interval:输出间隔时间; count:执行次数;1、jstat -class pid 图中Loaded代表类装载数,Unloaded代表类卸载数,两个B...

2018-07-12 16:38:35 305

原创 Java常用命令(一) jps、jstack、jmap

一、jpsjps由jdk1.5提供,用于查看当前用户下的java进程的pid及基本信息1、jps -helpjps的帮助命令,可用jps -h代替: 2、jps -m查看进程pid及main方法参数: 图中 5940 是我的eclipse进程;18648是jps进程,他的main方法参数就是-m;27800是我启动的hbuilder软件;47852是我运行的测试...

2018-07-11 18:03:39 10598 1

原创 Java的类加载机制

一、简介Java的类加载就是JVM将.class文件加载到内存中,根据其二进制数据初始化类基本信息的过程。注:当编译完成后(执行javac后),将.class文件移除,如果程序中并未真正用到该类,或是仅声明未使用,如:Preson p;,则程序将正常运行,如果源程序中为Person p = new Person(),则程序将抛出ClassNotFoundException。这是因为在JVM加载...

2018-07-06 12:11:04 157

原创 Java数据结构(二)二叉查找树

一、描述:二叉查找树是二叉树的一种,但它要求一个节点的左子节点小于该节点,右子节点大于该节点,因此二叉查找树里存储的值必须是可比较的。二、代码实现:以下是一些暴露的public方法,大多数都调用私有方法实现。 另外还有一个隐藏的嵌套节点类。public class BinarySearchTree<T extends Comparable<? super T>&...

2018-07-05 15:36:31 176

原创 JVM解释器与即时编译

1、解释器JVM可以加载字节码即.class文件,然后边翻译边执行,因而被称为解释型编程语言(但是解释的过程就是编译一条机器码执行一条,且JVM中存在即时编译器编译热点代码,所以也被成为半解释半执行的编程语言)2、即时编译(Jit)JVM中还存在着即时编译器优化代码执行,HotSpot中的即时编译器分为client模式与server模式,又称为c1、c2编译器(jdk1.7默认serv...

2018-07-04 17:58:45 846

原创 Java 垃圾回收

一、垃圾回收算法1、引用计数:每个对象每增加一个引用,则引用计数器加1,当计数为0时被判定为可回收对象,但对于循环引用无法处理。2、标记清除:从根对象开始标记所有可达对象,其余对象清除。但此时清除后的空间会产生大量内存碎片,如:a、b、c三块连续内存中,可能b被清除而a、c中有存活对象,则一些大对象的存储效率会降低。 根对象一般为方法区中的静态变量、常量以及方法栈的栈帧中局部变量...

2018-07-03 21:40:07 176

原创 Java对象模型

简介Java对象模型描述了java对象在JVM中的具体表现形式,在HotSpot(一种Java虚拟机)中使用了oop-klass 模型来实现了java对象在JVM中的存储。一、oopJava创建出来的对象存于堆中,而这个对象具体分为三部分:_mark:存储对象的一些标记(如是否加锁,加锁次数)meta_data:存储指向元数据的指针field:对象本身携带的数据其中_m...

2018-06-29 17:35:32 1635

原创 Java数据结构(一)双端链表

一、介绍双端链表需要链表中的每个节点持有一个前置节点和一个后置节点的引用及本身的值,链表中包含一个头节点和一个尾节点,这两个节点仅作标识使用,本身只含有对后置节点或前置节点的引用,不含值。如图所示 图中pre代表前置节点,next代表后置节点,val则是本身的值。插入操作分析如图所示: 做插入操作时,需要把当前节点前置节点指向原节点的前置节点,当前节点的后置节点指向原节...

2018-06-28 18:02:30 285

原创 Java内存模型

一、前置知识介绍1、顺序一致性模型一种计算机理论模型,要求程序必需按照顺序执行,多线程是保证所有线程(无论是否同步)能看到相同的执行顺序,每个操作具有原子性。如图所示: 两个线程的操作通过顺序一致性模型可能会按图中操作执行,总体执行顺序交叉,但对于每个线程自身的操作保持顺序一致,且每个线程都能看到相同的如图所示的执行顺序。2、重排序重排序是编译器、处理器对程序执行的优化,...

2018-06-28 12:01:18 134

原创 JVM内存结构

jvm主要分三部分:堆、栈、方法区一、栈栈属于每个线程私有的,包含jvm栈和nativa栈和程序计数器,主要用来存储方法执行过程中需要的信息。1、jvm栈与native栈jvm栈与native栈功能相同,都是用于执行方法,区别在于jvm栈用于执行java中的方法函数,而nativa栈用于执行本地方法。 栈是由多个栈帧组成,即每个线程调用多个方法,产生对应的栈帧,栈帧结构主要有局部...

2018-06-25 10:13:53 118

原创 JS原创小游戏 旋转方块2.0(源码)(游戏旋转后很难哦)

一、介绍 点击随机生成左图会随机出现白点,同时两图的方格点击都会使方格变色,右图每次点击会顺时针旋转90度,点击左图旋转按钮,左图会开启旋转动画,相比上一篇,这次游戏添加了动画效果,随机生成题目等功能,另外位置提示信息也取消了,改为方块右下角添加了圆角。 可复制粘贴运行试试,不需要图片资源哦(玩游戏注意了!!!过关后位置信息不重置!!!)。二、游戏规则:两图形状相同则过关(注意右下...

2018-03-06 09:23:58 432

原创 JS原创小游戏 旋转方块(源码)

一、介绍游戏规则:有两个大方块,由n*n的小方格组成,初始都为黑色,点击方块会在黑白间切换颜色,左边的方块用于自定义题目,右边方块则需要点击后获得与左边相同的图形,另外右边的方块每次点击后会顺时针旋转90度,你需要在脑海中将旋转后的方块复原,否则或许两图相同,但右图经过旋转,所以不过关。每次过关后方格数量会增加(当然题目是自定义的,所以难度还是自己决定,也可以使用随机数的方式获得一个初始题...

2018-03-01 09:20:06 1084

原创 Java 设计模式(七)代理模式

一、简介代理模式可以为实际对象创建一个代理,在对象的方法调用时,代理模式可以在方法调用前添加前置处理(比如权限验证),在结果返回前添加结果处理(比如加密),可以添加异常处理等等。。。总之用途十分广泛,java也为此提供了支持。二、代码示例要求: 1、设计一个人类,初始化姓名,拥有外出和回家两个方法; 2、通过代理模式为外出方法添加前置处理:出门前检查手机钱包; 3、通过代理模式为...

2018-02-12 12:09:41 236

原创 Java 设计模式(六)组合模式

一、简介组合模式常用于含有多个集合,每个集合又可能含有子集和或者子元素的情况,如项目经理下可能有项目组长,项目组长下有普通程序员,而销售经理下可能只有业务人员(当然有的也有销售组长,举个例子而已)。代码示例要求: 1、公司结构有总经理–经理–组长–普通人员(仅用作简单例子,真正的结构更加复杂); 2、公司发布工作任务下去,如果当前人员有下属职员则分配到下级人员;抽象职员类:...

2018-02-11 11:51:56 113

原创 Java 设计模式(五)适配器模式

一、简介适配器模式主要用于将两个不适配的接口相结合,使得通过原有接口不用修改原有代码,就能用于新的接口需求(如现在客户提供一组接口来给我们实现,而我们原有的接口可以完成这个工作,但两个接口不匹配,此时可以使用适配器模式)二、代码示例要求: 一个插座需要一个三头的插头才能接通电源供电,而我们有一个两头的插头,要求写一个适配器使得两个头的插头可以使用。插头接口及两头的插头://三...

2018-02-09 17:34:56 202

原创 Java 设计模式(四)命令模式

一、简介命令模式相对简单,只需要一个接收者持有命令接口,执行时直接调用命令本身的执行方法,我们只需要自己实现命令接口,将命令传给接收者,接收者就能自己执行。二、代码示例要求: 1、实现控制风扇的命令,风扇状态共四档,即关闭、低、中、高; 2、执行时风扇状态改变,撤销命令可以回到风扇上一个状态; 3、可扩展更多命令。命令接口:public interface IComm...

2018-02-08 16:27:28 118

原创 Java 设计模式(三)工厂模式

一、简介工厂模式细分下有抽象工厂、抽象方法、简单工厂等等(这个不算一种设计模式,但也经常使用),它们的共同点就在于统一管理对象的创建,这样在修改时只需修改工厂类或工厂方法即可。二、代码示例要求(不要在意与上一节要求相同): 商家做活动要求有多种活动方案作为备选使用: 1、满30元减5元,满50元减10元,满100元减30元 2、满30元打9.5折,满50元打9折,满100元打8

2018-02-07 11:50:52 113

原创 Java 设计模式(二) 装饰者模式

一、简介装饰者模式要求有一个被装饰对象及多个装饰者,每个装饰者与被装饰者实现同一个接口或有同一个超类,被装饰者持有一个装饰者对象,所有实现由持有对象完成,装饰者则在方法执行过程中增强方法实现(如:在方法执行前进行权限验证,在返回结果前进行加密处理等)。二、代码示例要求: 商家活动要求商品具有多种打折方式在不同节日使用: 1、满30元减5元,满50元减10元,满100元减3...

2018-02-05 22:08:46 107

原创 Java 设计模式(一)观察者模式

一、简介:观察者模式需要一个主题及多个观察者,当主题发生变化时,将变化的数据发送给每一个订阅了主题的观察者,由观察者处理数据。当主题与观察者发生变化时互不影响,可自行添加观察者,也可以为观察者自由更换注册的主题。二、代码示例定义观察者及主题的接口://主题接口interface ISubject{ //添加观察者 void addObserver(Observer

2018-02-05 17:08:23 172

原创 JavaScript 杂记(二)作用域与闭包

一、作用域 js中函数的作用域就是一个函数可访问的变量范围,以一对大括号为一个圈,如下图: 函数B可以访问A中的变量,C也可以访问A中的变量,但B与C之间无法相互访问内部的变量(当然你也可以通过一些特殊的方式实现,如函数相互调用通过参数传递内部变量等等….),A中也无法访问B、C中的参数(别把A当做js文件,它也可以是一个函数,js中是允许在函数中定义函数的哦)。 二、闭包 闭包其实

2018-02-05 12:28:13 173

原创 JavaScript 杂记(一)全局预处理与函数预处理

一、js全局预处理与函数预处理1、全局预处理描述:在js文件执行前,会先进行全局预处理,将js文件中定义的变量及函数提取出来,变量赋值为undefined,函数则是指向函数本身,之后再去除var关键字后一行行运行。 如:var a = 3;function f(){ console.log(123);}预处理时会得到一下结果:a=undefined;f=funct

2018-02-05 12:08:33 262

原创 JavaScript 杂记(三)对象创建与原型属性初步

一、对象创建 1、对象工厂 即使用函数返回对象的方式创建对象:function CreatePerson(_name){ return { name:_name, age:'18' }}var p1 = CreatePerson('张三');2、new 关键字 js同样可以使用new关键字创建对象(该方式会多出部分特性,即原型将

2018-02-05 10:45:28 124

空空如也

空空如也

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

TA关注的人

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