- 博客(42)
- 收藏
- 关注
原创 学习笔记
Spring中@RequestMapping的作用是将HTTP映射到相应的方法、类上。@Autowired的作用是对类、构造方法等进行标注,实现自动装配的工作。load支持延迟加载,get不支持。当数据查询时,oid无对象时,get返回null,load返回代理对象。get()和load()的区别?
2024-03-27 19:11:27 91
原创 学习笔记
Spring管理的事物类型:编程式事物、声明式事物(基于XML的声明式事物、基于注解的声明式事物)。Spring IOC:控制反转。Spring AOF:面向切面编程。Kafka是一个分布式的流处理平台。
2024-03-27 16:35:26 67
原创 学习笔记
缓存穿透:对不存在于数据库的缓存发送大量请求。布隆过滤器能够判断一个数据是否存在于海里的数据中。缓存雪崩:同一时间,大量的缓存同时过期。缓存击穿:一个热点缓存过期时候收到大量请求。Redis不具有原子性和持久性。
2024-03-26 21:18:06 105
原创 学习笔记
Redis使用C语言写成的数据库,与传统数据库不同在于Redis数据直接存储在内存,因此读写速度非常块,所以Redis数据库被用于缓存,甚至分布式锁和消息队列。池化思想:初始预设资源。解决的问题就是每次抵消掉消耗的资源。数据库分片的两种常见方案:客户端代理、中间件代理。Redis中的List是双向链表。
2024-03-26 20:45:51 88
原创 学习笔记
字符集指的是二进制编码到某类字符符号的映射。校对规则指的是在某种字符集下的排序规则。MySQL中的索引主要是B树索引和哈希表索引,其中B树索引主要是B+树索引。事物是逻辑上的一组操作,要么都执行,要么都不执行。事物的特征:原子性、隔离性、一致性、持久性。MySQL是关系型数据库。
2024-03-26 19:32:11 87
原创 学习笔记
进行内存的分配与回收、以及将内存逻辑地址转化为物理地址也是内存管理做的工作。连续性内存管理(块式管理)、非连续性内存管理(页式管理、段式管理)
2024-03-25 22:51:26 108
原创 学习笔记
用户态:用户运行的进程或者可以访问任何用户数据的程序。系统态:可以访问计算机任何资源,不受限制的程序。系统调用的分类:系统管理、进程管理、进程控制、内存管理、文件管理。进程的五种状态:创建状态、就绪状态、运行状态、阻塞状态、结束状态。
2024-03-25 22:02:24 103
原创 学习笔记
HTTP1.0默认使用短连接,客户端和服务器每进行一次HTTP请求,就建立一次连接。HTTP1.1开始使用长连接,会保持一定时间,不会因为请求结束而断开连接。5XX:服务器端错误状态码。4XX:客户端错误状态码。1XX:信息性状态码。3XX:重定向状态码。
2024-03-24 22:30:27 69
原创 学习笔记
DNS解析url、建立TCP连接、发送HTTP请求、服务器处理请求并返回HTTP报告、浏览器解析渲染画面、连接结束。TCP拥塞控制:慢开始、拥塞避免、快重传、快恢复。TCP通过滑动窗口机制实现流量控制。
2024-03-24 22:15:43 99
原创 学习笔记
exclusive:独占状态,只有一个线程可以执行。share:多个线程可以同时执行。Java方法的返回方式一共两种:return返回值和异常抛出。
2024-03-22 18:41:46 77
原创 学习笔记
AQS原理:如果请求的共享资源空闲,那么就需要将共享资源锁定。若是请求的共享资源被占用,那么就需要阻塞时锁等待机制。execute用于提交不需要返回值的方法,submit用于提交返回值的方法。
2024-03-21 22:03:03 247
原创 学习笔记
runable接口有返回值,会响应异常,而callable接口不会。减小资源消耗,提高响应速度,提高线程的可管理性。减小资源消耗,提高响应速度,提高线程的可管理性。
2024-03-21 21:09:23 72
原创 学习笔记
Threadloacl类的作用在于给每个线程存放数据的盒子,用于存放线程的私有数据。Synchronized修饰符保证被修饰的函数或方法在任意时刻只有一个线程执行。
2024-03-21 20:27:52 434
原创 学习笔记
死锁意思是当多个线程被阻塞,一个或多个线程同时等待某个资源,造成死锁。当线程A和B同时拥有资源,两者同时需要对方的资源,此时就会都阻塞,造成死锁。
2024-03-21 19:22:28 65
原创 学习笔记
并发编程的目的是为了提高程序的运行效率,但也可能会带来问题,比如内存泄露问题、上下文切换问题、死锁问题。线程是进程划分的更小的执行单位。进程是独立的,而线程则不是,同一进程内部的线程会相互影响。多线程可能带来的问题?
2024-03-20 22:06:47 85
原创 学习笔记
堆和方法区都是进程中所有线程共享的资源。堆是最大的内存区,用于存放新创建的对象,方法区用于存放已加载的类信息和编译过的代码数据等。并发指的是同一时间段,多个任务都在执行(单位时间段,不一定同时执行)。并行指的是单位时间段,多个任务同时执行。
2024-03-20 21:51:26 55
原创 学习笔记
Arraylist和vector的区别,Arraylist是List主要实现类,用于频繁的查找,不是线程安全的。Vector是List的古老的实现类,是线程安全的。进程是动态的,程序是静态的。进程是程序执行时产生的,随着程序的运行产生到消亡。线程是比进程更小的单位,一个进程会产生很多线程,线程也被称之为轻量级进程。
2024-03-20 21:40:51 79
原创 学习笔记
双向链表和双向循环链表:双向链表每个节点有两个指针,一个pre指向前一个节点,一个next指向后一个节点,双向循环链表的最后一个节点的next指向head,而head节点的pre指向前一个节点,构成一个循环。Arraylist和Linkedlist的区别在于:都是线程不安全的,Arraylist的底层数据结构是数组,Linkedlist的底层数据结构是双向链表。
2024-03-20 19:55:11 88
原创 学习笔记(10)
线程与进程相似,但线程比进程更小,很多线程共享内存和资源,被称为轻量级进程。进程和线程都是动态的,都会随着程序的调用而产生和消亡。程序是静态的,是文件和指令的集合。==判断两个对象是否相等,一般是判断内存是否相等。equals判断要看是否覆盖了类。==和equals的区别在于。线程、进程、程序的区别。
2024-03-19 17:02:20 242
原创 学习笔记(8)
调用静态方法无需创建对象。当静态方法访问本类成员时,只能访问静态成员,不能访问实例成员,而实例方法没有这个限制。一个类的构造方法是完成对一个类的创建初始化工作。即使没有创建构造方法也有默认的不带参数的构造方法。是指在调用一个方法的代码后所产生的结果。返回值用于进行接下来的操作。对象相等指的是内存中的内容是否相等,而引用的相等指的是指向的内存地址是否相等。构造方法名称与类名相同,没有返回值,但也不能用void修饰构造函数。
2024-03-18 21:38:47 78
原创 学习笔记(7)
接口一般用public修饰方法,而抽象类可以用protected、default、static(不能private)来修饰。接口可以有很多个,本身接口也可以通过extend来扩展,而抽象类只能有一个。抽象类是对类的抽象,接口是对方法的抽象。接口中除了static、final变量不能有其他,而抽象类不一定。局部变量和成员变量的区别:成员变量随对象的存在而存在,而局部变量在方法中或是方法的参数,会随着方法的结束而消失。一个对象引用可以有0或一个对象示例,一个对象实例可以有多个对象引用。
2024-03-18 21:17:04 58
原创 学习笔记(6)
因为静态方法可以不通过类来调用对象,因此静态方法不可以调用非静态变量,也不能访问非静态对象变量成员。装箱与拆箱:将基本类型自动用对应的引用类型包装起来,拆箱是指将包装类型转换为基本数据类型。继承:子类继承父类的所有属性,可以拥有,但不能访问私有属性和私有方法。封装、继承和多态使得Java具有易维护、易扩展、易复用的特点。封装:类中把一个属性私有化,同时对外界提供可以使用的方法。多态:Java的多态通过继承和接口来实现。
2024-03-18 20:53:33 53
原创 学习笔记(5)
通常用单引号引出的是字符常量,用双引号引出的是字符串常量。字符常量相当于一个值(ASCII)值,可以参与数字运算,字符串常量相当于一个地址。重载发生在同一个类中,根据输入数据类型的不同选择不同的方法,参数不同,参数大小,返回值类型都可不同。重写是子类继承父类中,重写的方法名、参数类型、参数大小都必须相同,重写的抛出异常处理一定要小于父类,修饰返回值类型小于父类。字符常量相当于一个ASCII值,可以参与表达式运算,而字符串常量表示一串地址。字符串常量双引号引出,字符常量单引号引出。
2024-03-17 22:20:49 180
原创 学习笔记(4)
用于实现Java的多平台使用的特点。JVM虚拟机是用于运行Java字节码的虚拟机,可以在windows、macos、linux等系统实现。目的是在JVM虚拟机上使用相同的字节码,会得到相同的结果。在JVM上可以识别和应用的语言,只应用于虚拟机,保证了Java程序可以在不同操作系统运行。4.Java的类是单继承的,C++可以多继承。但Java的接口可以多继承。2.Java没有提供直接访问内存的指针,使内存更安全。3.Java有内存管理,不需要手动释放无用的内存。1.都是面向对象的,都支持封装、继承、多态。
2024-03-17 21:58:44 99
原创 学习笔记(3)
面向过程效率比面向对象要高,因为调用类需要对其进行实体化,会消耗资源,所以单片机、Linux/Unix编程是面向过程的。而面向对象具有易维护、易扩展、易复用的特点,能够降低耦合度,使系统更灵活。面向对象具有继承、封装、多态的特性。多平台可使用(Java虚拟机)。基于对象(封装、继承、多态)。
2024-03-17 21:37:20 93
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人