- 博客(44)
- 收藏
- 关注
原创 MySQL(详细)
数据库是一类软件 , 它是用来组织、保存、管理数据的.组织这些数据也是为了后续进行增删查改.MySQL 是一款开源免费的数据库. 是一个 " 客户端服务器 " 结构的程序 .
2023-07-15 18:26:27 2257 2
原创 JVM (simple Version)
JVM 其实就是一个Java进程 , 从操作系统申请一大块内存区域, 供 java 代码使用 .申请出的内存 , 进一步划分 , 给出不同的用途 .堆中存放就是 new 出来的对象. (成员变量)栈 是用来维护方法之间的调用关系 (局部变量)元数据区(或者叫方法区) 存放的是类加载之后的类对象 与 静态变量虚拟机栈 是给 java 代码使用的, 本地方法栈 是给 jvm 内部的本地方法(C++代码)使用的 .
2023-07-12 13:48:41 464
原创 Spring 事务
事务的实现方式有两种 :编程式事务三步骤 :声明式事务的实现很简单 , 只需要在方法或者类上添加注解就可以了 ,进入方法时自动开启事务 , 方法执行完全自动提交事务 , 如果中途发生了异常会自动回滚事务.上述方法不会回滚 , 原因是 报错被 try catch 语句 处理了.解决方法 :1 . 将异常重新抛出2 . 手动回滚事务。
2023-07-10 12:31:16 490
原创 Spring AOP
AOP 是一种思想 , Spring AOP 框架 是具体实现 .AOP (Aspect Oriented Programming) : 面向切面编程 .它是对某一类事情的集中处理 (针对某一方面的问题主动进行处理 ) .举个栗子 :当用户点到博客进行发布文章时 , 后端就要判断是否已经登录 , 当去删除一个文章时 , 也需要去判断当前是否是登录状态 . 每次涉及到权限问题时都需要判断用户登录状态 . 有了AOP之后 , 我们只需要在某一处配置一下 . 就可以实现所有需要判断用户登录状态的页
2023-07-09 18:10:51 322
原创 MyBatis
MyBatis 是一款优秀的ORM 持久层框架 , 具有较高的SQL灵活性 , 支持高级映射 .ORM :Object Relation Mapping 对象关系映射 , 指的就是在Java 对象 和 数据库 的关系模型之间建立起一种对应关系 , 例如 : 一个article类 对应数据库中的一张 article 表 , 表中的字段和 对象中的属性一一对应 .
2023-07-07 22:01:20 195
原创 Spring MVC
MVC 是一种设计思想 , 而 Spring MVC 就是对 MVC 思想的具体实现 .MModel (模型)是用来处理应用程序数据逻辑的部分 , Model 对象 通常与 数据库进行交互VView (视图)将程序进行渲染展示给用户CController (控制器)它是处理用户交互的部分 , 负责的是 将用户的请求 发送给 Model , 再将处理好的程序交给 View 进行渲染 . 承担一个承上启下的角色 .
2023-07-06 00:00:42 708
原创 Spring Boot
Spring Boot是由 Pivotal 团队提供的框架 . 其目的就是为了简化 Spring 程序开发的 .让 本质上是为了让 Spring 开发更方便 , 让程序猿考虑的事情更少 .
2023-07-05 13:21:48 282
原创 了解Spring
Spring : 它是一个开源框架 , 是包含了众多工具方法的 IoC容器 ,(说的就是对象的创建和销毁的权利都交给了 Spring 来管理了,它本身又具备了存储对象和获取对象的能力,通俗点来讲Spring就是容器, 帮我们管理对象的生命周期) 。
2023-07-03 21:06:08 677
原创 [Java] Socket (UDP , TCP)
这么做的好处 : 因为服务器它是用来处理客户端的请求的 , 因此它就要有一个明确的端口号,让客户端可以找到 . 对于客户端来说 , 属于主动发送请求的一方 , 服务器实现不需要知道客户端的端口号 , 因此让系统自动分配端口号给客户端.此处的Socket 对象要被客户端 / 服务器 都使用的 . 对于服务器来说 Socket 对象往往都要绑定一个具体的端口号(自己主动绑定) . 客户端这边则不需要手动指定 , 让系统自动分配即可.Socket : 通过Socket对象来进行服务器和客户端之间的通信!
2023-04-19 22:16:04 1316
原创 七大排序 (插入,希尔,选择,冒泡,堆,快排,归并)
目录排序 : 所谓排序就是使一串无序的数据进行排序后,变为递增或递减的数列.稳定性 : 若有一组数据 : (为了看出效果,我加了一个标识符 a 与 b)编辑编辑一. 插入排序 (直接插入排序)二 . 希尔排序 三 . 选择排序 四 . 冒泡排序 我们可以看出第一幅图排序后 : 相同的两个数字5它们的前后顺序还是原来的顺序(a下标的5 还是在 b下标5的前面). 这是我们就认为它是一个稳定的排序但是第二幅图排序后 : (b下标的5 在 a下标5的前面). 这是我们就认为它是不稳定的排序. 常见的排序有以
2023-02-02 23:06:17 1684
原创 Java - 顺序表 与 ArrayList
3.到第三步,我们就可以去放了,从最后一个元素依次往后放,注意边界值. i >= pos.(要把pos位置的空腾出来).3.也可以传过去一个类型(实现了Collection接口的类 并且它是E(泛型)的本身或者是子类)2.如果要插入的位置等于数组的长度(证明数组满了) 那么我们就要扩充数组.这里如果顺序表里面操作的是引用数据类型,那么就需要把它每个元素置为空.这就是我们经常要使用的一些ArrayList集合类里面的一些方法.我们重点来看一下最后一个方法 : 它的作用是。4.把data放入pos位置.
2023-01-02 19:00:00 28
原创 Java - 泛型
因为引用类型之间不能通过大小写比较,在前面的章节中提到过 : 我们要通过调用compareTo().不能调用compareTo()方法是因为 : 当前的泛型类没有实现Comparable接口.我们把泛型方法定义成静态的,这样我们可以直接通过类名就可以去调用它.不用再去new对象了.只需要在方法的返回值类型前面加上一个参数列表就好了.希望可以帮到大家~~~~~~有不懂的地方可以私信我.在定义泛型的时候 : 我们可以在 中写多个参数。,从代码上讲,就是对类型实现了参数化.现在我们去实例化一个对象.
2023-01-02 11:00:00 28 1
原创 Java - 异常
我想强调的是Exception是所有受查异常的" 父类 " , RuntimeException 是所有运行时异常的 " 父类 ".原因在于 : 这个程序不会执行到第二个catch(),不论try里面出现什么异常都会被第一个catch()接收,Exception是所有异常类的父类,他能捕获所有的异常.而catch()括号里面写的就是可能被抛出的异常类型,catch后面的花括号里面可以写一些输出语句来提醒触发了什么异常,上面的图,我标注了受查异常和运行时异常,它们都继承了Exception类.
2023-01-01 14:30:00 155
原创 Java - String类
感觉这样写有点绕. 大家只要记住第二点那四个字符在split()写的时候 每个字符前面要加一个"\\"在String类中Java提供了一个判断两个字符串相不相同的方法.equals(Object o)可以看出 差了非常多.因此在以后写代码的时候,尽量不要频繁的去使用 ' + ' 去拼接字符串.下面的是在String类中的equals实现 大家稍微了解一下,我们主要的是要去使用它.在这个文章中,主要去说一下String类的一些常用的方法.在反汇编中我们来看一下java它是怎么去实现字符串拼接的.
2023-01-01 09:30:00 88
原创 Java 内部类
在实例内部类中 是不可以定义静态成员变量的.因为静态成员变量是不依赖对象的. 可以把实例内部类当做是Person类的一个非静态方法. 那么在方法内中存储的都是局部变量,局部变量是存储在栈上面的. 而Java中规定静态变量是定义在类中方法外面,静态变量是存储在方法区的.在Person类内部的类 要是想要使用Student类内部的成员变量/成员方法就要去实例化Student对象.但是我们可以在静态类的方法内部去实例化一个Person对象,然后通过引用去调用成员变量.希望能帮到大家~~~~~~~~
2022-12-31 13:57:49 220
原创 Java 抽象类 与 接口
因为抽象方法的存在就是为了被重写,加上这些关键字后,就不能被子类重写了,所以在定义抽象方法的时候,java就会提示错误!因为在抽象类它自己本身不能进行实例化,而且抽象方法也没有具体的实现,所以只能是子类重写方法后,体现出抽象类的价值!4.什么是抽象方法 : 一个方法被abstract修饰,没有具体的实现,只要包含抽象方法,这个类必须是抽象类!5.接口当中的方法 不能有具体的实现, 但是从JDK8开始 可以写一个default修饰的方法。抽象类当中,可以包含抽象方法和非抽象方法。
2022-12-31 08:30:00 119
原创 Java 多态
通过一个例子,我们先来感受一下 : 定义两个类 Animal 和 Cat , 在Cat类中重写了Animal的fun()方法, 在main方法中 new 了一个 Cat 对象,并用Animal类的引用接收.当发生向上转型之后,并且去通过引用去调用方法时,如果子类中重写了这个方法,那么编译器就会去调用子类重写后的方法.这就是动态绑定.换句话说 : 当父类引用 引用的对象不一样的时候 表现出的行为是不一样的!一个引用, 引用的对象不一样,那么所表现的行为不一样,这种思想称为多态.
2022-12-30 18:25:22 2511
原创 Java 引用数据类型 比较 (comparable / comparator)
如果大家不太懂Arrays.sort()是怎么进行比较的, 那大家看一下这个代码 : 在java底层代码中也是类似这样去比较的(通过调用compareTo()). 通过Sort()方法.也可以进行排序.: 因为要比较的是Student这个类所以里面就写Student.大家暂时先这样理解.之后我会出一期关于泛型的文章.或者也可以写一个比较年龄的比较器.这样在我们用的时候,直接去调用就好了.不用在主要的类里面大动干戈了.这时我们就可以调用Arrays.sort()的方法来进行对Student数组的排序.
2022-12-30 08:00:00 305 1
原创 java 深拷贝 与 浅拷贝
先看第一幅图 : 这是我们第一次给student1拷贝一份的时候,把student的name(李华)跟money引用里面存储的地址都复制给了student1.通过 代码 跟 图 可以知道在给money引用里面的m值赋值时.会同时改变student 与 student1的值.因为重写后的clone方法的返回值是Object 所以在赋值给Student类或者Money类的时候要进行向下转型.从运行结果看到 : student1 的 name 值 与 m 值 跟 student是一样的.
2022-12-29 22:56:11 30
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人