自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 收藏
  • 关注

转载 堆栈和队列的区别

堆栈(Stack)和队列(Queue)的区别1、堆栈:后进先出,队列:先进先出2、堆栈:只需要一个引用指针top,队列:需要两个引用指针rear、front3、检查是否为空:堆栈,top = = -1;队列:front = = -1 或 rear = = -14、堆栈:插入删除都发生在top端,队列:插入发生在rear端,删除发生在front端5、检查是否为满:堆栈,top = = max - 1,队列:front = = -1或 front = = rear + 1...

2021-10-20 14:35:17 3970

转载 全局变量和局部变量

全局变量和局部变量全局变量局部变量全局变量和局部变量的区别全局变量类的属性称之为全局变量,也称之为类的成员变量,字段局部变量局部变量是定义在方法体,或者代码块中的变量,参数是特殊的局部变量全局变量和局部变量的区别1、作用域成员变量的作用域在整个类中局部变量,从声明它的地方开始,直到它所在的{}结束2、初始值成员变量是有初始值(也叫做默认值,也叫做缺省值)的局部变量 没有初始值,在使用之前必须先声明并赋值3、修饰符成员变量可以使用public static 等修饰符修饰局部变量不能

2021-10-12 20:21:45 482

转载 Spring的常用注解

Spring的常用注解@Component@Controller@ResponseBody@Autowired@Component@Component:注册bean到Spring容器中。@Controller、@Service、@Repository都可以称为@Component。@Controller:控制层@Service:业务层@Repository:数据访问层区别:@Component(@Controller、@Service、@Repository)通常是通过类路径扫描来自动侦测以

2021-10-12 19:58:02 272

原创 MyBatis

MyBatisMyBatis是什么MyBatis底层是用什么实现的?接口Mapper内的方法能重载吗?简单过程MyBatis中#和$的区别MyBatis的高级映射动态spl语句MyBatis是什么它是一款半自动的ORM持久层框架,具有较高的SQL灵活性,支持一对一,一对多,动态SQL和缓存等特性,但它的数据库无关性较低。ORM(Object Relational Mapper)对象关系映射为了解决Java对象和关系数据库存在的互不匹配的现象的技术,Hibernate和MyBatis。MyBatis

2021-10-09 15:10:56 277

原创 IOC和AOP

IOC和AOPSpring中的两大核心IOC控制反转IOC和DI@Resourse和@Autowired依赖注入方式AOP面向切面编程代理模式事务AOP注解Spring中的两大核心IOC和AOPIOC控制反转IOC和DIIOC控制反转是指我原来需要在程序中自己创建对象,现在对象的创建交给外部容器(这里是Spring容器)完成。说到IOC就不得不提的另一个概念DI依赖注入,是指将对象之间的相互依赖关系交给IOC容器管理,并由IOC容器完成对象的注入。两者的区别IOC解决的是对象的创建问题;D

2021-10-09 11:22:58 267

原创 super()和this()

super()和this()’super()函数super()函数在子类构造函数中调用父类的构造函数时使用,而且必须要在构造函数的第一行。this()函数this()函数主要应用于同一类中从某个构造函数调用另一个重载版的构造函数。this()只能用在构造函数中,并且也只能在第一行。所以在同一个构造函数中this()和super()不能同时出现。不同点:1、super()主要是对父类构造函数的调用,this()是对重载构造函数的调用2、super()主要是在继承了父类的子类的构造函数中使用,是在

2021-09-30 09:36:05 2196

转载 Spring、SpringMVC和SpringBoot

Spring、SpringMVC和SpringBoot一、概念1、SpringSpring是一个开源容器框架,可以接管web层,业务层,dao层,持久层的组件,并且可以配置各种bean,和维护bean与bean之间的关系。其核心就是控制反转(IOC),和面向切面(AOP),简单的说就是一个分层的轻量级开源框架。2、SpringMVCSpring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。SpringMVC是一种web层mvc框架,用于替代se

2021-09-30 08:23:07 372

原创 计算机网络

计算机网络

2021-09-27 11:00:43 237

原创 线程---JUC

JUCJUCCallableLock锁JUCJava真的可以开启线程吗?开不了的,底层是用native关键词修饰,调用本地实现。并发编程的本质: 充分利用CPU的资源Callable普通的线程代码,之前都是用的thread或者runnable接口。但是相比于callable来说,thread没有返回值,且效率没有callable高。与Runnable区别:1、可以有返回值2、可以抛出异常3、方法不同,分别是call()和run()public class CallableDemo

2021-09-27 10:38:05 152

原创 JDBC、HTML、CSS、JS、Servlet、JSP、Tomcat、JQuery、JSON、Ajax、EL、JSTL简单总结

总结JDBCJDBC开发步骤:PreparedStatement(预编译) vs Statement:HTMLCSSCSS使用:选择器分类:一些常见的样式:JS(JavaScript)Servlet和JSPServletJSP:TomcatJQueryJSON(Java Object Notation)特点:作用:两种格式:JSON和XML相比JSON的优点Ajax特点:运行原理:常用方法EL和JSTLJDBCJDBC提供了一套接口Connection、Statement、ResultSet。

2021-09-27 10:02:26 1146

转载 数据库---SQL语句中 DDL 、DML 、DQL 、DCL

SQL语句中 DDL 、DML 、DQL 、DCLDDLDMLDDLDCL 语句DDLDDL(Data Definition Language)语句: 数据定义语言,主要是进行定义/改变表的结构、数据类型、表之间的链接等操作。常用的语句关键字有 CREATE、DROP、ALTER 等。DMLDML(Data Manipulation Language)语句: 数据操纵语言,主要是对数据进行增加、删除、修改操作。常用的语句关键字有 INSERT、UPDATE、DELETE 等。DDLDQL(Dat

2021-09-27 08:44:51 378

原创 那些问到的而我不会的问题

问题登录是怎么做的,为什么要这么做Spring里面常使用的一些注解Tomcat是什么对反射是怎么理解的如何获得字节码文件为什么使用反射哪里用到了反射了解过MySQL的配置吗MyBatis的增强(MyBatis-Plus)创建对象的方法final关键字登录是怎么做的,为什么要这么做登录的基本思路是:正常的登录界面,需要键入用户名密码,用户名密码正确可以进入之后的操作;用户名密码错误则要重试。最后要有退出登录功能。所以我们需要写一个用户servlet,一个登录界面和一个登录失败页面。其中用户userS

2021-09-26 15:09:45 361

转载 创建对象的方法

创建对象的方法使用New关键字、使用Class类的newInstance方法、使用Constructor类的newInstance方法、使用Clone方法、使用反序列化。1、使用new关键字:这是我们最常见的也是最简单的创建对象的方式,通过这种方式我们还可以调用任意的构造方法(无参的和有参的)。比如:Student student = new Student();2、使用Class类的newInstance方法:我们也可以使用Class类的newInstance方法创建对象,这个newInstance

2021-09-26 11:49:07 936

原创 反射相关问题

对反射是怎么理解的动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。JAVA反射机制是在运行状态中对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。要想解剖一个类,必须先要获取到该类的字节码文件对象(class)。而解剖使用的就是Class类中的方法。所以先要获取到每一个字节码文件对应的Class类型的对象。如何获得字节码文件Class:是反射的核心类每个类加载到内存后,系统都会有唯一的一份字节码对象(Person.cl

2021-09-26 11:15:33 88

原创 Servlet和JSP

Servlet和JSPServlet静态网页动态网页Servlet实现步骤JSPJSP模板JSP的脚本:(脚本就是一段代码)JSP表达式jsp和servlet的区别和联系联系区别Servlet和JSP最主要的不同点在于通过MVC双剑合璧Servlet用java语言开发动态资源的技术静态网页1、无论谁看内容都是一样的。2、百度百科、新闻、login.html登陆界面。3、服务器直接保存html,直接返回html即可。动态网页1、不同的人看到的内容是有差异的。2、微博、登陆思途管理系统看到的内

2021-09-26 09:56:11 157

原创 JDBC简介

JDBC简介JDBC开发步骤PreparedStatement(预编译)和Statement简介在JDBC里面提供了一套接口Connection、Statement、ResultSet,每个数据库厂商实现了这套接口,例如MySql公司实现了:MySql驱动程序里面实现了这套接口,Java程序员只要调用实现了这些方法就可以实现对MySql数据库的增删改查。JDBC开发步骤1、加载驱动Class.forName("");2、获得连接对象Connection3、写sql语句4、创建Stateme

2021-09-26 09:12:41 110

原创 中通面试准备

Spring Boot的特点Spring Boot的特点:不需要配置web.xml不需要配置 springmvc.xml不需要 Tomcat,因为Spring Boot 内部整合了 tomcat 相当于已经为你部署好了不需要你在配置Tomcat不需要配置 JSON 解析,支持 REST 架构创建线程的方式(实现多线程)实现多线程有以下四种方式:1、继承Thread类2、实现Runnable接口3、实现Callable接口4、线程池:提供了一个线程队列,队列中保存着所有等待状态的线程。避

2021-09-18 18:17:12 193

原创 JVM---垃圾回收

垃圾回收关于垃圾回收什么是垃圾为什么需要GCGC 的作用区域垃圾回收相关算法标记阶段引用计数算法引用计数算法特点可达性分析算法(根搜索算法、追踪性垃圾收集)可达性分析算法基本思路GC Roots可以是哪些元素?可达性分析算法的注意事项对象的 finalization 机制清除阶段标记-清除算法(Mark-Sweep)标记-清除算法的缺点复制算法复制算法的优缺点复制算法的应用场景标记-压缩算法(标记-清除-压缩(Mark-Sweep-Compact)算法)标记-压缩算法的执行流程标记-压缩算法的优缺点标记-压

2021-09-16 15:44:01 165

原创 数据库---redis---缓存穿透,缓存击穿,缓存雪崩,缓存预热

缓存穿透,缓存击穿,缓存雪崩,缓存预热缓存处理流程缓存穿透解决缓存击穿解决缓存雪崩这个没有完美解决办法缓存预热缓存处理流程前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。缓存穿透缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求。如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。解决实际开发中使用情况,数据库中80%-85%都存放到red

2021-09-15 16:47:34 194

原创 数据库---Redis

RedisRedis关系型数据库和非关系型数据库Redis简介RedisRedis可以用在查询一些不经常发生变化的数据。缓存的思想:首先从Redis中取数据:1、Redis中有:直接返回2、Redis中没有:(1)从数据库中查询(2)将数据放到Redis缓存中(3)返回数据关系型数据库和非关系型数据库可以理解为一个大的Map结构,那为什么不直接使用Map呢?内存中缓存的选择有很多,可以使用Map集合,但是Map集合只能当前项目使用,但是要做分布式的部署有多台电脑的话Map集合就不

2021-09-15 16:37:15 90

原创 数据库---数据库索引及优化

数据库索引及优化索引(Index)==提高效率==索引的优缺点:优点缺点MySQL索引几种索引类型:MySQL的索引结构B 树B+ 树B+ 树和 B 树有什么不同哈希索引(Hash索引)聚集索引 VS 非聚集索引:覆盖索引(Covering Index,索引覆盖)索引的创建、删除和查看==索引的使用场景==需要创建索引的情况不需要创建索引的情况SQL中的逻辑删除和物理删除二者的区别:逻辑删除的目的==索引优化、Sql优化==索引(Index)提高效率如果没有索引,那么需要进行全表扫描,会非常慢,当数据

2021-09-15 16:32:41 294

原创 数据库---数据库的存储引擎

数据库的存储引擎存储引擎常用的表的引擎如何查看及设置数据库引擎存储引擎常用的表的引擎Myisam ,批量插入速度快, 不支持事务,锁表Innodb, 批量插入相对较慢,支持事务,锁行. (默认)如何查看及设置数据库引擎1、show engines;可以看到如下结果:2、如何更改默认数据库引擎找到MySQL配置文件mysql.ini,首先将其备份(这是个好习惯,当需要更改Linux上配置文件时)即cp mysql.ini mysql.ini.bak在[mysqld]后面添加defa

2021-09-15 15:34:53 107

原创 数据库---三范式

三范式数据库设计三范式(3NF)第一范式(1NF)原子性第二范式(2NF)唯一性第三范式(3NF)独立性总结数据库设计三范式(3NF)范式,就是规范,就是指设计数据库需要(应该)遵循的原则。每个范式,都是用来规定某种结构或数据要求——后一范式都是在前一范式已经满足的情况用来“加强要求”。但是并不一定要遵守。第一范式(1NF)原子性原子性:存储的数据应该具有“不可再分性”。不良做法: (图是找的)应该:(图是找的)第二范式(2NF)唯一性唯一性 :消除非主键依赖联合主键中的部分字段。

2021-09-15 15:26:39 1344 1

原创 数据结构---二叉树

二叉树树定义度结点的关系层次深度==二叉树==定义特点性质斜树满二叉树树定义树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一颗非空树中:1)有且仅有一个特定的称为根(Root)的结点;2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、…、Tn,其中每一个集合本身又是一棵树,并且称为根的子树。此外,树的定义还需要强调以下两点:1)n>0时根结点是唯一的,不可能存在多个根结点,数据结构中的树只能有一个根结点。2)m>0时

2021-09-15 15:05:19 533

原创 数据库---视图,索引,事务,存储过程,触发器,char和varchar

视图,索引,事务,存储过程,触发器,char和varchar视图作用示例注意事务视图视图就是将这个查询返回的结果集起了一个名字保存起来,视图就是临时存储数据构成的一张表。不是一个真正的表,但是我们使用时候可以当成一张表来使用。作用简化查询进行权限控制,比如公司的货物信息需要与合作的公司共享,不想让他知道全部的信息并能进行更改。视图可以把表的增删改查的权限封闭,只开放相应的视图权限,视图里面只是有我们想开放的数据。示例-- 查询每个栏目下面商品的平均价格,并按照平均价格排序,-- 查询平

2021-09-14 17:19:39 523

原创 数据库---事务

事务事务简介数据库开启事务的命令结束事务书写结构实例*事务四个基本特征或 ACID 特性:Spring的事务传播特性(属性、机制)事务简介事物是指逻辑上的一组操作,组成这组操作的各个单元,要么全部执行成功,要么全部实行失败。例如:张三–李四转账-- 事物CREATE TABLE account( id INT PRIMARY KEY auto_increment, `name` VARCHAR(10), money DOUBLE);INSERT INTO accou

2021-09-13 15:04:38 566

原创 框架---SSM集合,Maven

SSM集合

2021-09-11 18:47:26 233 1

原创 框架---SpringAOP,代理模式

SpringAOP,代理模式SpringAOP代理模式静态代理静态代理优缺点动态代理(JDK代理)SpringAOPAspect Oriented Programming 面向切面编程Object Oriented Programming面向对象编程拦截器、过滤器都是基于代理模式代理模式静态代理让目标对象和代理类实现同一个接口,目的是让客户端访问的时候行为是一致。这其实就是一种保护(对目标对象的保护),控制对具体目标对象的访问,这个时候就由代理说了算。在代理对象里面转调目标对象之前和之

2021-09-11 14:42:41 262

原创 集合框架--2、哈希表、hashCode、equals、HashMap

哈希表、hashCode、equals、HashMap散列表(Hash table,也叫哈希表)通常用的处理冲突的方法:hashCode方法:当向集合中插入对象时,如何判别在集合中是否已经存在该对象了?哈希表什么是容量Hash Set底层就是通过HashMap实现的,HapMap底下又是由哈希表实现的。散列表(Hash table,也叫哈希表)它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意

2021-09-10 17:05:33 265

原创 集合框架--List,Set,Map

List,Set,Map集合的继承实现关系Collection接口概述创建集合的格式示例Iterator迭代器List接口特点(也是所有实现类的特点)ArrayListConcurrentModificationException迭代器的并发修改异常Set接口HashSet集合的继承实现关系Iterator迭代器,下面所有的都可以用迭代器来遍历。Collecton接口常用的子接口有:List接口、Set接口。List接口常用的子类有:ArrayList类、LinkedList类。Set接口常用

2021-09-10 16:34:09 888 1

原创 框架---SpringBoot

SpringBootSpringBoot什么是SpringBootSpringBoot特点SpringBoot的核心功能开发创建添加SpringBoot的起步依赖整合成MyBatis在pom.xml中加入需要jar包配置文件中添加:application.propertiesApplication中添加:@MapperScan("springboot.mapper")转发到jsp拦截器配置拦截器SpringBoot传统Spring开发缺点:1、Spring的配置比较繁琐2、SSM中jar包的版本依赖

2021-09-08 21:18:33 645

原创 框架---Spring IOC

Spring IOCSpring工厂Spring框架Spring工厂1、方便解耦,简化开发,IOC控制反转Spring 就是一个大工厂,可以将所有对象创建和依赖关系维护交给Spring2、AOP 编程的支持Spring 提供面向切编程,可以方便的实现对序进行权限拦截、运监控等功能3、声明式事务的支持(张三给李四转账,要么同时成功,要么同时失败)只需要通过配置就可以完成对事务的管理,而无手动编程4、方便集成各种优秀框架Spring 不排斥各种优秀的开源框架,其内部提供了对各种优优秀框架的

2021-09-07 17:55:52 64

转载 判断String是否包含子串的四种方法及性能对比

四种方法1 JDK原生方法String.indexOf在String的函数中,提供了indexOf(subStr)方法,返回子串subStr第一次出现的位置,如果不存在则返回-1。例子如下://包含JavaassertEquals(7, "Pkslow Java".indexOf("Java"));//如果包含多个,返回第一次出现位置assertEquals(0, "Java Java".indexOf("Java"));//大小写敏感assertEquals(-1, "Google Gua

2021-09-06 10:02:59 2403

转载 Java字符串拼接:int和String类型、String和Sting类型

Java字符串拼接:int和String类型、String和Sting类型一.Int和String拼接成String1.用+拼接2.将int转化为string,用+或者string的concat方法拼接二.String和String拼接成String1.concat方法2.append方法3.使用+拼接一.Int和String拼接成String1.用+拼接String str = "abc"; int i = 10;String result = str + i;2.将int转化为string

2021-09-06 09:53:48 3625

原创 编程---三层架构

三层架构不同于MVC三层:Controller控制层,封装对象Service 业务层,业务逻辑(1)获取已存在的所有用户(2)通过遍历得到每一个用户信息然后育新用户进行比较(3)结果已存在就不再注册,不存在就注册Dao数据访问层,基本的增删改查Controller:接收前台传递过来的数据,对数据进行封装,然后交给Service层完成业务逻辑,Service层可以调用Dao层完成增删改查在三层架构里面是面向接口编程,Service层能够为Controller层提供的所有功能都写到Ser

2021-09-04 13:46:49 470

原创 框架---MyBatis---动态Sql

MyBatis 动态Sql动态Sqlwhere-if标签set-if标签foreach标签choose、when、otherwise动态Sql通过MyBatis提供的各种标签方法实现动态拼接Sql。这些标签类似于JSTL标签,可以写控制语句动态的拼接Sql。where-if标签用于查找语句。如果输入的时候添加了属性,if标签生效;如果if标签里的内容是添加的第一个会自动把其中的and去掉。@Test public void testIfWhere(){ SqlSessi

2021-09-04 11:23:09 226

原创 框架---MyBatis---多表

MyBatis多表一对一一对多多对多一对一一个学生只属于一个班级。MyBatis中使用association标签解决一对一关联查询,association标签可以使用的属性如下:property:对象属性的名称javaType:对象以昂属性的类型column:数据库中字段的名称(也可能是起的别名)最终返回的是一个学生的集合,但是Student里面是有一个banji对象,里面保存了这个学生对应的班级信息。<mapper namespace="student"> <resul

2021-09-04 11:02:42 180

原创 框架---MyBatis---简介

MyBatisMyBatismybatis框架运行流程Student实体类mybatis.xml基本配置下划线字段对应实体类驼峰命名配置别名StudentMapper.xml示例MyBatis像MyBatis、Hibernate都是属于ORM框架。mybatis框架运行流程POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBean。SqlSession就是会话,类似于jdbc里面的Connection,开启了这次会话,就可以发送增删改查的操

2021-09-02 20:59:32 475

转载 注意---IDEA乱码

前言IDEA运行一个新的项目时有可能会出现乱码,有的乱码是在控制台中出现的,有些乱码是在运行的界面中出现的,还有一些是在浏览器中出现的。总之有文字的地方就有乱码,那这些乱码怎么去解决呢?今天就来简单的介绍一下乱码的处理方法。正文在IDEA中就有几个固定的地方可以设定代码的类型,一般都是采用通用编码UTF-8乱码的出现其实跟编码的类型有很大的关系,解决乱码问题的标准就是要保证编码的一致性。通过以下几个图的设置来解决乱码的问题。第一编译(build)的时候和运行的时候使用同样的字符集就可以了。这里

2021-09-02 17:44:54 219

原创 框架---SpringMVC

SpringMVCSpringmvc是什么web.xmlspringmvc.xml示例添加在业务逻辑中收集数组JSON数据封装:GET和POST乱码转发和重定向@RequestParam注解视图解析器拦截器Springmvc是什么Springmvc是spring框架的后续产品,用在基于MVC的表现层开发,类似于struts2框架。一般的项目:SSM+SpringBoot+IDEA+Git+SpringCloud+RedisSpringmvc依赖于Core(IOC),Springmvc需要导入Core

2021-09-01 21:09:45 303

空空如也

空空如也

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

TA关注的人

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