自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL整理

从范围查询效率方面来看:在MySQL中,范围查询是一个比较常用的操作,而B+树的所有存储在叶子节点的数据使用了双向链表来关联,所以B+树在查询的时候只需查两个节点进行遍历就行,而B树需要获取所有节点,因此,B+树在范围查询上效率更高。从磁盘I/O效率方面来看:B+树的非叶子节点不存储数据,所以树的每一层就能够存储更多的索引数量,也就是说,B+树在层高相同的情况下,比B树的存储数据量更多,间接会减少磁盘I/O的次数。,就像书的目录一样。在InnoDB引擎中,采用了B+树的结构来实现索引和数据的存储。

2023-08-25 20:31:14 444

原创 进程与线程、线程创建、线程周期、多线程安全和线程池(ThreadPoolExecutor)

线程安全:指某个方法在多线程环境被调用,能够正确处理多线程之间的共享变量,是程序功能正确完成。事先创建若干个可执行的线程放入一个池(容器)中,需要的时候从池中获取线程不用自行创建,使用完毕不需要销毁线程而是放回池中,从而减少创建和销毁线程对象的开销。优点降低资源消耗:重用存在的线程,减少对象创建销毁的开销。提高响应速度:可有效的控制最大并发线程数,提高系统资源的使用率,同时避免过多资源竞争,避免堵塞。当任务到达时,任务可以不需要的等到线程创建就能立即执行。提高线程的可管理性。

2023-08-04 19:50:39 709

原创 Java集合框架

例如,List接口的常见实现类有ArrayList和LinkedList,Set接口的常见实现类有HashSet和TreeSet,Queue接口的常见实现类有LinkedList和PriorityQueue,而Map接口的常见实现类有HashMap和TreeMap。TreeMap实现SortMap接口,底层红黑树,能够把它保存的记录根据键排序,默认是按键值的升序排序(自然顺序),也可以指定排序的比较器,当用Iterator遍历TreeMap时,得到的记录是排过序的。Map接口基于数组+链表+红黑树的实现,

2023-08-01 17:34:34 175

原创 什么是反射?Java反射?反射的优缺点

反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。JAVA反射机制是在**运行状态中**,对于任意一个类,获取这个类的所有属性和方法和调用它的任意一个方法和属性,这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

2023-08-01 16:16:40 194

原创 Redis学习总结

读写分离 + 主从库延迟也会导致缓存和数据库不一致,采用 先更新数据库,再删除缓存 方案,缓解此问题的方案是 延迟双删,凭借经验发送 延迟消息 到队列中,延迟删除缓存,同时也要控制主从库延迟,尽可能降低不一致发生的概率。:List 说白了就是链表(redis 使用双端链表实现的 List),是有序的,value可以重复,可以通过下标取出对应的value值,左右两边都能进行插入和删除数据。Redis是使用c语言编写的开源的高性能非关系型数据库,它可以存储键和五种不同类型的值之间的映射。

2023-08-01 15:24:33 91

原创 JVM总结笔记

当新对象去伊甸园区(Eden)申请内存失败的时候,就会进行Minor GC,对伊甸园区(Eden)回收非存活对象,而没有被回收的对象,会进入幸存区(Survivor),这种GC只发生在伊甸园区(Eden),不会影响到老年区。在java中,程序员是不需要显示的去释放一个对象的内存的,而是由虚拟机自行执行。在JVM中,有一个垃圾回收线程,它是低优先级的,在正常情况下是不会执行的,只有在虚拟机空闲或者当前堆内存不足时,才会触发执行,扫面那些没有被任何引用的对象,并将它们添加到要回收的集合中,进行回收。

2023-07-31 20:28:52 770

原创 JVM包含哪几部分?JVM内存模型?线程的生命周期? 对Spring AOP的理解?布隆过滤器

JVM由三部分组成:类加载子系统、执行引擎、运行时数据区。serialVersionUID常量用于标明当前Serializable类的版本,以验证加载的类和序列化对象是否兼容。在进行序列化时会将当前类的serialVersionUID写入到字节序列中,在反序列化时会将当前字节流中的serialVersionUID同本地对象中的serialVersionUID进行对比,如果相同则继续序列化,如果不同则失败报错。

2023-07-13 19:31:35 509

原创 ArrayList和HashMap的实现原理

ArrayList的实现原理 - ArrayList 底层基于数组实现,内部封装了 Object 类型的数组,实现了list接口; - 通过默认构造器创建容器时,该数组被初始化为一个空数组,首次添加数据时再将其初始化为容量为10的数组,也可以通过有参构造器显式指定数组长度; - 当添加的数据超出数组长度时触发自动扩容,将旧数据拷贝到新数组中,新数组为原数组的1.5倍;相对于同为继承list的 LinkedList 来说,查询快,增改删较慢,则 LinkedList 相反。HashMap的的实现原理

2023-06-16 21:10:10 94

原创 Nginx 反向代理与负载均衡

Nginx 是一款高性能的 http 服务器和反向代理服务器,官方测试 nginx 能够支支撑 5 万并发链接,并且 cpu、内存等资源消耗却非常低,运行非常稳定。正向代理:局域网中的Pc客户端要访问局域网外的 Internet 网,不能直接访问,需要通过代理服务器来访问,这种代理服务就称为正向代理。反向代理:反向代理服务器接受 internet 上的连接请求,然后将请求转发给内部网络上的目标服务器,并将从目标服务器上得到的结果返回给 internet 上请求连接的客户端,此时反向代理服务器和目标服务器对

2022-12-07 20:19:08 851 1

原创 工厂模式【简单工厂+工厂+抽象工厂】总结

简单工厂模式是属于创建型模式,又叫做**静态**工厂方法模式,但不属于23种GOF设计模式之一。简单工厂模式中专门定义一个简单工厂类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 工厂方法模式又称为工厂模式,也叫多态工厂模式,它属于类创建型模式。工厂方法模式,定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。抽象工厂模式又称为Kit模式,属于对象创建型模式。抽象工厂模式:提供一个接口,用于创建一系列相关或相互依赖对象的家族,而无需指定它们具体的

2022-11-21 15:51:26 1154 1

原创 【Redis】缓存雪崩、穿透和击穿及解决方法

缓存雪崩:redis中的缓存数据同一时间大面积的失效,导致请求全部去访问数据库,造成数据库短时间内承受大量请求而崩掉。缓存穿透:查询缓存和数据库中都没有的数据,每次请求从缓存获取不到,请求都会到数据库,如果大量请求访问数据,就会压垮数据库。缓存击穿:热点key被频繁访问时突然失效,从而导致大量请求直接访问数据库,导致数据库压力过大。

2022-11-14 15:28:14 526

原创 装饰模式与职责链模式笔记

. 概念**使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。**

2022-11-11 20:34:14 385

原创 Cookie和Session

会话技术是什么?在一次会话的范围内的多次请求和响应之间,共享数据。 一次会话是什么?客户端浏览器第一次给web服务器资源发送请求,会话建立,直到有一方断开为止。Cookie:客户端会话技术1. **介绍:**cookie存储数据在客户端浏览器;浏览器对单个cookie的大小限制为4KB,对同一个域名下最多存放20个Cookie;每个cookie以键值对(name-value),且name是唯一的。相同名字时,后者会覆盖掉前者;

2022-10-29 22:17:08 1209

原创 javaScript 简介和输出语句

浏览器中使用 F12 来启用调试模式, 在调试窗口中点击 “Console” 菜单。使用 document.write() 方法将内容写到 HTML 文档中。使用 console.log() 写入到浏览器的控制台。使用 innerHTML 写入到 HTML 元素。

2022-10-17 10:24:43 163

原创 JavaScript 数据类型和类型转换

注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。String:字符串js中字符串使用单引号和双引号引起来,但不要混用;引号不能嵌套,双引号不能放双引号,单引号不能放单引号;字符串中我们可以使用\作为转义字符,如:转义序列:\n 换行\t:制表符\b:空格\r:回车符\f:分页符\\:斜杠\\':单引号\":双引号\xnn:十六进制数,n代表0~F\unnnn;以十六进制代码表示一个undefinedNumber:数值。

2022-10-08 14:53:19 357

原创 CSS 伪类选择器

什么是伪类?伪类用于定义元素的特殊状态。它可以用于:设置鼠标悬停在元素上时的样式为已访问和未访问链接设置不同的样式设置元素获得焦点时的样式实例

2022-09-28 20:19:31 244

原创 JDBC之增删改查操作

查询需要调用 PreparedStatement 的 executeQuery() 方法,查询结果是一个 ResultSet 对象。ResultSetMetaData:结果集的元数据,用于获取关于 ResultSet 对象中列的类型和属性信息的对象。ResultSet executeQuery(String sql):执行查询操作SELECT;注意:Java与数据库交互涉及到的相关Java API中的索引都从1开始。

2022-09-26 09:15:08 743

原创 SQL 日期时间函数

timestampdiff(unit,begin,end):求两个日期以时间戳的时间差(end-begin),unit参数是获取结果的日期类型;str_to_date(str, format): 将时间格式的字符串(str)转换成按照显示格式(format)的datetime类型的值;注意:参数传递的是日期时间值,DATEDIFF函数仅将日期部分用于计算,并忽略时间部分(只有值的日期部分参与计算);dayofmonth(date):获取指定日期是一个月的第几天;day(date): 获取指定date的日;

2022-09-23 17:10:00 2592

原创 学习JDBC之 获取数据库连接三个要素

JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API),定义了用来访问数据库的标准Java类库,(java.sql,javax.sql)使用这些类库可以以一种标准的方法、方便地访问数据库资源。JDBC为访问不同的数据库提供了一种统一的途径,为开发者屏蔽了一些细节问题。JDBC的目标是使Java程序员使用JDBC可以连接任何提供了JDBC驱动程序。

2022-09-19 11:02:37 167

原创 Git分布式版本控制工具

本地仓库和远程仓库本地仓库:是在开发人员自己电脑上的Git仓库远程仓库:是在远程服务器上的Git仓库Clone:克隆,就是将远程仓库复制到本地Push:推送,就是将本地仓库代码上传到远程仓库Pull:拉取,就是将远程仓库代码下载到本地仓库。

2022-09-13 11:03:23 132

原创 三层架构总结

三层架构是为了符合“高内聚,低耦合”思想,把各个功能模块划分为**表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)**三层架构,各层之间采用接口相互访问。并实体层(Entity)将三层联系起来。任何一层发生变化都不会影响到另外一层,比如数据库SQLServer 转 Oracle数据库时,我们只需要修改一个层即可,因为与数据库的交互都在数据访问层中。使用三层架构时,我们首先要先创建好不同的包,每一个包对应三层架构的一个层。使用三层架构的目的:解耦。

2022-09-08 10:57:36 960

原创 PreparedStatement 与 Statement的区别

SQL 注入是利用某些系统没有对用户输入的数据进行充分的检查,而在用户输入数据中注入非法的 SQL 语句段或命令(如:SELECT user, password FROM user_table WHERE user=‘a’ OR 1 = ’ AND password = ’ OR ‘1’ = ‘1’) ,从而利用系统的 SQL 引擎完成恶意行为的做法。

2022-09-06 16:29:52 131

原创 MySQL之索引和SQL优化

索引 (index)是高效获取数据的数据结构。MySQL 的索引是在存储引擎层实现的,不同的存储引擎有不同的结构,MySQL5.6后的默认引擎是InnoDB;MySQL索引数据结构对经典的B+Tree进行了优化。在原B+Tree的基础上,增加一个指向相邻叶子节点的链表指针,就形成了带有顺序指针的B+Tree,提高区间访问的性能。叶节点形成双向链表。为什么InnoDB存储引擎选择使用B+tree索引结构?相对于二叉树,层级更少,搜索效率高;...

2022-08-31 21:00:44 453 1

原创 MySQL之SQL语言

SQL介绍SQL是操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准通用语法SQL语句可以单行或多行书写,以分号结尾。可以使用空格/缩进来增强语句的可读性。注释:单行注释:–注释内容或#注释内容(MySQL特有),多行注释: /注释内容/;...

2022-08-30 16:50:36 318

原创 MySQL面试题 MyISAM 与 InnoDB 区别? where 和 having 的区别?

where 和 having 的区别?主键与唯一键的区别?delete 与 truncate 区别?MyISAM 与 InnoDB 区别?视图与表的区别?

2022-08-29 09:32:51 178

原创 Java中操作字符串都有哪些类?它们之间有什么区别?

Java中操作字符串都有哪些类?它们之间有什么区别?Java中操作字符串的类有:String、StringBuffer、StringBuilder。String是final修饰的,所以它是不可变类。因此,每次修改String的值,都会产生一个新的对象。而StringBuffer和StringBuilder是可变类,它们在字符串变更的时候,不会产生新的对象。String是不可变类,所以它是线程安全的;StringBuffer是线程安全的,因为它每个操作方法都加了synchronized同步关键字(

2022-08-22 09:12:23 177

原创 异常处理 try-catch-finally

finally:是 try{} catch{} finally{} 最后一部分,表示不论发生任何情况都会执行,finally 部分可以省略,但如果 finally 部分存在,则一定会执行 finally 里面的代码。如果修饰方法和局部变量,则表示此方法和此局部变量不能在被改变,只能使用;如果修饰属性,则表示此属性不能在被改变,只能使用,但可以赋值的。finally 一定会执行,即使是 catch 中 return 了,catch 中的 return 会等 finally 中的代码执行完之后,才会执行。

2022-08-15 09:15:02 80

原创 对象序列化和反序列化

序列化:将 Java 对象转换成字节流的过程。反序列化:将字节流转换成 Java 对象的过程。

2022-08-08 09:19:00 63

原创 类加载器的作用&反射获取Class类对象的三种方式&暴力反射

是指在运行时去获取一个类的变量和方法信息。然后通过获取到的信息来创建对象,调用方法的一种机制。由于这种动态性,可以极大的增强程序的灵活性,程序不用在编译期就完成确定,在运行期仍然可以扩展。...

2022-08-05 10:09:30 514

原创 文件IO流之File类和递归思想

File类介绍它是文件和目录路径名的抽象表示文件和目录是可以通过File封装成对象的对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的File类的构造方法方法名说明通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例从父路径名字符串和子路径名字符串创建新的 File实例从父抽象路径名和子路径名字符串创建新的 File实例示例代码。...

2022-08-03 14:49:46 112

原创 set接口的特点?set接口的实现类有哪些?他们的底层实现是什么?分别有什么特点?在List集合内去除重复数字值?

Kevin2290请分别用Comparable和Comparator两个接口对以上同学的成绩做降序排序,如果成绩一样,那在成绩排序的基础上按照年龄由小到大排序,成绩和年龄都一样,则按照姓名的字典顺序排序。HashSet集合,底层实现是哈希表,特点集合元素可以是null;对集合的迭代顺序不作任何保证,也就是说不保证存储和取出的元素顺序一致;特点链表保证元素有序,也就是说元素的存储和取出顺序是一致的;哈希表保证元素唯一,也就是说没有重复的元素。特点元素有序,可以按照一定的规则进行排序;...

2022-08-01 08:54:17 403 1

原创 List集合三种方式遍历、Set集合(HashSet集合保证元素唯一性原理、TreeSet自然排序Comparable和比较器排序Comparator)

Collection 是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素,JDK 不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现。List集合概述有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素与Set集合不同,列表通常允许重复的元素List集合特点有索引可以存储重复元素元素存取有序​ 是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值。

2022-07-27 15:23:21 629

原创 日期类:Date、SimpleDateForma和Calendar

​Date代表了一个特定的时间,精确到毫秒,得到毫秒值表示1970年1月1日000000.000GMT之后的毫秒数。SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。SimpleDateFormat类概述。案例获取任意一年的二月有多少天。求两个日期之间相隔的天数.请使用日期时间相关的API,计算出一个人已经出生了多少天。验证for循环打印数字1-9999所需要使用的时间(毫秒) 求出今天距离2023年1月1日还有多少天...

2022-07-24 23:11:20 223 2

原创 Java 成员、局部和匿名内部类

在一个类中再定义新一个类,新类叫内部类格式:访问特点内部类可以直接访问外部类成员,包过私有外部类访问内部类的成员,需要创建对象优点内部类与外部类可以方便的访问彼此的私有域(包括私有方法、私有属性)内部类是另外一种封装,对外部的其他类隐藏内部类可以实现java的单继承局限缺点结构复杂成员内部类在成员位置的内部类是成员内部类可以拥有private、public等访问权限修饰成员内部类,外界如何创建对象使用?格式:外部类名.内部类名 对象名=外部类对象.内部

2022-07-12 17:28:11 120 1

原创 基本类型包装类:装箱和拆箱

将基本数据类型封装成对象类型的类,就叫包装类总结:示例int与String相互转换装箱和拆箱装箱:将基本数据类型转换为包装类拆箱:将包装类转换为基本数据类型装箱的过程调用了 Integer.valueOf(int i) 方法,帮你直接new了一个Integer对象拆箱的过程通过Integer 实体调用**intValue()**方法什么时候进行自动拆装箱?在JDK1.5以前,需要手动装箱和拆箱在JDK1.5及以后,支持自动装箱和拆箱应用需要对象的时候就装箱需要基本类型的时候就拆箱

2022-07-11 16:28:12 85

原创 Java try-catch方式处理异常与throws和throw的区别

异常的概述程序出现了不正常的情况异常的体系结构Error和RuntimeException及其子类成为未检查异常(unchecked),其它异常成为已检查异常(checked).publicclass异常类名extendsException{无参构造带参构造}//示例publicclassScoreExceptionextendsException{}}练习示例编写一个计算N个整数平均值的程序。程序应该提示用户输入N的值,如何必须输入所有N个数。}}...

2022-07-09 10:40:11 78

原创 Java 抽象类和接口的区别

接口就是一种公共的规范标准,只要符合规范标准,大家都可以通用。官方解释:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。成员变量​ 只能是常量(全局常量)​ 默认修饰符:public static final构造方法​ 没有,因为接口主要是扩展功能的,而没有具体存在成员方法​ 只能是抽象方法​ 默认修饰符:public abstract成员区别抽象类​ 变量,常量;有构造方法;

2022-07-06 17:43:46 97

原创 抽象和接口基础概念题

static 修饰的属性,相较于实例变量,有哪些特别之处(>=3点)final 可以用来修饰哪些结构,分别表示什么意思?类的属性赋值的位置有哪些?先后顺序为何?

2022-07-04 14:36:17 111 1

原创 Java 面向对象三大特征

在子类方法中访问一个变量,采用的是就近原则。通过子类对象访问一个方法问题:如果父类中没有无参构造方法,只有带参构造方法,该怎么办呢?1. 通过使用super关键字去显示的调用父类的带参构造方法2. 在父类中自己提供一个无参构造方法3.推荐方案:​ 自己给出无参构造方法什么是多态多态的前提成员访问特点为什么不一样?因为成员方法有重写,成员变量没有......

2022-07-01 14:58:50 49

原创 Java 面向对象

万物皆对象,客观存在的事物皆为对象类的组成类和对象的关系简单理解:类是对事物的一种描述,对象则为具体存在的事物类的组成:属性和行为类的定义步骤:①定义类②编写类的成员变量③编写类的成员方法创建对象的格式:类名 对象名 = new 类名(); 范例:Phone p = new Phone();如果需要被其他类使用,提供相应的操作this关键字解决局部变量隐藏成员变量this修饰的变量用于指代成员变量构造方法是一种特殊的方法作用:创建对象功能:主要是完成对象数据的初始化格式:public class

2022-06-22 23:24:55 61

空空如也

空空如也

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

TA关注的人

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