自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 shopee 测试

单元测试测试的基本理论(黑白盒)测试一个买车票的题目测试一个纸杯测试百度搜索框A向B发送一个http请求有哪些测试用例?怎样测试界面的增删改查设计场景测试用例:如微信支付二维码的测试测试用例:客户端的性能测试 测试一个登录和重置页面问了客户输入生日然后在生日的前一天提醒,怎么从产品前端后端测试开发的角度双十一的时候如何测试服务器的性能 测试用例:卖家设置优惠券页面设计测试用例:线上排号系统测试中提bug的流程为什么想做测试职业规划第一阶段—“先入行”:先学python+接口.

2021-12-29 10:41:57 649

原创 java基础细节

String str="aaa"与 String str=new String(“aaa”)一样吗? new String(“aaa”); 创建了几个字符串对象?使用String a = “aaa” ,程序运行时会在常量池中查找”aaa”字符串,若没有,会将”aaa”字符串放进常量池,再将其地址赋给a;若有,将找到的”aaa”字符串的地址赋给a。使用String b = new String("aaa"),程序会在堆内存中开辟一片新空间存放新对象,同时会将”aaa”字符串放入常量池,相当于创建

2021-12-27 14:41:25 286

原创 html5

来源:遇见狂神说https://www.bilibili.com/video/BV1x4411V75Chtml的基础知识基本的使用规范如下:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"><!-- <meta name="Keywords" >--> <title>基本标签学习</title></

2021-10-29 12:02:14 258

转载 ioc容器

转载自:https://blog.csdn.net/qq_33369905/article/details/106647330IoC基础控制反转控制 : 谁来控制对象的创建 , 传统应用程序的对象是由程序本身控制创建的 , 使用Spring后 , 对象是由Spring来创建的反转 : 程序本身不创建对象 , 而变成被动的接收对象 .依赖注入(Dependency Injection,DI)依赖 : 指Bean对象的创建依赖于容器 . Bean对象的依赖资源 .注入 : 指Bean对象所依赖的

2021-10-26 21:08:15 104

原创 面试提问的面经

见:https://zhuanlan.zhihu.com/p/68255395#转发和重定向转发过程:客户浏览器发送http请求----》web服务器接受此请求–》调用内部的一个方法在容器内部完成请求处理和转发动作----》将目标资源发送给客户;在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request。在客户浏览器路径栏显示的仍然是其第一次访问的路径,也就是说客户是感觉不到服务器做了转发的。转发行为是浏览器只做了一次访问请求。重定向

2021-10-26 21:02:00 130

转载 jvm合集

原文链接:https://blog.csdn.net/qq_38163244/article/details/109551205Jvm概述1,什么是JVM?JVM 是 java虚拟机,是用来执行java字节码(二进制的形式)的虚拟计算机。jvm是运行在操作系统之上的,与硬件没有任何关系。2,JVM跨平台及原理跨平台:由Java编写的程序可以在不同的操作系统上运行:一次编写,多处运行。原理:编译之后的字节码文件和平台无关,需要在不同的操作系统上安装一个对应版本的虚拟机(JVM)3,JVM的分

2021-10-01 22:45:43 166

转载 MyBatis

持久化持久化是将程序数据在持久状态和瞬时状态间转换的机制。即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、XML数据文件中等等。JDBC就是一种持久化机制。文件IO也是一种持久化机制。在生活中 : 将鲜肉冷藏,吃的时候再解冻的方法也是。将水果做成罐头的方法也是。为什么需要持久化服务呢?那是由于内存本身的缺陷引起的内存断电后数据会丢失,但有一些对象是无论如何都不能丢失的,比如银行账号等,遗憾的是,人们还无法保证

2021-10-01 17:38:15 135

原创 java技术面(兴海物联)

JVMGC内存泄漏(具体场景)进程与线程区别进程的通信为什么共享内存更快?反射和new创建对象那个更快?原因多线程或者反射的了解?死锁的避免?web项目的设计模式?mybatis包括哪些?web项目中交流对话怎么实现的?web项目中登陆的密码是否加密?web项目设计规划怎么思考的?web项目遇到的难题?...

2021-10-01 17:35:21 174

原创 IOC和AOP

原文:https://blog.csdn.net/qq_33369905/article/details/106647330Spring优点1、Spring是一个开源免费的框架 , 容器 .2、Spring是一个轻量级的框架 , 非侵入式的 .3、控制反转 IoC , 面向切面 Aop4、对事物的支持 , 对框架的支持…一句话概括:Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)。IoC基础新建一个空白的maven项目分析实现我们先用我们原来的方式写

2021-10-01 17:21:25 191

原创 SSM学习

关于servlet编程:通过HttpServlet实现Servlet程序在一般项目开发中一般很少使用Servlet接口来实现Servlet程序,一般都是使用继承HttpServlet类的方式去实现Serlvet程序2.根据需要重写doGet和doPost方法springMVC以上的实线部分不需要自己做虚线部分是自己实现的springmvc运行原理看这个https://www.bilibili.com/video/BV1aE41167Tu?p=5使用注解开发时:这个替代了原来的映射器

2021-09-30 21:10:55 162

原创 网易(杭州研究所)初面

覆盖索引如何实现索引覆盖?常见的方法是:将被查询的字段,建立到联合索引里去。InnoDB聚集索引的叶子节点存储行记录,因此, InnoDB必须要有,且只有一个聚集索引InnoDB普通索引的叶子节点存储主键值。举个栗子,不妨设有表:t(id PK, name KEY, sex, flag);画外音:id是聚集索引,name是普通索引。表中有四条记录:1, shenjian, m, A3, zhangsan, m, A5, lisi, m, A9, wangwu, f, B两个B+树

2021-09-28 22:11:10 249

原创 琐碎知识点

对于mysql 的 like 而言,一般都要用 like concat() 组合可以防止sql注入 <if test="chat.id != null"> and id like CONCAT('%',#{chat.id},'%') </if>为什么要在sql语句后边加上where 1=1String sql = "select a,b from table_a where 1=1 "; if(!b.equals("")) sql += "and

2021-09-25 00:40:42 114

转载 Spring MVC

MVC 设计模式一般指 MVC 框架,M(Model)指数据模型层,V(View)指视图层,C(Controller)指控制层。使用 MVC的目的是将 M 和 V 的实现代码分离,使同一个程序可以有不同的表现形式。其中,View 的定义比较清晰,就是用户界面。在请求的过程中,用户的信息被封装在 User 实体类中,该实体类在 Web 项目中属于数据模型层(Model)。在请求显示阶段,跳转的结果网页就属于视图层(View)。像这样,控制层负责前台与后台的交互,数据模型层封装用户的输入/输出数据,视图层

2021-09-21 15:12:41 662

转载 java设计模式之装饰者模式和适配者模式

转载:https://blog.csdn.net/uniquewonderq/article/details/79873251适配器模式对适配器模式的功能很好理解,就是把一个类的接口变换成客户端所能接受的另一种接口,从而使两个接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式的结构:target(目标接口):所要转换的所期待的接口Adaptee(源角色):需要适配的类Adapter(适配器):将源角色适配成目标接口,一般持有源接口的引用(或者继承源接口),且实现目标接口。Java I

2021-09-18 21:57:40 187

转载 java容器和Mysql索引

顶层接口Collection 是一个顶层接口,它主要用来定义集合的约定List 接口也是一个顶层接口,它继承了 Collection 接口 ,同时也是 ArrayList、LinkedList 等集合元素的父类Set 接口位于与 List 接口同级的层次上,它同时也继承了 Collection 接口。Set 接口提供了额外的规定。它对add、equals、hashCode 方法提供了额外的标准。Queue 是和 List、Set 接口并列的 Collection 的三大接口之一。Queue 的设计用

2021-09-17 21:02:31 101

转载 java反射

代码运行之前,我们不确定将来会使用哪一种数据结构,只有在程序运行时才决定使用哪一个数据类,而反射可以在程序运行过程中动态获取类信息和调用类方法。通过反射构造类实例,代码会演变成下面这样。public Map<Integer, Integer> getMap(String param) { Map<Integer, Integer> map = null; if (param.equals("HashMap")) { map = new HashMap

2021-09-15 23:38:05 67

转载 缓存的事情儿

一、缓存特征命中率当某个请求能够通过访问缓存而得到响应时,称为缓存命中。缓存命中率越高,缓存的利用率也就越高。最大空间缓存通常位于内存中,内存的空间通常比磁盘空间小的多,因此缓存的最大空间不可能非常大。当缓存存放的数据量超过最大空间时,就需要淘汰部分数据来存放新到达的数据。淘汰策略FIFO(First In First Out):先进先出策略,在实时性的场景下,需要经常访问最新的数据,那么就可以使用 FIFO,使得最先进入的数据(最晚的数据)被淘汰。LRU(Least Rec

2021-09-15 10:14:12 60

转载 IO输入输出

一、概览Java 的 I/O 大概可以分成以下几类:磁盘操作:File字节操作:InputStream 和 OutputStream字符操作:Reader 和 Writer对象操作:Serializable网络操作:Socket新的输入/输出:NIO二、磁盘操作File 类可以用于表示文件和目录的信息,但是它不表示文件的内容。递归地列出一个目录下所有文件:public static void listAllFiles(File dir) { if (dir == null ||

2021-09-15 09:24:03 182

转载 数据库MYSQL语法

总结创建表 CREATE TABLE( PRIMARY KEY 主键) 修改表 ALTER (ADD ,DROP )插入 INSERT 更新 UPDATE删除 DELETE排序 ORDER BY过滤 WHERE GROUP BY 自动按分组字段进行排序,ORDER BY 也可以按汇总字段来进行排序。分组 GROUP BY组合查询 UNION(使用 UNION 来组合两个查询,如果第一个查询返回 M 行,第二个查询返回 N 行,那么组合查询的结果一般为 M+N 行。)SELECT

2021-09-14 10:19:29 107

转载 Java Virtual Machine

运行时数据区域每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。从方法调用直至执行完成的过程,对应着一个栈帧在 Java 虚拟机栈中入栈和出栈的过程。该区域可能抛出以下异常:当线程请求的栈深度超过最大值,会抛出 StackOverflowError 异常;栈进行动态扩展时如果无法申请到足够内存,会抛出 OutOfMemoryError 异常。堆所有对象都在这里分配内存,是垃圾收集的主要区域(“GC 堆”)。现代的垃圾收集器基本都是采用分代收集算法,

2021-09-13 21:24:12 507

转载 java基础知识——高频

String,Stringbuffer,StringBuilder的区别String:String类是一个不可变的类,一旦创建就不可以修改。String是final类,不能被继承String实现了equals()方法和hashCode()方法StringBuffer:继承自AbstractStringBuilder,是可变类。StringBuffer是线程安全的可以通过append方法动态构造数据。StringBuilder:继承自AbstractStringBuilder,是可变类。

2021-09-10 23:59:49 154

原创 java基础知识03

数组: 数组的理解:数组(Array),是多个相同类型数据一定顺序排列的集合,并使用一个名字命名, 并通过编号的方式对这些数据进行统一管理。数组的特点:1数组是序排列的2数组属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型3创建数组对象会在内存中开辟一整块连续的空间4数组的长度一旦确定,就不能修改。数组的分类:① 照维数:一维数组、二维数组、。。。② 照数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组数据结构:1.数据与数据之间的

2021-09-10 15:09:24 56

转载 java基础知识01

Java 语言有哪些特点?简单易学;面向对象(封装,继承,多态);平台无关性( Java 虚拟机实现平台无关性);支持多线程;可靠性;安全性;支持网络编程并且很方便( Java 语言诞生本身就是为简化网络编程设计的,因此 Java 语言不仅支持网络编程而且很方便);编译与解释并存;JVM vs JDK vs JREJava 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相

2021-09-09 23:38:01 562

原创 Java基础知识02

java 泛型泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛

2021-09-09 12:00:08 181

原创 Java基础—— Java 垃圾回收

垃圾回收(Garbage Collection,GC):垃圾回收(Garbage Collection,GC),顾名思义就是释放垃圾占用的空间,防止内存泄露。有效的使用可以使用的内存,对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收。JVM之判断对象是否存活(引用计数算法、可达性分析算法,最终判定)引用计数算法:引用计数算法(Reachability Counting)是通过在对象头中分配一个空间来保存该对象被引用的次数(Reference Count)。如果该对象被其它对象引用,则它的

2021-09-09 11:09:57 99

原创 软件开发相关面经8——操作系统篇

进程与线程的区别和联系(重点) 1.进程是对运行时程序的封装,是**系统进行资源分配和调度的基本单元,而线程是进程的子任务,是CPU分配和调度的基本单元。**2. 一个进程可以有多个线程,但是一个线程只能属于一个进程。3. 进程的创建需要系统分配内存和CPU,文件句柄等资源,销毁时也要进行相应的回收,所以进程的管理开销很大;但是线程的管理开销则很小。4. 进程之间不会相互影响;而一个线程崩溃会导致进程崩溃,从而影响同个进程里面的其他线程。联系: 进程与线程之间的关系:线程是存在进程的内部,一个进程

2021-09-07 14:50:13 502

原创 软件开发相关面经7——Linux

Linux的I/O模型介绍以及同步异步阻塞非阻塞的区别(超级重要) IO两个阶段内核从IO设备读数据进程从内核复制数据内核从设备读取数据到内核空间的缓冲区内核空间复制回用户空间进程缓冲区阶段阻塞:调用IO操作的时候,如果缓冲区空或者满了,调用的进程或者线程就会处于阻塞状态直到IO可用并完成数据拷贝。非阻塞:调用IO操作的时候,内核会马上返回结果,如果IO不可用,会返回错误,这种方式下进程需要不断轮询直到IO可用为止,但是当进程从内核拷贝数据时是阻塞的。IO多路复用就是同时监听多个描述符,一

2021-09-06 22:17:54 225 1

原创 软件开发相关面经6——数据库篇

1、事务隔离性的实现——常见的并发控制技术并发控制技术是实现事务隔离性以及不同隔离级别的关键,实现方式有很多,按照其对可能冲突的操作采取的不同策略可以分为乐观并发控制和悲观并发控制两大类。乐观并发控制:对于并发执行可能冲突的操作,假定其不会真的冲突,允许并发执行,直到真正发生冲突时才去解决冲突,比如让事务回滚。悲观并发控制:对于并发执行可能冲突的操作,假定其必定发生冲突,通过让事务等待(锁)或者中止(时间戳排序)的方式使并行的操作串行执行。2、数据库的范式第一范式(确保每列保持原子性)第一范

2021-09-06 20:40:21 241

原创 软件开发相关面经5——数据库篇

1、关系型和非关系型数据库的区别(低频)关系型数据库优点复杂查询可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询,如join。最大优势:保持数据的一致性(事务处理) 事务支持使得对于安全性能很高的数据访问要求得以实现。关系型数据库把所有的数据都通过行和列的二元表现形式表示出来。由于以标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处)缺点:1.扩展性:关系型数据库有类似join这样的多表查询机制的限制导致扩展很艰难。2.不擅长如下处理1). 大量数据的写入处理

2021-09-06 17:45:55 768

原创 软件开发相关面经4——计算机网络篇

1、单条记录高并发访问的优化服务器端:使用缓存,如redis等使用分布式架构进行处理将静态页面和静态资源存储在静态资源服务器,需要处理的数据使用服务器进行计算后返回将静态资源尽可能在客户端进行缓存采用ngnix进行负载均衡 (nginx读作恩静埃克斯 = Engine X)数据库端:数据库采用主从赋值,读写分离措施建立适当的索引分库分表2、介绍一下ping的过程,分别用到了哪些协议ping 程序是用来探测主机到主机之间是否可通信,如果不能ping到某台主机,表明不能和这台主机建立连

2021-09-06 11:45:00 212

原创 软件开发相关面经3——计算机网络篇

1、TCP和UDP的区别TCP(Transmission Control Protocol,传输控制协议)提供的是面向连接,可靠的字节流服务。即客户和服务器交换数据前,必须现在双方之间建立一个TCP连接,之后才能传输数据。并且提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。UDP(User Data Protocol,用户数据报协议)是一个简单的面向数据报的运输层协议。它不提供可靠性,只是把应用程序传给IP层的数据报发送出去,但是不能保证它们能到达目的地。由于UDP在传

2021-09-06 10:53:46 416

原创 软件开发相关面经2——计算机网络篇

1、建立TCP服务器的各个系统调用建立TCP服务器连接的过程中主要通过以下系统调用序列来获取某些函数,这些系统调用主要包括:socket(),bind(),listen(),accept(),send()和 recv()。见:https://blog.csdn.net/qq_37964547/article/details/814296272、说明socket网络编程有哪些系统调用?其中close是一次就能直接关闭的吗,半关闭状态是怎么产生的?socket() 创建套接字bind() 绑定本.

2021-09-03 13:34:02 191

原创 软件开发相关面经1

文章目录一、堆和栈有什么区别?二、重载和重写的区别?面试时,问:重载(Overload)和重写(Override)的区别?一、堆和栈有什么区别? 栈内存:栈内存首先是一片内存区域,存储的都是局部变量,凡是定义在方法中的都是局部变量(方法外的是全局变量),for循环内部定义的也是局部变量,是先加载函数才能进行局部变量的定义,所以方法先进栈,然后再定义变量,变量有自己的作用域,一旦离开作用域,变量就会被释放。栈内存的更新速度很快,因为局部变量的生命周期都很短。 堆内存:存储的是数组和对象(其实数组就是

2021-09-03 01:46:15 542 2

原创 力扣 (LeetCode) 剑指 Offer(第 2 版)刷题(java)合集-05

剑指 Offer 53 - I. 在排序数组中查找数字 I难度简单145统计一个数字在排序数组中出现的次数。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: 2示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: 0限制:0 <= 数组长度 <= 50000class Solution { public int search(int[] nums, int target) {

2021-08-17 18:44:53 258

原创 力扣 (LeetCode) 剑指 Offer(第 2 版)刷题(java)合集-04

剑指 Offer 35. 复杂链表的复制难度中等226请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。示例 1:输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]示例 2:输入:head = [[1,1],[2,1]]输出:

2021-08-16 00:28:29 146

原创 力扣 (LeetCode) 剑指 Offer(第 2 版)刷题(java)合集-03

剑指 Offer 27. 二叉树的镜像难度简单136请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入:4/ 2 7/ \ / 1 3 6 9镜像输出:4/ 7 2/ \ / 9 6 3 1示例 1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]限制:0 <= 节点个数 <= 1000解法一:递归法看起来相当舒适,就是自己想不起来,哭泣[外链图片转存失败,源站可

2021-08-14 01:00:40 124

原创 力扣 (LeetCode) 剑指 Offer(第 2 版)刷题(java)合集-02

剑指 Offer 16. 数值的整数次方难度中等163实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,x^n)。不得使用库函数,同时不需要考虑大数问题。示例 1:输入:x = 2.00000, n = 10输出:1024.00000示例 2:输入:x = 2.10000, n = 3输出:9.26100示例 3:输入:x = 2.00000, n = -2输出:0.25000解释:2**-2 = 1/2**2 = 1/4 = 0.25提示:-100.0 &l

2021-08-13 00:09:48 172

原创 力扣 (LeetCode) 剑指 Offer(第 2 版)刷题(java)合集-01

力扣刷题合集剑指 Offer 03. 数组中重复的数字难度简单442找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 方法一:遍历hashsetclass Solution { public int findRepeatNumber(int[] n

2021-08-11 20:29:30 398

空空如也

空空如也

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

TA关注的人

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