自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JAVA8-Stream的使用

java8新特性Stream的使用,

2022-11-01 22:19:57 1083 1

原创 测试概念了解

测试软件测试的目的和原则需求用户需求软件需求BUG测试用例开发模型和测试模型软件的生命周期瀑布模型螺旋模型增量、迭代敏捷SCRUMSCRUM的基本流程软件测试V模型软件测试W模型配置管理和软件测试配置管理应用配置管理和软件测试的关系软件测试的目的和原则目的:验证软件有或没有问题。原则:以客户为中心,遵循软件测试的规范、流程、标准和要求。好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。成功的测试是发现了至今为止尚未发现的错误的测试。测试并不仅仅是为了找出错误。通过分析错误产生的原因、

2021-08-16 17:34:27 332

原创 牛客-中等-表达式求值

题目请写一个整数计算器,支持加减乘三种运算和括号。示例1输入:“1+2”复制返回值:3复制示例2输入:“(2*(3-4))5"复制返回值:-10复制示例3输入:"3+23*4-1”复制返回值:26表达式求值分析:我是按照先将字符串中缀表达式转换为后缀表达式之后,按照逆波兰求值的方式解题的:难点在于中缀转后缀,其中,中缀在转后缀的时候要注意的是1.小数的转化,2.大于10的数字的转化要考虑到运算字符的优先级问题,比如当前字符为+或者-,而运算栈的栈顶存

2021-08-13 18:06:08 186

原创 线程的死锁问题

死锁问题死锁问题1.定义:2.死锁代码总结死锁出现的条件3. 解决死锁问题死锁问题1.定义:在多线程编程中,两个或以上的线程因为资源抢占而造成的线程无限等待的问题线程和锁的关系–一对多;一个线程可以拥有多把锁;而一把锁只能被一个线程 拥有线程1已经有了锁A,线程2有了锁B线程1继续去请求锁B,线程2继续去请求锁A;至此都请求不到,陷入等待2.死锁代码public class ThreadDemo20 { public static void main(String[] args)

2021-08-06 15:40:55 243

原创 java线程锁策略

线程不安全问题及锁策略1.线程不安全问题及原因1.1什么叫做线程不安全问题?1.2 导致线程非安全的原因2.线程不安全问题的解决方案2.1 synchronized的使用2.1.2种使用场景2.1.3 synchronized原理解析;2.2 lock手动锁3. 面试常问3.1 synchronized和lock的区别:3.2 volatile和synchronized的区别?1.线程不安全问题及原因1.1什么叫做线程不安全问题?数据的不一致:在多线程的执行中,程序的执行结果与预期不相符代码示例如下

2021-08-04 17:30:20 710

原创 SpringAOP的理解

SpringAOP1.概念2.代理的了解3.SpringAOP中的实现4. 代码实现关于切点表达式说明实现切面和通知方法:测试:5.织入的了解1.概念面向切面编程;AOP(Aspect Oriented Programming)称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等等特点:AOP利用一种称为"横切"的技术,将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为"Aspect",即切面。使用"横切"技术,AOP把软件系统分为两个部分:核心关

2021-07-18 21:57:04 566 1

原创 Mybatis查询

Mybatis的使用--查询1.定义需要的映射1.1首先再UserMapper接口中定义查询接口,1.2mapper.xml中的注意事项:1.3 注意1.3.1 只传递一个参数1.3.2 传递多个参数2.动态传输的问题2.1 例子;2.2 关于sql注入2.2.1 解决sql注入问题:3. 联表查询3.1 一对一:注意3.1.2 实现过程3.2 一对多查询4. 设置动态sql语句4.1 if的使用,首先定义接口再定义sql.xml方法:测试4.2 trim的使用定义接口定义xml测试4.3 where的使用

2021-07-15 15:35:14 2110 3

原创 手把手教你在Spring使用Mybatis

Mybatis的使用1.概念2.Mybatis的优缺点3.创建一个包含mybatis的新项目3.1添加依赖3.2 配置数据库的链接信息:3.3 添加mybatis映射3.4 测试4. 在老项目中添加Mybatis4.1.首先添加Editstarters4.2在pom.xml中右键选中Generate1.概念Mybatis的使用Mybatis是一种典型的半自动的 ORM 框架,所谓的半自动,是因为还需要手动的写 SQL 语句,再由框架根据 SQL 及 传入数据来组装为要执行的 SQL。什么是ORM?

2021-07-09 17:03:24 2300 2

原创 SpringMVC的自定义配置;

Spring常用自定义配置1.自定义后端路径映射:1.1 创建Config文件夹并创建AppConfig类1.2 通过generate快速生成配置方法:1.3 测试其效果:2.自定义Controller拦截器2.1 创建一个拦截器:2.2 测试:SpringBoot中使用SpringMVC非常方便,SpringBoot提供了大部分的MVC默认功能,并且需要自定义某部分功能也非常方便,在配置类中实现 WebMvcConfigurer 接口,根据需要重写方法即可:1.自定义后端路径映射:1.1 创建Con

2021-07-07 10:18:36 484

原创 Spring关于参数的注解

参数注解1.@pathVariable的使用:2.@RequestBody3.@RequestParam的使用1.@pathVariable的使用:设置动态路由:获取URL中的参数:首先设置一个MethodController类package com.example.demo.controller;import lombok.Data;import org.springframework.web.bind.annotation.*;@RestController@RequestMapping

2021-07-05 09:57:59 2085 1

原创 Spring 方法注解的学习:

1.@GetMapping此注解表示只能接收get请求,使用postman给我们的方法发送一个请求:http://localhost:8080/mvc/index4这就表示只能使用get请求访问页面;2.@PostMapping只能接收Post请求3.@ResponseBody的使用返回一个自定义的类型而非视图;浏览器页面:4.@ResponseBody1.返回类型为String,表示响应Content-Type: text/plain,且响应体为控制器方法的字符串返回值

2021-07-05 09:49:03 126

原创 postman的使用

postman的使用:1.注册完成之后进入界面:2.get请求3.post请求1.注册完成之后进入界面:2.get请求参数;在key输入变量名,value输入变量,在这里输入之后就会携带到URL中发送给目标3.post请求post请求的参数在body中我们使用最多的是Raw行的形式:选择json之后,可以以json的形式发送数据,按行传递数据:最后的binary是以二进制的形式传递数据,...

2021-07-03 21:50:44 204

原创 SpringMVC学习

SpringMVC学习1.Springboot的使用2.设置Spring日志的保存3.设置SpringBoot热部署4.SpringMVC实践5.@RequestMapping的使用1.Springboot的使用创建一个SpringBOOT项目1.2.java版本选择自己装的java3.选择依赖2.设置Spring日志的保存在此文件中进行日志的设置首先设置日志的保存路径及最大值:接下来就能看到在项目的根路径下出现了一个logs文件夹:里面保存我们项目产生的日志还有一种日志的

2021-07-02 11:40:30 113 2

原创 java-Springframwork学习

1.为什么要使用spring对于 Java 编程来说,使用 Spring 能完成的更加快速,更容易并更安全。Spring 专注于速度,便捷与开发效率,也正是如此,让Spring成为了全世界最流行的 Java 框架。2.Spring FrameworkSpring专注于为 Java 企业应用提供一站式的开发框架,目的是让 Java 企业开发更加便捷,安全与高效。 Spring Framework 属于其中最基础,最核心的部分,Spring下的其他大部分框架都依赖 Spring Framework 。官

2021-06-29 20:26:20 425 1

原创 java使用fiddler抓HTTP包

Fiddler抓包1.界面介绍2.查看抓取到的包:3.post请求和get请求的区别1.界面介绍2.查看抓取到的包:左侧为抓取到的包,右侧为包中的内容右边上半部分为请求信息,下半部分为相应信息:这里能够看到请求头是一个GET的请求头还有一种post请求头,3.post请求和get请求的区别首先通过前端提交数据的格式改为post接下来用fiddler抓包如下get请求中前端提交的信息保存在url中返回后端而post请求的前端的信息保存在body中因此get方式相较于post并

2021-06-29 11:24:50 496

原创 Tomcat的简单使用

简单使用Tomcat1.Tomcat--Web容器:1.1安装1.2.Tomcat文件夹功能讲解3.启动Tomcat4.发布网页1.Tomcat–Web容器:Tomcat是用来发布前端站点或者后端程序的1.1安装Tomcat 的安装非常简单,下载安装包(版本 8.5.47) ,选择合适的文件夹,进行解压即可Tomcat官网1.2.Tomcat文件夹功能讲解安装解压之后:看看Tomcat文件夹下的各个文件夹的功能;我们能够利用即可,不必追求理解其深层原理bin\ 存放各种

2021-06-28 19:39:58 570 1

原创 java-JQuery的使用

jQuery的使用--实现一个计算器1.jQuery的作用2.使用jQuery:2.1 获取变量和设置变量3.完整Html代码1.jQuery的作用js功能分为两类:1.使用js操作页面元素 2.使用js实现逻辑判断jquery用来实现元素的获取和设置的2.使用jQuery:将jquery放在工程项目中:再编写前端页面时:2.1 获取变量和设置变量设置函数:在中使用jQuery此处的函数myck对应上述的myck如何使用jQuery获取参数和设置参数:var num1 = j

2021-06-28 16:44:22 545

原创 刨析JDBC的使用--java链接mysql

JDBC的使用1.概念:1.1 jdbc工作原理1.2 JDBC优势:2.引入mysql的jar包3.jdbc的使用3.1 首先加载mysql的驱动程序3.2 建立数据库和jvm的链接3.3 执行sql语句1.概念:JDBC,即Java Database Connectivity,java数据库连接。是一种用于执行SQL语句的Java API,它是Java中的数据库连接规范。这个API由 java.sql.,javax.sql. 包中的一些类和接口组成,它为Java开发人员操作数据库提供了一个标准的AP

2021-06-25 17:53:08 97 1

原创 Mysql索引及事务

联合查询、索引及事务1. 索引1.1 概念1.2 作用1.3 使用场景1.4 使用1.5 索引测试2.事务2.1事务的概念和特性2.2 为什么使用事务2.3 事务使用测试事务:1. 索引1.1 概念索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。(具体细节在后续的数据库原理课程讲解)1.2 作用数据库中的表、数据、索引之间的关系,类似于书架上的图书、书籍内容和书籍目录的关系。索引所起的作用类似书籍目

2021-06-25 15:37:24 345 1

原创 Mysql联合查询

联合查询深入理解1.联合查询定义及数据准备2.内连接2.1 例子1:2.2 查询所有学生的总成绩3.外连接4. 自连接5.子查询6.合并查询1.联合查询定义及数据准备实际开发中往往数据来自不同的表,所以需要多表联合查询。多表查询是对多张表的数据取笛卡尔积:关于笛卡尔积通过一个例子理解:如在a表中有a1,a2,a3,在b表中有b1,b2,b3等数据,因此笛卡尔积就为a1b1,a1b2,a1b3a2b1,a2b2,a2b3,a3b1,a3b2,a3b3表a中的所有数据都能跟表b的所有数据有所对

2021-06-24 11:23:57 1473 1

原创 java--for循环执行的顺序

来自小米笔试static boolean foo(charc){ System.out.print(c); return true; } public static void main(String[] args) { int i =0; for(foo('B');foo('A')&&(i<2);foo('C')) { i++; foo('

2021-06-20 21:21:54 1229 4

原创 java-Lamda表达式

lamda表达式:1.定义1.1 lamda表达式的语法1.2 函数时接口1.3 代码演示2.变量捕获;2.1 匿名内部类2.2 Lamda的变量捕获3.lamda表达式在集合中的用法3.1 Collection接口示例3.3 Map接口4.总结1.定义Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。 Lambda

2021-06-20 15:14:24 603 1

原创 java枚举的了解

java枚举枚举:1.定义2.枚举的使用场景3.Enum的常用方法4.面试题枚举:1.定义枚举是在JDK1.5后引入的,主要是用于,将一组常量组织起来,在这之前表示一组常量通常使用定义常量的方式:public static int final a = 1;public static int final b = 2;public static int final c = 3;这样做在遇到了数字1式,可能会误认为是a;现在有了枚举类型之后,可以用枚举类型直接组织管理,这样就有了枚举类型,而不是普

2021-06-19 21:05:00 146

原创 java反射机制-认识和理解

java反射机制反射1.定义2.应用3.反射的基本信息4.反射相关的类4.1 class类--反射的起源4.1.1 Class类中的相关方法4.1.2 通过反射创建对象4.1.3 反射私有属性4.1.4 反射私有方法5.反射的优点和缺点反射1.定义Java的反射(reflection)机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到那么,我们就可以修改部分类型信息;这种动态获取信息以及动态调用对象方法的功能称为java语言

2021-06-18 16:28:02 309

原创 java哈希表

哈希表1.哈希表2.Hash冲突3.避免冲突3.1 哈希函数的设计3.2 负载因子调节3.3 闭散列3.3.1 线性探测3.3.2 二次探测4.自行实现哈希表1.哈希表顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O(log2N),搜索的效率取决于搜索过程中元素的比较次数。理想的搜索方法:可以不经过任何比较,一次直接从表中得到要搜索的元素。 如果构造一种存储结构,通过某种函数(has

2021-06-17 20:42:21 617 1

原创 java访问控制权限

包的访问权限控制范围同一包中的同一类同一包中的不同类不同包中的子类不同包中的非子类defaulokokprivateokprotectedokokokpublicokokokok

2021-06-17 17:01:19 71

原创 java字符大小写转化

1.字符与ASCII码对应关系字符与数字之间的对应关系:a-z:97-122,A-Z:65-901-9:49-572.代码示例2.1 大写转小写字符char采用的是Unicode编码的16位字符类型,其表示范围是0-65536。标准的8位ASCII字符集是Unicode 的子集,其取值范围为0-127。大小写字母之间正好相差32直接显示a+32;会导致jvm只显示数字,并不能直接转换为字符a+=32;会将原本对应的ASCII码转到小写public static void main(St

2021-06-17 11:30:54 585

原创 遍历HashMap的几种方式

1.通过EntrySetpublic static void main(String[] args){ HashMap<String,Integer> map = new HashMap<>(); Map<String,Integer> map1 = new HashMap<>(); Map<String,String> map2 = new HashMap<>(); map2.

2021-06-16 21:40:46 112

原创 二叉搜索树

二叉搜索树二叉搜索树概念结构特性实现二叉搜索树概念二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。二叉搜索树作为一种经典的数据结构,它既有链表的快速插入与删除操作的特点,又有数组快速查找的优势;所以应用十分广泛,例如在文件系统和数据库系统一般会采用这种数据结构进

2021-06-16 19:07:23 101

原创 java对象比较-comparable和comparator

Comparable和compareTo1.元素的比较1.1 基本类型的比较1.2 对象的比较2. 对象的比较2.1 覆写基类的equal2.2 基于Comparable接口的比较2.3 基于比较器Comparator的比较2.4 几种不同的compare对比1.元素的比较1.1 基本类型的比较java中的基本类型的对象是可以进行比较的如public static void main(String[] args){ int a = 10; int b = 20;

2021-06-15 22:04:20 1681 2

原创 关于HTTP、TCP、IP协议的习题

通讯协议习题整理1.IP地址块为211.168.15.192/26、211.168.15.160/27和211.168.15.128/27三个地址块经聚合后可用地址数为()?2.交换机攻击的常见方式:3.将一个C类网络划分为20个子网,最适合的子网掩码是多少?4. 局域网的网络地址192.168.1.0/24,局域网络连接其它网络的网关地址是192.168.1.1。主机192.168.1.20访问172.16.1.0/24网络时,其路由设置正确的是 。B5.能够PING通同网段的节点, 但却PING不通其他

2021-06-15 09:14:26 1396 1

转载 java-JVM-虚拟机全面解读

JVM初识1.JVM简介1.1虚拟机是什么?1.2常用的虚拟机都有哪些呢?2.JAVA内存区域2.1运行时的数据区域2.1.1 java堆2.1.2 方法区2.1.2.1 运行时常量池--方法区的一部分2.1.3 程序计数器2.1.4 JVM栈--java虚拟机栈2.1.4.2 局部变量表2.1.5 本地方法栈2.2java的内存溢出问题2.2.1 java堆溢出2.2.2虚拟栈和本地方法栈溢出内存布局总结3.垃圾回收器和内存分配策略3.1如何判断对象已死3.1.1引用计数法3.1.2 可达性分析算法3.2

2021-06-10 16:48:10 1046 1

原创 深入理解TCP协议

定义看看百度百科的解释:传输控制协议(TCP,Transmission ControlProtocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 [1] 定义。TCP旨在适应支持多网络应用的分层协议层次结构。连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。可以看

2021-06-07 10:43:07 914 1

原创 JAVA-堆相关

二叉树:1.概念树是非线性的数据结构,有n个有限节点组成一个具有层次关系的集合,看起来像一个倒挂的树根节点无前驱节点,其余节点被分成M个互不相交的集合T1,T2…Tm,每个集合又是一棵与树类似的子树,每棵子树的根节点只有一个前驱节点,可以有0个或多个后继节点。树是递归定义的节点的度:一个节点含有的子树的个数称为该节点的度—>树的度为最大节点的度,叶子节点也称为终端节点,度为0的节点,深度:该节点到根高度:该节点到叶子节点二叉树一颗二叉树是节点的一个有限集合,该集合或为空或有一个根

2021-06-02 21:16:43 75 3

原创 JAVA-二叉树习题

二叉树相关习题概念树1.概念树是非线性的数据结构,有n个有限节点组成一个具有层次关系的集合,看起来像一个倒挂的树根节点无前驱节点,其余节点被分成M个互不相交的集合T1,T2…Tm,每个集合又是一棵与树类似的子树,每棵子树的根节点只有一个前驱节点,可以有0个或多个后继节点。树是递归定义的节点的度:一个节点含有的子树的个数称为该节点的度—>树的度为最大节点的度,叶子节点也称为终端节点,度为0的节点,深度:该节点到根高度:该节点到叶子节点二叉树一颗二叉树是节点的一个有限集合,该集合

2021-06-02 20:59:27 1537 6

原创 JAVA-基础-单例模式

单例模式单例模式定义:单例模式出现的原因:单例模式的2种写法:饿汉单例懒汉模式1.非安全的懒汉模式2.安全的懒汉模式:单例模式定义:单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在整个程序的运行过程中只存在一个实例化的对象。单例模式出现的原因:所有可以使用单例模式的类都有一个共性,那就是这个类没有自己的状态,换句话说,这些类无论你实例化多少个,其实都是一样的,而且更重要的一点是,这个类如果有两个或者两个以上的实例的话,程序竟然会产生程序错误或者与现实相违背的逻辑错误。

2021-06-01 10:47:02 215 2

原创 JAVA-Web-ThreadLocal

ThreadLocal的使用线程不安全的解决方案:使用场景1:需求:1000个任务的时间格式化线程不安全的解决方案:1.CPU抢占执行2.加锁synchronized\lock3.私有变量-------ThreadLocal线程级别的私有变量,和任务中的私有变量完全不同使用场景1:解决线程安全问题;需求:1000个任务的时间格式化方案A:加锁,可以解决线程不安全的问题,但需要排队执行,方案B:ThreadLocal创建线程级别的变量–10个SimpleDateFormat对象;1.通过线

2021-05-31 11:14:43 490

原创 JAVA-线程-CAS

线程高阶线程扩展常用专业术语:CAS(乐观锁的实现),ABA,JUC乐观锁:CAS问题**ABA解决方法**悲观锁**共享锁-非共享锁**:**读写锁****公平锁**:**自旋锁**:**可重入锁**:问题1:线程扩展常用专业术语:CAS(乐观锁的实现),ABA,JUC乐观锁:认为一般情况下不会发生并发冲突,只有在进行数据更新的时候,才会检测并发冲突,若无冲突则直接修改,有冲突返回失败CAS-Compare and swap,比较并交换,操作:假设内存中原数据为v,旧的预期值A,需要修改的新值

2021-05-28 11:15:49 205 1

原创 JAVA-Web-基础-线程池

线程池引入:线程的缺点:1.线程的创建需要开辟内存资源,*1.本地方法栈,*2.虚拟机栈*3.程序计数器等线程私有变量的内存频繁的创建和消耗会出现一定的性能开销2.使用线程不能很好的管理任务和友好的拒绝任务3,强制:线程资源必须通过线程池提供,不允许在应用中自行显示的创建线程,线程池可以减少在创建和销毁线程上锁消耗的时间以及系统资源的开销,解决资源不足的问题,如果不使用线程池,有可能造成系统创建大量同类线程而导致消耗完内存或“过度切换”的问题;线程池定义:指的是池化技术来管理和使

2021-05-24 10:28:15 583 1

原创 JAVA-基础-线程不安全问题

111

2021-05-09 17:02:32 494

空空如也

空空如也

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

TA关注的人

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