自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

流年、烟雨

一些学习的知识分享

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

原创 Redis缓存

Redis缓存认识缓存缓存的概念缓存的优点缓存的分类本地缓存分布式缓存常见缓存使用本地缓存:Spring CacheRedis数据类型字符串类型字典类型列表类型集合类型持久化常见面试题缓存雪崩缓存穿透缓存击穿缓存预热认识缓存缓存的概念缓存是⼀个⾼速数据交换的存储器,使⽤它可以快速的访问和操作数据。缓存的优点未加缓存时程序的流程:加入缓存后程序的流程:缓存一般都是key-value查询数据的,所以查询性能比较高;缓存是存储在内存中的,而一般的数据库是将数据存储在磁盘中,因为内存操作性

2020-08-30 00:08:03 354

原创 二叉树展开为链表

题目描述给定一个二叉树,原地将它展开为一个单链表。例如,给定二叉树 1 / \ 2 5 / \ \3 4 6将其展开为:1 \ 2 \ 3 \ 4 \ 5 \ 6算法思想第一种:先把左子树排好,然后将左子树加到根节点的右节点上,再把右子树接到排好的左子树上,最后对右子树进行排序。第二种:把左子树和右子树排好了,然后将左子树接到根节点

2020-08-03 01:35:51 395

原创 操作系统中进程的调度算法

操作系统中进程的调度算法周转时间带权周转时间常见的调度算法先来先服务时间片轮转优先级调度最短时间优先最高响应比优先周转时间周转时间,指作业从提交系统开始,直到作业完成为止的时间间隔。包括:作业在外存后备队列中的等待时间作业调入内存后创建的相应进程在就绪队列中的等待时间进程在CPU上执行的时间进程等待某些操作完成后的时间带权周转时间是指作业周转时间与作业实际运行服务时间的比值。常见的调度算法先来先服务先来先服务调度算法(First Come First Served, FCFS)是最

2020-07-23 16:58:36 660 1

转载 MVC模式与MVC模式的优缺点

请参考MVC模式与它的优缺点

2020-07-23 14:11:09 291

原创 百度测试开发面试题

自我介绍数据库场景:在一张学生表里按成绩降序排序select * from student order by score desc;找出成绩最低的select min(score) from student;查看文件内容有哪些命令cat 、grep、tail、less、more、sed等查看端口号的命令,具体查看某个端口号呢netstat -anonetstat -ano|grep ‘端口号’死锁的概念,以及死锁的必要条件死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者

2020-07-22 20:32:27 2441

原创 字节游戏测试开发面试题

今天下午两点参加了字节跳动游戏测试开发的面试,面试官小哥哥人很好,很有耐心。上来先让我做了个自我介绍,然后就是项目相关的。因为我的项目是基于MVC模式开发的,所以面试官先问了对MVC模式的理解还有项目中是怎么使用的,然后我大概讲了一下。接下来就问我MVC模式有什么缺点,这个没有回答上来(既然项目中都用了,那就说明我觉得这个模式很好。/捂脸)项目说完之后开始进入知识点的提问。1.java里的GC说一下首先是判断对象是否存活引用计数法(给自己挖了个坑)可达性算法然后就是垃圾回收的四种算法:标记-清除

2020-07-22 20:00:28 3811

原创 详解Java中的Spring框架

详解Spring什么是SpringSpring的优点Bean容器Bean的注解Bean属性Bean作用域Bean的生命周期Bean的实例化IoC(Inversion of Control)和DI(Dedendency Injection)IoC(控制反转)DI(依赖注入)AOP什么是SpringSpring 是分层的 Java SE/EE full-stack 轻量级开源框架,以 IoC(Inverse of Control,控制反转)和 AOP(Aspect Oriented Programming

2020-07-16 18:10:19 3760

原创 线程池原理

线程池原理线程池为什么需要?四种常见的线程池创建线程池执行流程线程池为什么需要?为了减少创建和销毁线程的次数,让每个线程可以多次使用,可根据系统情况调整执行的线程数量,防止消耗过多内存,所以我们可以使用线程池。线程池最大的好处就是减少每次启动、销毁线程的损耗。四种常见的线程池Executors.newCacheThreadPool():可缓存线程池,先查看池中有没有以前建立的线程,如果有,就直接使用。如果没有,就建一个新的线程加入池中,缓存型池子通常用于执行一些生存期很短的异步型任务。线程池为

2020-07-15 23:11:47 143

原创 面试常问的Linux基本指令

面试常问的Linux基本指令filemkdirgrepfind查看进程ps命令top命令查看磁盘dfdufdiskfile作用:file通过探测文件内容判断文件类型,使用权限是所有用户。格式:file [options] 文件名options]主要参数-v:在标准输出后显示版本信息,并且退出。-z:探测压缩过的文件类型。-L:允许符合连接。mkdir作用:mkdir命令的作用是建立名称为dirname的子目录,与MS DOS下的md命令类似,它的使用权限是所有用户。格式:m

2020-07-13 00:23:55 260

原创 常见设计模式总结

常见设计模式设计模式单例模式饿汉模式懒汉模式原型模式抽象工厂模式适配器模式桥接模式设计模式单例(Singleton)模式:某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式。原型(Prototype)模式:将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例。工厂方法(Factory Method)模式:定义一个用于创建产品的接口,由子类决定生产什么产品。抽象工厂(AbstractFactory)模式:提供一个创建产品族的接口,其每个子类可以生

2020-07-11 00:55:33 292

原创 字节测试开发面试题总结

字节测开面试题总结数据结构MySQL相关Linux命令多线程网络原理测试算法数据结构HashMap和HashTable的区别①、HashMap 是线程不安全的,HashTable 是线程安全的;②、由于线程安全,所以 HashTable 的效率比不上 HashMap;③、HashMap 最多只允许一条记录的键为 null,允许多条记录的值为 null,而 HashTable 不允许;④、HashMap 默认初始化数组的大小为 16,HashTable 为 11,前者扩容时,扩大两倍,后者扩大两倍

2020-07-09 20:15:16 8745 4

原创 测试面试中常见的一些场景题

测试面试中常见的场景题QQ登录的测试用例吃鸡游戏进行压力测试对朋友圈点赞功能进行测试水杯的测试用例QQ登录的测试用例吃鸡游戏进行压力测试对朋友圈点赞功能进行测试水杯的测试用例...

2020-07-07 23:34:24 4771

原创 Java中的JDBC编程

Java中的JDBC编程JDBC的工作原理JDBC的使用JDBC常用接口和类数据库连接ConnectionStatement对象ResultSet对象JDBC的工作原理JDBC,即Java Database Connectivity,java数据库连接。是一种用于执行SQL语句的Java API,它是Java中的数据库连接规范。这个API有java.sql.* ,javax.sql.* 包中的一些类和接口组成,它为Java开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问。

2020-07-02 12:02:22 831

原创 MySQL中的事务

MySQL中的事务什么是事务事务的四大特性原子性一致性隔离性持久性事务的使用什么是事务事务是由一系列对系统中数据进行访问与更新的操作所组成的一个程序逻辑单元。在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。事务用来管理 insert,update,delete 语句事务的四大特性原子性原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,

2020-06-29 23:30:22 135

原创 MySQL中的索引

MySQL中的索引什么是索引索引的作用索引的类型普通索引主键索引唯一索引全文索引索引的使用场景索引的底层原理B-树B+树什么是索引索引是对数据库表中的一列或者多列的值进行排序的一种数据结构,如果把数据库中的表比作一本书,索引就是这本书的目录,通过目录可以快速查找到书中指定内容的位置。索引也是一张表,该表中存储着索引的值和这个值的数据所在行的物理地址,使用索引后可以不用扫描全表来定位某行的数据,而是通过索引表来找到该行数据对应的物理地址。索引是基于表的,而不是基于数据库的索引的作用数据库中的

2020-06-28 01:09:53 1672

原创 MySQL进阶

MySQL进阶数据库约束约束类型NULL约束UNIQUE:唯一约束DEFAULT:默认值约束PRIMARY KEY:主键约束FOREIGN KEY:外键约束CHECK约束表的设计一对一一对多多对多新增查询聚合查询聚合函数GROUP BY子句HAVING联合查询内连接外连接自连接子查询合并查询数据库约束数据库约束是对表中的数据进行进一步的限制,保证数据的正确性、有效性和完整性。约束类型NOT NULL - 指示某列不能存储 NULL 值。UNIQUE - 保证某列的每行必须有唯一的值。DEFAU

2020-06-27 12:25:41 1061

原创 MySQL基础的增删查改

MySQL的增删查改CRUD新增(Create)单行数据+全列插入多行数据+指定列插入删除(Delete)查询(Retrieve)全列查询指定列查询查询字段为表达式别名去重:DISTINCT排序:ORDER BY条件查询:WHERE分页查询: LIMIT修改(Update)CRUDCRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写。新增(Create)语法:INSERT [INTO] table_name[(column

2020-06-23 14:27:44 1162

原创 MySQL基础操作

MySQL基础操作数据库操作创建数据库删除数据库使用数据库常见数据类型数值类型字符串类型日期类型数据表操作查看表结构创建数据表删除数据表修改数据表数据库操作创建数据库创建名为db_test1的数据库CREATE DATABASE db_test1;说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集: utf8, 校验规则是: utf8_ general ci如果系统没有db_test2的数据库则创建,如果有则不创建CREATE DATABASE IF NOT EXI

2020-06-23 13:06:05 350

原创 数据库基础

数据库基础数据库术语数据库分类关系型数据库(RDBMS) :非关系型数据库:SQL语法SQL语法结构SQL 语法要点SQL 分类数据定义语言(DDL)数据操纵语言(DML)事务控制语言(TCL)数据控制语言(DCL)数据库术语数据库(database) - 保存有组织的数据的容器(通常是一个文件或一组文件)。数据表(table) - 某种特定类型数据的结构化清单。模式(schema) - 关于数据库和表的布局及特性的信息。模式定义了数据在表中如何存储,包含存储什么样的数据,数据如何分解,各部分信息

2020-06-23 01:35:24 610

原创 Synchronized关键字

Synchronized关键字同步处理解决同步问题Synchronized底层原理对象锁(monitor)机制Synchronized优化CAS操作什么是CASCAS的操作过程CAS问题总结同步处理所谓的同步指的是所有的线程不是一起进入到方法中执行,而是按照顺序一个一个进来。解决同步问题使用synchronized关键字处理有两种模式:同步代码块、同步方法使用同步代码块 : 如果要使用同步代码块必须设置一个要锁定的对象,所以一般可以锁定当前对象:thisclass MyThread impl

2020-06-21 00:10:17 477

原创 Javaweb之Servlet

Javaweb之ServletServlet简介什么是ServletServlet架构常见方法和生命周期Servlet对象的生命周期servlet流程图HttpServlet处理Http请求Servlet简介什么是Servlet概念:Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。定位:Java Servlet用Java编写的服务器端程序(web applicat

2020-06-20 20:23:53 458

原创 软件测试基本概念

软件测试基本概念什么是软件测试什么是需求什么是BUG什么是测试用例测试用例的编写开发模型和测试模型软件开发的生命周期开发模型瀑布模型螺旋模型增量模型迭代模型敏捷模型scrum里面的角色scrum的基本流程特点软件测试的生命周期测试模型V模型W模型什么是软件测试软件测试就是验证软件的功能是否满足用户的需求一场考试,做完所有题目之后,进行一遍检查,就是“测试”;买来一台电视,安装好之后打开试试能不能正常使用,这也是“测试”。什么是需求需求就是满足用户的期望或规定的文档(合同、规范、标准)所需要的

2020-06-19 12:43:34 523

原创 BAT面试题:请谈谈从浏览器输入url到拿到网页的整个过程

我们应该从四个方面来回答这个问题:浏览器做了哪些事情内核协议栈做了哪些事情web服务器相关CDN加速网络服务1.浏览器做了哪些事情当输入https://www.baidu.com/index.html,浏览器进行URL解析,首先会看https,就知道我们要访问的是web服务器,www.baidu.com是web服务器名字,后面index.html就是数据源路径和文件名,根据上面的解析结果生成HTTP请求消息。GET /index.html HTTP/1.1User-Agent: cur.

2020-06-18 23:45:51 604

原创 内存泄漏与内存溢出的区别

内存泄漏与内存溢出的区别Java中的内存泄漏概念分类常发性内存泄露偶发性内存泄露一次性内存泄露隐式内存泄露发生的情况Java中的内存溢出概念发生的情况解决方法二者之间的区别Java中的内存泄漏概念内存泄漏(Memory Leak)是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。分类常发性内存泄露发生内存泄漏的代码会多次被执行到,每次被执行到的时候都会导致一块内存泄漏。偶发性内存泄露==发生内存泄露的代码只有在某些特

2020-06-18 22:32:37 465

原创 Linux权限与基本指令

Linux基本指令Linux权限Linux用户1.创建用户2.配置密码3.切换用户三种角色文件类型和访问权限文件目录文件类型基本权限文件属性文件权限改变文件权限chmod命令文件/目录操作ls指令pwd指令cd指令touch指令mkdir指令rm指令cp指令mv指令cat指令man指令less指令head指令tail指令date指令Linux权限Linux用户Linux用户分为两种:超级用户(root) 和 普通用户超级用户:可以再linux系统下做任何事情,不受限制普通用户:在linux下做有

2020-06-09 22:24:18 1812

原创 JVM之垃圾回收机制

垃圾回收机制垃圾回收时机System.gc()JVM垃圾回收机制决定垃圾回收策略---如何判断对象已死?引用计数算法可达性分析算法需要垃圾回收的内存方法区/元空间堆新生代(Young Generation)老年代(Old Generation)Full GC垃圾回收算法标记-清除算法(Mark-Sweep)标记-整理算法(Mark-Compact)复制算法(Copying)分代收集算法垃圾回收的过程堆的GC新生代GC(Minor GC)老生代GC内存分配与回收策略对象优先在Eden分配大对象直接进入老年代长

2020-06-05 18:44:38 671

原创 JVM之类加载

类加载类加载的时机类加载器启动类加载器扩展类加载器应用程序类加载器类加载机制(双亲委派模型)工作过程类的生命周期加载验证准备解析初始化类加载的时机如果类没有进行过初始化,则需要先触发其初始化。虚拟机规范则是严格规定了有且只有5种情况必须立即对类进行“初始化”(而加载、验证、准备自然需要在此之前开始):创建类的实例(new的方式)。访问某个类或接口的静态变量,或者对该静态变量赋值,调用类的静态方法(类. xxx调用);反射的方式;初始化某个类的子类,则其父类也会被初始化;Java虚拟机启动时被标

2020-05-30 22:24:36 197

原创 JVM之Java内存模型

Java内存模型jdk1.6内存模型jdk1.7内存模型jdk1.8内存模型线程私有的内存区域程序计数器Java虚拟机栈本地方法栈线程共享区域Java堆方法区/元数据区运行时常量池直接内存jdk1.6内存模型jdk1.7内存模型jdk1.8内存模型线程私有的内存区域程序计数器一块比较小的内存空间,可以看做是当前线程所执行的字节码的行号指示器。Java虚拟机栈每个方法执行的同时都会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行完成的过程,就对

2020-05-27 14:43:01 265

原创 Java反射技术

Java反射技术反射的概念反射的基石字节码文件反射的实现获取字节码文件对象反射的使用反射的概念Java的反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,并且修改部分类型信息。这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。反射的基石反射的基石是字节码文件对象。字节码文件字节码文件的产生过程触发类加载的方式(1)new一个对象的时候;(2)访问一个类静态成员的时候;(3)调用一个类静态方法的

2020-05-26 21:34:39 285

原创 详解HTTP协议

详解HTTP协议HTTP原理统一资源定位符URLURL格式HTTP的URLHTTP的协议格式HTTP的报文结构HTTP的方法get()和post()的区别HTTP常见HeaderHTTP的状态码本机HTTP请求HTTP原理统一资源定位符URLURL格式<协议>://<主机>:<端口>/<路径>HTTP的URLHTTP的协议格式HTTP请求首行: [方法] + [url] + [版本]Header: 请求的属性, 冒号分割的键值对;每组属

2020-05-22 17:16:22 440

原创 软件测试的方法

软件测试的方法白盒测试语句覆盖判定覆盖条件覆盖判定-条件覆盖条件组合覆盖路径覆盖基本路径测试法基本步骤黑盒测试等价类划分法有效等价类和无效等价类边界值分析法判定表方法步骤因果图法生成测试用例步骤正交试验法功能图法错误推测法从哲学观点看,分析问题和解决问题的方法有两种:白盒方法和黑盒方法。所谓白盒方法就是能够看清楚事物的内部,即了解事物的内部结构和运行机制,通过剖析事物的内部结构和运行机制,来处理和解决问题。如果我们没有办法或不去了解事物的内部结构和运行机制,而把整个事物看成一个整体——黑盒子,

2020-05-12 22:45:59 3072 1

原创 构造器与垃圾回收器

构造器与垃圾回收器栈与堆:生存空间变量实例变量局部变量(栈变量)方法会被堆在一起堆栈块栈上的对象引用对象的局部变量栈与堆:生存空间对象的生存空间是堆(heap)方法调用及变量的生存空间是栈(stack)变量实例变量实例变量是被声明在类而不是方法里面。它们代表每个独立对象的“字段”(每个实例都能有不同的值)。实例变量存在于所属的对象中。public class Person{ String name; int age; } //name和age就是实例变量,每个Person对象都

2020-05-10 11:41:35 170

原创 TCP/IP协议分层

TCP/IP协议族应用层协议DNS协议HTTP协议传输层协议UDP协议TCP协议网络层协议IP协议数据链路层协议ARP协议三级目录应用层协议DNS协议HTTP协议传输层协议UDP协议TCP协议网络层协议IP协议数据链路层协议ARP协议三级目录...

2020-05-07 12:23:13 1411 5

原创 网络分层体系结构

网络分层模型一级目录二级目录三级目录一级目录二级目录三级目录

2020-05-04 10:07:11 4962 2

原创 看完你觉得你真的了解Map吗

HashMap相关知识Map的说明Map的两种实例化方式HashMapTreeMapMap的说明Map是一个接口类,该类没有继承自Collection,该类中存储的是<k,v>结构的键值对,并且k一定是唯一的,不能重复。Map.Entry<K, V> 是Map内部实现的用来存放<key, value>键值对映射关系的内部类注意:Map是一个接口,...

2020-05-03 11:26:05 456

原创 非基于比较的排序——计数排序

计数排序题目描述算法描述Java代码题目描述有n个数,取值集中在某个范围,写出一个排序算法,要求时间复杂度和空间复杂度都是O(n)的。算法描述统计元素的范围开辟计数的空间统计每个元素出现的次数对元素进行回收——排序Java代码 public static void countSort(int[] array){ //1.统计元素的范围 i...

2020-05-01 17:18:50 293

原创 基础IO之序列化与反序列化

序列化与反序列化什么是序列化与反序列化序列化反序列化什么需要反序列化实现序列化的方式如何实现序列化什么是序列化与反序列化序列化把对象转化为字节序列的过程称为对象的序列化。反序列化把字节对象恢复为过程称为对象的反序列化。什么需要反序列化把内存中的状态保存到一个文件中或者数据库中时候用套接字在网络上传送对象的时候实现序列化的方式Java对象序列化JSON序列化XMLPr...

2020-04-28 17:46:24 228

原创 基础IO之流

文章目录流流的概念流的分类输入输出流输入流输出流字节流与字符流字节流字符流字符流与字节流的对比字符字节转换流流流的概念在Java中所有数据都是使用流读写的。流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称和抽象。数据在两设备间的传输称为流。l流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。流的分类按照流向分:输入流、输出流按照处理数据的单...

2020-04-28 12:26:16 318

原创 基础IO之File文件类

文章目录File文件操作类基本文件操作目录操作文件属性操作其他操作File文件操作类基本文件操作方法说明public boolean exists()测试指定路径中文件或目录是否存在public boolean isDirectory()判定一个文件是目录public boolean isFile()判定是否是文件public boolean de...

2020-04-22 23:01:04 199

原创 面试题:多线程中的API以及sleep()和wait()的区别

文章目录多线程中的API启动线程-start()作用示例中断线程-interrupt()方法说明作用等待线程-join()方法说明作用wait()作用示例notify()作用使用notifyAll()作用yield()作用示例sleep()和wait()的区别多线程中的API启动线程-start()作用start方法的作用就是启动一个线程,内部调用了run方法示例public clas...

2020-04-20 12:32:06 825

空空如也

空空如也

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

TA关注的人

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