自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不自律不成魔 静心 精进

成长路上的点滴记忆,努力在这世界上留下痕迹,那是证明你来过的唯一证据!

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

原创 Java 数组

数组是一个对象,所以定义好的数组长度是固定的,在一个数组中,所有的数组元素都具有相同的数据类型。当然,由于java是面向对象的语言,而类与类支持继承关系,这样可能在父类类型的数组里存放了不同的子类类型元素。一维数组定义格式静态int[] arr1={1,2,3,6};int[] arr2=new int[]{1,2,3,4,5,6,7,8}; 动态 int[] a...

2019-09-19 17:31:00 162

原创 设计模式 观察者模式(Observer)

观察者模式:在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。观察者模式是关于多个对象想知道一个对象中数据变化情况的一种成熟的模式。观察者模式中有一个称作“主题”的对象和若干个称作“观察者”的对象,“主题”和“观察者”间是一种一对多的依赖关系,当“主题”的状态发生变化时,所有“观察者”都得到通知。前面所述的“求职中心”相当于观察者模式的一个具体...

2019-09-19 16:03:00 160

原创 设计模式 代理模式 (Proxy)

代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用,通俗的来讲代理模式就是我们生活中常见的中介。这种类型的设计模式属于结构型模式分类静态代理:由程序员创建或特定工具自动生成源代码,在对其编译。在程序员运行之前,代理类.class文件就已经被创建了。动态代理:是在程序运行时通过反射机制动态创建的。Cglib代理:静态代理和动态代理模式都是要...

2019-09-19 15:06:00 140

原创 设计模式 适配器模式(Adapter)

适配器模式的作用是将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。做法是将类自己的接口包裹在一个已存在的类中。这种类型的设计模式属于结构型设计模式。UML角色:Source:需要被适配的类、接口、对象,即Datas。Destination:需要得到的类,Source通过适配得到的类对象,也就是我们期待得到的借口。Adapt...

2019-09-19 14:42:00 102

原创 Java 接口和抽象类

接口概念Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。特点在接口中声明的方法默认是抽象的(即只有方法标识符,而没有方法体)。抽象方法只能存在于抽象类或者接口中,但抽象类中却能存在非抽象方法,即有方法体的方法。接口是百分之百的抽象类。不...

2019-09-17 17:12:00 114

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

三种工厂模式工厂模式可以分为三类:简单工厂模式(Simple Factory)工厂方法模式(Factory Method)抽象工厂模式(Abstract Factory)这三种模式从上到下逐步抽象,并且更具一般性。GOF在《设计模式》一书中将工厂模式分为两类:工厂方法模式(Factory Method)与抽象工厂模式(Abstract Factory)。将简单...

2019-09-12 15:49:00 267

原创 设计模式 单例模式(Singleton)

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。单例模式5种创建方式:饿汉式:类初始化的时候,会立即加载该对象,线程天...

2019-09-12 14:42:00 121

原创 多线程ThreadLocal

ThreadLocal使得各线程能够保持各自独立的一个对象,并不是通过ThreadLocal.set()来实现的,而是通过每个线程中的new 对象 的操作来创建的对象,每个线程创建一个,不是什么对象的拷贝或副本。通过ThreadLocal.set()将这个新创建的对象的引用保存到各线程的自己的一个map中,每个线程都有这样一个map,执行ThreadLocal.get()时,各线程从自己...

2019-09-11 17:19:00 121

原创 多线程 ThreadLocal

ThreadLocal使得各线程能够保持各自独立的一个对象,并不是通过ThreadLocal.set()来实现的,而是通过每个线程中的new 对象 的操作来创建的对象,每个线程创建一个,不是什么对象的拷贝或副本。通过ThreadLocal.set()将这个新创建的对象的引用保存到各线程的自己的一个map中,每个线程都有这样一个map,执行ThreadLocal.get()时,各线程从自己...

2019-09-11 17:19:00 53

原创 Java 八种排序算法

本文主要详细讲述常见的八种排序算法的思想、实现以及复杂度。冒泡排序要点冒泡排序是一种交换排序。什么是交换排序呢?交换排序:两两比较待排序的关键字,并交换不满足次序要求的那对数,直到整个表都满足次序要求为止。算法思想它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再...

2019-09-04 13:58:00 78

原创 Linux 文件权限管理chmod

一、Linux中的文件权限与目录权限  Linux中定义了3种访问权限,分别是r、w、x。其中r表示对象是可读的,w表示对象是可写的,x表示对象是可执行的,这3种权限组成一组rwx分别对应对象的3个安全级别。这3个安全级别分别是对象的所属者,对象的所属组,系统其他用户。比如图1-1所示,文件的权限                                        ...

2019-09-01 10:51:00 95

原创 Linux CentOS常用命令

CentOS常用命令集合文件与目录操作命令解析cd /home进入 ‘/home’ 目录cd ..返回上一级目录cd ../..返回上两级目录cd -返回上次所在目录cp file1 file2将file1复制为file2cp -a dir1 dir2复制一个目录...

2019-08-28 22:56:00 87

原创 Java 正则表达式

正则表达式,又称规则表达式。(英文名Regular Expression,所以代码中常以regex、regexp、RE表示)。正则表达式简单说就是用于操作文本数据的规则表达式,在Java中我们使用正则表达式来对字符串进行“有规则的操作”,没理解没关系,看下面的练习就懂了。  正则表达式对字符串的常见操作有:字符串的匹配、切割、替换、获取。下面逐一介绍:正则表达式语法(匹...

2019-08-08 15:14:00 103

原创 Mybatis 逆向工程

使用generatorConfig.xml 逆向生成 entity、dao、mappinggeneratorConfig.xml配置文件内容:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybat...

2019-07-29 15:19:00 61

原创 SQL 优化

SQL优化的具体操作:一、查询语句的优化:1、在表中建立索引,优先考虑where、group by使用到的字段。2、尽量避免使用select *,返回无用的字段会降低查询效率。如下:SELECT * FROM t优化方式:使用具体的字段代替*,只返回使用到的字段。3、尽量避免使用in 和not in,会导致数据库引擎放弃索引进行全表扫描。如下...

2019-07-25 11:48:00 138

原创 设计模式 概述

设计模式总的来说分为三大类:创建型模式共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两类:并发型模式和线...

2019-07-22 15:20:00 72

原创 Session和Cookie的区别

由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是Session.典型的场景比如购物车,当你点击下单按钮时,由于HTTP协议无状态,所以并不知道是哪个用户操作的,所以服务端要为特定的用户创建了特定的Session,用用于标识这个用户,并且跟踪用户,这样才知道购物车里面有几本书。这个Session是保存在服务端的,有一个...

2019-07-22 11:44:00 75

原创 Java 动态代理

关于Java中的动态代理,我们首先需要了解的是一种常用的设计模式--代理模式,而对于代理,根据创建代理类的时间点,又可以分为静态代理和动态代理。一、代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对...

2019-07-19 11:33:00 89

原创 java 面试题

Java 基础1. JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的...

2019-07-17 11:40:00 86

原创 Redis

1、什么是Redis?简述它的优缺点?Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。Redis的出色之处不仅仅是性能,Redi...

2019-07-11 14:54:00 128

原创 Oracle 操作语句

Oracle 数据库操作语句创建表SQL>create table classes( classId number(2), cname varchar2(40), birthday date );添加一个字段SQL>alter table student add (classId numb...

2019-07-09 15:20:00 57

原创 数据结构和算法

数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作。算法是为求解一个问题需要遵循的、被清楚指定的简单指令的集合。下面是常用数据结构与算法相关内容链接。线性表:链接堆、栈和队列:链接排序算法总结:链接冒泡//冒泡排序 public static int[] bubbleSort(int [] d...

2019-07-08 14:06:00 50

原创 Java 类加载器

类的加载是由类加载器完成的,类加载器包括:根加载器(BootStrap)、扩展加载器(Extension)、系统加载器(System)和用户自定义类加载器(java.lang.ClassLoader的子类)。从Java 2(JDK 1.2)开始,类加载过程采取了父亲委托机制(PDM)。PDM更好的保证了Java平台的安全性,在该机制中,JVM自带的...

2019-07-05 11:41:00 78

原创 Spring 搭建分析

spring简介Spring 是于 2003 年兴起的一个轻量级的Java 开发框架,创始人是Rod Johnson,它是为了解决企业应用开发的复杂性而创建的,随着时代的发展,spring旗下发展了很多项目,并且越来越多的开发者开始使用这些项目。spring的优点如下:方便解耦,简化开发(高内聚低耦合),可以将对象依赖关系的维护交给Spring管理。IOC(Inversi...

2019-07-05 09:55:00 65

原创 Spring 入门

spring简介Spring 是于 2003 年兴起的一个轻量级的Java 开发框架,创始人是Rod Johnson,它是为了解决企业应用开发的复杂性而创建的,随着时代的发展,spring旗下发展了很多项目,并且越来越多的开发者开始使用这些项目。spring的优点如下:方便解耦,简化开发(高内聚低耦合),可以将对象依赖关系的维护交给Spring管理。IOC(Inversi...

2019-07-05 09:55:00 74

原创 MyBatis 查询缓存

查询缓存主要是为了提高查询访问速度,即当用户执行一次查询后,会将该数据结果放到缓存中,当下次再执行此查询时就不会访问数据库了而是直接从缓存中获取该数据。 如果在缓存中找到了数据那叫做命中。 在mybatis中有一级缓存和二级缓存两种缓存方式。一级缓存二级缓存内置外置...

2019-07-04 09:31:00 93

原创 MyBatis 延迟加载

延迟加载MyBatis中的延迟加载,也称为懒加载,是指在进行表的关联查询时,按照设置延迟规则推迟对关联对象的select查询。例如在进行一对多查询的时候,只查询出一方,当程序中需要多方的数据时,mybatis再发出sql语句进行查询,这样子延迟加载就可以的减少数据库压力。MyBatis 的延迟加载只是对关联对象的查询有迟延设置,对于主加载对象都是直接执行查询语句的。详情...

2019-07-04 09:27:00 213

原创 Mybatis 关联查询

关联查询一对多关联查询一对多关联查询指的是在查询一方对象的时候同时把跟他所关联的多方对象也查询出来,这里以篮球队和篮球运动员为例,一个篮球队关联着多个篮球队员。多对一关联查询多对一指的是在查询多方对象的时候,同时将其所关联的一方对象也查询出来。由于在查询多方对象时也是一个一个查询,所以多对一关联查询,其实就是一对一关联查询。即一对一关联查询的实现方式与多对一的实现方...

2019-07-04 09:26:00 131

原创 Mybatis 动态SQL

动态SQL在实际应用中,在执行查询操作的时候会有多个条件,这些条件是由用户指定的,比如查询的条件有:用户名、年龄、生日。此时我们需要在sql语句中将这三个查询条件加上。不过这三个查询条件用户在输入的时候,填写的个数不确定,可能只填写了一个,也可能三个都填写了,此时就可以使用动态SQL来解决这个问题了,动态SQL会根据传入的条件动态拼接sql语句。动态SQL知识:链接注意事项:...

2019-07-04 09:18:00 46

原创 MyBatis mapper动态代理

mapper的动态代理在之前的例子中,我们在dao接口的实现类中写了一些获取sqlSession并调用其方法的代码,这些代码实际上没有什么实质的作用,具体SQL方面的操作我们都写在mapper文件中了,因此可以mybatis抛开这些实现类,以后无需编写这些实现类了,直接通过dao接口来定位到mapper中的SQL语句,这种方式被称为mapper的动态代理。将之前的程序修改为map...

2019-07-04 09:14:00 122

原创 MyBatis 增删改查

MyBatis单表添加操作实现了一个向数据库中的添加操作,下面来分析一下:<!--parameterType可省略--><insert id="insertStudent" parameterType="com.monkey1024.bean.Student"> INSERT INTO t_student(name,age,score) ...

2019-07-04 09:10:00 60

原创 MyBatis 框架搭建

mybatis简介myBatis是一个持久层框架,主要作用就是在java中操作数据库,其实就是在jdbc的基础上进行了封装,使用mybatis之后,开发者不用再花费精力去处理诸如注册驱动、创建Connection、配置Statement等繁琐过程。与之前学习的spring mvc要运行在web容器不同,mybatis不需要web容器,在c/s架构和b/s架构下均可运行。早期叫做iBa...

2019-07-03 17:01:00 112

原创 五大框架 简单理解

Spring MVC 框架Springmvc就是spring框架的一个模块,它是一个基于mvc设计思想的前端web层框架,主要作用就是对前端请求进行处理。完整答案Springmvc就是spring框架的一个模块,所以它可以和spring框架可以进行无缝整合,它是一个基于mvc设计思想的前端web框架,主要作用就是对前端请求进行处理。他的前端控制器是一个servlet.它的请求...

2019-07-03 15:04:00 128

原创 Spring 面试题总结

1.谈谈你对spring IOC和DI的理解,它们有什么区别?IoC : Inverse of Control反转控制的概念,就是将原本在程序中手动创建UserService对象的控制权,交由Spring框架管理,简单说,就是创建UserService对象控制权被反转到了Spring框架DI:Dependency Injection依赖注入,在Spring框架负责创建Be...

2019-07-02 16:36:00 71

原创 Spring MVC 面试题总结

1、什么是Spring MVC ?简单介绍下你对springMVC的理解?SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。2、SpringMVC的流程?(1)用户发送...

2019-07-02 15:11:00 102

原创 MySQL 面试题

1、事务的基本特征原子性(atomicity):一个事务必须视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性。一致性(consistency):数据库总数从一个一致性的状态转换到另一个一致性的状态。隔离性(isolation):一个事务所做的修改在最终提交以前,对其他事务...

2019-06-26 18:04:00 169

原创 MySQL 知识

1. 主键 超键 候选键 外键主 键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。超 键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。候选键:是最小超键,即没有冗余元素的超键。...

2019-06-26 17:33:00 61

原创 Java 基础

******这些都是Java核心知识点,也是最基础的知识,一定要学明白搞清楚*****1、Java变量局部变量-- 属于方法类变量(静态变量)-- 属于类成员变量(非静态变量)-- 属于对象2、关于枚举/**颜色枚举*/enum ColorEnum{ RED,GREEN,BLUE }/** * 1、带有构造方法的枚举,构造方法为只能为private(默认...

2019-06-24 16:18:00 202

原创 Java 访问控制权限

在Java中,提供了四种访问权限控制:默认访问权限(包访问权限),public,private以及protected。  注意:上述四种访问权限,只有默认访问权限和public能够用来修饰类。修饰类的变量和方法四种权限都可以。(本处所说的类针对的是外部类,不包括内部类)访问控制权限(√代表可以访问)privatedefaultprotected...

2019-06-18 15:40:00 74

原创 Java 异常处理机制

Java异常是Java提供的一种识别及响应错误的一致性机制。  Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。在有效使用异常的情况下,异常能清晰的回答what, where, why这3个问题:异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出。Java异常机制用到的几个关键字:try、c...

2019-06-18 14:55:00 78

MySQL 配置问题汇总

MySQL 配置常见问题解决,比如 免安装版和安装版可能出现的数据库开机后连接失败,免安装安装失败不可用问题,windows系统和mysql版本不兼容问题!

2019-05-01

空空如也

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

TA关注的人

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