自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

黑白灰的博客

一无所有

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

原创 Spring MVC的优势

1. Spring MVC的优势

2019-08-15 21:29:35 202

原创 MVC 思想概述

本文包含:传统 Model1和 Model2MVC 思想及优势1. 传统 Model1和 Model22. MVC 思想及优势概括起来,MVC有如下特点:

2019-08-15 21:24:48 362

原创 轻量级 Java EE应用技术相关

轻量级JAVA EE 应用以传统的 JSP作为表现层技术,以一系列开源框架作为MVC 层、中间层、持久层解决方案,并将这些开源框架有机地组合在一起,使得Java EE应用具有高度的可扩展性、可维护性。本文包含:JSP、Servlet 和 JavaBean 及替代技术MyBatis3 及替代技术Spring4 及替代技术使用开源框架的好处1. JSP、Servlet 和 JavaBe...

2019-08-15 20:52:03 260

原创 所谓的持久层框架?ORM框架?以及Hibernate和Mybatis区别?

ORM框架?Object Relational Mapping,对象-关系映射。项目中的业务实体有两种表现形式:对象和关系数据,即在内存中表现为对象,在数据库中表现为关系数据。为什么需要ORM框架?ORM框架是对象关系映射,那为什么要映射mapping?因为对象之间可以存在关联和继承关系,但是在数据库中,关系数据无法表达多对多关联和继承关系。(ps:在数据库原理中,会把逻辑上的多对多转换...

2019-08-15 20:39:37 980

原创 Java EE应用概述

本文包含如下内容:Java EE应用的分层模型Java EE应用的组件Java EE应用的结构和优势1. Java EE应用的分层模型Java EE 可大致分为如下几层:Java EE 应用的架构如下图所示:各层的Java EE组件之间以松耦合的方式耦合在一起,这是为了应用的扩展性。从上向下,上面的组件依赖于下面的组件的功能从下到上,下面组件支持上面组件的实现2. ...

2019-08-15 20:17:10 384

原创 Spring 概述

Spring 是一个容器,通过反转控制( IoC )和依赖注入( DI )来实现高内聚、低耦合的应用。除此之外它可以整合很多第三方框架,它还提供面向切面编程( AOP )的能力,对数据库事务的管理尤其方便。知识点:Spring 简介Spring 的优点Spring 架构1. Spring 是什么Spring 是一个开源的轻量级 Java SE( Java 标准版本)/Java EE...

2019-08-03 12:35:42 122

转载 JDBC 简介

知识点JDBC 简介创建JDBC应用程序1 JDBC 简介JDBC 的全称是 Java Database Connectivity,叫做 Java 数据库连接。它包括了一组与数据库交互的api,还有与数据库进行通信的驱动程序。我们要写涉及到数据库的程序,是通过 C 语言或者 C++ 语言直接访问数据库的接口,如下图所示。对于不同的数据库,我们需要知道不同数据库对外提供的系统 AP...

2019-07-23 17:15:59 460

转载 Java 设计模式之单例模式

知识点单例模式定义单例模式类图单例模式示例单例模式应用1 什么是单例模式单例模式(Singleton Pattern),顾名思义,就是被单例的对象只能有一个实例存在。单例模式的实现方式是,一个类能返回对象的一个引用(永远是同一个)和一个获得该唯一实例的方法(必须是静态方法)。通过单例模式,我们可以保证系统中只有一个实例,从而在某些特定的场合下达到节约或者控制系统资源的目的。2 单...

2019-07-23 16:38:09 130

转载 Java 设计模式之观察者模式

知识点观察者模式定义观察者模式类图观察者模式示例观察者模式应用1 什么是观察者模式一句话,观察者模式(Observer Pattern)就是一种 “发布者-订阅者” 的模式。有时也被称为 “模型-视图”模式、“源-监听者”模式等。在这种模式中,由一个目标对象来管理所有依赖与它的观察者对象,并且当这个目标对象自身发生改变时,会主动向它的观察者们发出通知。2 观察者模式类图比如你最...

2019-07-23 16:03:28 139

转载 Java 设计模式之装饰者模式

本文知识点装饰者模式定义装饰者模式类图装饰者模式示例装饰者模式应用装饰者模式、适配器模式区别1 什么是装饰者模式装饰者模式(Decorator Pattern,有的也用 Wrapper Pattern)就是动态地把职责附加到已有对象上去,实现功能扩展。这种特性,使得装饰者模式提供了比继承更具有弹性的解决方案。2 装饰者模式类图3 装饰者模式示例代码在project下新建T...

2019-07-23 15:53:12 81

转载 Java 设计模式之适配器模式

本文知识点适配器模式定义适配器模式类图适配器模式示例适配器模式应用1 什么是适配器模式顾名思义,适配器模式(Adapter Pattern)当然是用来适配的啦。当你想使用一个已有的类,但是这个类的接口跟你的又不一样,不能拿来直接用,这个时候你就需要一个适配器来帮你了。这就好像你兴冲冲地跑去香港,买了个港版的 iPhone6,充电器插头拿回家一看,不能用啊。这时候你多么需要买一个转...

2019-07-23 15:27:07 85

转载 JAVA 设计模式之抽象工厂模式

本文包含抽象工厂模式定义抽象工厂模式类图抽象工厂模式示例抽象工厂模式应用工厂方法模式、抽象工厂模式区别1 什么是抽象工厂模式抽象工厂模式(Abstract Factory Pattern)是一种软件开发设计模式。抽象工厂模式提供了一种方式,可以将一组具有同一主题的单独的工厂封装起来。如果比较抽象工厂模式和工厂模式,我们不难发现前者只是在工厂模式之上增加了一层抽象的概念。抽象工厂是...

2019-07-23 14:47:35 73

转载 Java 设计模式之工厂模式

1 什么是工厂模式工厂模式(Factory Pattern)的意义就跟它的名字一样,在面向对象程序设计中,工厂通常是一个用来创建其他对象的对象。工厂模式根据不同的参数来实现不同的分配方案和创建对象。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。例如用工厂来创建 人 这个对象,如果我们需要一个男人对象,工厂就会为我们创建一个男人;如果我们...

2019-07-23 14:32:57 81

原创 JAVA 设计模式简介

1 什么是设计模式在软件工程中,设计模式是对软件设计中普遍存在的各种问题,所提出的 解决方案。换句话说,设计模式是一套被反复使用、多数人知晓的、经过分类的、代码设计的 经验的总结。使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码可靠性。2. 设计模式原则1、开闭原则(Open Close Principle)开闭原则的意思是:对扩展开放,对修改封闭。在程序需要进行扩展的时候...

2019-07-20 20:43:18 145

转载 Mysql 5.7.22安装和安装中常见问题install/Remove of the Service Denied与net start mysql服务启动失败解决方法

安装MySQL:第一步:将压缩包解压后,手动新建名为my.ini的文本文档,代码内容如下:#代码开始[mysql]default-character-set=utf8[mysqld]skip-grant-tables设置3306端口port = 3306设置mysql的安装目录basedir=D:\mysql设置mysql数据库的数据的存放目录datadir=D:\mysq...

2019-07-19 21:30:29 319

原创 使用反射生成并操作对象

Class 对象可以获得该类里的方法(由 Method 对象表示)、构造器(由 Constructor 对象表示)、成员变量(由 Field 对象表示),这三个类都位于 java.lang.reflect 包下,并实现了 java.lang.reflect.Member 接口。程序可以通过 Method 对象来执行对应的方法,通过 Constructor 对象来调用对应的构造器创建实例,能通过 F...

2019-07-14 17:50:07 661

原创 通过反射查看类信息

Java 程序中的许多对象在运行时都会出现两种类型:编译时类型和运行时类型为了解决这个问题,程序需要在运行时发现对象和类的真实信息。解决该问题有以下两种做法:假设在编译和运行时都完全指定类型的具体信息,在这种情况下,可以先使用 instanceof 运算符进行判断,再利用 强制类型转换将其转换成运行时类型的变量即可。第二种做法是编译时根本无法预知该对象和类可能属于哪些类,程序只依靠运行时信...

2019-07-13 22:02:34 129

原创 类加载器

类加载器负责将 .class 文件(可能在磁盘上,可能在网络上)加载到内存中,并为之生成对应的 java.lang.Class 对象。本文包含:类加载器简介类加载机制创建并使用自定义的类加载器URLClassLoader 类1. 类加载器简介类加载器负责加载所有的类,系统为所有被载入内存的类生成一个 java.lang.Class 实例。一旦一个类被载入 JVM 中,同一个类就不...

2019-07-13 16:21:19 356

原创 类的加载、连接和初始化

本文包含:JVM 和 类类的加载类的连接类的初始化类初始化的时机1. JVM 和 类当调用Java 命令运行某个 java 程序时,该命令将会启动一个 Java 虚拟机进程。当系统出现如下几种情况时,JVM 进程将被终止。2. 类的加载当程序主动使用某个类时,如果该类还未被加载到内存中,则系统会通过加载、连接、初始化这三个步骤来对该类进行初始化。类的加载是指将类的 cl...

2019-07-13 14:54:43 80

原创 线程相关类

本文包含:ThreadLocal 类包装线程不安全的集合线程安全的集合类1. ThreadLocal 类ThreadLocal 类的用法非常简单,它只提供如下三个 public 方法:ThreadLocal 并不能替代同步机制,两者面向的问题不同。同步机制是为了同步多个线程对相同资源的并发访问,是多个线程之间进行通信的有效方式;而 ThreadLocal 是为了隔离多个线程的数...

2019-07-12 23:00:06 242

原创 线程池

系统启动一个新线程的成本是比较高的,因为它涉及与操作系统的交互,在这种情况下,使用线程池可以很好地提高性能,尤其是当程序中需要创建大量生存期很短暂的线程时,更应该考虑使用线程池。此外,使用线程池可以有效控制系统中并发线程的数量,当系统包含大量并发线程时,会导致系统性能剧烈下降,甚至导致 JVM 崩溃,而线程池的最大线程数参数可以控制系统中并发数量不超过此数。本文包含:Java 8 改进的...

2019-07-12 21:00:03 76

原创 线程组和未处理的异常

Java 使用 ThreadGroup 来表示线程组,它可以对一批线程进行分类管理。默认情况下,子线程和创建它的父线程处于同一个线程组内。一旦某个线程加入指定线程组,该线程将一直属于该线程组,直到该线程死亡。Thread 类提供了如下几个构造器来设置新创建的线程属于哪个线程组。ThreadGroup 提供了如下两个简单的构造器来创建实例。ThreadGroup 类提供了如下几个常用方...

2019-07-12 20:23:08 273

原创 线程通信

当线程在系统中运行时,线程的调度具有一定的透明性,程序通常无法准确控制线程的轮换执行,但Java 也提供了一些机制来保证线程协调运行。本文包含:传统的线程通信使用 Condition 控制线程通信使用阻塞队列(BlockingQueue)控制线程通信1. 传统的线程通信传统的线程通信为实现重复存款、取钱的动作,可以借助于Object 类提供的 wait()、notify()、not...

2019-07-12 20:02:12 135

原创 线程同步

本文包含:线程安全问题同步代码块同步方法释放同步监视器的锁定同步锁(Lock)死锁1. 线程安全问题如果两个人同时向账户余额Account为1000 的卡上取出800,则有可能两个人都成功取出,即取出了1600,发生了错误。2. 同步代码块之所以出现上述安全问题,是因为run() 方法体不具有同步安全性—程序中有两个并发线程在对 Account 对象进行修改;而且系统恰好在...

2019-07-12 11:36:35 73

原创 控制线程

本文包含:join 线程后台线程线程睡眠:sleep线程让步:yield改变线程优先级1. join 线程join() 方法用于让一个线程等待另一个线程完成。当在某个程序执行流中调用其它线程的 join() 方法时,调用线程将被阻塞,直到被 join() 方法加入的 join() 线程执行完为止。join() 方法通常由使用线程的程序调用,以将大问题划分成许多小问题,每个小问题...

2019-07-11 22:10:03 70

原创 线程的生命周期

本文包含:新建和就绪状态运行和阻塞状态线程死亡1. 新建和就绪状态当程序使用new 关键字创建了一个线程之后,该线程就处于新建状态,此时它和其它的Java 对象一样,仅仅由 Java 虚拟机为其分配内存,并初始化其成员变量的值。此时的线程对象没有表现出任何线程的动态特征,程序也不会执行线程的线程执行体。当线程对象调用了 start() 方法之后,该线程就处于就绪状态,Java 虚...

2019-07-11 21:24:02 75

原创 Java 线程的创建和启动

Java 使用 Thread 类代表线程,所有的线程对象都必须是 Thread 类或其子类的实例。每个线程的作用是完成一定的任务,实际上就是执行一段程序流(一段顺序执行的代码)。Java 使用线程执行体来代表这段程序流。本文包含:继承Thread 类创建线程类实现Runnable 接口创建线程类使用 Callable 和 Future 创建线程创建线程的三种方式对比1. 继承Thr...

2019-07-11 20:38:55 90

原创 Java 线程概述

本文包含线程和进程多线程的优势1. 线程和进程几乎所有的操作系统都支持同时运行多个任务,一个任务通常就是一个程序,每个运行中的程序就是一个进行。当一个程序运行时,内部可能包含多个顺序执行流,每个顺序执行流就是一个线程。进程:是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位。一般而言,进程具有如下三个特征:并发性和并行性:多线程扩展了...

2019-07-11 19:01:26 115

原创 Java7 的 NIO.2

Java 7 对原有的NIO 进行了重大改进,主要包括如下两方面的内容:1.提供了全面的文件 IO 和文件系统访问支持2.基于一步Channel 的 IO本文包含如下内容:Path、Paths 和 Files 核心 API使用FileVisitor 遍历文件和目录使用 WatchService 监控文件变化访问文件属性1. Path、Paths 和 Files 核心 API...

2019-07-11 17:12:44 163

原创 Java NIO

NIO(New IO)即从 JDK 1.4 开始,Java 提供了一系列改进的输入/输出处理的新功能,新增的许多用于处理输入/输出的类,这些类都被放在java.nio 包以及子包下,并且对原 java.io 包里的许多类都以 NIO 为基础进行了该项,新增了满足 NIO 的功能。本文包含:java 新IO 概述使用Buffer使用 Channel字符集和 Charset文件锁1....

2019-07-11 16:34:04 92

原创 Java对象序列化

对象序列化的目标是将对象保存在磁盘中,或允许在网络中直接传输对象。对象序列化机制允许把内存中的Java 对象转换成平台无关的二进制流,从而允许把这种二进制流持久的保存在磁盘上,通过网络将这种二进制流传输到另外一个网络节点。其他程序一旦获得这种二进制流,都可以将其恢复成原来的 Java对象。序列化的含义和意义使用对象流实现序列化对象引用的序列化自定义序列化另一种自定义序列化机制1. ...

2019-07-11 11:15:37 128

原创 git 仓库部分使用指南

使用环境:IntelliJ IDEA ,git Bash流程:Git安装完之后,需做最后一步配置。打开git bash,分别执行以下两句命令git config --global user.name “用户名”git config --global user.email “邮箱”执行生成公钥和私钥的命令:ssh-keygen -t rsa 并按回车3下(为什么按三下,是因为有提示...

2019-07-11 10:42:47 119

转载 一文看懂web服务器、应用服务器、web容器、反向代理服务器区别与联系

https://www.cnblogs.com/vipyoumay/p/7455431.html

2019-06-25 22:19:24 107

转载 JAVA:IO流 之 节点流与处理流

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jingzi123456789/article/details/72123937流的分类按数据流的方向不同:输入流,输出流。按处理数据单位不同:字节流,字符流。(1) 字节流:数据流中最小的数据单元是字节。(2)字符流:数据流中最小的数据单元是字符, Java中的字符是Unicode编码,...

2019-06-18 17:11:26 762

原创 理解 Java的 IO流

Java 的 IO 流是实现输入输出的基础,它可以方便地实现数据的输入/输出操作,在Java 中把不同的输入/输出源抽象表述为“流”,通过流的方式允许 Java 程序使用相同的方式了访问不同的输入/输出源。Stream 是从起源到接收的有序数据。Java 把所有传统的流类型都放在java.io包里,用以实现输入/输出功能。本文包含:流的分类流的概念模型1. 流的分类1.输入流和输出...

2019-06-18 16:55:21 190

原创 JDK的元 Annotation

使用@Retention使用@Target使用@Documented使用@Inherited1. 使用@Retention@Retention只能用于修饰 Annotation 定义,用于指定被修饰的 Annotation 可以保留多长时间,@Retention 包含一个RetentionPolicy 类型的 value 成员变量,所以使用 @Retention 时必须为该 valu...

2019-06-17 20:48:47 149

原创 Java 基本Annotation

5 个基本的 Annotation 如下:限定重写父类方法:@Override@Override 是用来指定方法覆载的,它可以强制一个子类必须覆盖父类的方法。@Override 的作用就是告诉编译器检查这个方法,保证父类要保证一个被该方法重写的方法,否则就会编译出错。主要用于帮助程序员避免一些例如把方法名写错的“低级错误”。该修饰符只能修饰方法,不能用于修饰其他程序元素。标示已过时:...

2019-06-17 20:37:13 268

原创 事务处理

本文包含:事务的概念和 MySQL 事务支持JDBC 的事务支持Java 8增量的批量更新1. 事务的概念和 MySQL 事务支持事务是由一步或几步数据库操作序列组成的逻辑执行单元,该系列操作要么全部执行,要么全部放弃执行。程序和事务是不同的概念,一般而言,一段程序中可能包含多个事务。事务具备 4 个特性:原子性、一致性、隔离性和持续性数据库的事务由下列语句组成:DDL ...

2019-06-17 19:40:37 167

原创 Java SQL语法

DBMS :数据库管理系统数据库有如下几种:其中关系数据库是理论最成熟,应用最广泛的,其最基本的数据存储单元是数据表。数据表就是存储数据的逻辑单元,可以把数据表想象成由行和列组成的表格,其中每一行被称为记录,每一列被称为一个字段。此外,还应该为每个数据表指定一个特殊列,该特殊列的值可以唯一地标识此行的记录,则该特殊列被称为主键列。本文包含:关系数据库概念和基本命令SQL 语句基础...

2019-06-14 20:55:32 9864 1

原创 Java JDBC基础

通过 JDBC, Java 程序可以非常方便地操作各种主流数据库。由于 Java 的跨平台性,所以使用 JDBC 编写的程序不仅可以实现跨数据库,还可以跨平台,具有优秀的可移植性。程序使用 JDBC API 的统一的方式来连接不同的数据库,然后通过 Statement 对象来执行标准的 SQL 语句,并可以获得 SQL 语句访问数据库的结果。JDBC 全称是Java Database Conn...

2019-06-12 20:26:41 168

空空如也

空空如也

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

TA关注的人

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