- 博客(58)
- 收藏
- 关注
原创 类加载器以及双亲委派机制
类加载器以及双亲委派机制 1.类加载器 .class文件经过ClassLoader加载、初始化后 获得Class ,Class实例化后得到对象实例,实例可以通过getClass()方法得到 Class, Class可以通过getClassLoader()得到 类加载器 2.加载器级别 (1)虚拟机自带的加载器 (2)启动类(根)加载器(Bootstrap) (3)扩展类加载器(ExcClassLoader) (4)应用程序(系统类)加载器(APPClassLoader) 3.双亲委派机制 1.执行的时候寻
2021-07-26 17:02:39
321
原创 jvm体系结构
jvm体系结构 1.jvm的位置 jvm包含在jre当中, jre包含于操作系统,操作系统可以看做在硬件上安装的软件 2.体系结构 栈,本地方法栈,程序计数器中不会存在垃圾,因为一个方法执行完之后,栈帧出栈后会被立刻销毁,只有出栈和入栈这样简单的操作,不需要垃圾回收。而99%的调优都在堆中 ...
2021-07-26 17:00:29
216
原创 Spring
一.Spring开发步骤 IOC: 1.创建对象,对象管理 对象的创建和管理交给Spring容器 2.DI:依赖注入: 设置对象的属性 spring开发步骤 新建⼯程导⼊相关Jar包; 编写接⼝和实现类; //接口 UserDao public interface UserDao { void save(); } //实现类UserDaoImpl public class UserDaoImpl implements UserDao { @Override public void save()
2020-11-12 20:22:21
243
原创 mybatis
一.mybatis入门 JDBC的缺陷 1.代码存在大量重复操作 2.数据库链接创建,释放 频繁造成系统资源浪费,影响系统性能 3.sql语句中存在硬编码,代码不易维护 4.查询时,需要手动将结果集中的数据封装到实体中,插入操作时要手动设置占位符语句 ORM(Object Relational Mapping) 是一种 程序设计技术,用于实现面向对象语言里面的不同类型系统的数据之间的转换。 把数据库和实体类,与实体类的属性对应起来,我们可以通过操作实体类,就实现操作数据库的表 myBatis开发步骤 (4
2020-11-12 20:13:48
191
原创 Ajax
Ajax是异步的javaScript 和 XML Ajax的优点: 1.不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容 2.ajax性能较高 3.AJAX使用Javascript技术向服务器发送异步请求 Ajax的缺点 1.AJAX并不适合所有场景,很多时候还是要使用同步交互 2.AJAX虽然提高了用户体验,但无形中向服务器发送的请求次数增多了,导致服务器压力增大 3.因为AJAX是在浏览器中使用Javascript技术完成的,所以还需要处理浏览器兼容性问题 $.ajax执行步骤 JSP
2020-11-12 19:52:01
141
原创 Lister监听器
一.监听器 监听器:专门用于对其他对象身上发送的 事件或状态改变进行监听和相应处理的对象 Servlet监听器:Servlet是一种特殊类,用于监听web应用程序中的,ServletContext,HttpSeesion和 ServletRequest域对象的创建和销毁事件,以及监听这些域对象中的属性发生修改的事件 Servlet监听器的分类 (1)监听 域对象自身的创建和销毁的事件 监听器 (2)监听域对象中的属性 的增加和删除的事件监听器 (3)监听绑定到域中某个对象的状态的事件监听器 Listener
2020-11-12 19:51:20
221
原创 Filter过滤器
Filter简介 功能:.Filter可以拦截 servlet容器对Servlet的调用,从而在Servlet进行响应前后实现一些特殊功能 Filter也可以拦截,Jsp,图片,文件,html等静态资源 2.Filter的三个接口 (1)Filter (2)FilterChain (3)FilterConfig 3.Filter程序是一个实现了Filter接口的Java类,与Servlet程序相似,由Servlet容器进行调用和执行 在web.xml中配置filter //配置filter <fil
2020-11-12 19:50:27
282
1
原创 EL表达式
内置对象 1.pageScope //表示pageContext. ${pageContext.值名称} 从pageContext中取值 2.requestScope //表示request. ${requestScope.值名称} //从request域对象中取值 3.sessionScope //表示session ${sessionScope.值名称} //从session域对象中取值 4.applicationScope //表示applicationScope ${appl
2020-11-12 19:49:15
222
原创 会话状态管理
一.Session 特点:保存在服务器端 缺点:占用服务器资源过多 运行原理 浏览器第一次发送请求时,服务器新建一个session,生成一个JsessionId,在服务器响应的时候会将JsessionId响应给浏览器,浏览器会保存jsessionid,下一次浏览器进行请求时,会将jsessionid一同发送给服务器,服务器根据jsessionid匹配session session的创建与删除 创建 HttpServletRequest.getSession(); Session中的方法 set
2020-11-12 19:48:32
225
原创 JSP
一.JSP九大内置对象 (1)request:请求对象(域对象 作用域:同一个请求) —就是HttpServletRequest,代表客户端的请求信息,主要接收http协议传输 到服务器上面的数据 (2)response:响应对象 —就是HttpServletResponse,代表客户端响应 (3)out:响应并输出到浏览器上 —是JspWriter对象,把结果响应并输出到浏览器上 (4)session:会话(域对象 作用域:同一个会话) —代表浏览器和服务器的一次会话 (5)appliaction:就是s
2020-11-12 19:46:35
128
原创 Servlet
一.实现servlet的三种方式和封装过程 1.实现 Servlet接口 2.继承 GenericServlet 类(GenericServlet继承了Servlet 和servletConfig) 3.实现 httpServlet类 一.service方法中的request和response对象 1.request对象 (1)request.getParameter(String s) //作用:根据请求参数的名字获取对应的值 返回值:字符串 2.response对象 (1)response.s
2020-11-12 19:44:34
200
原创 mysql面试题
1.SQL的语言分类?DDL DML DCL DDL:数据定义语言 DML:数据操纵语言 增删改 DCL:数据控制语言 权限控制 DQL:数据查询语言 2.mysql的默认存储引擎 默认存储引擎:InnoDB. myisam memory 3.char和varchar的区别 (1)char 存储的是长度不变的字符 varchar存储的是长度可变的字符 (2)char 存储更快 varchar 速度相对较慢 (3)char 英文占一个字节,汉字两个字节 varchar英文和汉字都是两个
2020-10-20 20:11:08
163
原创 前端面试题
1.Html Css Js Jquery 分别是什么 Html:超文本标记语言,是一种描述性的标记语言,是制作网页的标准语言 Css : 层叠样式表 ,css依托于html 给html设置样式 js : 一种弱类型的解释性语言 JQuery: jQuery就是js的一个库,把我们常用的功能进行了封装,方便调用 2.XML和HTML的区别 (1)XML是可扩展性标记语言 ,HTML是超文本标记语言 (2)html是用来显示数据的其焦点是数据的外观, xml是用来描述数据、存放数据的,其焦点是数
2020-10-20 20:10:32
298
原创 java基础 面试题
1.jdk,jre,jvm 之间的关系 jdk 是开发环境,jre是开发工具包,jvm是虚拟机 jdk>jre>jvm 2.java程序运行原理 java源代码在编译之后转化为字节码文件即 class文件,再经过jvm转化为机器码; 3.基本数据类型和引用数据类型都有哪些 (1)基本数据类型 : 整形 long short int byte 浮点型 float(4) double 布尔型 boolean 字符型 char (2)引用数据类型 类:class 接口:interface 数组:a
2020-10-20 20:09:40
528
原创 函数式编程和lambda表达式
一.接口的默认方法 (1)在接口中添加一个非抽象方法只需要使用一个default 关键字就可以 (2)我们把非抽象方法理解成一个扩展方法, 二.函数式编程 1.什么是函数式编程 ?一切皆函数 2.将处理问题的粒度从类变成函数,从而可以更好的满足系统对重用性,和扩展性的支持 3.可以将函数作为参数传递给另一个函数 4.可以简化代码的操作 5.开发速度快,易于并发编程,不需要考虑死锁 6.耗费cpu 三.Lambda表达式 (1)lambda表达式是一种新的语法形式,简化了代码的开发操作,由编译器转化为常规的代
2020-10-20 20:08:30
468
原创 泛型
泛型的优点 1.避免了强制类型转化引发的异常 2.限制了数据类型,保护了数据类型的安全 3.将运行期间异常转到了编译时异常 什么时候使用泛型 1.当操作的引用类型不确定的时候就要使用泛型<T/E> 使用泛型的流程 再编译时通过<>可以确保类型安全,再运行时会将泛型移除 四:泛型类 1.泛型类定义和声明:在类型后面通过<>指定一个或者多个类型参数,同时还乐意对类型参数取值范围进行限定,多个类型之间使用,分割 五.泛型方法、 1.泛型方法的定义:在方法访问修饰符后面通过<
2020-10-20 20:07:59
164
原创 集合框架-Map
Map:保存具有映射关系的数据 1.Collection(List,Set) 接口 和 Map接口 是平行关系 2.Map存放的数据是键值对(k-v)数据 key:Map中的键 不能重复底层实现是用Set value:Map中的值 可以重复底层实现是List Map实际上是提供了一个Entry内部类封装了key-value 3.Map的优点 通过key找到value,这种映射关系方便查找数据 4.常用方法 (1)put(key,value) 添加元素 (2)remove(key) 移除元素 (3
2020-10-20 20:07:27
220
原创 Collections-操作集合的工具类
1.Comparable : (1)位于java.lang 包下 (2)实现的原理基于红黑二叉树 (3)包含一个比较方法:compareTo(T t) 参数:T 泛型 –字符串:根据字典顺序比较 如果等于0则相等 –自定义类型:需要实现Comparable 重写 compareTo()方法 ,自定义排序规则 2.Comparator 接口 (1)Comparator接口也是一个排序比较器,位于java.util包下 (2)含有一个比较的方法compare(T t1 , T t2) (3)如果一个类实
2020-10-20 20:07:01
151
原创 Collection-Set
Set 1.Set接口继承于Collection 2.Set堆中存储的数据是无序的(不代表乱序) 3.Set中存储的数据是不可重复的(当Set中添加相同的元素时,只能添加一个元素) 4.添加进Set中的元素一定要重写equals和hashCode()方法 (1)set中元素的存储使用哈希算法 (2)当向Set添加元素时,首先会调用该对象所在类的HashCode()方法,计算对象的哈希值,这个哈希值就决定了元素的储存位置 (3)再通过equals()比较两个对象是否相同,如果相同则不能添加 5.Set接口的实
2020-10-20 20:06:24
158
原创 集合框架-List
一.List 1.List 接口是 Collection 接口的子接口 2.List 是有序的集合,存储数据和取出数据的顺序是一样的 3.有索引,包含了一些带索引的方法(底层实现是数组,他是一个可变数组) 4.允许存储重复的元素 5.List接口的主要实现类 ArrayList 6.常用方法 (1)add() 添加元素 add(index,ele) 在指定位置添加元素 (2)get(index) 获取指定索引位置的元素 (3)indexOf(Object) 获取元素在集合中第一次出现的索引位
2020-10-20 20:05:52
164
原创 集合框架-Collection
集合:集合可以看作一种容器,用来存储 对象信息,所有的集合都位于java.util包下 1.数组和集合的区别 (1)数组存储的是相同的数据类型 , 集合可以存储不同数据类型 (2)数组可以存储基本类型的数据也可以存储对象, 集合只能存储对象 (3)数组长度是不可变化,一旦确定数组长度数组只能存储固定个数的元素, 集合可以存储数量不确定的数据 2.集合包含的主要接口 :java集合中有两个根接口,Collection 与 Map (1)Collection接口 Ⅰ.list接口(底层实现使用数组) : 主
2020-10-20 20:05:14
158
原创 常见的事件
一.常用的事件 onload 加载完成事件: 页面加载完成之后,常用于做页面js代码初始化操作 onclick 单击事件: 常用于按钮的点击相应操作 onblur 失去焦点事件: 常用于输入框失去焦点后验证其输入内容是否合法 onmouseout:鼠标离开 onmouseover:鼠标移动到某个元素上面 onkeydown:键盘的按键事件 onchange 内容发送改变事件 常用于下拉列表和输入框内日那个发生改变之后的操作 onsubmit 表单提
2020-10-05 17:07:16
571
原创 BOM
js两大核心:BOM 和 DOM BOM :浏览器对象模型 js去操作浏览器 DOM : 文档对象模型 js去操作DOM树 一.常见方法 1.alert(); //弹出对话框 2.confirm();//询问确认的对话框(确定和取消按钮) 返回值为true 或 false 3.prompt():提示用户输入的对话框 返回输入的字符串 4.open():打开新的浏览器窗口 加载给定的URL地址 open(“地址”); 5.close() : 关闭浏览器窗口 二.常见属性 history:
2020-10-05 17:06:23
123
原创 JSON
JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) (1)JSON 是轻量级的文本数据交换格式 (2)JSON 是存储和交换文本信息的语法。类似 XML。 (3)JSON 比 XML 更小、更快,更易解析。 (4)JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 (5)目前非常多的动态(PHP,JSP,.NET)编程语言都支持JS
2020-10-05 17:05:50
221
原创 js_事件
一.常用的事件 onload 加载完成事件: 页面加载完成之后,常用于做页面js代码初始化操作 onclick 单击事件: 常用于按钮的点击相应操作 onblur 失去焦点事件: 常用于输入框失去焦点后验证其输入内容是否合法 onchange 内容发送改变事件 常用于下拉列表和输入框内日那个发生改变之后的操作 onsubmit 表单提交事件 常用于表单提交前,验证所有表单是否合法 二.事件注册(绑定) (1)什么是注册 静态事件注册:
2020-09-23 20:59:11
214
原创 javaweb_js
js 是弱类型 java 是强类型 弱类型就类型可变 强类型就是定义变量的时候类型已经确定。而且不可变 //alert是javaScript语言提供的一个警告框函数 //他可以接受任意类型的参数,这个参数就是警告框的提示信息 alert(); typeof()是javascript 语言提供的一个函数 他可以取变量的数据类型返回 一。js的特点 1.交互性(可以做到信息的动态交互) 2.安全性(不允许直接访问本地硬盘) 3.跨平台性(只要可以解释js的浏览器都可以执行和平台无关) 二.ht
2020-09-23 20:58:24
207
原创 javaweb_css
一.导入 css样式 使用 二.css选择器 1.标签名选择器 : 格式: 标签名{ 属性 : 值; } 标签名选择器可以决定哪些标签被动的使用这样的样式 2.id选择器 格式 #id = “属性值”{ 属性值 : 值; } id选择器可以让我们通过id属性选择性的使用这个样式 3.class类型选择器 .class = “属性值”{ 属性: 值 } 4.组合选择器 选择器2,选择器2,选择器n{ 属性 : 值; } 组合选择器 可以让多个选择器公用同一个 css样式代码 三.css常用
2020-09-23 20:57:24
109
原创 javaweb_html
标签分为 1.围堵标签 :有开始标签和结束标签 如 2.自闭和标签 : 开始标签 和 结束标签 在一起 如 文件标签: 构成html 最基本的标签 1.html : html 文档的根标签 2.title : 标题 标签 3.body: 体标签 4.head:头标签 用于指定 html 文档的 一些属性。引入外部的资源 5. : html5中定义该文档是html 文档 文本标签:和文本有关的标签 注释 to : 换行标签 :显示一条水平线 : 自闭和标签 可以设置 color ,width ,
2020-09-23 20:56:39
124
原创 Oracle 创建表空间 及用户授权
一.创建表空间 create tablespace 表空间名 detafile “路径 后缀名为 .dbf” --路径 size 100m – 表空间 初始大小 为100 autoextend on – 允许自动扩展 next 10m – 每次扩展大小 —删除表空间 drop tablespace 表空间名; –创建用户 create user 用户名 identified 密码 default tablespace 出生的 表空间名 –给用户授权 Oracle 中 常见角色 connect -
2020-09-17 11:03:23
200
原创 Spring jdbcTemplate
spring JDBC : JDBC Template Spring框架提供的对JDBC的简单封装。提供了一个JDBCRemolate 对象简化JDBC的开发 步骤1. 导入 jar 包 commons-logging-1.2.jar spring-beans-5.1.10.RELEASE.jar spring-core-5.1.10.RELEASE.jar spring-jdbc-5.1.10.RELEASE.jar spring-tx-5.1.10.RELEASE.jar 步骤2.创建jdbctemla
2020-09-16 10:24:50
148
原创 druid工具类
public class druidsUtils { private static DataSource ds; //静态代码块 static{ try { //加载配置文件 Properties pro = new Properties(); pro.load(test_druid.class.getClassLoader().getResourceAsStream("druid.properties")); //初始化 数据库连接池对象 ds = DruidData
2020-09-16 10:24:07
209
原创 数据库连接池
1.数据库 连接池 概念:一个容器(集合) ,存放数据库连接的容器 当系统初始化好后 ,容器被创建 ,容器中会申请一些连接对象,当用户访问数据库时,从容器中获取连接对象 ,用户访问完之后会将连接对象归还给容器 优点:节约资源 用户访问高效 实现 标准接口 :DataSource java.sql包下 方法 : 获取连接 getConnection(); 归还连接:如果连接对象Connection 是从连接池中获取的那么调用Connection.close ,则不会再关闭连接而是 归还连接 数据库连接池:
2020-09-16 10:23:33
129
原创 jdbc管理事务
JDBC控制事务 事务: 一个包含多个步骤的业务操作。如果这个业务操作被事务管理,那么这些操作要么同时成功要么同时失败 操作 1。开启事务 2.提交事务 3.回滚事务 使用Connection 对象来管理事务 开启事务 : setAutCommit(boolean autoCommit):调用该方法 设置参数为false ,即开启事务 在操作之前开启事务 例:conn.setAutCommit(boolean autoCommit) 提交事务: commit() conn.commit() 回滚事务: ro
2020-09-16 10:22:48
434
原创 jdbc对象详解
1.DriverManager: 驱动管理对象 功能: (1)注册驱动 :告诉程序 该使用哪一个 数据库 static void registerDriver(Driver driver):注册与 给定的驱动程序DriverManager 写代码使用 :Class.forname(“com.mysql.jdbc.Driver”); (2)获取数据库连接 方法:static Connection getConnection (String url ,String user, String passwo
2020-09-16 10:21:53
278
原创 jdbc操作步骤
1.导入驱动jar包 mysql-connector-java-5.1.49-bin.jar 2.注册驱动 3.获取数据库连接对象 connection 4.定义sql 5.获取执行sql语句的对象 statement 6.执行sql,接受返回结果 7.处理结果 8.释放资源 例: /1.导入驱动jar包 //2.注册驱动 Class.forName(“com.mysql.jdbc.Driver”); //3.获取数据库的连接对象 Connection connection = DriverManag
2020-09-16 10:21:09
236
原创 DCL管理用户 ,授权
一.管理用户,授权 !!!!!!!!!!!!! 运行 管理用户操作之前 先执行 FLUSH PRIVILEGES; 1.管理用户 (1)添加用户 CREATE USER “用户名 ‘@’ 主机名” IDENTIFIED BY “密码”; (2)删除用户 drop user “用户名’@’ 主机名”; (3)修改用户密码 update user set password = password(‘新密码’) where user = ‘用户名’; setpassword ‘用户名’@‘主机名’ = pas
2020-09-11 20:26:54
152
原创 事务
**事务** 1.事务的基本介绍 (1).概念 如果一个包含多个步骤的业务操作,被事务管理 ,那么这些操作要么同时成功 要么同时失败 (2)操作 开启事务:start transaction; 回滚: rollback; 提交:commit; mysql数据库中事务自动提交 oracle 数据库默认是手动提交 查看事务的默认提交方式 :select @@autocommit; 1代表自动提交 0 代表手动提交 修改事务的默认提交方式 : select @@autocommit = 0; 2.事...
2020-09-11 20:26:08
134
原创 多表查询
**多表查询** 一.多表查询: select 列名列表 from 表名列表; 例:SELECT * FROM product ,recruit; 1.多表查询的分类: (1)内链接查询 隐式内链接 :用where消除无用的数据 例: SELECT * FROM product ,recruit WHERE product.pid = recruit.pid; 显式内连接: 语法: select 字段列表 from 表名1 inner join 表名2 where 条件...
2020-09-11 20:25:14
422
原创 三大范式
设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据这些不同的规范要求被称为不同的范式, 各种范式呈递次规范,越高的范式数据库冗余越小。 目前关系数据库有六种范式: 第一范式(1NF)、 第二范式(2NF)、 第三范式(3NF)、 巴斯-科德范式(BCNF)、 第四范式(4NF )和第五范式(5NF,又称完美范式) 第一范式:每一列都是不可分割的数据项 第二范式:在1NF的基础上非码属性必须依赖于码(在1NF的基础上消除非主属性对主码的部分函数依赖) 1.函数依赖:如果通过 A属性 或者属性组
2020-09-11 20:22:46
212
原创 多表之间的关系
**多表之间的关系** 1.一对一的关系 一对一的关系实现 可以在任意一方添加外键 指向另一方的主键 并且让外键唯一 2.一对多(多对一) 实现关系 :一对 多 在多的一方建立外键 指向 一的 一方的主键 3.多对多 多对多 多对多关系的实现 需要借助第三张给中间表 中间表至少 包含两个字段,这两个字段作为第三张表的外键 分别指向两张表的主键 复合主键 两个外键 联合起来作为 表的主键 例: primary key(外键1,外键2); ...
2020-09-11 20:12:09
291
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅