自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MyBatis框架概述

1.MyBatis框架:MyBatis解决的主要问题减轻使用JDBC的复杂性,不用编写重复的创建Connection,Statement;不用编写关闭资源代码。直接使用Java对象,表示结果数据。让开发者专注SQL的处理。其他分心的工作由MyBatis代劳。MyBatis可以完成:(1)注册数据库的驱动,例如Class.forName("com.mysql.jdbc.Driver")(2)创建JDBC中必须使用的Connection,Statement,ResultSet对象;(3)

2022-10-12 19:55:52 582

原创 http与https的区别

1.http协议的缺点(1)通信使用明文,内容可能被窃听(重要密码泄露)(2)不验证通信方身份,有可能遭遇伪装(跨站点请求伪造)(3)无法证明报文的完整性,有可能已遭篡改(运营商劫持)2.httpshttps是在http协议基础上加入加密处理和认证机制以及完整性保护,即http+加密+认证+完整性保护=https,https不是应用层的一种新协议,只是http通信接口部分用SSL/TLS代替而已。通常http直接和TCP通信,当使用SSL时则演变成先和SSL通信,再由SSL和TCP通信。

2022-10-12 11:12:34 344

原创 Jmeter初始学习

初学Jmeter

2022-09-30 15:44:15 514 1

原创 内存溢出与内存泄漏

一.内存溢出和内存泄漏的区别1.内存溢出: 系统已经不能再分配出你所需要的空间,比如你需要100M的空间,系统只剩90M了,这就叫内存溢出2. 内存泄漏:强引用所指向的对象不会被回收,可能导致内存泄漏,虚拟机宁愿抛出OOM也不会去回收他指向的对象意思就是你用资源的时候为他开辟了一段空间,当你用完时忘记释放资源了,这时内存还被占用着,一次没关系,但是内存泄漏次数多了就会导致内存溢出例子:你想系统申请分配内存进行使用,可是使用完了以后却不归还,结果你申请到的那块内存你自己也不能再访问(也...

2021-02-05 18:41:13 217 1

原创 判断字符是否唯一

题目描述:实现一个算法,确定一个字符串 s 的所有字符是否全都不同。示例 1:输入: s = "leetcode"输出: false示例 2:输入: s = "abc"输出: true方法一:暴力搜索法:时间复杂度O(n2)class Solution { public boolean isUnique(String astr) { i...

2020-03-09 18:03:02 259 1

原创 两数之和

题目描述:给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。/*方法一:暴力搜索法:时间复杂度O(n2)class Solution { public int[] twoSum(int[] nums, int target) { if(nums == null || nums.leng...

2020-03-09 17:09:41 163

原创 最大连续子数组求和

题目描述:HZ偶尔会拿些专业问题来忽悠拿些非计算机专业 的同学。今天测试组开完会后,他又发话了:* 在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候问题很* 好解决。但是,如果向量中包含负数,是否应该包含某个负数,并且期望旁边的整数会弥补它呢?* 例如:{6,-3,2,7,-15,1,2,2},子向量的最大和为8(从第0个开始,到第三个为止)* 给一个数组...

2020-02-20 14:47:27 256

原创 进程管理之struct_task结构体的简述

什么是进程?概念:进程是程序的一个执行实例;在操作系统中运行的程序;是操作系统资源管理的最小单位。 内核的角度: 进程担当分配资源(cpu时间、内存)的实体。 注意:进程是一个动态的实体,是程序的一次执行过程 进程和程序的区别:进程是动态的,程序是静态的,进程试运行中的程序,而程序是保存在硬盘上的可执行代码,删掉可执行程序并不影响原有的进程。...

2020-02-18 17:06:48 777

原创 Java中类的加载机制

Java中类加载机制1.类的生命周期加载—>验证à准备à解析—>初始化à使用à卸载其中解析过程在某些情况下可以在初始化阶段之后再开始,这是为了支持Java的动态绑定。2.类初始化时机虚拟机规范中并没有强制约束何时进行加载,但是规范严格规定了有且只有下列五种情况必须对类进行初始化(加载、验证、准备都会随着发生):遇到new、getstatic、putstatic ...

2020-02-18 17:04:53 221

原创 Java中内存泄漏和内存溢出

内存泄漏:一个不再被程序使用的对象或变量还在内存中占有存储空间【一次内存泄漏似乎不会有大的影响,但内存泄漏堆积的后果就是内存溢出】内存溢出:指程序申请内存时,没有足够的内存供申请者使用,或者说,给了你一块存储int类型数据的存储空间,但是你却存储long类型的数据,那么结果就是内存不够用,此时就会报错OOM,即所谓的内存溢出。二者的关系:内存泄漏的堆积最终会导致内存溢出; 内存溢...

2020-02-18 16:59:31 245

原创 ARP协议

ARP(地址解析协议) 地址解析协议,即ARP,是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时,将目标IP地址的ARP请求广播到局域网上的所有主机,并接受返回消息,以此确定目标的物理地址;收到返回消息后,将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络...

2020-02-18 16:55:29 296

原创 索引的基础

1.索引的定义:索引是存储引擎用于快速找到记录的一种数据结构。索引可以包含一个或多个列的值。如果索引包含多个列,那么列 的顺序也十分重要,因为MySQL只能高效地使用索引的最左前缀列2.索引的类型B-Tree索引【实际上很多的存储引擎使用的是B+Tree,B+树是自平衡的多叉搜索树,即每一个叶子节点都包含只想下一个叶子结点的指针,从而方便叶子结点的范围遍历】innoDB默认的使...

2020-02-18 16:53:50 167

原创 初识Spring

目录1.Spring的简介2.Spring框架的组成图3.模块详解3.1Web模块3.2数据处理模块(Data Access)3.3AOP模块3.4Aspects 模块3.5Instrumentation模块3.6Messaging模块3.7Core Container模块3.8Test模块4.Spring的优点5.Spring核心思想...

2020-01-18 21:51:02 365

原创 InnoDB 和 MyISAM存储引擎的介绍以及区别

1.InnoDB存储引擎的介绍InnoDB是MySQL默认的存储引擎(5.1之后),也是最重要和使用最广泛的存储引擎,被用来处理大量的短期事务。2.InnoDB的特点(1)InnoDB的数据存储在表空间中,表空间由一系列的数据文件组成,InnoDB将每个表的数据和索引是绑在一块的;(2)InnoDB可以支持高并发,并实现了四个标准的隔离级别,InnoDB默认的隔离级别是可重复读;...

2020-01-12 18:53:51 273

原创 Java设计模式

此文全篇围绕“是什么”和“为什么”在列举设计模式之前,我们首先要明白两个问题:(1)什么是设计模式?(2)为什么要用设计模式?以下内容为详解?1.什么是设计模式?设计模式值软件开发人员在软件开发过程中面临的一般问题的解决方案,这些解决方案是众多软件开发人员经过相当长的的一端时间的实验和错误总结出来的。2.为什么要用设计模式?设计模式是一套被反复使用的、多数人知晓的、...

2020-01-11 22:24:13 163

原创 进程间的通信方式————管道

在了解本节之前我们需要了解什么是进程间的通信以及常见的进程间通信的方式。目录 1.定义:进程间的通信——进程之间的交流 2.进程间为什么要进行沟通交流?3.常见的进程间的通信方式4.进程间通信的目的5.管道5.1管道的定义 5.2管道的分类1.定义:进程间的通信——进程之间的交流2.进程间为什么要进行沟通交流?...

2020-01-11 22:21:36 322

原创 进程间的通信————消息队列&共享内存

目录1.消息队列的定义:2.消息队列如何传输数据?3.**共享内存(最快的IPC,进程间最快的通信方式)4.代码示例:1.消息队列的定义: 消息队列是内核为我们创建的一个队列,通过这个队列的标识符key,每一个进程都可以打开这个队列,每个进程都可以通过向这个队列中插入一个结点(需要我们自己定义)或者获取一个结点来完成不同间的通信。这个队列的节点有一个...

2020-01-11 22:21:07 287

原创 进程间的通信----信号量

目录1.信号量的作用2.信号量的本质3.信号量如何实现同步与互斥4.信号量的操作步骤1.信号量的作用信号量也是进程间的通信方式之一,更多的应用于实现进程间的同步与互斥。(进程/线程安全概念),保证进程间对临界资源的安全有序访问,同步保证的是有序,互斥保证的是安全。同步:保证对临界资源访问的时序可控性互斥:对临界资源同一时间的唯一访问性多个进程同时操作一个临...

2020-01-11 22:20:47 607

原创 初识反射

目录1.认识反射机制:2.三种实例化对象3.反射与类操作:4.ClassLoader类加载器1.认识反射机制: 反射: 反射指的是对象的反向处理操作,所谓的额“反“指的是根据对象来取得对象的来源信息,而这个”反”的操作核心的处理就在于Object类的一个方法:取得Class对象: Public fianl native C...

2020-01-11 22:20:32 118

原创 MySQL的服务器的逻辑架构

目录1.MySQL服务器的逻辑架构图及分层介绍1.1 连接管理与安全性1.1.1 连接管理1.1.2 安全性1.2 优化与执行2.并发控制2.1 读写锁2.2 锁的粒度2.2.1 表锁2.2.2 行级锁1.MySQL服务器的逻辑架构图及分层介绍1.1 连接管理与安全性1.1.1 连接管理每个客户端连接都会在服务器进程中拥有一个线程,...

2020-01-11 22:16:19 338

原创 我的搜索神器项目文档

目录1.项目名称:2.项目简介:3.项目背景:4.项目功能:(1)检索文件信息(2)索引文件信息5.使用的技术6.实现7.具体实现思路:8.测试用例:1.项目名称:我的搜索神器2.项目简介:仿照Windows桌面版的everything工具,用Java语言实现一个开发的命令行文件搜索工具.3.项目背景:想起自己刚开始买到笔记本电...

2019-09-15 21:56:05 239

原创 e起聊plus版

目录1.项目简介:2.项目背景:3.项目描述:4.项目功能:5.使用的技术:6.设计思路:6.1首先配置pom文件6.2创建数据库chatroomplus,获取数据库的连接6.3创建Commutils类:6.4Entity层:6.5客户端的实现:6.5.1Dao层:6.5.2Service层:6.5.3Vo层:1.项目简介:...

2019-09-07 17:15:51 406

原创 【Java实现】合并两个有序链表,合并后依然有序

package com.basic.datastructure;//合并两个有序链表,合并后依然有序public class MergeList { /**1.非递归 * (1)同时遍历两个链表的各自节点 * (2)进行值的比较,哪个值比较小,选哪个节点放入新链表中 * (3)添加至新链表的方式是尾插 * (4)当一个链表中的结点被全部取走...

2019-08-25 22:22:00 876 2

原创 翻转链表

定义一个结点类:class Node { int val; Node next; public Node(int val) { this.val = val; }}图解:【这里以头删+头插为例】翻转链表:package com.basic.datastructure;//翻转链表public class...

2019-08-25 22:21:48 150

原创 Java内存模型以及垃圾回收算法

目录1.内存区域划分【物理】2.垃圾回收3.Java中volatile的作用1.内存区域划分【物理】线程私有区:1)程序计数器:可看作是当前线程所执行字节码的行号指示器2)虚拟机栈【-Xss:设置栈的深度】----虚拟机栈描述的是Java方法执行的内存模型,每个方法执行的同时都会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至...

2019-08-19 18:18:33 392

原创 测试

目录1.集成测试和系统测试的区别,以及它们的应用场景2.白盒测试和黑盒测试的方法:3.自动化测试和手工测试的优缺点:1.集成测试和系统测试的区别,以及它们的应用场景区别:(1)计划和编写测试用例的先后顺序:从V模型来讲,在需求阶段就要指定系统的测试计划和用例,HLD的时候做几层测试的计划和用例,先做系统测试计划用例,再做集成测试用例(2)用例的粒度:系统测试用...

2019-08-14 23:59:24 304

原创 Synchronized的底层实现

1.关于monitorenter和monitorexit的作用: 我们可以抽象的理解为每个做对象拥有一个计数器和一个指向持有该锁的线程指针。 当执行monitorenter时,如果目标锁对象的计数器为0,那么说明它没有被其他线程所持有。在这个情况下,Java虚拟机会将该锁的持有线程设置为当前线程,并且将其计数器加1. 在目标锁对象计数器不为0的...

2019-08-13 23:20:55 127

原创 Java中的Lock体系

Lock简介 锁是控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源。在Lock接口出现之前,Java程序主要是靠synchronized关键字实现锁功能的,而JDK5之后,并发包中增加了lock接口,它提供了与synchronized一样的锁功能。虽然它失去了向synchronized关键字隐式加锁解锁的便捷性,但是却拥有了锁获取和释放的可操作性,可中...

2019-08-13 23:17:39 229

原创 替换字符串里的空格

题目描述:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如, 当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happypublic class ReplaceSpace { public static void main(String[] args) { StringBuffer str=new StringBuf...

2019-08-03 11:35:46 262

原创 数据库的存储过程

1.存储过程简介: SQL语句需要先编译然后执行,而存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。 存储过程是可编程的函数,在数据库中创建并保存,可以有SQL语句和控制结构组成。当想要在不同的应用程序活平台上执行相同的函数,或者封装特定功能时,存储过程是非常游泳的...

2019-07-16 01:54:40 391

原创 MySQL中的乐观锁和悲观锁

目录·1.什么是悲观锁,乐观锁?·2.实现方式·3.使用场景·4.特点·1.什么是悲观锁,乐观锁?悲观锁大多数情况下值依靠数据库的机制实现,以保证操作最大程度的独占性。但随之而来的就是数据库的性能的大量开销,特别是对长事务而言,这样的开销往往无法承受。悲观锁对数据持有一种悲观的态度,因此在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据提供的锁...

2019-06-29 16:47:59 203

原创 直接插入排序算法【Java语言实现】

直接插入排序算法:【这里默认的是非降序排列】(1)先在有序的部分【图中黄色的部分】查找合适的位置(从后往前遍历查找);(2)将待插入的数插入到合适的下标处 把待排序列中的第一个数【下标为i】当做是要插入的数与已排序列的数,从后往前进行比较【第一个进行比较的数下标为j=i-1】 具体步骤: i)定义一个变量key=array[i]--...

2019-06-02 20:35:34 666

原创 将一个字符串中的所有逗号用空格替换掉。【Java 实现】

设计思路:(1)新开辟一个字符数组,用来存储替换后的字符串的字符;(2)遍历输入的字符串,判断每个字符是否为逗号,是就替换掉;(3)遍历字符数组,以字符串的形式输出程序代码:import java.util.Scanner;public class TransformComma { public static void main(String[] args) { ...

2019-06-01 10:42:18 5723

原创 输入一个K位数,求各位数字出现的次数。【Java语言实现】

题目描述:输入一个K为数字,K<=1000,递增输出各位数字出现的次数。例如:输入:1000231 输出:0:3<br/>1:2<br/>2:1<br/><3:1>设计思路:(1)将输入的数字转换为字符串;(2)利用HashMap将每个字符(key)以及出现的次数(value)存储起来;(3)遍历Ha...

2019-06-01 10:32:13 503

原创 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符【Java实现】

题目描述:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符输入描述:“They are students”“aeiou”输出描述:Thy r stdnts程序代码:package com.yt.dayPractice;import java.util.ArrayList;import java.util.Scanner;public cla...

2019-05-25 20:32:46 6580

原创 HTTP请求的整个过程

这是这两天面试的时候的一道面试题,当时答得不好,现在总结了一下。一次完整的 http 请求包括一下几个步骤【这仅是个人的理解】DNS解析--->TCP 连接--->浏览器发送http请求--->服务器响应请求--->浏览器解析html文件--->浏览器布局渲染1.DNS域名解析。 (1) 首先会在浏览器DNS缓存中搜索是否有对应的IP映射(并且...

2019-05-25 20:20:03 339

原创 Java 内存区域和内存溢出

Java内存区域和内存溢出逻辑图:

2019-05-22 16:06:34 146

原创 Java中线程同步问题

1.同步的定义: 在引出线程同步问题之前首先要了解什么是同步? 所谓的同步指的是所有的线程对于同一个资源的访问上的时序性。2.Synchronized关键字 在java中使用synchronized关键字来实现线程同步的问题【即加锁操作】3.synchronized关键字实现线程同步问题的方式: (1)同步代码块: ...

2019-05-06 21:34:11 488

原创 HTTP协议与HTTPS协议的介绍与区别

目录1. HTTP协议的介绍:2. HTTP工作原理:3.HTTP三点注意事项:4.HTTP请求和响应的格式:5.HTTPS协议的简单介绍:6.HTTPS的作用:7.HTTS方式与Web服务器通信的步骤:8.HTTP与HTTPS的区别:9.HTTPS的缺点:1. HTTP协议的介绍: H TTP 协议是Hyper Text Transfer ...

2019-04-30 21:40:39 2627 1

原创 Java中的异常机制

1.异常的定义: 异常(又称为例外)是程序中的一些错误,但并不是所有的错误都是异常,并且错误有的时候是可以避免的。比如说,在编写代码的时候少了一个分号,那么运行出来结果提示是:java.lang.Error;或者在程序里出现(10/0)这种运算,因为在做除法的时候分母为0,则会抛出java.lang.ArithmrticException的异常。2.异常的类型: (...

2019-04-29 17:11:57 261

空空如也

空空如也

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

TA关注的人

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