
JAVA学习
恪心
Do all you can to survive, because life is never something you live only for yourself.
展开
-
面向对象的基本设计原则 S.O.L.I.D
单一职责(Single Responsibility),类或者对象最好是只有单一职责,在程序设计中如果发现某个类承担着多种义务,可以考虑进行拆分。开关原则(Open-Close, Open for extension, close for modification),设计要对扩展开放,对修改关闭。换句话说,程序设计应保证平滑的扩展性,尽量避免因为新增同类功能而修改已有实现,这样可以少产出些回归(regression)问题。里氏替换(Liskov Substitution),这是面向对象的基本要素之一,进原创 2020-06-04 17:21:24 · 210 阅读 · 0 评论 -
NIO
慕课网课程链接:https://www.imooc.com/video/19331Java 知识目录:https://blog.youkuaiyun.com/qq_38009970/article/details/103266870NIO用于应对高性能高并发的场景BIO 的网络模型缺点阻塞式 IO 模型弹性伸缩能力差多线程耗资源NIO网络模型主要分为两步:建立连接发送请求 NIO 核心Channel双向性非阻塞性操作唯一性实现类文件类: FileCha.原创 2020-06-04 00:27:59 · 302 阅读 · 0 评论 -
Java IO 的基本划分和代码示例
参考文献: https://www.jianshu.com/p/715659e4775f原创 2020-06-02 22:38:15 · 223 阅读 · 0 评论 -
多线程实践
Java 知识目录创建多线程继承 Thread 类Thread 常用构造方法中,常用的有两个参数 Thread(Runnable target, String name) Runnable接口的实现类,以及线程名称/** * 通过继承 Thread 创建多线程 * 1. 创建一个Thread类的子类 * 2. 在Thread子类中重写Thread类中的run方法,设置线程任务 * 3. 调用Thread类中的start方法,开启新线程,执行run方法 */public class Ext原创 2020-06-01 22:21:15 · 256 阅读 · 0 评论 -
线程、并发中的基本概念
线程、进程基本概念进程是程序的真正运行的实例,是资源分配的基本单位线程是CPU的基本调度单位,每个线程执行的进程代码的某个片段线程、进程关系与区别关系操作系统中可以包含多个进程,每个进程可以包含多个线程区别起源:先有线程后有进程概念:内存共享方式:默认情况下,内存无法与其他进程共享。线程共享 由系统分配给父进程的内存块拥有资源:进程拥有独立的内存,而线程只拥有在运行中必不可少的资源,但他可以与同进程下的线程分享进程拥有的全部资源线程共享的内容:比如进程的代码块线程独立的内容:原创 2020-06-01 20:20:35 · 374 阅读 · 0 评论 -
Mybatis Generator最完整配置详解
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><!-- 配置生成器 --><generatorConfigur转载 2020-05-08 21:27:21 · 294 阅读 · 0 评论 -
Jquery Ajax type的4种类型(GET,PUT,POST,DELETE)
1、GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。2、与GET不同的是,PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次...转载 2020-05-03 22:46:15 · 1751 阅读 · 0 评论 -
SpringMVC响应数据
返回值分类1、Sting类型controller 方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址。controller 方法在提供了 String 类型的返回值之后,默认就是请求转发。控制器代码 @RequestMapping("testSuccess") public String testSuccess(){ System.out.pr...原创 2020-03-24 17:33:08 · 154 阅读 · 0 评论 -
SpringMVC常用注解
文章目录RequestMappingRequestParamRequestBodyPathVaribaleRequestHeaderCookieValueModleAttributeSessionAttributeRequestMapping作用:用于建立请求 URL 和处理请求方法之间的对应关系。出现位置: 类上: 请求 URL 的第一级访问目录。此处不写的话,就相当于应用的根目录。...原创 2020-03-10 22:24:39 · 195 阅读 · 0 评论 -
SpringMVC:请求参数的绑定
文章目录SpringMVC:请求参数的绑定支持的数据类型示例代码基本类型以及String类型POJO类型POJO中包含集合类型自定义类型转换器使用 ServletAPISpringMVC:请求参数的绑定SpringMVC 绑定请求参数的过程是通过把表单提交请求参数,作为控制器中方法参数进行绑定的。支持的数据类型1、基本类型参数 : 包括基本类型和 String 类型2、POJO ...原创 2020-03-10 21:54:33 · 215 阅读 · 0 评论 -
Spring:中的事务控制
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.spr...原创 2020-03-10 18:36:49 · 164 阅读 · 0 评论 -
AOP:基于注解配置
通知类 logger 中环绕通知原创 2020-03-07 20:01:11 · 173 阅读 · 0 评论 -
AOP:基于xml配置
AOP 相关术语Joinpoint( 连接点): 所谓连接点是指那些被拦截到的点。在 spring 中,这些点指的是方法, 因为 spring 只支持方法类型的 连接点。 Pointcut( 切入点): 所谓切入点是指我们要对哪些 Joinpoint 进行拦截的定义。 Advice( 通知/ 增强): 所谓通知是指拦截到 Joinpoint 之后所要做的事情就是通知。 通知的...原创 2020-03-07 18:45:30 · 160 阅读 · 0 评论 -
代理模式
代理模式* 概念: 1. 真实对象:被代理的对象 2. 代理对象: 3. 代理模式:代理对象代理真实对象,达到增强真实对象功能的目的 * 实现方式: 1. 静态代理:有一个类文件描述代理模式 2. 动态代理:在内存中形成代理类 * 实现步骤: 1. 代理对象和真实对象实现相同的接口 2. 代理对象 = Proxy.newProxyInstance(); 三...原创 2020-03-07 18:00:18 · 140 阅读 · 0 评论 -
spring 注解注入&&整合junit
spring 常用注解用于创建对象 Component 把资源让 spring 来管理。相当于在 xml 中配置一个 bean。 Controller:用于表现层 Service:用于业务层 Repository:用于持久层 用于注入数据 注解不能注入集合类型 Autowried 自动按照类型注入,只能注入bean类型 (不常用) Qualifier 在自动注入的基础上...原创 2020-02-27 17:32:52 · 189 阅读 · 0 评论 -
单例、多例
1. 什么是单例多例:所谓单例就是所有的请求都用一个对象来处理,比如我们常用的service和dao层的对象通常都是单例的,而多例则指每个请求用一个新的对象来处理,比如action;2. 如何产生单例多例: 在通用的SSH中,单例在spring中是默认的,如果要产生多例, 则在配置文件的bean中添加scope="prototype"; 3. 为什么用单例多例:之所以用单例,...转载 2020-02-27 00:21:12 · 202 阅读 · 0 评论 -
Mybatis 使用注解实现复杂的关系映射
使用注解实现复杂的关系映射@Results 注解 代替的是标签<resultMap> 该注解中可以使用单个@Result 注解,也可以使用@Result 集合 @Results({@Result(),@Result()})或@Results(@Result()) @Resut 注解 代替了 <id> 标签和<result> 标签 @Resul...原创 2020-02-26 17:27:18 · 563 阅读 · 0 评论 -
Mybatis通过注解实现基本的CRUD
Userpackage com.itheima.domain;import java.io.Serializable;import java.util.Date;import java.util.List;public class User implements Serializable { private static final long serialVersionUID...原创 2020-02-25 23:22:11 · 184 阅读 · 0 评论 -
一级缓存与二级缓存
一级缓存与二级缓存Mybatis 中默认开启一级缓存,二级缓存需要手动开启Mybatis 中的缓存开启二级缓存配置相关的Mapper映射文件:添加 cache 标签标签表示当前这个 mapper 映射将使用二级缓存,区分的标准就看 mapper 的 namespace 值。<?xml version="1.0" encoding="UTF-8"?><!DO...原创 2020-02-25 22:19:20 · 369 阅读 · 0 评论 -
延迟加载
延迟加载延迟加载:就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。延迟加载也称懒加载.好处:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。坏处 :因为只有当需要用到数据时,才会进行数据库查询,这样在大批量数据查询时,因为查询工作也要消耗时间,所以可能造成用户等待时间变长,造成用户体验下降。使用 assocat...原创 2020-02-25 22:07:44 · 148 阅读 · 0 评论 -
DL(Dependency Injection) 依赖注入
DL依赖注入:Dependency Injection。它是 spring 框架核心 ioc 的具体实现。为什么需要DL?我们的程序在编写时,通过控制反转,把对象的创建交给了 spring,但是代码中不可能出现没有依赖的情况。ioc 解耦只是降低他们的依赖关系,但不会消除。例如:我们的业务层仍会调用持久层的方法。那这种业务层和持久层的依赖关系,在使用 spring 之后,就让 spri...原创 2020-02-25 19:54:15 · 467 阅读 · 0 评论 -
IOC(Inversion of Control) 控制反转
IOCSpring 中 Bean 工厂里面的 Map 存储结构(存储了 Bean 的实例)。Spring API 体系结构BeanFactory 与 ApplicationContext 的区别BeanFactory 才是 Spring 容器中的顶层接口。ApplicationContext 是它的子接口。BeanFactory 和 ApplicationContext 的区别:...原创 2020-02-25 18:36:08 · 155 阅读 · 0 评论 -
多表查询(AccountDao.xml)
一对一一对多多对多原创 2020-02-23 20:41:26 · 276 阅读 · 0 评论 -
RegExp:正则表达式对象
RegExp:正则表达式对象1. 正则表达式:定义字符串的组成规则。 1. 单个字符:[] 如: [a] [ab] [a-zA-Z0-9_] * 特殊符号代表特殊含义的单个字符: \d:单个数字字符 [0-9] \w:单个单词字符[a-zA-Z0-9_] 2. 量词符号: ?:表示出现0次或1次 *:表示出现0次或多次 +:出现1次或多次 {m,n}:表示...原创 2020-02-22 21:27:08 · 187 阅读 · 0 评论 -
Mybatis 配置文件中的标签
项目文件列表UserDao.xml(UserDao的映射配置文件)数据库的增删改查标签 insert 添加 selectKey 属性: keyProperty 实体类中的属性 keyColumn 数据库中的属性 order 选择sql语句执行的顺序 示例代码:获取添加数据的自增长id <selectKey keyProperty="...原创 2020-02-22 18:15:59 · 414 阅读 · 0 评论 -
Serializable接口
什么是Serializable接口一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才能被序列化。什么是序列化?序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。为什么要序列化对象把对象转换为字节序列的过程称为对象的序列化把字节序列恢复为对象的过程称为对象的反序...转载 2020-02-22 10:18:14 · 122 阅读 · 0 评论 -
前端网页为什么使用html而不使用jsp
以前的项目大多数都是java程序猿又当爹又当妈,又搞前端(ajax/jquery/js/html/css等等),又搞后端(java、mysql、Oracle等等)。随着时代的发展,渐渐的许多大中小公司开始把前后端的界限分的越来越明确,前端工程师只管前端的事情,后端工程师只管后端的事情,正所谓术业有专攻,一个人如果什么都会,那么他毕竟什么都不精。 大中型公司需要专业人才,小公司需要全...转载 2020-02-21 20:38:44 · 3833 阅读 · 2 评论 -
mybatis 环境配置
项目文件结构SqlMapConfig.xml(mybatis主配置文件)<!-- Config 约束 --><?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "htt...原创 2020-02-21 16:19:51 · 250 阅读 · 0 评论 -
redis&Jedis
Redis1. 概念: redis是一款高性能的NOSQL系列的非关系型数据库 1.2 NOSQL https://blog.youkuaiyun.com/qq_38009970/article/details/104379452 1.3 什么是Redis Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库, 且Redis通过提供多种键值数据类型来适应不同场景下的存储...原创 2020-02-18 18:03:55 · 247 阅读 · 0 评论 -
NOSQL
NOSQL 1.1.什么是NOSQL NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。 随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅...原创 2020-02-18 17:51:56 · 207 阅读 · 0 评论 -
Ajax&Json
AJAX:1. 概念: ASynchronous JavaScript And XML 异步的JavaScript 和 XML 1. 异步和同步:客户端和服务器端相互通信的基础上 * 客户端必须等待服务器端的响应。在等待的期间客户端不能做其他操作。 * 客户端不需要等待服务器端的响应。在服务器处理请求的过程中,客户端可以进行其他的操作。 Ajax 是一种在无需重新加载整个网页的情...原创 2020-02-18 15:29:59 · 102 阅读 · 0 评论 -
js实现Ajax
//1.创建核心对象 var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new Acti...原创 2020-02-18 15:27:04 · 125 阅读 · 0 评论 -
IDEA常用快捷键整理
仅整理我查过到的编辑常用快捷键1、补出数据类型和变量名 Ctrl + Alt + V2、添加/删除空行 向上插入空行:Ctrl + Alt + Enter 向下插入空行:Shift + Enter 删除:Ctrl + Y3、对选中的代码进行上下移动 上下移动:Shift + Alt + 方向键 左移:Shift + Tab4、格式化代码 Ctrl + Alt + L...原创 2020-02-18 15:00:08 · 200 阅读 · 0 评论 -
Filter&&Listener
Filter:过滤器1. 概念: * web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能。 * 过滤器的作用: * 一般用于完成通用的操作。如:登录验证、统一编码处理、敏感字符过滤... 2. 快速入门: 1. 步骤: 1. 定义一个类,实现接口Filter 2. 复写方法 3. 配置拦截路径 1. web.xml 2. ...原创 2020-02-09 17:31:02 · 110 阅读 · 0 评论 -
取消 tomact 自动打开网页
原创 2020-02-07 23:49:54 · 530 阅读 · 0 评论 -
EL&&JSTL
JSP:1. 指令 * 作用:用于配置JSP页面,导入资源文件 * 格式: <%@ 指令名称 属性名1=属性值1 属性名2=属性值2 ... %> * 分类: 1. page : 配置JSP页面的 * contentType:等同于response.setContentType() 1. 设置响应体的mime类型以及字符集 2. 设置当前jsp页...原创 2020-02-05 17:48:18 · 211 阅读 · 0 评论 -
web项目开发规范:以用户信息列表展示为例
仅以此规范我的编程习惯,持续补充中。。。1. 需求:用户信息的增删改查操作 2. 设计: 1. 技术选型:Servlet+JSP+MySQL+JDBCTempleat+Duird+BeanUtilS+tomcat 2. 数据库设计: 分析需要使用变量,为每个变量选取合适的数据类型。 添加 id 变量,设置为主观键字,自增 分析是否需要为变量添加约束(unique 、n...原创 2020-02-05 10:52:21 · 950 阅读 · 0 评论 -
Cookie && Session
会话技术1. 会话:一次会话中包含多次请求和响应。 * 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止2. 功能:在一次会话的范围内的多次请求间,共享数据3. 方式: 1. 客户端会话技术:Cookie 2. 服务器端会话技术:SessionCookie:1. 概念:客户端会话技术,将数据保存到客户端2. 快速入门: * 使用步骤: 1. 创建...原创 2020-02-04 12:26:13 · 134 阅读 · 0 评论 -
JSP
JSP:入门学习1. 概念: * Java Server Pages: java服务器端页面 * 可以理解为:一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码 * 用于简化书写!!!2. 原理 * JSP本质上就是一个Servlet3. JSP的脚本:JSP定义Java代码的方式 1. <% 代码 %>:定义的java代码,在servi...原创 2020-02-03 23:04:23 · 95 阅读 · 0 评论 -
ServletContext对象
ServletContext对象:1. 概念:代表整个web应用,可以和程序的容器(服务器)来通信2. 获取: 1. 通过request对象获取 request.getServletContext(); 2. 通过HttpServlet获取 this.getServletContext();3. 功能: 1. 获取MIME类型: * MIME类型:在互联网通信过程中定义的一...原创 2020-02-03 12:55:33 · 142 阅读 · 0 评论