自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (1)
  • 收藏
  • 关注

原创 CSDN篇尾设计

篇尾模板<br/><table width="100%&am

2018-12-21 19:32:29 214

原创 JVM类加载机制

Java 语言的动态特性: 在Java中,类的加载、连接和初始化都是在程序运行期间完成的。在C语言中,编译的时候就要连接包含的头文件。但是Java语言可以在运行时动态决定到底要调用哪个类。多态也是基于此形成的。 类的生命周期:加载->连接->初始化->使用->卸载。其中连接分为三小步:验证->准备->解析。 类的初始化: 以下情况发生时要...

2019-08-10 18:21:41 241

原创 JVM的内存管理

内存的划分:      线程私有:程序计数器、Java虚拟机栈、本地方法栈。      线程共享:Java堆、方法区。程序计数器:是当前线程所执行字节码的行号指示器,通过改变计数器的值来选取下一条需要执行的字节码指令。对于多线程,在任何一个时刻,一个处理器只能执行一个线程中...

2019-07-31 09:17:52 348 1

原创 Idea插件的使用与安装

在开发中经常会使用一下插件来提升开发效率,常用的有:Lombok、Free Mybatis plugin、CamelCase、GenerateAllSetter以及CodeGlance

2019-07-30 14:39:28 534

原创 设计模式十五————享元模式

享元模式定义:运用共享技术有效地支持大量细粒度地对象。初步理解:代码的共享,不同的用户使用时,存在不同的数据,因此在调用方法时传入封装用户信息的对象即可。code…每件体育用品的功能是相同的,因此体育用品是共享的,但是使用体育用品的人是不一样的。体育用品的基类:public interface ShareSport { public void sport(User user);...

2019-01-17 22:29:24 231

原创 设计模式十四————命令模式

命令模式:将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。命令模式初步理解:客户直接去操作机器的话要输入一条一条的命令,这样做显然效率很低。可以写成脚本的形式,一次执行。命令模式也是这样的,为了降低耦合,将一个个命令封装成对象。客户不直接调用命令去执行任务,有个记录的类暂且叫服务类。服务类用来记录用户发出的请求,当所有的请求都发送...

2019-01-17 18:05:54 187

原创 设计模式十三————桥接模式

桥接模式:将抽象部分与实现部分相分离,使得他们都可以相互独立的变化。 上一篇 ---The End--- 下一篇

2019-01-06 14:04:47 447 4

原创 华硕笔记本升级固态SSD过程

电脑买来时硬盘是1T的机械盘,用久了C盘东西变多了,久而久之就变得非常卡。然后盘算着加装个固态。去维修店问了一下价格后还是决定从网上买回来自己装吧。不亲手操作一把,永远不知道这是一种什么样的体验买之前看了一下机械盘位置处的接口类型,是SATA的。然后在某宝上买了个某星的250GSSD。开始动手。电脑是华硕的,和其他电脑有点不一样。后面的螺丝拧下来后直接把键盘给拆下来了。键盘和触摸板上有两根线...

2019-01-05 21:45:51 14439 2

原创 设计模式十二————单例模式

单例模式定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。实现手段:将构造方法私有化,在类外不能创建对象。只能通过类内的静态方法创建对象。第一次访问这个静态方法时,创建一个对象,并将对象的引用返回;第二次访问这个对象时直接将引用返回。code…单例类:public class Singleton { private static Singleton singleton=...

2018-12-21 19:25:49 327

原创 设计模式十一————组合模式

组合模式定义:将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。组合模式初步理解:将对象分为部分和整体,整体;部分和整体又属于一个大的整体,整体中又有部分和整体。整体和部分有一些公共的属性,因此有必要抽象出一个类,使整体和部分继承这个类。code…抽象的父类,为整体和部分提供属性和方法:public abstract class C...

2018-12-21 17:21:32 177

原创 设计模式十————备忘录模式

备忘录模式定义:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个对象。这样以后就可以将该对象恢复到原先保存的状态。初步理解:因为要保存状态,因此要有一个Memento类来存储对象的内部状态。因为有很多状态要保存,因此需要一个CareTaker类来管理这些Memento。Originator是要保存状态的对象。code…Originator类:public class ...

2018-12-20 20:32:44 177

原创 设计模式九————状态模式

状态模式定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式初步理解:状态模式内部含有和一个状态对象的引用,当状态不一样时,这个引用所指向的对象也不一样。调用的方法自然也就不一样。和策略模式有些类似。code…状态的抽象接口:public interface State { public void work(Context context);}...

2018-12-20 19:45:45 193

原创 设计模式八—————观察者模式

观察者模式定义:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自己更新自己。观察者模式初步理解:多个观察者同时观察同一个被观察者,被观察者状态发生变化时,会通知观察者,使得观察者内部的参数也相应改变。因为要通知被观察者,因此观察者内部要有被观察者对象的引用。因为有多个观察者,所有被观察者中要有一个集合来存...

2018-12-20 19:09:14 306

原创 设计模式七—————建造者模式

建造者模式定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式初步理解:建造者模式是用来创建复杂对象的,这个对象内部可能会有很多其他很多父类对象的引用。在创建这个复杂的对象时,就要给这些引用赋值。因此产生一个build类,内部是给这些引用赋值。由于这些引用可以指向很多派生类,因此复杂对象会千变万化。根据客户端的需求将复杂对象的引用指向不同的派生类。因此有必要...

2018-12-18 23:25:07 178

原创 设计模式六—————外观模式

外观模式定义:为子系统的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式的初步理解:为复杂的子系统构建一个外观类,将调用子系统的方法的调用过程集成在外观类中。通过调用外观类的方法来调用子系统的方法。这样做可以简化对子系统的操作。code…子系统,共有四个,但是代码都类似。这里只展示一个:public class SystemOne { ...

2018-12-16 16:50:33 162

原创 设计模式五—————原型模式

原型模型定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模型初步理解:通过已经创建的对象来复制一个对象,这两个对象一模一样。但是却不是同一个对象。类似于双胞胎,虽然一样,但却是两个个体。每一个对象都有唯一的hashcode,可以通过hashcode是否相等来判断是否为同一个对象。code…克隆分为深克隆和浅克隆先来看浅克隆:浅克隆是指对象中的引用变量所引用的对象...

2018-12-15 22:16:51 313

原创 设计模式四————代理模式

代理模式定义:为其他对象提供一种代理以控制对这个对象的访问。代理模式初步理解:代理对象可以代理很多功能,具体要要个功能需要客户端指出,代理对象所做的就是调用某个功能,因此代理对象中要有这些功能对象的引用。为了使引用统一,将所有的功能类继承于统一父类。为了给客户端暴露统一的方法,将代理对象与功能对象也继承于统一父类。code…代理类和功能类的统一父类:public abstract cla...

2018-12-14 14:25:37 227

原创 设计模式三————装饰模式

装饰模式定义:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。装饰模式的初步理解:装饰是对某一个实体进行装饰,装饰的饰品根据装饰的对象不同而不同。对于同一个实体,装饰的顺序也有可能不同。因此就需要就实体而言进行装饰。而装饰品的功能都一样,就是用来修饰实体。因此,所有的装饰品可以继承同一个类;但是为了避免将这些实现类对象的引用放到实体类中(破坏开闭原则,添加新饰品和...

2018-12-13 23:51:24 442

原创 设计模式二————策略模式

策略模式定义:定义了算法家族,分别封装起来,让它们之间可以相互替换,次设计模式让算法的变化,不会影响到使用算法的客户端。策略模式的实现:定义一个统一的接口,分别用不同的类来实现该接口,在不同的类中是不同的算法。在context类中维护了一个接口的引用,当引用引用不同的对象时调用不同的方法。code…支付的方法有三种:现金、wechat和Card,定义一个统一的支付方法。定义的接口:pu...

2018-12-12 07:10:47 209

原创 SpringMVC入门三(类型转换器)

客户端在向服务器发送数据时,发送的是字符串,这些字符串可以自动的绑定到基本数据类型上去。但是对于复杂的数据类型,就需要进行类型转换。比如字符串类型转换为时间类型。一下将介绍两种类型转换的方法:上一篇---The End---下一篇...

2018-12-12 06:34:49 310

原创 Mybatis入门三(动态sql、if、choose、where、trim、set、foreach等)

动态sql作用:动态sql就相当于是在拼接SQL语句。动态sql常用的标: if choose(when otherwise) trim where set foreach实体类属性: private int stuId; private String name; private String email; private String phon...

2018-12-09 16:55:54 1049

原创 Mybatis入门二(一对一映射的四种方式、一对多映射的两种方式)

一对一映射是指一个对象的成员变量中含有另一个对象的引用。这两个对象为关联关系。映射的方式:通过自定义resultMap来映射数据库中的数据表:student表mysql> select * from student;+--------+--------+----------------+-------------+--------+| stu_id | name | emai...

2018-12-07 18:42:49 2797

原创 Mybatis入门一(基本的配置)

Mybatis是操作数据库的一个框架,最大的有点是将sql与程序相互分离。Mybatis配置:配置连接的数据库,可以一次配多个。但默认只能选一个<configuration> <!--引入properties配置文件--> <properties res

2018-12-03 23:04:03 392

原创 SpringMVC入门二(参数的绑定,方法参数中所支持的对象,请求映射)

因为SpringMVC是基于方法的,因此要在controller的方法上加上请求映射。当然也可以在类上加,形成多级路径。可以通过@RequestMapping(“url”)来添加。这个Annotation中还可以指定请求的方法,post?get?。对请求进行处理的方法(即@RequestMapping标注的方法)对请求进行处理时可以接收五种参数。有: HttpServletResponse ...

2018-11-27 00:16:34 997

原创 SpringMVC入门一(运行流程、配置)

1.MVC模式:客户端运行的servlet程序,当对请求处理完成之后,要在浏览器中进行显示,因此要在servlet中这样写:resp.setContentType("text/html;charset=utf-8");PrintWriter pw=resp.getWriter();pw.println("&a

2018-11-26 19:06:19 606

原创 Spring入门四(基于注解的AOP编程、切面、切点、execution用法、五种Advice)

1.面向切面编程:在程序运行的过程中,在主要代码运行的周围主动调用辅助代码。如日志。但写日志的方法不会再程序中明显的被调用。这使得写日志的方法和业务逻辑之间的耦合性降低。写日志方法被添加的那个点是我们所要关注的。类似于反射代理...

2018-11-22 00:51:20 1259

原创 Spring入门三(EL表达式)

2018-11-20 20:16:15 843

原创 反射代理

通过目标对象来创建代理对象。调用代理对象的方法,做一些其他的事务,之后,代理对象调用目标对象的方法。目标对象实现的接口:public interface Email { public void send(); public void receive();}目标对象:public class EmailFlash implements Email { @Overr...

2018-11-19 20:30:58 270

原创 Spring入门二(IOC,通过Annotation配置,显示配置,Component和AutoWired注释)

在Spring入门一中通过ApplicationContext.xml配置文件来实现IOC,在本片中将通过Annotation来是实现控制反转。1.导入响应的jar包或添加响应的依赖:spring-aop-…。2.在配置文件中添加包扫描。<context:component-scan base-package="com"

2018-11-19 18:37:50 234

原创 设计模式一————工厂模式

简单工厂工厂方法抽象工厂对比1.简单工厂:一个产品类作为所有产品的父类,一个工厂类中的静态方法负责创建所需要的对象。通过传递一个字符串,在工厂类的静态方法中用一个switch来确定该字符串对应的类对象,创建完成后进行返回即可。伪代码如下:public class Factory { public static Product createProduct(String string...

2018-11-19 00:21:31 441

原创 Spring入门一(IOC,配置对象创建的三种方式,依赖注入的两大方式)

Spring的主要思想时控制反转(IOC)和面向切面编程(AOP)1.控制反转:对象的交由Spring容器来管理:对象的创建、属性注入。2.bean对象创建的三种方式:通过构造方法、通过静态方法、通过实例方法。 <bean id="example1" class=&

2018-11-15 23:57:49 657

原创 Servleter二(Cookie和Session、过滤器、监听器、文件上传及下载)

1.Session和Cookie:cookie是写在客户端,session是写在服务器上。HttpServletReqest对象既可以得到session,也可以得到cookie。添加cookie要用HttpServletResponse对象。session的对象会自动添加。Cookie中有name和value两个属性,name是由final修饰的,不可改变。Cookie的添加,将用户名写到Coo...

2018-11-09 00:59:33 311

原创 注释 Annotation

修饰Annotation的Annotation:Target:用来说明该注释可以出现的位置。@Target(value={ElementType.TYPE,ElementType.METHOD,Element.FIELD})分别表示可以出现在类上、方法上和成员变量上。其中value可以省略Retention:用来修饰注释可以保留到什么时候。@Retention(RetentionPolic...

2018-11-07 00:03:09 218

原创 Servlet一(servlet的配置、servlet对象、servletConfig、参数传递、include和forward的区别、getparameter和getAttribute的区别)

servlet是运行在服务端的java程序,符合所有的java规范。没有main方法,他的生命周期交由容器(Tomcat)来管理。是基于http和TCP之上的。Servlet程序要实现Servlet接口。Tomcat容器:用来运行web程序,是一个web服务器软件的组件。目录结构:Bin里面放置了启动和关闭tomcat的脚本Conf放了相关的配置文件Lib 放了 tomcat 用到的 j...

2018-11-06 00:38:30 611

原创 多线程一(线程的创建、优先级、睡眠、守护、让步、合并)

1.创建线程的三种方式:继承Thread类,重写run方法实现Runnable接口,重写run方法如果有返回值,要实现Callable接口(带泛型),重写call方法。再通过Callable的实现类构建FutureTask类,再通过FutureTask类来构建Thread类。第一种:public class Demo01 extends Thread { @Override ...

2018-10-30 20:46:01 264

原创 网络编程(InetAddress类、Socket和ServerSocket、实现客户端和服务器之间的双向通信)

网络编程的底层是IO,通过IO将一台计算机中的数据发送到另一台计算机中。发送的时候,要知道接受方的地址,改地址即为IP地址。直到IP地址后即可进行发送。A向B发消息,消息是发过去了,但是B要怎样接受呢?因此定义了端口,B监听了A所使用的端口。A发的消息中含有端口号,当B接受到消息时,接受到来自A的端口号。因此B就知道用什么程序来读取消息。获取IP地址对象的几种方式:获得本机的ip用Ine...

2018-10-29 21:10:11 1940 1

原创 反射(Class类、Constructor类、Field类、Method类)

反射:通过类的Class对象来操作。可以得到属性对象,方法对象,构造器对象。可以通过Class对象和构造器对象来实例化对象。但是,通过Class对象来实例化时不能传递参数,通过构造器时可以传递参数。1.Class类实例化的几种方式:可以通过类名.class;可以通过对象名.getClass;可以通过Class的静态方法forName方法(传递类的路径名)来获取Class对象。对于包装器...

2018-10-27 19:09:24 662

原创 JDBC(数据库的驱动、连接、java程序操作数据库、事务、隔离级别、连接池等)

java操作数据库的思想:连上数据库,发送sql语句。在连上数据库之前,要先用程序启动数据库,因此,可以通过反射加载类驱动(com.jdbc.mysql.Driver)。通过驱动管理类的静态方法传递数据库的url来获取一个连接对象(connection)。有三个重载的方法,第一个user和password都追加在url后(类似于get传参);第二种用逗号将user和passowrd隔开作为第二个和...

2018-10-26 00:41:15 897

原创 Java基础之IO流(字节流、字符流、内存流、带缓存的流、序列化和反序列化)

File类:File类提供了对文件的操作,可以通过字符串或URI来构建一个File类对象。通过对象,可以实现文件的创建(createNewFile)、删除(delete)、获得文件名(getName)、获得父目录对象(getParentFile)、获得父目录名称(getParent)、获得完整路径(getPath)等。File类提供了静态方法listRoots,返回所有的盘符(也是File对象)...

2018-10-24 20:53:51 909

原创 Java复习之Java深入解析五(包装器类型的缓存、嵌套类)

1.Java中的八种基本数据类型不是对象,之所以这样设计,是因为其使用方便,效率高于对象类型。但是集合类并不支持对基本数据类型的操作。因此就引入了包装器类。在JDK1.5之后加入了自动拆装箱机制。装箱时调用valueOf方法,这是个静态方法,返回包装器类型,值为形参的值。拆箱时调用xxxvalue方法,返回基本数据类型。包装器类型参与运算时用到符合赋值运算可能会报错:Short sh1=Sho...

2018-10-23 09:24:08 461

lombok插件的多个版本的jar包

lombok插件所使用的jar包,下载后解压,里面有多个版本的jar包。选择一个加入后即可。

2019-07-30

空空如也

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

TA关注的人

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