自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot-ssm流程

1、创建项目lombok、devtool、spring web、mybatis、oracle driver2、在src/main下创建文件webappwebapp/WEB-INFwebapp/WEB-INF/content3、application.properties# 配置连接池,使用默认推荐的HikariCPspring.datasource.driver-class-name=oracle.jdbc.OracleDriverspring.datasource.url=jdbc:

2021-06-01 12:01:40 173

原创 1-Spring的IoC-DI容器

file:///C:/Users/Administrator/Desktop/Spring/1-Spring的IoC-DI容器.html 1/34Spring的IoC容器IoC在程序开发中,实例的创建不再由调用者管理,而是由Spring容器创建。Spring容器会负责控制程序之间的关系,而不是由程序代码直接控制,因此,控制权由程序代码转移到了Spring容器中,控制权发生了反转,这就是Spring的IoC思想基础理论回顾Spring是一个轻量级的控制反转IoC/DI依赖注入和面向切面AOP的开源

2021-05-08 17:52:03 439

原创 Mybatis执行流程

加载mybatis全局配置文件(数据源、mapper映射文件等),解析配置文件,MyBatis基于XML配置文件生成Configuration对象和一个个MappedStatement(包括了参数映射配置、动态SQL语句、结果映射配置),其对应着<select | update | delete | insert>标签项SqlSessionFactoryBuilder通过Configuration对象生成SqlSessionFactory,用来开启SqlSessionSqlSession对象

2021-04-25 17:02:08 124

转载 RowBounds

在 mybatis 中,使用 RowBounds 进行分页,非常方便,不需要在 sql 语句中写 limit,即可完成分页功能。但是由于它是在 sql 查询出所有结果的基础上截取数据的,所以在数据量大的sql中并不适用,它更适合在返回数据结果较少的查询中使用最核心的是在 mapper 接口层,传参时传入 RowBounds(int offset, int limit) 对象,即可完成分页。不需要修改xml配置添加limitmapper 接口层代码如下List<Book> selectBoo

2021-04-23 16:15:33 2078

原创 概述MyBatis

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。以开发sql语句的工作量为代价换取高灵活性##Hello MyBatis1、添加依赖<dependency> &

2021-04-17 14:51:23 49

转载 监听器Listener应用

监听器是指专门用于在其他对象身上发生的事件或者状态改变进行监听和相应处理的对象,当被监听的对象发生变化时立即采取相应的行动Web监听器定义:Servlet规范中定义的一种特殊类用于监听ServletContext、HttpSession、ServletRequest等域对象的创建与销毁事件用于监听ServletContext、HttpSession、ServletRequest域对象的属性attribute修改的事件监听事件的类型是通过类所实现的接口进行区分可以在事件发生前和发生后作出一些必要

2021-04-14 20:21:52 393

原创 9大默认对象

JSP容器根据servlet API而提供了某些隐含对象。可以使用标准的变量来访问这些对象,可以在JSP页面直接使用这九大对象page this 封装页面对象,是Object类型的,该对象代表了正在运行的由JSP文件产生的类对象,相当于this。一般情况下不建议使用该对象是Object类型的,所以可以合法调用的方法都是Object中定义的方法toString equals hashcode wait notify notifyAll在jsp页面种声明了一个方法pp<%!

2021-04-12 18:42:33 174

转载 重要的API

configinit()和init(ServletConfig config)getInitParameter():StringgetServletConfig().getInitParameter("height")response响应HttpServletResponse接口属于Servlet规范,存在于servlet-api.jar中,由服务器提供接口的实现类,主要用于封装服务器的响应信息,可以将doGet或doPost的响应信息写出到【响应体】中ServletResponse隐藏

2021-04-09 19:29:00 65

原创 web 登录

public class LoginServlet extends HttpServlet { //针对get请求的处理,需要生成一个带有form表单的输入页面 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=UTF-8");

2021-04-07 20:20:32 86

原创 tomcat的结构和配置

tomcat目录结构bin:tomcat启动、关闭之类的脚本文件conf:tomcat各种配置文件。其核心配置文件有:1、server.xml 配置与server相关信息。2、web.xml是web应用(一个web应用相当于一个站点)的父配置文件。3、tomcat-users.xml 配置tomcat相关信息(管理tomcat服务器的用户名、密码和权限等)lib:tomcat启动所依赖的jar包logs:tomcat的系统日志temp:tomcat运行时产生的临时文件webapps:web应用

2021-04-07 20:07:24 125

原创 Web开发

web应用概述WEB在英语中web即表示蜘蛛网的意思,它用于表示Internet主机上(服务器)供外界访问的资源Web应用程序是一种可以通过Web访问的应用程序。Web应用程序的一个最大好处是用户很容易访问应用程序。用户只需要有浏览器即可,不需要再安装其他软件。应用程序有两种模式C/S、B/S。C/S是客户端/服务器端程序,也就是说这类程序一般独立运行。而B/S就是浏览器端/服务器端应用程序,这类应用程序一般借助服务器运行,需要IE等浏览器来查看运行结果。B/S架构浏览器/服务器架构Browser

2021-04-07 19:49:17 122

原创 今天开始接触Html

段落标签 <p>这是一个段落,因为他比较长,<br>我们不希望它自动换行,所以我们在合适的地方让它换行</p>效果:有序列表 <h2>有序列表</h2> <ol start="5" reversed type="I"> <li value="4">列表项1</li> <li>列表项2</li> <li>列表项

2021-03-26 21:44:41 80

原创 上次学到了list的几种实现类,接着上次没学完的LinkedList

类定义public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>,Cloneable, java.io.Serializable//Deque是队列接口,提供一个双端队列的访问方法实现底层实现为双向链表private static class Node<E> { //节点定义 E item; //具体存储的数据 N

2021-03-22 21:07:45 68

原创 集合框架

数据结构1、线性表数组随机访问O(1),删除和新增O(n)2、链表随机访问O(n),删除和新增O(1)概述集合Java针对常见的数据结构进行了封装,提供了一组工具类java.util包集合只能存放对象集合存放的是多个对象的引用,对象本身还是放在堆内存中集合可以存放不同类型,不限数量的数据。定义集合变量时如果不指定数据类型,则默认数据类型为ObjectList cc=new ArrayList();cc.add("abc");Object obj=cc.get(0); //Strin

2021-03-22 20:58:45 67

原创 map接口

Map接口Map接口Map接口的定义Map接口中常见方法Map实现类HashMap构造器HashMap的存储结构HashMap的put方法Map接口哈希表就是一种以键-值(key-indexed) 存储数据的结构,只要输入待查找的值即key,即可查找到其对应的值。哈希的思路很简单,如果所有的键hashCode都是整数,那么就可以使用一个简单数组来实现:将键作为索引,值即为其对应的值,这样就可以快速访问任意键的值。简单的计算方法hashcode%数组长度=【0,数组的长度-1】它提供了一组键值的映射

2021-03-01 20:34:09 95

原创 set接口和数据结构

Set接口,数据结构Set接口实现类HashSetHashSet的特征LinkedHashSetTreeSet数据结构哈希表哈希冲突散列算法二叉树Set接口特点:无序、不允许重复,是Collection接口的子接口没有定义新方法,所有的方法都是Collection接口中所定义的方法实现类HashSet存储采用哈希表的方式进行存储,HashSet采用HashCode算法来存取集合中的元素,因此具有比较好的读取和查找性能LinkedHashSet是在HashSet的基础上添加一个额外的链表结构可以记

2021-03-01 20:33:33 94

原创 泛型、泛型应用、泛型好处、泛型类

泛型、泛型应用、泛型好处、泛型类泛型什么是泛型使用泛型的定义典型场景Comparable接口泛型的好处泛型类集合类中定义范型有界类型调用泛型类通配符参数通配符参数的语法使用小结泛型类泛型方法泛型类的继承泛型的实现原理泛型的局限性泛型当将一个对象放入集合中,集合不会记住此对象的类型,当再次从集合中取出此对象时,改对象的编译类型变成了Object类型,但其运行时类型任然为其本身类型。List list=new ArrayList();list.add(new Random());list.add("a

2021-02-25 21:18:12 388

原创 数据结构、集合

数据结构、集合概述、集合框架中的接口数据结构线性表链表概述集合数组和集合的比较集合框架中的接口Collection接口常见方法Iterator迭代器List接口Set接口常见的List接口的实现类ArrayList实现类VectorLinkedListList总结修改同时并发迭代访问的问题一个线程使用迭代器访问数据,另外一个线程修改数据对象赋值和克隆数据结构线性表(数组)存储区间是连续的,占用内存严重,故空间复杂度很大。但数组的二分查找(前提是必须有序)时间复杂度小,为O(1);数组的特点是:寻

2021-02-25 21:17:23 79

原创 线程安全(实现多个线程的有序执行)

线程安全多线程的执行顺序不可重现,但是必须要求执行结果必须可以重现线程的共享数据操作不完整性就一定会出现数据被破坏,而导致结果无法预知的问题—线程的安全问题同步处理的引入在java语言中存在两种内建的synchronized语法:synchronized代码块和synchronized方法( 静态方法和非静态方法)可以解决线程安全问题首先synchronized将并行改为串行,当然会影响程序的执行效率,执行速度会受到影响。其次synchronized操作线程的堵塞,也就是由操作系统控制CPU的内核

2021-02-22 20:23:03 271

原创 四种启动线程的方法:Thread、Runnable、Callable/FutureTask以及线程池

22

2021-02-08 23:23:24 877

原创 今天学习多线程编程基础

111

2021-02-08 22:36:44 100

原创 今天学习更多有关流的应用

过滤流类型过滤流就是在节点流的基础上附加功能过滤流FilterInputStream/FilterOutputStream和FilterReader/FilterWriterpublic class FilterInputStream extends InputStream { //典型的装饰模式protected volatile InputStream in; //被装饰目标protected FilterInputStream(InputStream in) { //通过构造器组装被装饰

2021-01-26 20:15:07 129

原创 学习流模型,好晕 知识点太多了

流模型主要目的:屏蔽具体实现的区别,使用统一的方法进行编程输入和输出字节和字符节点和过滤 装饰模式BIO NIO AIO字节流父类InputStream和OutputStream一次一字节的操作方式,一般用于声音、图像、视频之类的二进制文件InputStream方法: - read():int -1 - read(byte[]):int -1 - close():void - FileInputStream主要用于操作文件 - System.in 主要用于接收用户输入Outpu

2021-01-25 19:34:43 172

原创 输入输出种的流模型、扩展类的功能、File类、文件过滤器FilenameFilter、Path和Paths以及Files、字节流

输入输出种的流模型、扩展类的功能、File类、文件过滤器FilenameFilter、Path和Paths以及Files、字节流输入输出应用编程输入输出种的流模型流概念流的分类扩展类的功能继承装饰模式在IO流定义中使用装饰模式File类常见的构造方法需要记忆的方法静态属性访问文件名的方法文件检测相关方法常见操作文件过滤器FilenameFilter语法糖Lambda表达式Path和Paths以及FilesPath相关方法Files工具方法字节流基本输入输出方法以下为今天的总结内容:输入输出种的流模型、扩展

2021-01-21 21:40:35 154

原创 程序出错老看不懂,今天专门去总结了一下程序异常的情况

Java异常处理程序运行时发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止。Scanner sc=new Scanner(System.in);String ss=sc.nextLine();int kk=Integer.parseInt(ss);System.out.println("用户输入数据为:"+kk);//用户输入abc/*则执行结果为:Exception in thread "main" java.lang.N

2021-01-20 23:54:38 1429

原创 学习接口的相关操作

接口允许多重继承一个类在继承另一个类的同时,还可以实现多个接口public class Person { public static void main(String[] args) { IA a1 = new AImpl(); B a2 = new AImpl(); a1.pp(); }}interface IA { public void pp();}class B { public void pp() { System.out.println("this is

2021-01-19 19:42:15 342 1

原创 抽象类的概念和应用方法

抽象类面向对象编程的核心是面向抽象编程,一般依赖抽象不依赖具体public class A{public void pp(Pig pig){} //如果进行切换类型,则必须进行修改源代码}//-------------public class A{public void pp(Animal animal){} //这里可以任意更换Animal的子类}class Animal{}class Pig extends Animal{}class Cat extends Animal{}p

2021-01-18 20:00:46 905

原创 多态性

多态性多态性是发送消息给某个对象,让该对象自行决定响应何种行为。通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用public class Test1 { public static void main(String[] args) { Fa cc=new Fa(); //调用的是一个名称为pp的方法,但是参数不同执行的处理不同 cc.pp();//Fa...pp cc.pp(12);//Fa.pp(int) }}class Fa{ public void pp

2021-01-15 22:11:42 173

原创 继承

继承继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。继承是is-a的相互关系继承的优点将所有子类的共同属性放入父类,实现代码共享,避免重复,提高开发效率可以使得修改扩展继承而来的实现比较简单继承的缺陷父类变,子类就必须变继承破坏了封装,对于父类而言,它的实现细节对与子类来说都

2021-01-15 21:48:25 147

原创 封装和UML

封装是指将现实世界中存在的某个客体的属性与行为绑定在一起,并放置在一个逻辑单元内。在面向对象程式设计方法中,封装Encapsulation是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。既可以实现对客体属性的保护作用,又可以提高软件系统的可维护性只要用户接口不改变,任何封装体内部的改变都不会对软件系统的其他部分造成影响 封装隐藏实现细节,并对外提供了公共的访问方式封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问要访问该类的代码和数据,必须通过严格的接口控制。

2021-01-12 23:27:39 689

原创 面向对象的概念

终于学到了面向对象了 加油程计划和说明1、掌握面向对象的基本编程思想【重点】2、了解类和创建对象3、理解引用变量赋值4理解构造器和成员方法的定义方式面向对象概论面向对象的三大基本特征是:封装、继承、多态封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据继承是为了重用父类代码,同时为实现多态性作准备多态性是发送消息给某个对象,让该对象自行决定响应何种行为。通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用。编程概述面向过程是一.

2021-01-11 23:42:00 1070

原创 多维数组和字符串

多维数组针对数组中的元素类型没有特殊要求,所以允许数组的元素是数组。多维数组可以理解为数组的数组,数组中的每个数组元素可以是一个数组,但是不要求每个充当元素的数组长度一致包装类和Number一般地当需要使用数字的时通常使用内置数据类型,如byte、int、long、double 等。然而在实际开发过程中,经常会遇到需要使用对象,而不是内置数据类型的情形。为了解决这个问题,Java 语言为每一个内置数据类型提供了对应的包装类。所有的数值类型数据的包装类Integer、Long、Byte、Double

2021-01-11 11:03:43 431

原创 理解引用数据类型

今天认识到了数组更深层次的知识,很绕啊brr=arr意思是将arr所代表的复杂类型数据的地址传递给brr变量,结果是brr和arr变量使用的是同一个复杂类型数据,不管是brr修改或者arr修改,实际上修改是同一个数据,会发现一个修改,另外一个也同时发生变化数组复制备份:注意这里不是地址值的复制,因为地址值的复制brr=arr,实际上两个变量引用的是同一个复杂类型数据需要两个不同复杂类型数据,操作中不相互影响使用循环作数组复制—克隆扩展:实现一个可变长的数组【Java中要求数组的长度是确定,

2021-01-08 22:23:45 606

原创 数组

今天学习了好多 一起每天进步一点。数组数组是表示多个相同类型变量的集合(在一个数组中所存放的所有元素的类型必须一致),可以使用共同的名字引用它属于复杂数据类型由类型相同的元素组成的有顺序的数据集合Java数组是固定的不能扩展[长度一旦声明,不能修改]可以存储基本数据类型或对象数组可以定义为任意数据类型,并且可分为一维数组或多维数组一维数组一维数组实质上是相同类型变量的列表。要创建一个数组必须首先定义数组变量所需的类型。通用的一维数组的声明格式是:type var-name[ ];i

2021-01-07 21:54:23 203

原创 方法的声明和调用!!

终于开始学习新的知识了 ,今天了解到了方法的概念,分享给大家。方法的概念多次反复编写明显是不合适的,而结构化编程中的模块化在Java中的体现就是自定义方法。例如:输出1-100之间所有素数public class Test1 { // 特殊的方法,用于表示程序的执行起始点,也就意味着不能写错 public static void main(String[] args) { for(int i=2;i<101;i++){ if(abc(i)){ //调用处传入的数据是实参 Syste

2021-01-07 21:29:41 304

原创 继续练习语法

这些题真的很有代表性,再编码的过程中,遇到了很多问题,明显感觉的到编码的不简单 ,加油!通过键盘输入一个年份,输出判断某一年是否为闰年能被4整除并且不能被100整除或者能被400整除`public class A1 { public static void main(String[] args) { int year = 0; Scanner sc = new Scanner(System.in); while (true) { System.out.println("请输入年份:");

2021-01-06 21:56:11 59

原创 做练习碰到很多问题,总结一下题型和解决问题的方法。

代码调试第一步:在代码视图的左侧双击添加一个断点第二步:右键debug as à java application第三步:自动单击yes切换到debug视图第四步:F5进入方法体内、F6逐步、F7返回上一个断点、F8返回到下一个断点、跳到方法头、也可以直接观察表达式的值第五步:如果已经熟悉了业务逻辑那么可以清空断点和查看的变量后直接切换视图到java编程视图。debug单步执行在程序中添加断点。在指定行的最前面双击数据左键即可,看到的效果是这行语句前会出现一个蓝色的小圈在代码的空白区域

2021-01-05 21:53:13 211

原创 今天针对之前学习到的语句,做了一些比较典型的练习题。

这些题可以很好的锻炼这些语句的综合运用,大家也可以试试。九九乘法口诀表public class Test7 { public static void main(String[] args) { for(int i=1;i<=9;i++) {//控制行数 for(int k=1;k<=i;k++) {//控制每行的列数 System.out.print(k+"*"+i+"="+(i*k)+"\t"); } System.out.println(); } }}编程实现判断一

2021-01-04 19:46:18 417

原创 今天学习Java的运算符和几种基础的语句

先记录一下之前没有注意到的一些东西valueOf和parseInt的区别public static Integer valueOf(String s) throws NumberFormatException 返回值得类型为包装类,底层实现其实就是parseIntpublic static int parseInt(String s) throws NumberFormatException 返回值类型为原生类型数值与字串的转换数值转换为字串有3种方法: Strings=String.valu

2021-01-03 21:49:22 127

原创 JAVA基础概念

Java语言一种面向对象的语言一种平台无关的语言,必须程序运行的解释环境一种健壮的语言,吸收了C/C++语言的优点,但是去掉了影响程序健壮性的部分,例如指针、内存的申请与释放等Java应用场景Java编程语言是一种广泛应用于互联网应用的高级计算机语言,主要应用于网络编程和互联网电子商务应用,特别适合于Internet应用程序开发JVM、JRE和JDK的区别JVM -java virtual machine在真实机器中用软件模拟实现的一种想象机器 ,java虚拟机负责解释执行字节码文件,是可

2020-12-29 21:40:23 236

空空如也

空空如也

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

TA关注的人

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