自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringMVC

设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。设计模式就是一种模子,经过多年实践锤炼形成一套行之有效的完成某个特定任务的步骤和方式。例如:飞天茅台的酿造过程,酿造工序,前后不能变,温差不能变,这样做就是好喝,稍微改动就变味道了。

2024-09-26 18:40:56 1289

原创 mybatis

一 Mybatis概述1.1 简介MyBatis(官网:https://mybatis.org/mybatis-3/zh_CN/index.html )是一款优秀的开源的 持久层 框架,用于简化JDBC的开发。是 Apache的一个开源项目iBatis,2010年这个项目由apache迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。MyBatis的特点MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis封装了几乎所

2024-09-26 16:16:51 2774

原创 Mybatis(一)

字符串形式的实际参数,在传递过来后,会自动带上单引号。接口里的方法带有参数,在此处就应该指定parameterType : 如果参数是实体类, 那么站位符的名字必须和实体类的属性名相同 -->接口里的方法带有参数,在此处就应该指定parameterType : 如果参数是实体类, 那么站位符的名字必须和实体类的属性名相同。有的时候: 字段名称和属性名称,如果相同,可以自动映射成功,进行赋值, 即字段的值赋值给属性。定义表时,表的字段有自己的命名规范, 列名是不区分大小写的,多个单词使用下划线连接。

2024-09-24 21:15:58 1167

原创 Servlet(三)

学习使用Servlet3.0规范引入一个新的概念:Servlet注解,可以代替web.xml* 1. 格式: @WebServlet(....)* 2. 位置: 放在想要访问的组件的类上面。该类必须继承HttpServlet* 注意事项:* - urlPatterns和value,只需要配置一个就可。是数组形式,使用逗号隔开, 元素是字符串类型,每个元素都是以斜杠开头。* 如果只有一个元素,{}可以省略。

2024-09-12 11:22:52 720 1

原创 Servlet(二)

一个web组件(servlet/jsp)将未完成的任务转交给另外一个web(servlet/jsp)组件。在浏览器地址栏中输入的地址格式如下:.....https://ip:port/虚拟资源/具体资源。

2024-09-09 19:42:44 1401 1

原创 Servlet的特性(一)

不同的请求方式在数据传输时,会有所不同;在表单提交以及服务器处理时都会采用不同的方式。浏览器针对每种请求方式也会使用不同的缓存技术,提高相应的处理速度。

2024-09-09 19:33:56 1007

原创 JavaScript

1,在js中有基本类型(string,number,boolean,null,undefined,Symbol),和对象类型对象类型中除了以上的,还可以使用Object来自定义对象类型。2. 定义方式三种:- 第一种:使用{}- 第二种:使用Object关键字- 第三种:使用函数模拟构造器。

2024-09-08 20:39:08 1258

原创 JavaScript--

js的第一种写法: 在元素的属性上书写js代码js的第二种写法: 将js代码写在script标签中,然后在元素的属性上引用js的第三种写法: 将js代码单独封装到一个扩展名为.js的文件中,然后使用script标签将其引入到html文档里,再在元素的属性上引用js文件中的函数等代码。注意:第三种方式,在生产环境中用的最多,其次是第二种方法。

2024-09-05 21:33:07 1231

原创 数据库DQL

最简单的查询语句,有两个子句:分别是select和from。

2024-09-01 21:08:34 2101

原创 MySQL常用函数

【代码】MySQL常用函数。

2024-08-29 18:59:38 299

原创 MySQL基本查询语言

ifnull(colName,value): 如果colName对应的值不为空,就使用本身的值,如果为null,使用value.3. 在分组查询时,只有分组字段可以写在select子句中,其他不是分组的字段,不应该写在select子句中,无意义。有的时候,需要分组统计一些,最大值,最小值,平均值,和,总数之类的这样的信息,此时需要分组查询。reg:查询工资大于1600并且小于2500的所有员工的编号,姓名,职位,工资。# 案例:查询每个部门中的每种职位的最高工资,最低工资,工资之和。

2024-08-29 18:50:28 954

原创 MySQL基础(之DDL、DML)

这两个字段分别作为外键指向各自一方的主键。double:浮点型,例如double(5,2):表示最多有5位,其中必须有两位是小数,即最大值是 999.99。1、DB,即存储在磁带、磁盘、光盘等外存介质上,按一定结构组织在一起的相关数据集合。一对多建表原则:在多的一方,创建一个字段,作为外键作为指向另外一的那一方的主键。5、DQL(数据控制语言):用来定义数据库的访问权限和安全级别,及创建用户。DML指的是对数据库中的数据进行增、删、改的操作。2、DML(数据操作语言):用来对数据库中表的数据进行增删改。

2024-08-29 17:09:03 956

原创 线程的锁机制

针对于临界资源安全隐患问题的解决方式。引入锁机制。1. 锁机制的作用:将异步的代码块变成同步的代码块。2. 语法: synchronized(锁对象的地址){ //需要同步的代码块( 如果不同步,就会出现安全隐患问题) } 3. 任何的java对象都可以作为锁。一个要求: 所有的线程看到的都是同一个对象。4. 同步的代码块在可能的情况下,尽量缩小范围,提高其他代码的并发效率。

2024-08-23 07:00:00 1108

原创 Linux

能够接收使用者输入的指令与数据,经由中央处理器的算术与逻辑单元运算处理后,以产生或存储有用的新数据。比如计算器,手机,汽车导航系统,提款机,桌面电脑,手提电脑等。- 是一款免费的,开源的类Unix操作系统,支持多用户,多任务,多线程,多cpu- 支持32位和64位- Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。- Linux也继承了Unix的文件设计思想,一切皆文件(文件夹也是文件)- Linux之父是“托瓦斯林纳斯”

2024-08-21 07:00:00 1655

原创 网络编程的学习

方法:InetAddress getLocalAddress():返回对方Socket中的IP的InetAddress对象 int getLocalPort():返回对方Socket的IP地址 int getPort():返回对方Sorket的端口号 void close()throws IOException :关闭Socket,释放资源 InputStream getInputStream() throws IOException:获取与Socket相关联的字节输入流,用于从Socket中读数据。

2024-08-19 20:54:45 796

原创 面向对象知识点总结(背)

构造方法可以重载,参数列表不同即可,如果程序员没有提供构造器,系统自动提供一个无参构造器,程序员提供构造器,系统就不会提供无参构造器了如果需要使用,得自己提供。址传递:引用数据类型之间的变量的赋值操作,实际参数指向的对象发生改变,形参和实参执行同一个对象的地址,形参的操作会影响实参;继承里的构造器:默认调用父类的无参构造器,如果父类没有无参构造器,必须在子类中显式调用父类的一个有参构造器。提供一个public的,静态的方法,负责实例化对象,第一次调用会初始化单例,后续调用则返回已存在的单例。

2024-08-18 17:10:16 849

原创 Thread的构造器及方法

线程的礼让方法,表示让出cpu的使用权,会进入就绪状态。不过,下一个时间片段还可能是该线程的。解析: 线程的睡眠方法,可以让当前线程进入休眠状态,进入阻塞状态,不再占用cpu的使用时间。表示当前线程去打断另外一个线程。另一个线程结束后,当前线程。2. 前台线程: 在表面运行的,能看到的。3. 后台线程:就是守护线程,即daemon的值为true。注意: 所有的前台线程都结束了,后台线程就会立即结束。注意: 是在当前线程中调用另一个线程的打断方法。注:main方法:本质上就是一个线程。

2024-08-15 21:18:16 541

原创 线程的创建

Callable是函数式接口,里面的 V call() 相当于Thread或者runnable的run方法,即任务代码书写的位置。1. 先获取Callable对象,重写里面的call方法, call相当于run, 但是call有返回值。相比前两种方式功能更强大一些。第二种: 使用Runnable接口的实现类或者匿名内部类的方式,来创建线程对象。2. 再获取FutureTask对象,将上面的Callable对象传入构造器。第一种: 使用Thread的实现类或者匿名内部类的方式来创建线程对象。

2024-08-15 08:36:13 301

原创 alambda

1. Lambda表达式实际上就是匿名内部类的简化版本2. Lambda表达式是JDK1.8引入的一个最重要的新特性,另外一个就是集合的流式编程3. Lambda表达式是java为了扩展函数式编程引入的。4. Lambda表达式可以理解为是一个匿名函数(匿名方法:方法名没有名字)5. Lambda表达式只能作用于函数式接口(有且只有一个抽象方法的接口)

2024-08-14 21:29:31 365

原创 反序列化与字符输入输出流

1. 序列化时,程序每执行一次,都会先写一个流头。如果是追加模式,那么文件中可能会有多个流头2. 反序列化时,也就是读取文件时,默认是只读取一次流头,剩下的内容全部认为是每个对象的信息。所以文件中如果有多个流头,可能会将除了第一个流头外,剩下的流头字节序列当成对象信息进行解析,会报异常:java.io.StreamCorruptedException: invalid type code: AC。

2024-08-13 20:34:08 556

原创 数据输入、输出流

数据输入流,是字节过滤流的子类型,其扩展了一些功能。可以直接书写基本数据类型和字符串类型。

2024-08-12 18:58:15 203

原创 缓冲字符流、文件字符流

字节缓冲输入流:1.是一个高级流,内部维护一个缓冲区,默认8KB2.读取文件数据时一次性尽可能读取到缓冲区大小的字节3.read方法从缓冲区获取数据:当缓冲区全部读完,会再次从磁盘上读取数据存储到缓冲区4.常用构造器 BufferedInputStream(InputStream is) BufferedInputStream(InputStream is,int size)

2024-08-12 18:48:08 359

原创 File类型&&IO流基础&&字节流&&转换流

在程序中,我们使用java.io.File这个类来描述和操作磁盘上的一个文件或文件夹(目录)。File这个类,能新建、删除、移动,重命名文件或文件夹,也能获取或者修改文件或文件夹的信息(如大小,修改时间等),但File不能访问文件里的内容。如果需要访问文件里的内容,则需要使用输入/输出流。

2024-08-12 16:49:06 471

原创 集合的框架完结篇(之三)

1.是集合框架中的另外一个父接口2. Map存储的数据的特点: 一对一的关系映射, 称之为Key-Value-Pair.3. Map接口最常用的两个子类,是HashMap和TreeMap.- HashMap: 底层使用了Hash表和红黑树的数据结构(jdk1.8以前使用的是hash表+单向链表)- TreeMap: 底层使用的二叉树。4. Map的key不能重复,但是可以为null。value可以重复。

2024-08-12 10:16:10 397

原创 集合的框架(之二)

特点:1. 元素有序,并且可以重复。ArrayList:动态数组+各种方法 LinkedList: 双向链表+各种方法 对于随机访问来说, ArrayList要高于LinkedList。对于频繁的插入和删除来说, LinkedList要高于ArrayList.基于List接口,两个实现类的方法基本一致。

2024-08-11 21:32:07 836

原创 集合的框架(之一)

集合是一个可变的容器,可以随时向集合中添加元素,也可以随时从集合中删除元素。另外,集合还提供了若干个用来操作集合中数据的方法。集合里的数据,我们称之为元素(elements);。

2024-08-11 11:25:17 1009

原创 集合的学习

集合Collection,也是一个数据容器,类似于数组,但是和数组是不一样的。集合是一个可变的容器,可以随时向集合中添加元素,也可以随时从集合中删除元素。另外,集合还提供了若干个用来操作集合中数据的方法。集合里的数据,我们称之为元素(elements);。

2024-08-08 18:57:47 900

原创 九字符串的学习

StringBuilder和StringBuffer,都是一个可变的字符序列(即可变的字符串),对象创建后可以通过调用方法来实现字符序列的改变,StringBuilder和StringBuffer类中的方法完全相同。由于字符串是不可变的,因此对字符串进行操作的时候,比较的麻烦,每次的操作都需要实例化一个 临时的空间来存放结果,效率不高。在 JDK 1.7 时,字符串常量池被从方法区转移至 Java 堆中,注意并不是运行时常量池,而是字符串常量池被单独转移到堆,运行时常量池剩下的东西还是方法区中。

2024-08-06 18:53:50 369

原创 八、异常的学习

继承Exception 或者继承RuntimeException ,定义两个构造器即可。模拟已经存在的子类异常继承Exception的自定义异常,是编译时异常继承RuntimeException的自定义异常,是运行时异常 throw和throws的特点:throw是用在方法里,用于将一个异常对象抛出,自己不处理,抛给调用者,谁调用这个方法,谁就是调用者。throws是用在方法的定义上。表示告诉调用者需要处理的异常类型。

2024-08-04 10:15:16 995

原创 IDEA中静态资源方法

2. 在模块名称下,创建一个目录Directory, 命名statics。用于存储各类静态资源,比如图片,音乐,视频,第三方配置文件等。3. 将其设置为classpath,即资源根路径。1. 创建模块名称: 例如TetrisGame1。4.将图片、视频、音频等拷贝过来即可。

2024-07-31 16:15:02 594

原创 枚举、成员内部类

在匿名内部类中,一般情况下不去添加新的成员(属性、方法),因为即便进行了添加,得到的对象也是向 上转型后的对象,不能访问子类中的成员。在匿名内部类中,一般是用来做方法的重写实现的。定义在一个类的内部,与这个类的成员(属性、方法)平级,并且使用static修饰的类。1. 定义在一个类的里面,与类的其他成员是平级关系。4、在方法中定义的内部类,和局部变量的用法一样。出了作用域就失效了。没有名字的内部类,内部类,通常是需要配合其他的类或者接口一块使用的。1、访问权限可以是任意的权限,类似于一个类中的成员。

2024-07-30 21:38:20 251

原创 抽象类、接口

由于继承这个显著特点,我们可以将子类设计的更加具体,而父类更加一般化,通用化。父类可以封装不同子类的共同特征或者共同行为.而有的时候,父类中封装的方法无法具体完成子类中需要的逻辑,因此我们可以将此方法设计成抽象方法,即使用关键字abstract进行修饰。而有抽象方法的类,也必须使用abstract关键字进行修饰,因此我们称之为抽象类无{},有abstract有抽象方法的类是抽象类子类要实现父类的所有抽象方法,或子类也声明为抽象类不能final可以没有抽象方法。

2024-07-30 20:16:58 494

原创 面向对象3大特征------多态

多态:从字面上理解,就是多种形态,多种状态的含义,在这里,指的是一个对象具有多种形态的特点。说的再简单点,就是一个对象可以从一种类型转换为另外一种类型。有向上转型和向下转型两种形式。面试时可以多加一种:方法的多态(重载和重写)

2024-07-28 22:41:25 211

原创 面向对象3大特征------继承之二方法重写、object、final、static

叫做override 子类中对父类方法重新实现为什么重写?因为父类的方法逻辑不能满足子类的需求,子类需要修改逻辑注解@Override:这个注解,用在重写的方法之前,表示验证这个方法是否是一个重写的方法。如果是,程序没有问题。如果 不是,程序会报错。因为我们在进行方法重写的时候,没有什么提示的,因此,在进行重写之前,最好加 上去这个注解。误区:加了@Override就是重写,没有加@Override就不是重写。这种说法是错误的!@Override只是进行的一个语法校验,与是不是重写无关。

2024-07-28 22:34:46 724

原创 math random scanner

是数学工具类,提供数学方面的功能方式。使用方式:直接使用类名,具体方法名常用函数:max() min() random()取值范围[0,1) ,与random 的nextdouble效果相同 abs()绝对值 pow()幂函数 sqrt()平方根 cbrt()立方根。

2024-07-28 22:06:24 491

原创 面向对象3大特征------继承之一---构造器

是面向对象最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力已有的类,叫==父类==,又叫基类,超类。派生出来的新类,叫==子类==,也叫派生类。使用关键字extends 来表示子类继承了父类。

2024-07-26 20:36:23 467

原创 面向对象的三大特征--封装

封装,英文单词Encapsulation。从广义的角度来说,将一块经常要使用的代码片段,定义到方法中,是封装。将多个方法和多个状态数据定义到类体中,也是一种封装。从狭义的角度来说,java的封装,就是把类的属性私有化(private修饰),再通过公有方法(public)进行访问和修改;

2024-07-26 20:13:21 409

原创 Java数组

使用new的两种方式:1.动态初始化第一种方式: new+直接初始化具体元素第二种方式: new+长度2. 静态初始化数据类型[] 变量 = {元素1,元素。

2024-07-24 21:10:04 771

原创 Javad 的Method

- 返回值类型是其他类型的方法,return关键字必须添加,并且return 后必须有。第一种类型:void, 无类型, 表示方法在执行完毕后,不需要返回任何数据。2. 参数列表的语法: 是0个以上的变量的声明语法。同一个类中,方法名相同,参数类型列表不同(方法签名不同)。方法的调用: 没有学习面向对象前,方法都使用static修饰。第二种类型:java中的任一类型,包括程序员自定义的类型。1. 参数列表具体指的是定义期间方法名后的参数的类型列表。1. 方法在定义是,必须规则方法的返回值类型是什么。

2024-07-23 21:53:47 811

原创 Scanner类

步骤2: 创建扫描器对象,并使用扫描器的变量引用该对象 Scanner scan = new Scanner(System.in);:所有的nextXXX方法,都有阻塞效果,即阻止程序向下执行,除非扫描到数据并结束扫描,阻塞效果才会消失。: 扫描控制台输入的boolean类型的数字。: 扫描控制台输入的double类型的数字。: 扫描控制台输入的float类型的数字。: 扫描控制台输入的byte类型的数字。: 扫描控制台输入的short类型的数字。: 扫描控制台输入的int类型的数字。

2024-07-22 21:43:52 202

空空如也

空空如也

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

TA关注的人

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