自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Zero摄氏度的博客

严于律己。

  • 博客(150)
  • 收藏
  • 关注

原创 Linux下搭建Redis一主二从的哨兵模式

哨兵是Redis的一种工作模式,以监控节点状态及执行故障转移 为主要工作,哨兵总是以固定的频率去发现节点、故障检测 ,然后在检测到主节点故障时以安全的方式执行故障转移,确保集群的高可用性。

2023-12-20 10:05:18 291

原创 实习输出(1)

一点实习感悟啦

2023-11-03 22:43:26 316

原创 Java中的异常

Java中的异常是指一个在程序执行期间发生的事件,它中断正在执行程序的正常指令流,为了能够及时有效地处理程序中的运行错误,必须使用异常类。在Java中,所有的异常都有一个共同的祖先,就是java.lang包下的Throwable类 。Throwable类有两个重要的子类:

2023-08-28 20:51:46 306

原创 Java常见的排序算法

一个排序算法的稳定性与不稳定性是通过排序后相同元素的先后顺序 来判断的。稳定性:如果排序前后,具有相同关键字的元素的相对顺序没有改变,则排序算法被认为是稳定的。不稳定性:如果排序前后,具有相同关键字的元素的相对顺序发生了改变,则排序算法被认为是不稳定的。

2023-08-27 22:53:52 594

原创 Web应用登录验证的几种方式

1、HTTP 是无状态的,为了维持前后请求,需要前端存储标记-----cookie2、cookie 是一种完善的标记方式,通过 HTTP 头或 js 操作,有对应的安全策略,是大多数状态管理方案的基石3、session 是一种状态管理方案,前端通过 cookie 存储 id,后端存储数据,但后端要处理分布式问题4、token 是另一种状态管理方案,token 的编码技术,通常基于 base64,或增加加密算法防篡改;jwt 是一种成熟的编码方案,并且JWT实现了无状态登录,相较于传统的有状态登录

2023-08-25 10:38:36 3188

原创 四、MySQL性能优化

我们可以使用EXPLAIN命令来分析SQL的执行计划 ,执行计划是指一条SQL语句在经过MySQL查询优化器的选择后具体的执行方式EXPLAIN并不会真的去执行相关的语句,而是通过查询优化器 对语句进行分析,找出最优的查询方案,并显示对应的信息。

2023-08-23 22:55:59 233

原创 三、数据库索引

索引是一种用于快速查询和检索数据的数据结构,其本质可以看成是一种排序好的数据结构。 常见的索引结构有:B数,B+树,Hash和红黑树等。在MySQL中,无论是 InnoDB还是MyISAM,都使用了B+树作为索引结构。- 使用索引可以大大加快数据的检索速度(减少检索量)- 通过创建唯一索引,可以保证数据库表中每一行数据的唯一性

2023-08-23 22:53:54 125

原创 二、MySQL数据库

关系型数据库是一种建立在关系模型的基础上的数据库。关系模型表明了数据库中所存储的数据之间的联系(一对一、一对多、多对多)关系型数据库中,我们的数据都被存放在各种表中,表中的每一行存放着一条数据常见的关系型数据库有:MySQL,SQL Server ,Oracle ,PostgreSQL

2023-08-23 21:00:15 167

原创 一、数据库基础

- 数据库:数据库(DataBase ,简称DB),就是信息的集合。数据库是由数据库管理系统管理的数据的集合;- 数据库管理系统:简称DBMS 。是一种操纵和管理数据库的大型软件,通常用于建立、使用和维护数据库;- 数据库系统:DBS。通常由软件、数据库和数据管理员(DBA)组成;- 数据库管理员:DBA。负责全面管理和控制数据库系统。

2023-08-23 20:55:37 196

原创 Nginx详解

单台tomcat在理想情况下可支持的最大并发数量在200~500之间,如果大于这个数量可能会造成响应缓慢甚至宕机。解决方案是通过多台服务器分摊并发压力,这不仅需要有多台tomcat服务器,还需要一台服务器专门用来分配请求。这既是反向代理服务器2、Nginx概述Nginx是一款优秀的反向代理服务器程序,能够为若干台服务器提供反向代理服务,一方面为客户端提供一个统一访问的地址,一方面为后台多个服务器提供负载均衡 。

2023-08-16 21:03:09 153

原创 Java Web常见面试题

第一次创建session的时候,服务端会在HTTP协议中告诉客户端,**需要在cookie里面记录一个session ID ** ,以后每次请求把这个session ID发送到服务器,这样服务器就能识别这个用户了。当服务器集群的时候,如大型的网站,会有专门的session服务器集群,用来保存用户会话,这个时候session是放在内存的,使用一些缓存服务来放session。HTTP协议时无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识别具体的用户,这个机制就是session。

2023-08-16 19:58:40 319

原创 你了解单点登录吗?

提高用户效率,用户不再被多次登录困扰,也不需要记住多个ID和密码。用户登录时,输入用户名密码等信息,验证数据库后,登录成功,将会话信息存入分布式session(redis中保存,设置过期时间)会返回ticket保存在cookie中,用户访问其他服务时携带cookie(其实主要是ticket),成功访问。使用Cookie作为媒介,存放用户凭证,用户登录父应用之后,应用返回一个加密的cookie,当用户访问子应用的时候,携带上这个cookie,授权应用解密cookie并进行校验,校验通过则登录当前用户。

2023-08-16 17:16:17 96

原创 零拷贝详解

对于文件传输的优化,实现零拷贝。通过一次系统调用(sendfile)合并了磁盘读取(read)和网络发送(write)两个操作 ,降低了上下文切换次数;只进行了两次数据拷贝,从磁盘文件到内核缓冲区,从内核缓冲区到网卡,都是由DMA搬运,降低了数据拷贝次数 !零拷贝技术是基于 PageCache 的,PageCache 会缓存最近访问的数据,提升了访问缓存数据的性能,同时,为了解决机械硬盘寻址慢的问题,它还协助 I/O 调度算法实现了 IO 合并与预读,这也是顺序读⽐随机读性能好的原因。这些优势,进⼀

2023-08-12 17:28:47 594

原创 MyBatis框架常见面试题

在MyBatis初始化过程中,会加载mybatis-config.xml配置文件、Mapper.xml映射配置文件以及Mapper接口中的注解信息,解析后的配置信息会形成相应的对象并全部保存到Configuration对象中,并创建DefaultSqlSessionFactory供SQL执行过程创建出顶层接口SqlSession供给用户操作。

2023-08-10 16:57:29 160

原创 JDBC操作技术和连接池详解

通过建立一个数据库连接池以及一套连接使用、分配、管理策略,使得该连接池中的连接可以得到高效、安全的复用,避免数据库连接频繁建立、关闭的开销 。(如果没有连接池,那我们每请求连接一次数据库都要创建一个连接,并且这个连接得不到复用,连接关闭就直接销毁)

2023-08-02 09:38:28 399

原创 监听器Listener详解

tomcat一启动,先创建出监听器,对application的创建和销毁做监听。当application一创建,被监听器监听到,就调用contextInitialized()方法;实现的两个接口,一个是为了实现对application状态监听的方法,一个是为了实现对applciation属性的变化监听的方法。通过实现ServletContextAttributeListener 的三个方法,对applcation的属性变化做监听。来监听session的创建。

2023-07-30 21:37:12 157

原创 Filter详解

tomcat一启动,就会创建Filter对象,然后FilterConfig封装配置文件的过滤器参数注入到init方法中,通过init方法,将config里的参数读取出来,赋值给实例全局变量encoding,可以提供给其他方法使用。不可以,这是在实现Filter接口,实现的方法的参数签名都是在接口中定义好了的规范,规范里就是ServletRequest。----->请求下传,后面是结果拦截。,不存在线程安全问题;,直接到结果拦截,但是http里压根什么都没拿到,拿不到请求的数据,于是返回浏览器啥也不显示。

2023-07-30 21:32:40 178

原创 EL表达式详解

而字符串型 “30”和int型5是不能比较的,EL表达式根据上下文,会将“30”转换为整型30和来5比较,返回true。通过s1所指向的学生对象的地址,调用getTea()方法,得到老师对象的地址,再通过其调用getTname()方法,最终得到老师的名字。el表达式先从page内置对象里找“name”的属性值,没找到,再到request里找,找到了,返回属性值 “zs”;a的值是字符串,而b的值是整型(在进行运算时,Integer类型会进行自动拆箱,调用valueOf方法),,这就是EL表达式的深度导航。

2023-07-30 21:29:22 1288

原创 Servlet详解

1、Java支持动态网页的技术:直接编写Java,利用CGI的方式与WebServer沟通2、servlet在MVC中相当于控制层的作用。Servlet的作用:- CGI:通用网关接口:是从WEB容器中取得数据(内置对象)的能力- 创建表单bean、收集表单数据- 分析请求,分发请求- 根据业务层返回的转向信息,转到视图组件

2023-07-30 21:24:28 176

原创 JavaBean

1、JavaBean就是MVC设计模式中的model层2、种类:数据bean(pojo),逻辑bean封装表单里的参数,属性名字、个数和类型要和表单的参数的名字、个数和类型一致。封装外部的信息,主要是封装数据库的记录。要求属性名字、个数、类型 和数据库里的字段名字、个数、类型一致。又叫实体类又叫业务层,作用是完成对请求的操作又叫dao或数据访问层。作用是完成对外部数据操作的封装3、Javabean优点。

2023-07-30 21:15:41 957

原创 Redis基础

Redis是什么Redis(Remote Dictionary Server) ,即远程服务字典是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的API。Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。Redis能干什么?内存存储、持久化,内存中是断电即失、所以说持久化很重要(rdb、aof)效率高,可以用于高速缓存发布订阅系统。

2023-07-27 08:41:03 329

原创 深入理解线程池

Executor框架是Java5之后引进的,在Java5之后,通过Executor来启动线程比使用Thread的start方法更好,除了是线程池更易管理、效率更好以外,还可以避免this逃逸问题this逃逸是指,在构造函数返回之前其他线程就持有该对象的引用,调用尚未构造完全的对象的方法可能引发令人疑惑的错误corePoolSize(必需):核心线程数,默认情况下,核心线程数会一直存活,但是当 allowCoreThreadTimeout设置为true时,核心线程也会超时回收。

2023-07-24 19:11:57 74

原创 JavaWeb基础

当表单什么都不提交时,对于单值请求,提交空白,会自动填充空字符串,而对于多值请求,因为要设到数组中,数组中如果什么都没有,就是null(空的),当request获取参数的时候,因为values为空,于是不会创建字符串数组对象,返回的是一个null,在遍历时,要调用inst1的属性length,而inst1是null,就会。像上面的访问web项目,网址直接暴露了项目的所在位置和项目名,通过配置虚拟目录,可以将项目放在电脑本地的任何一个位置,并且为项目名设置一个虚拟的项目名,访问的时候用这个虚拟名字。

2023-07-24 08:53:48 660

原创 深入理解MySQL(常见面试题)

但是联合索引中的叶子节点保存的是不完整的字段—只有联合索引字段和主键,而主键索引的叶子节点保存的是完整的数据,那么联合索引的叶子节点相比主键索引页数会更少,查询当然会更快。这样一定是最快的吗?,拿到查询的语句,把age改为19,然后调用引擎API接口,写入这一行数据,InnoDB引擎把数据保存在内存中,同时记录redo log,此时redo log进入prepare状态,然后告诉执行器,执行完了随时可以提交,执行器收到通知后记录binlog,然后调用引擎接口,提交,redo log为提交状态,更新完成。

2023-07-20 09:00:59 121

原创 深入理解HashMap

HashMap默认的初始化大小是16,之后每次扩充,容量变为原来的2倍,如果创建时给定了容量初值,HashMap会将其扩充为2的幂次方大小。。也就是说 HashMap 总是使用 2 的幂次方作为哈希表的大小。这是为什么呢?为了能让HashMap存取高效,尽量减少碰撞,也就是尽量要把数据分配均匀。Hash值的范围值很大,前后加起来大概40亿长度的数组,内存是放不下的 ,所以不能直接拿来用,。用之前还要先做对数组的长度取模运算,得到的余数才能用来要存放的位置也就是对应的数组下标。

2023-07-20 08:54:55 43

原创 Java8的主要新特性

默认方法在子类也可以被重写。interface 的设计初衷是面向抽象,提高扩展性。这也留有一点遗憾,Interface 修改的时候,实现它的类也必须跟着改。于是1.8之后,interface中修改方法,可以加static或default修饰,这样子类不用一定要实现,并且可以直接调用。

2023-07-17 17:14:19 892

原创 Java网络通信理解

- 实现网络功能要靠URL类,URLConectioon类、Socket类和DatagramSocket类- 网络上的数据传送是将网络连接转换成输入输出流- DataInputStream和DataOutputStream是网络间流的载体

2023-07-16 14:34:05 498

原创 RabbitMQ的使用详解

MQ(message queue),本质是个队列,FIFO先入先出。只不过队列中放的是message,是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ是一种非常常见的上下游解耦的消息通信服务。使用了MQ之后,消息发送上游只需要依赖MQ,不用依赖其他服务。

2023-07-12 22:33:32 2914 1

原创 Java--IO流

流一般分为输入流和输出流两类,但这种划分不是绝对的。例如,一个文件,在读取它的数据时,它就是输入流;而在保存数据到文件时,它就是一个输出流

2023-07-10 20:52:46 163

原创 Java线程学习

程序、进程和线程的区别 - 程序 :一段静态代码,是应用程序执行的蓝本。- 进程 :程序的一次动态执行过程,对应了从代码加载、执行到执行完毕的一个完整过程。- 线程 :是进程内部单一的一个顺序控制流。一个进程在执行过程中,可以产生多个线程,每个线程有自己的生命周期。线程相当于进程中的一个个线索。

2023-07-07 20:53:41 284

原创 JAVA--计算机网络常见面试题

网络分层模型- OSI七层模型应用层表示层会话层传输层网络层数据链路层物理层

2023-07-06 21:45:01 1080

原创 Java反射

反射的优点是什么- 增加程序的灵活性,提高程序的可维护性。- 在程序运行时动态创建对象,动态修改目标对象的属性,和动态调用目标对象的方法,可以在不修改源代码的情况下适应用户不断变化的需求。

2023-07-05 16:22:54 98

原创 File类

- File类在java.io.*包下- 创建文件对象 - File myFile; - myFile = new File(“myfile.txt”); - myFile = new File("Mydocs","myfile.text") 两个参数分别是指定的父路径和文件名- 在Java中,将文件路径也当做文件来处理

2023-07-03 20:19:58 108

原创 Java数组

1、数组是用来存储一组相同 数据类型数据的数据结构。2、数组也是一种引用类型3、数组的元素可以是简单类型的数据(基本数据类型),也可以是引用类型的数据。

2023-07-03 16:09:50 107

原创 Java集合详解

集合,也可以说是容器。由两大接口派生而来,一个是collection,主要用于存储单一元素;另一个是map接口,主要用于存储键值对。

2023-06-21 23:19:15 506

原创 面向对象设计进阶

封装是指把一个对象的属性隐藏在对象内部,不允许外部对象直接访问内部信息。但是可以提供一些被外界访问的方法来操作属性。如果属性不想被外界访问,可以不提供给外界访问的方法。

2023-06-17 17:21:42 237

原创 String类详解

String类是final类型,因此不能被继承;2、String对象代表一组不可改变的Unicode字符序列。任何试图改变String对象的方法都会创建一个新的字符串对象。

2023-06-16 23:25:31 363

原创 Properties操作保存到属性文件

- Properties类实现了从名字到值的映射- Properties是存储键值对的。是hashtable(map接口下的类)接口下的类。key,value都是字符串- getProperty()方法返回一个代表该属性值的字符串- 使用load()或store()方法能从文件读入属性集或将属性集写入文件- Properties在Java.util包内

2023-06-15 21:05:48 1105

原创 MySQL索引以及优化解决方案

“索引是帮助MySQL高效获取数据的数据结构”例如字典里的目录,索引的目的就是为了让你能够快速查找数据2、索引优势- 提高数据检索的效率,降低数据库的IO成本- 通过索引对数据进行排序,降低数据排序的成本,降低了CPU的消耗

2023-06-13 11:13:51 1234

原创 做完瑞吉外卖项目的一点笔记和源码

本项目是专门为餐饮企业(餐厅、饭店)定制的一款软件产品,包括系统管理后台和移动端应用两部分。其中系统管理后台主要提供给餐饮企业内部员工使用,可以对餐厅的菜品、套餐、订单等进行管理维护、移动端应用主要提供给消费者使用,可以在线浏览菜品、添加购物车、下单等

2023-06-06 18:36:14 1713

Bug管理系统需求分析(软件工程专业UML大作业实训报告)

软件工程专业UML大作业实训报告,课程结束报告,实训报告。 Bug管理系统需求分析报告,完整。

2022-12-21

JavaWeb软件开发实训项目打包(包括sql,截图,源代码)

JavaWeb软件开发实训项目打包,用JSP-DAO-JDBC实现。实现登录、注册、登录成功显示个人主页等简单功能。只适用于web开发初阶段,没有使用框架,使用的JSP写前端页面,用DAO+JDBC操作数据库。内含:完整源代码、sql文件、项目截图。

2022-12-19

Python爱心源码(内附完整代码和项目,可运行)

Python爱心源码,用Pycharm运行,效果惊艳。 电视剧里的一样 爱心源码 解压后,点击里面爱心代码.py,即可打开。用Pycharm编译器打开。

2022-12-17

结构系统大作业实训报告

适用于软件工程专业的同学 数据结构专业大作业,实训报告,完整。 数据结构作业 数据结构实训报告完整

2022-12-15

空空如也

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

TA关注的人

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