自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 springboot原理

Spring中的Bean对象管理指的是Spring容器对Bean对象的创建、依赖注入、生命周期管理等操作。Spring容器通过IOC(Inversion of Control)实现Bean对象的管理。Spring容器通过扫描指定的包或配置文件,将标注了特定注解(如@Component、@Service、@Repository等)的类实例化为Bean对象,并将其放入容器中统一管理。容器会自动处理Bean对象之间的依赖关系,并在需要时进行依赖注入。我们主要来学习以下的几方面。

2023-05-31 00:45:00 1206 2

原创 jdbc的入门

JDBC即Java DataBase Connectivity(Java数据库连接),是Java语言访问数据库的一种标准方法。JDBC提供了一组API,用于连接不同类型的数据库并执行SQL语句,以便与数据库进行交互。JDBC API包括两部分:一是JDBC驱动程序API,它提供了连接数据库、执行SQL查询和更新语句、处理结果集等功能;二是JDBC管理器API,它提供了管理驱动程序、连接池和数据源等功能。JDBC连接数据库的基本步骤如下:加载JDBC驱动程序。建立连接。创建Statement对象。

2023-05-30 01:00:00 774

原创 Java的反射机制(3)

反射机制是java实现动态语言的关键,也就是通过反射实现类动态加载。

2023-05-29 01:45:00 1027

原创 Java的反射机制(2)

1.Class也是类,因此也继承Obiect类2.Class类对象不是new出来的,而是系统创建的3.对于某个类的Class类对象,在内存中只有一份,因为类只加载一次4.每个类的实例都会记得自己是由哪个 Class 实例所生成5.通过Class对象可以完整地得到一个类的完整结构,通过一系列API6.Class对象是存放在堆的7.类的字节码二进制数据,是放在方法区的,有的地方称为类的元数据(包括 方法代码变量名,方法名,访问权限等等)/*** 对Class类特点的梳理*/

2023-05-28 02:00:00 887

原创 Java的反射机制

Java的发射机制(Reflection)是指在运行时动态地获取类的信息并操作对象的能力。Java的发射机制允许程序在运行时检查和操作任意一个类、方法、属性等的信息,包括了类名、方法名、属性名、参数列表以及访问修饰符等。通过Java的发射机制,可以实现一些高级的功能,比如动态生成代理对象、动态生成类、动态配置对象等。同时,Java的一些框架也广泛应用了发射机制,比如Spring框架中大量使用了反射机制来实现依赖注入和AOP等功能。

2023-05-27 01:30:00 1035

原创 Java网络编程——UDP

UDP(User Datagram Protocol)是一种无连接的传输协议,不保证传输数据的可靠性。在网络通信中,UDP常用于那些对实时性要求较高、可靠性要求较低的应用程序,比如音视频传输等。1.类 DatagramSocket 和 DatagramPacket[数据包/数据报] 实现了基于 UDP协议网络程序2.UDP数据报通过数据报套接字 DatagramSocket 发送和接收,系统不保证UDP数据报一定能够安全送到目的地,也不能确定什么时候可以抵达。

2023-05-26 01:30:00 3717

原创 Java网路编程-TCP

1.套接字(Socket)开发网络应用程序被广泛采用,以至于成为事实上的标准2.通信的两端都要有Socket,是两台机器间通信的端点3.网络通信其实就是Socket间的通信4.Socket允许程序把网络连接当成一个流,数据在两个Socket间通过IO传输5.一般主动发起通信的应用程序属客户端,等待通信请求的为服务端Netstat是一种命令行工具,在Windows、Linux和其他操作系统中都有,它用于显示网络连接、端口和协议统计信息。

2023-05-25 01:15:00 1357

原创 IO流的讲解(4)

Java中的Properties是一个可以保存键值对的类。它是Hashtable的子类,因此可以使用Hashtable的方法来查询和操作其中的元素。Properties类常用于读取和写入配置文件,例如数据库连接信息、应用程序设置等。Properties类中的键和值都是字符串类型。可以使用getProperty(String key)方法通过键获取对应的值。也可以使用setProperty(String key, String value)方法向Properties中添加新的键值对。

2023-05-24 11:05:13 628

原创 IO流的讲解(3)

BufferedInputStream类是为了提高读取效率而设计的。它在内部维护了一个缓冲区,每次从输入流中读取数据时,它会将数据读入到缓冲区中。然后,它将返回缓冲区中的数据而不是每次直接从输入流中读取数据。这可以大大减少访问底层输入流的次数,从而提高读取效率。BufferedOutputStream类也是为了提高写入效率而设计的。它在内部维护了一个缓冲区,每次进行写入操作时,它会将数据先写入到缓冲区中,然后再一次性将缓冲区中的数据写出到底层输出流中。

2023-05-23 23:11:29 591

原创 IO流的讲解(2)

1.节点流可以从一个特定的数据源读写数据,如FileReader、FileWriter [源码]2.处理流(也叫包装流)是“连接”在已存在的流(节点流或处理流)之上,为程序提供更为强大的读写功能,如BufferedReader、BufferedWriter [源码]

2023-05-22 19:39:04 390

原创 IO流的讲解(1)

IO流在我们的Java中使用还是非常重要的,那么在学习IO流之前。我们先来了解一些有关IO流相关的知识。我们IO流最后操作的还是我们磁盘中的文件,所以我们先了解一些文件相关的知识。

2023-05-21 21:52:21 536

原创 线程的基础(3)

1.Java语言中,引入了对象互斥锁的概念,来保证共享数据操作的完整性。2.每个对象都对应于一个可称为“互斥锁”的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。3.关键字synchronized 来与对象的互斥锁联系。当某个对象用synchronized修饰时表明该对象在任一时刻只能由一个线程访问4同步的局限性:导致程序的执行效率要降低5同步方法(非静态的)的锁可以是this,也可以是其他对象(要求是同一个对象)6.同步方法(静态的)的锁为当前类本身。

2023-05-20 23:10:51 500

原创 AJax和Axios的讲解

Ajax: 全称Asynchronous JavaScript And XML,异步的JavaScript和XML。其作用有如下2点:原生的Ajax使用起来还是比较繁琐的,接下来我们使用axios,Axios是对原生的AJAX进行封装,简化书写。

2023-05-19 02:00:00 4379

原创 vue快速入门

Vue 是一套构建用户界面的。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。Vue.js 的目标是通过尽可能简单的 API 实现和。

2023-05-18 03:00:00 522

原创 web前端-JavaScript(3)

BOM的全称是Browser Object Model,翻译过来是浏览器对象模型。也就是JavaScript将浏览器的各个组成部分封装成了对象。我们要对浏览器进行操作,可以通过操作BOM对象的相关属性或者函数来完成。DOM:Document Object Model 文档对象模型。也就是 JavaScript 将 HTML 文档的各个组成部分封装为对象。Document:整个文档对象Element:元素对象Attribute:属性对象Text:文本对象Comment:注释对象。

2023-05-17 02:00:00 649

原创 web前端-JavaScript(2)

var 对象名 = {属性名1: 属性值1,属性名2: 属性值2,属性名3: 属性值3,函数名称: function(形参列表){}调用方式对象名.属性名对象名.函数名()//自定义对象age: 10,console.log("吃饭~");user.eat();函数还有简化的写法的,可以省略掉function关键字就是这样写的,看演示age: 10,// console.log("用膳~");// }eat(){

2023-05-16 01:15:00 686

原创 web前端-JavaScript

html用来做网页,css用来美化我们的网页,但是这样还不够,还要我们js来控制网页的交互,知道了js是用来干嘛的,那么我们接下来看看js的引入方式。

2023-05-15 03:15:00 546

原创 web前端-HTML(2)

在上面我们完成了页面的基本排版,但是我们会发现,我们设计出来的页面,都是铺满了整个的页面,但是我们去看原始的页面,我们会发现,他们的页面都是居中显示的,并没有铺满整个浏览器,这时候就需要我们对页面进行布局了。我们日常的上网过程中,基本上每天都会遇到,登录页面这些等,其实这些都是一个表单,我们填写完表单的数据之后,点击提交机会把我们输入的数据提交到服务端。页面中所有的元素(标签),都可以看做是一个 盒子,由盒子将页面中的元素包含在一个矩形区域内,通过盒子的视角更方便的进行页面布局。否则,无法提交该表单项。

2023-05-14 02:15:00 917

原创 线程的基础(2)

我们先来看看一个日常生活中的售票,日常生活中有需要用到售票的地方,但是并没有那么简单,看一段模拟售票的代码代码演示:注意:下面这个模拟的售票系统,是会出现超卖的情况的,因为我们没有做线程同步的处理,因此就会发生票数超卖的情况,在现实生活中,很明显这样是不可以的,所以后面我们就会对该售票系统进行处理,处理超卖的情况。

2023-05-13 02:00:00 648

原创 线程的基础(1)

线程在开发中非常的重要,我们先来看看,线程相关的概念1.进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存空间。当我们使用迅雷,又启动了一个进程,操作系统将为迅雷分配新的内存空间。2.进程是程序的一次执行过程,或是正在运行的一个程序。是动态过程:有它自身的产生、存在和消亡的过程什么是线程1.线程由进程创建的,是进程的一个实体2.一个进程可以拥有多个线程1.单线程:同一个时刻,只允许执行一个线程2.多线程:同一个时刻,可以执行多个线程,比如:一个qq进程,可以同时打开多个聊

2023-05-12 01:00:00 510

原创 web前端入门-HTML

HTMl也称超文本标记语言标记语言:由标签构成的语言HTMl代码直接在浏览器中运行,标签由浏览器进行解析Cascading Style Sheet,层叠样式表,用于控制页面的样式(表现)

2023-05-11 02:00:00 426

原创 自定义泛型

class 类名{//...表示可以有多个泛型 成员interface接口名...修饰符返回类型 方法名(参数列表)代码演示:因为U没有声明,因此在编译的时候,会报错//10 会被自动装箱 Integer10, 输出Integer//Dogclass Apple {//自定义泛型类public void fly(E e) { //泛型方法//public void eat(U u) {}//错误,因为U没有声明。

2023-05-10 02:15:00 1180

原创 泛型的详解

理解:泛(广泛)型(类型)=> Integer,String,Dog1)泛型又称参数化类型,是Jdk5.0出现的新特性,解决数据类型的安全性问题2)在类声明或实例化时只要指定好需要的具体的类型即可。3)Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产ClassCastException异常。同时,代码更加简洁、健壮4)泛型的作用是:可以在类声明时通过一个标识表示类中某个属性的类型,或者是某个方法的返回值的类型,或者是参数类型。

2023-05-09 03:15:00 489

原创 集合练习(2)

因为我们的Person类没有实现Comparable接口,因此在底层的时候,会根据你传入进来的对象尝试将他转成Comparable这个类型,如果传入的对象没有实现改接口那么就报类型转换异常,//如果是一个链表 就依次循化遍历,期间如果发现相同的就直接break,如果没有发现相同的就直接加入到链表的最后一个位置。会先计算你的hash值,在转换成索引值,也就是在table表中的位置加入,如果当前位置为空。//如果已经有了会先进行判断,如果你的加入的对象的hash值和当前位置的hash值相同。

2023-05-08 02:15:00 539

原创 集合练习(1)

代码演示:思路分析:1.因为我们在打印的时候,是需要打印一个标题的信息即可,所以在使用构造器初始化的时候,只需要写一个带参数的构造器即可2.在进行倒叙遍历的时候,因为集合的下标是从0开始的,所以在i=arrayList,size()需要减一,否则会下标越界3.对于新闻字体的表示超过15个字的来说,就是对字符串一些方法的运用,并且需要用到向下转型,因为需要使用子类的属性和方法。

2023-05-07 02:15:00 384

原创 TreeMap源码分析,Collections工具类的使用

1)Collections是一个操作 Set、List和 Map等集合的工具类2)Collections中提供了一系列静态的方法对集合元素进行排序、查询和修改等操作排序操作:(均为static方法)1.reverse(List):反转 List 中元素的顺序2.shuffle(List):对 List 集合元素进行随机排序3.sort(List):根据元素的自然顺序对指定 List 集合元素按升序排序。

2023-05-06 03:15:00 474

原创 HashTable,Properties,TreeSet源码分析

1.Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存数据。2.他的使用特点和Hashtable类似3.Properties 还可以用于 从xxx.properties文件中,加载数据到Properties类对象,并进行读取和修改4.说明:工作后 xxx.properties文件通常作为配置文件,会在IO流的时候讲解//1. Properties 继承了 Hashtable。

2023-05-05 01:45:00 470

原创 HashMap底层结构和源码分析

1.(k,v)是一个Node实现了Map.Entry,查看 HashMap的源码可以看到2.jdk7.0的hashmap底层实现[数组+链表],jdk8.0底层[数组+链表+红黑树]

2023-05-04 02:45:00 737

原创 MySQL数据库(5)

多表查询说明多表查询的条件不能少于 表的个数-1,否则会出现笛卡尔集。

2023-05-03 19:48:15 859

原创 map接口的讲解

Map接口实现类的特点注意:这里是代码演示:注意在map接口中,是按照k-v的形式来存放数据的,即就是键值对,我们可以根据key找到对应的value。

2023-05-02 01:00:00 971

原创 LinkedHashSet源码分析

LinkedHashSet是HashSet的子类LinkedHashSet底层是一个LinkedHashMap,底层维护了一个数组+双向链表LinkedHashSet 根据元素的hashCode值来决定元素的存储位置,同时使用链表维护元素的次序(图),这使得元素看起来是以插入顺序保存的。LinkedHashSet不允许添重复元素。

2023-05-01 01:00:00 1127

原创 MySQL数据库(4)

DATE SUB()中的 interval 后面可以是 year minute second hour day等。DATEDIFF(date1,date2) 得到的是天数,而且是date1-date2 的天数,因此可以取负数。DATE ADD()中的 interval 后面可以是 year minute second day 等。这四个函数的日期类型可以是 date,datetime 或者 timestamp。

2023-04-30 02:15:00 707

原创 HashSet源码分析

源码分析:/*对HashSet 的源码解读1. 执行 HashSet()2. 执行 add()//这里的PRESENT 是一个空对象数组,起到占位符作用3.执行 put() , 该方法会执行 hash(key) 得到key对应的hash值 算法h = key.hashCode()) ^ (h >>> 16)根据我们传入进来的值,去计算hash值,在Table中存放的位置。

2023-04-29 02:30:00 1422

原创 LinkedList底层结构

1)LinkedList底层实现了双向链表和双端队列特点2)可以添加任意元素(元素可以重复),包括null3)线程不安全,没有实现同步。

2023-04-28 06:15:00 1061

原创 Vector底层结构和源码分析

1.Vector类的定义说明2)Vector底层也是一个对象数组,protected Objectl] elementData;3)Vector是线程同步的,即线程安全,Vector类的操作方法带有synchronized4)在开发中,需要线程同步安全时,考虑使用Vector通过上面的Vector类我们可以看到Vector实现了很多接口,实现了List接口,还实现了Serializable接口,就代表可串行化,数据可以在网络上传输。

2023-04-27 03:00:00 566

原创 MySQL数据库(3)

1.Order by 指定排序的列,排序的列既可以是表中的列名,也可以是select语句后指定的列名。3.ORDER BY 子句应位于SELECT语句的结尾。2.Asc 升席[默认1、Desc 降序。

2023-04-26 20:32:52 1097

原创 MySQL数据库(2)

在5.7版本使用时间戳需要进行配置,配置后才可以使用,后期即使不对该字段进行更新,对其他字段进行更新也会更新时间TimeStamp在Insert和update时,自动更新。

2023-04-25 23:21:41 439

原创 MySQL数据库(1)

在MySQL中sql语句主要分为这几类,分别是DDL : 数据定义语句 [create 表,库...]DML: 数据操作语句 [增加 insert ,修改 update,删除 delete]DQL: 数据查询语句[select ]DCL : 数据控制语句[管理数据库: 比如用户权限 grant revoke ]

2023-04-25 04:45:00 436

原创 ArrayList底层结构和源码分析

1.permits all elements, including null,ArrayList 可以加入null,并且多个2.ArrayList是由数组来实现数据存储的3.ArrayList 基本等同于Vector,除了ArrayList是线程不安全(执行效率高)看源码.在多线程情况下,不建议使用ArrayList。

2023-04-24 01:45:00 534

原创 Collection接口和List接口的讲解

1)Iterator对象称为迭代器,主要用于遍历Collection集合中的元素。2)所有实现了Collection接口的集合类都有一个iterator()方法,用以返回一个实现了lterator接口的对象,即可以返回一个迭代器。3.lterator 的结构.4.Iterator 仅用于遍历集合,Iterator本身并不存放对象。

2023-04-23 03:00:00 476

空空如也

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

TA关注的人

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