自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我是扣肉呀~

别回头就往前飞奔

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

原创 浅谈垃圾回收算法

一、首先我们需要如何判断一个对象已死?引用计数法引用计数描述的算法为: 给对象增加一个引用计数器,每当有一个地方引用它时,计数器就+1;当引用失效时,计数器就-1;任何时刻计数 器为0的对象就是不能再被使用的,即对象已"死"。 引用计数法实现简单,判定效率也比较高,在大部分情况下都是一个不错的算法。比如Python语言就采用引用计 数法进行内存管理。 但是,在主流的JVM中没有选用...

2019-10-16 00:44:48 160

原创 测试用例 -- 微信发红包

1、功能测试1)发给单个好友① 正确的金额+无留言+无表情② 错误的金额+无留言+无表情③ 正确的金额+有留言+无表情④ 错误的金额+有留言+无表情⑤ 正确的金额+无留言+有表情⑥ 错误的金额+无留言+有表情⑦ 正确的金额+有留言+有表情⑧ 错误的金额+有留言+有表情其中,金额(0.01-200)可以测试以下数据数字:测试0, 0.009, 0.01,0.011, 01, ...

2019-09-21 22:07:11 408

原创 在浏览器输入一个URL回车之后发生了什么?

注意:本文的步骤是建立在,请求的是一个简单的HTTP请求,没有HTTPS、HTTP2、最简单的DNS、没有代理、并且服务器没有任何问题的基础上,尽管这不切实际。大致流程:URL解析 DNS查询 TCP连接 处理请求 接受响应 渲染页面1、URL解析地址解析:首先判断你输入的是一个合法的URL还是一个待搜索的关键词,并且根据你输入的内容进行自动完成、字符编码等操作。HS...

2019-09-19 11:50:22 249

转载 Http和Https的区别(面试常考题)

无论是在校学习还是找工作的时候,老师和面试官都问过同学http和https的区别。平时上网的时候也没有关注这个问题,只是知道计算机网络里Http的概念,所以最近才查资料好好补补这一块。其实这一块的知识延伸很广,如果之前不太了解加密算法和SSL协议,可以在学习了这个问题的基础上再做研究。一、Http和Https的基本概念Http:超文本传输协议(Http,HyperText Transfer...

2019-09-17 21:40:54 292

转载 ArrayList源码分析超详细

ArrayList源码分析超详解想要分析下源码是件好事,但是如何去进行分析呢?以我的例子来说,我进行源码分析的过程如下几步:找到类:利用 IDEA 找到所需要分析的类(ztrl+N查找ArraList)(此处就是 ArrayList) 新建类:新建一个类,命名为 ArrayList,将源码拷贝到该类。因为我们分析的时候肯定是需要进行代码注释,以及调试的,而jdk的源码,我们是没法在里面直...

2019-09-13 21:11:44 100

原创 关于JDBC

1. JDBC概念和数据库驱动程序JDBC概述 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。是Java访问数据库的标准规范。 JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。 ...

2019-09-09 20:21:43 86

转载 (转)Java中HashMap底层实现原理(JDK1.8)源码分析

在JDK1.6,JDK1.7中,HashMap采用位桶+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用位桶+链表+红黑树实现,当链表长度超过阈值(8)时,将链表转换为红黑树,这样大大减少了查找时间。简单说下HashMap的实现原理:首先有一...

2019-09-04 21:11:08 147

原创 关于HashMap的一些基础面试题

“你用过HashMap吗?” “什么是HashMap?你为什么用到它?”  几乎每个人都会回答“是的”,然后回答HashMap的一些特性,譬如HashMap可以接受null键值和值,而Hashtable则不能;HashMap是非synchronized;HashMap很快;以及HashMap储存的是键值对等等。这显示出你已经用过HashMap,而且对它相当的熟悉。但是面试官来个急转直下,从此刻...

2019-09-04 21:08:58 450

原创 HashMap、Hashtable、HashSet和ConcurrentHashMap的比较

HashMap 和 Hashtable 的区别  HashMap 和 Hashtable 都实现了 Map 接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步 (synchronization),以及速度。HashMap 几乎可以等价于 Hashtable,除了 HashMap 是非 synchronized 的,并可以接受 null(HashMap 键值 (...

2019-09-04 21:05:46 177 1

原创 数据库重要知识点

基础概念1. 什么是数据库事务?事务有什么特点?数据库事务:是指作为单个逻辑工作单元执行的一系列操作,这些操作要么全做,要么全不做,是一个不可分割的工作单元。事务特点:原子性 一致性 隔离性 持久性特2. 主键和外键的区别?主键所在的列的值是唯一的,不可为空的 外键所在的列的值可以重复,可以为空的,不能创建对应表中不存在的外键值3. truncate与delet...

2019-08-31 21:38:37 159

原创 ArrayLIst、Vector、LinkedList关系与区别

相同点:1.ArrayLIst、Vector、LinkedList都属于List接口常用子类;2.ArrayLIst、Vector是基于数组实现,LinkedList基于链表实现;不同点:1.ArrayList采用懒加载策略,扩容为原先数组的1.5倍,采用异步处理,线程不安全,性能较高;2.Vector当产生对象时就初始化...

2019-08-16 22:05:00 163

原创 测试用例的设计方法

测试用例的总体设计方法基于需求的设计RBT( Requirements-Based Testing)是基于需求的测试方法,会使测试更加有效。是因为它使测试专注于质量问题产生的根源,即需求。基于需求的测试是一种最根本的软件测试,重点关注以下两大关键问题,(1)验证需求是否正确、完整、无二义性,并且逻辑一致。 (2)要从“黑盒”的角度,设计出充分并且必要的测试集,以保证设计和代码都能完全符合需求...

2019-08-10 23:15:40 197

转载 ConcurrentHashMap如何高效实现线程安全

典型回答Java 提供了不同层面的线程安全支持。在传统集合框架内部,除了 Hashtable 等同步容器,还提供了所谓的同步包装器(Synchronized Wrapper),我们可以调用 Collections 工具类提供的包装方法,来获取一个同步的包装容器(如 Collections.synchronizedMap),但是它们都是利用非常粗粒度的同步方式,在高并发情况下,性能比较低下。...

2019-08-06 22:56:05 368

转载 mysql查询语句面试题

表结构学生表student(id,name) 课程表course(id,name) 学生课程表student_course(sid,cid,score)创建表的sql代码create table student(id int unsigned primary key auto_increment,name char(10) not null);insert into stu...

2019-08-05 17:02:11 275

原创 网易2020校招笔试题目-测试开发工程师

题目分为三部分:1.选择题:主要考察基础知识点。2.编程题:四个编程题。3.问答题:一个关于测试用例,一个关于MySQL的基本检索语句。选择题记不太清楚了,反正就是各个知识点。编程题:1.俄罗斯方块游戏机。题目:自定义俄罗斯方块列数,每次俄罗斯方块下落个数为1*1,当一行都落满俄罗斯方块时,得分+1。现在小明玩到m个俄罗斯方块,求此时的分数。输入:第一行 列...

2019-08-04 13:35:06 1328 1

原创 左右最值最大差 -- 牛客网

题目描述: 给定一个长度为N(N>1)的整型数组A,可以将A划分成左右两个部分,左部分A[0..K],右部分A[K+1..N-1],K可以取值的范围[0,N- 2]。求这么多划分方案中,左部分中的最大值减去右部分最大值的绝对值,最大是多少?给定整数数组A和数组的大小n,请返回题目所求的答案。题目解析: 基于贪心算法的思想 这两个数中有一个肯定是数组的最大值。要使得...

2019-08-01 17:27:34 307

原创 合唱团 -- 牛客网

1.题目描述:有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最大的乘积吗?2.题目解析:题目要求n各学生中选择k个,使这k个学生的能力值乘积最大。这是一个最优化的问题。另外,在优化过程 中,提出了相邻两个学生的位置编号差不超过d的约束。解决的方法是采...

2019-07-31 16:35:40 334

原创 在IDEA上基于JDBC的MySQL表格的增删查找操作

在这里先介绍一下JDBC: Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。步骤:加载驱动 a. Class.forName("com.mysql.jdbc.Driver"); 获取连接 a. C...

2019-07-31 00:29:25 315

原创 Python学习:Selenuim+Python元素定位总结

对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象。一个对象就是一个人一样,他会有各种的特征(属性),如比我们可以通过一个人的身份证号,姓名,或者他住在哪个街道、楼层、门牌找到这 个人。那么一个对象也有类似的属性,我们可以通过这个属性找到这对象。注意:不管用那种方式,必须保证页面上该属性的唯一性webdriver 提供了一系列的对象定位方法,常用的有以下几种:...

2019-07-27 17:35:27 371

原创 数组中出现次数超过一半的数字 -- 牛客网and剑指offer

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。两个方法实现,如下:方法一: 解题思路:关键字 -- 排序。一个数组排序后,如果某个数字出现次数超过数组的长度的一半,那么这个数字一定会出现在数组中间的位置。所以我...

2019-07-26 15:15:23 157

原创 数组中出现次数超过一半的数字 -- 牛客网and剑指offer

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。两个方法实现,如下:方法一:解题思路:关键字 – 排序。一个数组排序后,如果某个数字出现次数超过数组的长度的一半,那么这个数字一定会出现在数组中间的位置。所以我们可以取出排序...

2019-07-26 15:09:41 104

转载 TCP详解 :三次握手与四次挥手(原理及原因)

TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接,就好像你给别人打电话,必须等线路接通了、对方拿起话筒建立了连接才能相互通话。  一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。我们来看看...

2019-07-26 12:33:17 2863

原创 面试题:请解释ArrayList与Vector的区别

1.历史时间:ArrayList是从JDK1.2提供的;而Vector是从JDK1.0就提供了。2.处理形式:ArrayList是异步处理,性能更高;Vector同步处理,性能较低。3.数据安全:ArrayList不是线程安全;Vector线程安全。4.输出形式:ArrayList支持Iterator、ListIterator、foreach;Vector支持Iterator、List...

2019-07-25 00:37:49 154

原创 网络基础学习 -- UDP协议

1.作用: UDP协议是负责端与端之间的数据传输;TCP/UDP 2.端口: 一个主机上标识一个进程(标识接收到的数据应该交给哪个进程处理) 注意: 一个端口只能被一个进程占用,一个进程可以使用多个端口 3.UDP的特点:无连接 知道对端的IP和端口号就直接进行传输,不需要建立连接;不可靠 没有确认机制,没有重传机制;如果因为网路故障该段...

2019-07-24 22:34:34 156

原创 网络基础学习 -- HTTP协议

123

2019-07-22 22:19:30 208

原创 软件测试用例 - QQ登陆

2019-07-21 21:58:31 570

原创 测试软件 -- jenkins的安装与启动

jenkins官网地址:https://jenkins.io/ 建议下载rpm包程序 注意:不要在中文目录下运行下文所有安装包都在此网盘下,若丢失请联系QQ:1376483126(链接:https://pan.baidu.com/s/1dQOVLeC3Gz6obmEjqXn7dA提取码: hiff )JDK的安装1.运行java-version,会发现L...

2019-07-21 21:28:16 92

转载 [转]IDEA里如何安装Python插件打造开发环境(图文详解)

前言  python是一种功能强大和适用面很广的开发语言,在大数据应用和机器学习日益流行的年代,python凭借其简洁、易用和可扩展性获得很多用户的支持,近年来使用率高速增长。python环境下,集成了科学计算扩展库:NumPy、SciPy和matplotlib,它们分别为Python提供了快速数组处理、数值运算以及绘图功能。因此Python语言及其众多的扩展库所构成的开发环境十分适合工程技术...

2019-07-21 13:17:28 198

原创 leetcode(领扣)-- 二叉树的前序/中序/后续遍历实现代码

在前面的文章中,我已经降讲到了二叉树的前中后序的概念与结构,这里我带大家来实现一下领扣中二叉树的前中后序遍历代码:一、前序遍历/** * 二叉树的前序遍历; */import java.util.ArrayList;import java.util.Collections;import java.util.List;class TreeNode{ int val;...

2019-06-20 10:49:26 174

原创 数据结构 -- 二叉树及实现

一、概念及结构概念:一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。 特点: 2.1:二叉树有天然递归的特性。 2.2:每个结点最多有两棵子树,即二叉树不存在度大于2的结点。 2.3:二叉树的子树有左右之分,其子树的次序不能颠倒。 3.特殊的二叉树: ...

2019-06-19 17:44:03 168

原创 git 在上传时提示 Your branch is up-to-date with 'origin/master'.

这个是版本分支问题,这个时候我们只需要创建一个新的分支,切换两次分支,再删除新建的分支就可以解决了!命令行如下:1.创建一个新分支:$ git branch newbranch 2.检查分支是否创建成功:$ git branch3.切换到新的分支上:$ git checkout newbranch4.将代码添加并提交到新的分支:$ git add . ...

2019-06-05 19:17:46 10031 2

原创 Java中关于null的用法与解释

一、null是代表不确定的对象 Java中,null是一个关键字,用来标识一个不确定的对象。因此可以将null赋给引用类型变量,但不可以将null赋给基本类型变量。比如:int a = null;是错误的。Ojbect o = null是正确的。Java中,变量的适用都遵循一个原则,先定义,并且初始化后,才可以使用。我们不能在int a后,不给a赋值,就去打印a的值。这条对...

2019-06-05 19:05:16 6638 1

原创 数据结构 -- 栈的实现

一、栈的概念及结构 -- 先进后出!栈就是一种特殊线性表,只允许再固定的一端进行元素的插入和删除操作。进行数据的插入和删除操作的一端称为栈顶,另一端为栈底。 栈中的数据元素遵守后进先出LIFO(Last in First Out)的原则。 压栈:栈的插入操作叫做进栈/压栈/入栈,进去的数据在栈顶。 出栈:栈的删除操作。出数据也在栈顶。 结构如下:二、栈的特点分析从栈的操作特...

2019-05-25 12:30:43 219

原创 合法括号的判断 -- 牛客网(有效的括号)

题目描述:对于一个字符串,请设计一个算法,判断其是否为一个合法的括号串。给定一个字符串A和它的长度n,请返回一个bool值代表它是否为一个合法的括号串。题目解析:当我们看到这种括号匹配的问题,第一反应则是使用栈,使用这个思路,本题就会简单很多。解题思路:1.先判断栈是否为空,为空则直接返回false;2.再判断输入的字符串,如果为“(‘则直接入栈;3.这个时候我们就...

2019-05-24 09:46:49 905

原创 抽象类小结

1.抽象类的定义:抽象类只是在普通类的基础上扩充了一些抽象方法而已,所谓抽象方法就是只声明而没有实现的方法(没有方法体)。所有的抽象方法都必须用abstract关键词来定义,抽象方法所在的类一定也要用abstract关键词来定义。 定义的格式: public abstract 返回值类型 方法名(参数); 示例代码: /** * 定义类老师: * 数学老师 : 工作...

2019-05-04 12:02:57 120

原创 Git从本地上传文件到服务器上

一、先创建一个文件夹(git仓库)专门存放要提交的代码:(这里以“Desktop\多线程git管理”文件夹为例);$ cd Desktop/git管理 #进入git文件夹$ git init #初始化一个git仓库二、将文件添加到暂缓区;$ git add "要上传的文档名" 这里注意:使用 git add -A 或者 git ...

2019-04-26 23:32:17 722

原创 Java多线程 -- 生产者与消费者模型 -- 多生产及多消费

在上一篇博客中写到生产者与消费者模型,但是以上只有一个生产者生产一次商品和一个消费者只消费一次就结束了,现在我们改变一下代码使其变为多个生产者与消费者:可以线分析一下,我们知道notify方法一次只能唤醒一个线程,所以我们使用notifyAll方法唤醒当前对象的所有线程;代码如下:还是分为三个类:package Producers_consumers;class Goods ...

2019-04-22 17:01:18 238

原创 Java多线程 -- 生产者与消费者模型

以星巴克点餐为例子,先画一个关于生产者与消费者也就是顾客与星巴克工作人员点餐的流程图,如下:在并发模型中,星巴克的服务用了第三方解耦的方式,生产者与消费者通过第三方(也就是星巴克中的服务员)联系了起来,消费者点餐付款后,会给你一张小票,让你在取餐区等待有专门的配餐员为你配餐,下一位顾客继续点餐。通俗来说也是生产者线程生产出一个商品后将由消费者线程开始消费,两两互相不产生交集。...

2019-04-21 22:47:46 181

原创 面试题:请解释enum 与 Enum 的区别

enum是一个关键字,使用enum定义的枚举类本质上就相对于一个类继承了Enum这个抽象类而已。所以说enum定义的枚举结构实际上就是一个多例类!对比下面两个代码:一:描述动物的多例类:class Animal{ private String title; public static final int DOG_FLAG = 1; publ...

2019-03-18 19:02:07 2861 2

原创 数据结构 — 单链表的实现

单链表的储存结构: 定义: 单链表指的是每个节点只保留一个引用,该引用指向当前节点的下一个节点,没有引用指向头节点,尾节点的next引用为null。 功能梳理:插入 、查找 、删除 。 代码的实现:1.首先还是定义一个接口:/** * 线性表规范 */public interface Sequence { /** *向綫性表...

2019-03-18 18:03:54 156

空空如也

空空如也

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

TA关注的人

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