自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Dear_mango的博客

记录学习中的点滴进步

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

原创 redis的数据类型和持久化方式

redis是一种高级的key-value的存储系统其中的key是字符串类型其中value 支持五种数据类型:1)字符串型 string2)字符串列表 lists3)字符串集合 sets4)有序字符串集合 sorted sets5)哈希类型 hashs                        Redis中的Hashes类型可以看成具有String Key和String Value的map容器。...

2018-06-23 16:08:47 584

原创 事务。事务特性。隔离级别。传播特性。以及spring怎么处理事务

1.什么是事务:事务是程序中一系列严密的操作,所有操作执行必须成功完成,否则在每个操作所做的更改将会被撤销,这也是事务的原子性(要么成功,要么失败)。2.事务特性:事务特性分为四个:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持续性(Durability)简称ACID。原子性(Atomicity):事务是数据库逻辑工作单元,事务中包含的操作要么都执...

2018-06-21 20:03:28 391

原创 存储过程与SQL语句对比

存储过程与SQL语句对比优势:1、提高性能SQL语句在创建过程时进行分析和编译。 存储过程是预编译的,在首次运行一个存储过程时,查询优化器对其进行分析、优化,并给出最终被存在系统表中的存储计划,这样,在执行过程时便可节省此开销。2、降低网络开销存储过程调用时只需用提供存储过程名和必要的参数信息,从而可降低网络的流量。3、便于进行代码移植数据库专业人员可以随时对存储过程进行修改,但对应用程序源代码却...

2018-06-21 19:57:49 1622

原创 一张图明白java sleep和wait的区别

2018-06-18 14:54:07 252

原创 JVM-内存分配

Java体系中所提倡的自动内存管理最终可以归结为自动化地解决两个问题:给对象分配内存以及回收分配给对象的内存。heap(堆)区:Eden space(伊甸区)、survivor space(幸存者区)、old age(老年代)大多数情况下,对象在新生代Eden(伊甸)区中分配。当Eden区没有足够空间进行分配时,虚拟机将发起一次Minor GC。新生代GC(Minor GC):指发生在新生代的垃圾...

2018-06-16 17:25:16 200

原创 JVM-垃圾收集器

如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。java虚拟机规范中对垃圾收集器应该如何实现没有任何规定,因此产生了需要不同的垃圾收集器。一般都是根据自己的应用场景组合出各个年代所使用的收集器。Serial收集器:这是一个单线程收集器,它在进行垃圾收集时,必须暂停其他所有的工作线程,直到它收集结束。但它依然是虚拟机运行在Client模式下的默认新生代收集器,它简单而高效(与...

2018-06-16 16:19:15 194

原创 JVM-GC算法

程序计数器、虚拟机栈、本地方法栈3个区域随线程而生随线程而灭,内存分配和回收都具有确定性,因此不需要过多考虑回收的问题。java堆和方法区则不一样,内存的分配和回收是动态的,垃圾收集器所关注的也是这部分内存。判断对象已经死去的算法一、引用计数算法: 给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。但...

2018-06-16 15:14:42 187

原创 JVM内存模型-五大区浅解

JVM五大区 一、程序计数器程序计数器( Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执的字节码指令,分支...

2018-06-16 10:22:01 1243

原创 sql相关-子查询

SQL> /*SQL> 注意的问题:SQL> 1. 括号SQL> 2. 合理的书写风格SQL> 3. 可以在where select having from后面 都可以使用子查询SQL> 4. 不可以在group by后面使用子查询SQL> 5. 强调from后面的子查询SQL> 6. 主查询和子查询可以不是同一张表;只要子查询返回的...

2018-06-13 15:13:16 299

原创 当泛型遇见重载

import java.util.List;public class TestFanXing { public static void method(List<String> list) { System.out.println("method(List<String> list)"); } public static void method(List&...

2018-06-12 18:21:28 526

原创 java类加载机制、双亲委派模型、分派(重载的判断)

加载-->验证-->准备-->解析-->初始化-->使用-->卸载    其中验证、准备、解析统称为连接1. Java类的编译过程这是由.java源码文件转为 .class二进制字节码文件的过程。我们编写好的源代码,就是*.java文件。使用“javac test.java”就可以编译test.java文件。编译过程主要有三步:词法分析和输入到符号表注解处理语义...

2018-06-12 17:45:07 598

转载 java多态的曲折理解

面向对象编程有三大特性:封装、继承、多态。      封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。      继承是为了重用父类代码。两个类若存在IS-A的关系就可以使用继承。,同时继承也为实现多态做了铺垫。那么什么是多态呢?多态的实现机制又是什么?请看我一一为你揭开:      所谓多态就是...

2018-06-12 16:34:33 174

原创 语法糖-自动拆装箱的陷阱

Integer a= 1; Integer b =2; Integer c= 3; Integer d = 3; Integer e = 321; Integer f = 321; Long g = 3L; System.out.println(c==d); System.out.println(e==f); System.out.println(c == ...

2018-06-12 11:42:40 216

原创 sql相关-多表查询(等值/不等值连接、外连接(左右)、自连接)

多表查询:    SQL> --外连接SQL> --按部门统计员工人数:部门号 部门名称 人数SQL> select d.deptno 部门号,d.dname 部门名称,count(e.empno) 人数 2 from emp e,dept d 3 where e.deptno=d.deptno 4 group by d.deptno,d.dname; ...

2018-06-07 17:39:34 8654

原创 sql相关(select、where、group by、having、order by)

列的别名:    SELECT ename "Name" , sal*12  "Annual Salary"     FROM emp;    重命名一个列,紧跟列名,便于计算,AS可以省略。如果别名中包含空格或特殊字符并区分大小写,在列名和别名之间加入关键字 AS ,别名使用双引号连接符:    把列与列,列与字符连接在一起。    用"||"表示    可以用来合成列字符串:       字符...

2018-06-07 15:47:45 761

转载 谈谈对Spring IOC的理解

学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解。一、分享Iteye的开涛对Ioc的精彩讲解  首先要分享的是Iteye的开涛这位技术牛人对Spring框...

2018-05-28 19:03:36 178

原创 怎么回答面试官:你对Spring的理解

spring呢,是pivotal公司维护的一系列开源工具的总称,最为人所知的是spring mvc,事实上,他们都是基于spring framework,并且再其上继续增强,为某一方面服务的java组件。最近spring framework 刚升级到5,非常不错。比较常见的有spring boot,spring mvc。过去spring framework被成为XML地狱,目前的版本已经大为改善,...

2018-05-28 18:52:19 3279

转载 java的三种代理模式

Java的三种代理模式1.代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星...

2018-05-28 17:57:33 201

转载 怎么理解AOP

先说AOP是什么样的思想,我们一步一步慢慢来,先看一下传统程序的流程,比如银行系统会有一个取款流程我们可以把方框里的流程合为一个,另外系统还会有一个查询余额流程,我们先把这两个流程放到一起:有没有发现,这个两者有一个相同的验证流程,我们先把它们圈起来再说下一步:有没有想过可以把这个验证用户的代码是提取出来,不放到主流程里去呢,这就是AOP的作用了,有了AOP,你写代码时不要把这个验证用户步骤写进去...

2018-05-28 17:24:07 1123

原创 @resource和@autowrite的区别

@Resources按名字,是JDK的,@Autowired按类型,是Spring的。在java代码中可以使用@Autowire或者@Resource注解方式进行装配,@Resourcepublic class StudentService3 implements IStudentService { //@Resource(name="studentDao") private IS...

2018-05-28 11:36:20 11396 3

转载 spring的三种注入方式、bean的作用域

一、前言​ Spring框架对Java开发的重要性不言而喻,其核心特性就是IOC(Inversion of Control, 控制反转)和AOP,平时使用最多的就是其中的IOC,我们通过将组件交由Spring的IOC容器管理,将对象的依赖关系由Spring控制,避免硬编码所造成的过度程序耦合。前几天的时候,笔者的同事问我为什么要使用构造器的注入方式,我回答说因为Spring文档推荐这种,而说不出为...

2018-05-28 11:08:26 885

原创 HashCode,equals()与hashCode()

Set集合是不能重复的,如果一个存了10000个元素的set集合,要往里面再存一个元素,就需要和其他10000个元素分别比较一遍,没有相同的了再存入。太耗费时间了。这时候,发明了HashCode,把每一个元素计算出一个HashCode值,相同的值存到同一区域。以后只需要在这个小范围的区域里面比较就可以了。在这个相同HashCode值的区域里比较就需要equals()方法了。如果两个对象相同,就是适...

2018-05-27 10:46:25 256

转载 基本数据的自动拆装箱及享元模式

基本数据的自动拆装箱大家都知道,Java的精髓是一切皆对象。Java继承了一般设计语言的基本数据类型(如int、double等),这种基本数据类型不是对象,而在使用中需要把基本类型转换成对象进行使用。比如使用Map集合对象的Put( )方法时,需要传入的参数是对象。所以,使用在编译时自动将基本数据类型打包成对应的对象,既能符合Java面向对象的设计原则,又能不影响人们使用基本数据类型的习惯。我们把...

2018-05-27 09:08:34 149

转载 枚举

枚举类型是Java 5中新增特性的一部分,它是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。下面先来看看什么是枚举?如何定义枚举?枚举的定义回忆一下下面的程序,这是在没有枚举类型时定义常量常见的方式/** * Created by zejian on 2017/5/7. * Blog...

2018-05-24 22:17:46 365

原创 springmvc的原理、执行流程。mvc简介

SpringMVC的原理图:看到这个图大家可能会有很多的疑惑,现在我们来看一下这个图的步骤:(可以对比MVC的原理图进行理解)第一步:用户发起请求到前端控制器(DispatcherServlet)第二步:前端控制器请求处理器映射器(HandlerMappering)去查找处理器(Handle):通过xml配置或者注解进行查找第三步:找到以后处理器映射器(HandlerMappering)像前端控制...

2018-05-24 19:30:11 1531

原创 mybatis #、$的区别、缓存、

一般如果可以使用#就不要使用$符号。1)使用#入参,myBatis会生成PrepareStatement并且可以安全地设置参数(=?)的值。因为sql语句已经预编译好了,传入参数的时候,不会重新生产sql语句。安全性高。2)用$可以会有sql注入的问题:例如,select * from emp where ename = '用户名',如果使用$入参,用户名被传入例如‘smith or 1 = 1’...

2018-05-24 18:57:09 315

原创 cglib介绍与原理

CGLIB介绍与原理(部分节选自网络)一、什么是CGLIB?CGLIB是一个功能强大,高性能的代码生成包。它为没有实现接口的类提供代理,为JDK的动态代理提供了很好的补充。通常可以使用Java的动态代理创建代理,但当要代理的类没有实现接口或者为了更好的性能,CGLIB是一个好的选择。二、CGLIB原理CGLIB原理:动态生成一个要代理类的子类,子类重写要代理的类的所有不是final的方法。在子类中...

2018-05-24 10:39:41 728

转载 适配器模式

图:不同国家的插座,插头不一样,呵呵哒图:所以需要写一个适配器模式图:我绘制的适配器类图情景:美国的插座,提供110伏电压;中国的插座,提供220伏电压。在中国,用两孔插座充电然后坐飞机去美国旅游,假设美国某旅馆的墙上有只有一个三孔插座幸好我有美国适配器,一头插到三孔插座,另一头转换成二孔插座,就可以给我的荣耀手机充电在美国,通过美国适配器,用三空插座充电总共7个类 一个三孔插座接口(Adapte...

2018-05-23 21:05:04 174

转载 观察者模式

观察者模式是面向对象编程中较为常用的一种设计模式,观察者模式又称为订阅-发布模式,特别是适用于GUI图形界面中,比如Android的View中就大量使用了此模式。那么观察者模式到底是什么以及我们应该怎么使用它呢?相信通过本文的学习,你们会有一个更为清晰的答案。定义观察者模式:定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。由以上的定义,我们可以知道,观察者模...

2018-05-23 18:29:47 148

原创 反射-笔记

反射的原理 应用在一些通用性高的代码中 后面学到的框架,大多数都是使用反射来实现的 在框架开发中,都是基于配置文件开发 在配置文件中配置了类,可以通过反射得到类中的 所有内容, 可以让类中的某个方法来执行 类中的所有内容:属性、无参的构造方法、有参的构造方法、普通方法 原理: 1.首先需要把java文件保存到本地硬盘  .java格式 2.编译java文件 成 .class文件 3.使用...

2018-05-23 17:04:34 113

原创 内部类的四种实现

内部类    定义在类体部,方法体部,甚至比方法体更小的代码块内部的类(if 语句里面等)    1.静态内部类(内部类中最简单的形式)        1.声明在类体部,方法体外,并且使用static修饰的内部类        2.访问特点可以类比静态变量和静态方法        3.脱离外部类的实例独立创建            在外部类的外部构建内部类的实例                ne...

2018-05-23 09:33:05 1111

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

参考http://blog.csdn.net/superbeck/article/details/4446177http://blog.csdn.net/dlutbrucezhang/article/details/94138491. 简单工厂理解简单工厂模式的工厂类一般是使用静态方法,通过接收的参数的不同来返回不同的对象实例。不修改代码的话,是无法扩展的。例子产品接口//产品接口public ...

2018-05-22 17:04:20 172

原创 单例模式

饿汉法顾名思义,饿汉法就是在第一次引用该类的时候就创建对象实例,而不管实际是否需要创建。代码如下:1234567public class Singleton {       private static Singleton = new Singleton();    private Singleton() {}    public static getSignleton(){        ret...

2018-05-22 14:56:39 138

原创 Tomcat,容器,请求流程,目录结构,

Tomcat 是Web应用服务器,是一个Servlet/JSP容器. Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户.而Servlet是一种运行在支持Java语言的服务器上的组件. Servlet最常见的用途是扩展Java Web服务器功能,提供非常安全的,可移植的,易于使用的CGI替代品容器:容器可以管理对象的生命周期、对...

2018-05-21 09:46:15 289

原创 servlet,三种实现方式,生命周期,和filter的区别

解释一下什么是servlet?可以从两个方面看servlet1.API:有一个接口Servlet,它是Servlet规范中定义的用来处理客户端请求的程序需要实现的顶级接口。2.组件:服务器端用来处理客户端请求的组件,需要在web.xml中配置。一般来说,写一个servlet,有三种实现方式:1、实现Servlet接口。2、继承GenericServlet。3、继承HttpServlet。第三种方式...

2018-05-20 20:24:41 366

原创 JavaWeb相关面试问题-json理解,大量session处理,防止表单重复提交

1.说说你对json的理解json是一种轻量级的数据交换格式。它是基于标准JavaScript的一个子集,是一个Js对象或数组结构的字符串json有三类数据1)。单个数据有number,string,Boolean和null四种类型数据2)。多个有序的数据:数组用[]包裹起来,其元素可以是三类数据中的任意一种,元素之间用,隔开3)。多个无序的数据:对象用{}包含起来,其元素必须是key-value...

2018-05-20 19:54:10 332

转载 转:java多线程

前言多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是 所有的问题都...

2018-05-17 21:04:29 124

原创 java线程相关题目

进程是系统中拥有资源的一个基本单位。(相当于一个程序)线程是系统中调度和分派的基本单位。它被包括在进程中。(能够执行代码的执行单元)&多线程的好处:1.发挥多核cpu的优势 2.防止阻塞. 3.方便建模(大任务分解成小任务,通过多线程分别运行,简单多了)&创建线程的三种方式:1.继承Thread类,重写run()方法。2.实现runnable接口,并实现该接口的run()方法。(推...

2018-05-17 21:01:25 1057

原创 TCP(三次握手、四次挥手),UDP,HTTP,HTTPS

网络七层模型:TCP:传输控制协议UDP:用户数据报协议TCP与UDP区别总结:1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保   证可靠交付3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文...

2018-05-17 14:47:56 430

转载 转:http和https区别与联系

感谢原作者,本文转载自http://www.mahaixiang.cn/internet/1233.html超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。为了解...

2018-05-17 13:39:29 236

空空如也

空空如也

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

TA关注的人

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