- 博客(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的反射机制(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
原创 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
空空如也
坦克大战,有时候,如果把子弹速度该的很快,那么就算子弹命中敌人也不会有效果
2022-11-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人