Java
文章平均质量分 84
F3nGaoXS
这个作者很懒,什么都没留下…
展开
-
Java的序列化和反序列化
Java的序列化和反序列化什么是序列化和反序列化?**序列化(Serialize)**指将Java对象存储到硬盘文件(流)中的过程,即保存当前Java的状态。**反序列化(Deserialize)**指将序列化的对象转为Java对象。实现对象序列化和反序列化需要实现序列化和反序列化的Java对象需要实现Serializable接口(该接口没有任何方法需要实现,是个标志接口,即交由JVM识别的类)Student.java:public class Student implements Ser原创 2021-10-28 13:14:49 · 118 阅读 · 0 评论 -
Redis原理和Jedis
Redis原理和JedisRedis是什么?Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。(B/S架构)Redis 与其他 key - value 缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。Redis支持数据的备份,即master-slave模式的数据备份。原创 2021-10-08 17:32:09 · 487 阅读 · 0 评论 -
利用Java手写LinkedList
利用Java手写LinkedList和ArrayList不同的是,LinkedList是采用链表实现的,链表的特点就是每个节点存储的是value和下个节点的地址,所以不存在类似ArrayList的扩容问题,添加节点只需要一个新的节点对象然后链表末尾指向它就可以了。参考Java官方的LinkedList实现:java.util.LinkedList。不过Java官方使用双向链表实现。链表和节点链表有n多个链表节点组成,每个节点存储的都是元素+下个节点的内存地址。如何得到节点中存储的元素实际上是通过从链原创 2021-08-30 12:50:44 · 256 阅读 · 0 评论 -
利用Java来手写ArrayList
利用Java来手写ArrayList几乎所有的语言都会有数组,Java也不例外。数组有个特点就是在初始化的时候必须确定长度,即使容量到达了也无法自动扩容,无法满足需求,所以我们可以利用动态数组(ArrayList)来实现可以自动扩容的数组。参考Java官方的ArrayList实现:java.util.ArrayList。ArrayList的底层还是数组,相当于数组的强化版,能够进行自动扩容并且进行数据的增删改查。注意:以下利用动态数组来表示ArrayList,利用数组来表示Object[]私有属原创 2021-08-19 13:01:51 · 352 阅读 · 0 评论 -
Spring简单剖析
1、Spring概述Spring是什么Spring是一个 开源的 轻量级的 Java SE或Java EE 开发应用框架,其目的是简化企业级应用程序的开发。Spring框架提供日志记录、性能统计、安全控制、异常处理等面向切面的功能,还提供数据库事务管理:本身有一套简单的JDBC访问实现,同时还提供与第三方数据访问框架的集成,还提供一套web层的框架SpringMVC。所以Spring框架是超级粘合平台,不仅自身提供基础功能,还提供与其他技术或其他框架整合的能力,使得Java SE和Java EE开发原创 2021-08-04 15:21:02 · 206 阅读 · 0 评论 -
MyBatis常用标签及标签使用技巧
MyBatis常用标签及标签使用技巧MyBatis的常用标签有很多,比如<sql id="">:预定义可以复用的sql语句<include refid="">:根据id引用定义的sql语句<trim>:空白补全,配合<if>标签使用<if test="">:条件判断,该语句返回的true,则该标签内的语句就生效<bind name="" value="">:创建一个变量,并且可以绑定到上下文1、统一的增删改通过我暂时的开原创 2021-05-10 18:40:33 · 1441 阅读 · 4 评论 -
一张图搞懂SpringBoot AOP的5个通知的交织顺序
一张图搞懂SpringBoot AOP5个通知的交织顺序每个通知都分为开始和结束:环绕通知开始->(前置通知开始,前置通知结束)->(切点)->(正常返回通知开始,正常返回通知结束)或(异常返回通知开始,异常返回通知结束)->(后置通知开始,后置通知结束)->环绕通知结束...原创 2021-03-06 00:25:43 · 478 阅读 · 0 评论 -
JWT认证原理,并整合SpringBoot
JWT认证原理,并整合SpringBoot1、JWT是什么?JWT是Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。2、JWT的结构JWT由三部原创 2020-12-25 15:36:27 · 364 阅读 · 1 评论 -
Java多线程进阶简单梳理
Java多线程进阶简单梳理1、什么是进程?什么是线程?进程就是一个应用程序;线程就是进程中的执行单元。一个进程可以启动多个线程。2、运行Java应用程序时启动JVM就是一个进程。JVM就会启动main(主线程),同时调用垃圾回收线程负责守护,回收垃圾。所以Java应用程序里至少有两个线程并发,主线程和垃圾回收线程。3、进程和线程有什么关系?进程可以看作大公司,而线程可以看作公司里的员工。进程与进程之间,内存独立不共享。线程与线程之间,堆内存和方法区内存共享。栈内存独立。一个线程一个栈,栈内原创 2020-08-19 23:37:27 · 206 阅读 · 0 评论 -
String类进阶简单梳理
String类进阶简单梳理1、String类简单介绍String类不是Java的8大基本数据类型,它是属于java.lang包下的。同时由于String类是有final关键字修饰的,所有它不能被继承,不能有子类。String类的底层是char数组,也是final关键字修饰的,所以它不能被更改。2、String类的存储原理String类对象有个特殊的创建方式,也就是直接指定String类对象等于一个字符串,像这样:String str="HelloWorld"。或者使用String类的构造方法,像原创 2020-08-14 22:29:37 · 122 阅读 · 0 评论 -
MySQL进阶简单梳理
MySQL进阶简单梳理1、DB、DBMS、SQL分别是什么,他们之间存在什么联系?DB:DataBase(数据库),数据库在硬盘上是以文件的形式存在的。DBMS:DataBase Management System(数据库管理系统),比如:Oracle、MySQL、SqlServer…SQL:Structured Query Language(结构化查询语言),是一门高级语言。SQL语句先有DBMS进行编译然后再执行。DBMS负责编译和执行SQL语句,然后操作DB。2、存储引擎MySQL默原创 2020-08-11 21:02:55 · 109 阅读 · 0 评论 -
Java集合
Java集合集合概述Collection一个一个存List有序集合,能够存重复的数据Set无序集合,不允许放重复的数据主要继承结构图:Iterable接口:可迭代的里面有iterator()方法,返回一个Iterator迭代器Iterator接口:迭代器里面有hasNext()、next()、remove()等方法。hasNext():判断集合中是否有下一个元素,有的话就返回true,否则返回falsenext():返回集合中的下一个元素remove():原创 2020-07-24 18:08:04 · 2678 阅读 · 0 评论 -
Java多线程
Java多线程笔记创建线程的三种方式继承Thread类继承Thread类使用Thread类对象的start()启动线程实现Runnable接口(推荐)实现Runnable接口使用Thread类对象代理线程用start()启动线程实现Callable接口第一种方式:继承Thread类创建类继承Thread类,重写run()方法public class TestThread extends Thread{ //线程体 @Override publ原创 2020-07-13 21:44:48 · 145 阅读 · 0 评论 -
文件字节输出流FileOutputStream
文件字节输出流FileOutputStream思路:输入流:是相对于应用程序(Java应用程序)而言的,打开输出流就是打开应用程序到目的地(存放数据的文件)的通道,然后后续才可以对再通过该通道用写方法向这个目的地写入数据。基本步骤:1、指定将数据输出到的目的地(存放数据的文件)2、创建指向该目的的输出流3、将数据通过流写入4、关闭输出流 如果对写入的需求比较简单,就使用OutputStream类的子类FileOutputStream类就可以了。需要注意的是,如果写入到该文件的时候,如果该原创 2020-06-14 19:34:47 · 336 阅读 · 0 评论 -
文件字节输入流FileInputStream
文件字节输入流FileInputStream思路:输入流:是相对于应用程序(该Java应用程序)而言的,打开输入流就是打开某文件(源)向该应用程序输入的流,相当于打开一条通道,然后你才可以进行后续的从该文件的读取操作。读取:前提是打开了输入流之后,然后才可以进行从该文件的读取操作。基本步骤:指定想要读取的源(文件)创建指向该源的输入流将读取的数据存储关闭输入流如果对读取的需要比较简单,用InputStream类的子类FileInputStream类就可以。FileIn原创 2020-06-14 15:54:45 · 561 阅读 · 0 评论 -
File类
File类File类主要用来获取文件本身的相关信息,比如文件所在目录、文件长度或者文件独写权限,不涉及文件的具体的读写操作。构造方法File(String filename);File(String directoryPath,String filename);File(File dir,String filename);filename:文件名directoryPath:文件的所在的路径dir:路径使用File(String filename)创建文件的时候,该文件默认创建到该Java原创 2020-06-18 12:28:46 · 200 阅读 · 0 评论