- 博客(81)
- 收藏
- 关注
原创 github搜索
in:name xxx (按照项目名搜索)in:readme xxx (按照readme搜索)in:description xxx (按照description搜索)stars:>xxx (star大于xxx)forks:>xxx (forks大于xxx)language:xxx (编程语言)pushed:>yyyy-mm-dd (最后更新时间)...
2020-02-28 14:35:00
295
原创 HTTP和HTTPS的区别及联系
一. 基本概念HTTP协议: 超文本协议, 被用于在Web浏览器和网站服务器之间传递信息, http协议以明文方式发送内容, 不提供任何方式的数据加密,如果攻击者截取了web浏览器和网站服务器之间的传输报文, 就可以直接读懂其中的信息, 因此http协议不适合传输一些敏感信息, 比如密码, 信用卡号, 支付信息等.解决这个缺陷, 需要使用另一种协议: HTTPS安全套接字层超文本传输协议, 为...
2020-02-03 14:03:56
311
1
原创 Java之访问权限修饰符
Java中共有四种权限修饰符 : public, protected, default, private修饰类时 : 当访问权限修饰符修饰类的时候, 只能使用默认的修饰符和public修饰符, 在不适用public的时候在不同的包中不可以访问到这个类, 在Java这种面向对象编程的语言来说, 应该将类设置为 public 的类, 使用了public修饰的类可以导入到任何类中, 而不修饰的类只...
2019-12-16 11:49:19
288
原创 从输入URL到页面加载完成的过程中都发生了什么?
主要过程如下:1. 浏览器接收URL2. 将URL与缓存进行比对,如果请求的页面在缓存中且未过期,则直接进行第8步3. 如果网络地址不是一个IP地址,通过DNS域名解析返回一个IP地址4. 浏览器与服务器通过三次握手建立TCP连接5. 浏览器向服务器发送HTTP请求6. 服务器收到请求,从它的文档空间中查找资源并返回HTTP响应7. 如果是可以缓存的,这个响应则会被存储起来8. 解...
2019-12-15 15:31:19
218
原创 白盒测试
一. 什么是白盒测试通过分析被测组件内部工作原理,通过测试来检测组件内部的运行是否复核后产品规格说明书的规定。要求测试人员了解开发人员的代码实现细节,包括数据流和控制流。1)数据流:进出组件的数据是否能呗正确的处理,组件中用于计算使用的数据是否被正确的使用,是否有冗余,数据类型是否运用得当。2)控制流:程序中的每一条代码都是否有意义,程序中是否有无法被执行到的语句,程序中的判定是否正确,程...
2019-09-04 10:22:02
379
原创 黑盒测试
一. 目的验证:软件产品是否 符合需求文档的设计证实:软件产品符合终端用户的需求二. 软件生命周期中的哪些测试阶段会用到黑盒测试1)单元测试2)集成测试3)系统测试4)用户验收测试一般来说,黑盒测试适用于软件生命周期的所有测试阶段,但是黑盒测试通常用于软件产品的系统测试和验收测试。三. 黑盒测试的优点从产品功能角度测试,可以最大限度地满足用户的需求相同的动作可以重复执行,最...
2019-09-04 09:51:17
610
原创 URI、URL比较
含义不同URI是统一资源标识符,用来唯一的标识一个资源。URL是统一资源定位器,它是一种具体的URI。即URL可以用来标识一个资源,而且还指明了如何locate这个资源。位置不同绝对URL西安市文件的完整路径,这意味着绝对URL本身所在的位置与被引用的实际文件位置无关。绝对的URI指以scheme开头的URI,你可以把绝对的URI看作是以某种方式引用某种资源,而这种方式对标识符出现的环...
2019-08-30 14:06:08
292
原创 synchronized修饰方法和修饰代码块
一. 概念类锁和对象锁的区别类锁:所有对象一把锁对象锁:一个对象一把锁,多个对象多把锁同步问题同步是对同一把锁而言的,同步时在多线程竞争同一把锁的时候才能实现,如果多个线程竞争不同的锁,那么线程是不能同步的两个线程,一个取对象锁,一个取类锁,则不能同步两个线程,一个取a对象锁,一个取b对象锁,不能同步二. synchronized作用用来完成多线程条件下同步工作的若没有同步...
2019-08-29 17:25:41
535
原创 JDBC
JDBC操作数据库的步骤注册数据库驱动建立数据库连接创建一个statement执行SQL语句处理结果集关闭数据库连接Connection connection = null;Statement statement = null;ResultSet resultSet = null;try{ /** * 加载驱动有两种方式 * 1. 会导致驱动会...
2019-08-22 22:15:50
149
原创 数据库-内外连接及左右连接的区别
内外连接这两者是最好区分的。可以用交集和并集来理解。内连接就是取两个表的交集,其中只有两条相互对应着的数据才能被存入结果表中。外连接就是取并集,和内连接是相反的,如果一张表的数据在另一张表中没有找到,并不影响他在结果集中出现左右连接左连接就是当你要对两张表进行联合查询的时候,是将left join语句左侧的表当作基准表去匹配left join右边的表,如果左侧表其中的数据在右表中可以找到...
2019-08-21 23:42:19
3851
原创 JVM类加载机制
一. 类加载机制JVM类加载分为5个过程:1.1加载加载主要是将.class文件(并不一定是.class,可以是zip包,网络中获取)中的二进制字节流读入到JVM中。在加载阶段,JVM需要完成三件事:1. 通过类的全限定名获取该类的二进制字节流2. 将字节流所代表的静态存储结构转化为方法区的运行时数据结构3. 在内存中生成一个该类的java.lang.Class对象,作为方法区这个...
2019-08-21 23:10:15
123
原创 Swing基础概念
Swing是一个为Java设计的GUI工具包Swing是Java基础类的一部分Swing包括了图形用户界面GUI器件,如:文本框,按钮,分隔窗格和表Swing提供了许多比AWT更好的屏幕显示元素,用纯Java写成。JFrame:Java的GUI程序的基本思路是以JFrame为基础,它是屏幕上Window的对象,能够最大化,最小化,关闭。JPanel:Java图形用户界面GUI工具包swi...
2019-08-19 20:44:23
422
原创 Java Swing图形化界面
步骤:1. 定义你需要使用的面板,按钮,文本,标签。2. 对这些进行实例化。3. 把面板放在界面上。import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JPasswordField;im...
2019-08-19 19:58:43
463
原创 List, Set, Map的区别
list和set都是实现了collection接口list:a) 可以允许重复的对象b) 可以插入多个null值c) 有序容器,保证了每个元素的插入和输出顺序d) 常用的实现类有ArrayList(索引的随机访问),LinkedList(list中添加或删除元素)和Vectorset:a) 不允许重复对象b) 只允许一个null值c) 无序容器。TreeSet通过Co...
2019-08-17 22:43:12
158
原创 MySQL默认存储引擎 -InnoDB(5.1以后)
首先是如何查看自己使用的是哪个存储引擎, 可以通过命令show variables like ’storage_engine’;InnoDB是事务型数据库首选引擎,支持事务安全表(ACID)。事务的ACID属性:原子性、一致性、隔离性、持久性a) 原子性:这组语句要么全部执行,要么全部不执行。如果事务执行到一半出现错误, 数据库就滚回到事务开始执行的地方。b) ...
2019-08-13 23:30:42
11744
2
原创 浅谈Redis
简介Redis是一个用C编程的key-value存储数据库, 用来缓存事件, 发布订阅, 高速队列等场景, 支持丰富的数据类型Redis为什么这么快纯内存操作. 但是在有需要的时候需要手动持久化到键盘中单线程. 避开了多线程中上下文频繁切换的操作数据结构简单, 对数据的操作也简单使用底层模型不同, 底层实现方式与客户端间通信的应用协议不同. Redis构建了VM机制,不用浪费时间去移...
2019-08-09 20:10:49
227
原创 selenium八种元素定位方式
元素的定位是自动化测试的核心, 要想操作一个对象, 首先应该识别这个对象. 一个对象就是像一个人一样, 她们会有各种的特征, 我们可以通过一个人的身份证号, 姓名等找到这个人. 那么对象也有类似的属性, 我们可以通过这个属性找到这个对象.webdriver提供了一系列的对象定位方法, 常用的有以下几种:idnametag nameclass namecssXPathlink te...
2019-08-06 20:16:25
491
2
原创 接口测试
简介接口测试是测试系统组件间接口的一种测试, 主要用于测试系统与外部其他系统之间的接口, 以及系统内部各个子模块之间的接口.测试的重点是要检查接口参数传递的正确性, 接口功能实现的正确性, 输出结果的正确性, 以及对各种异常情况的容错处理的完整性和合理性.软件接口的分类:1) 系统和系统之间的调用. 如微信向用户提供统一的对外接口, 程序员调用接口完成基于微信的小程序等2) 同一系统内部...
2019-08-06 16:39:38
366
原创 Java中哪个关键字可以对对象加互斥锁
A. synchronizedB. volatileC. serializeD. static答案是A, synchronized关键字是同步代码块关键字, 对对象加互斥锁详解:synchronized:用来给对象和方法或者代码块加锁. 当它锁定一个方法或者一个代码块的时候, 同一时刻最多只有一个线程执行这个段代码volatile:用来确保将变量的更新操作通知到其他线程, 当把变...
2019-07-30 14:51:31
24397
原创 执行如下程序, 输出结果是()
class Test { private int data; int result = 0; public void m() { result += 2; data += 2; System.out.print(result + " " + data); }}class ThreadExample extends Thread { private Test mv; pu...
2019-07-30 11:29:56
2569
原创 假设 A 类有如下定义,设 a 是 A 类的一个实例,下列语句调用哪个是错误的?()
假设A类有如下定义, 设a是A类的一个实例, 下列语句调用哪个是错误的?()public class A{ public int i; static String s; void method1(){} static void method2(){}}A. System.out.println(a.i);B. a.method1();C. A.m...
2019-07-30 11:10:42
8749
1
原创 事务的四大特性: 原子性, 一致性, 隔离性, 持久性(ACID)
原子性: 就是一组操作要么同时发生, 要么一个都不发生一致性(CONSISTENCY): 就是说, 执行完数据库操作后, 数据不会被破坏. 打个比方, 如果a账户转账到b账户, 不可能因为a账户扣了钱, 而b账户没有加钱隔离性(LSOLATION): 当我们编写了一条update语句, 提交到数据库的一刹那, 有可能别人也提交了一条delete语句到数据库, 也许我们都是对同一条记录进行操...
2019-07-26 12:59:39
1321
原创 常见的http错误
错误类型:1xx(临时响应) : 表示临时响应并需要请求者继续执行操作的状态代码2xx(成功) : 表示成功处理了请求的状态代码3xx(重定向) : 表示要完成请求, 需要进一步操作. 通常, 这些状态代码用来重定向4xx(请求错误) : 这些状态代码表示请求可能出错, 妨碍了服务器的处理5xx(服务器错误) : 这些状态代码表示服务器在尝试处理请求时发生内部错误常见...
2019-07-23 10:37:38
301
原创 统计回文
import java.util.Scanner;public class HuiWen { /** * 思路: * 首先将用户输入的字符串变为一个个的char * 两个指针同时遍历, 一个从前面开始, 一个从后面开始 * * 查找插入的位置: * 将第二个字符串从第一个字符串第一个位置开始尝试插入 *...
2019-07-21 17:53:07
142
原创 三次握手四次挥手的常见面试题
1. 为什么连接的时候时三次握手, 关闭的时候时四次?当Server端收到Client端的SYN连接请求报文后, 可以直接发送SYN+ACK报文. 其中ACK报文时用来应答的, SYN是用来同步的 但是关闭连接的时候, 当Server端收到FIN 报文时, 很可能并不会立即关闭SOCKET, 所以只能先恢复一个ACK报文, , 告诉Client端"你发的FIN报文我收到了". 只有等到S...
2019-07-21 16:54:11
329
原创 浅谈String str = new String()和==比较
首先明确一下常量池这个概念, 它可以用来存储字符串常量先来看一个程序public class StringDemo1 { // A.3 B.4 C.5 D.6 public static void main(String[] args) { String str1 = new String("abc"); String str2 = new St...
2019-07-16 16:12:40
345
原创 java中关于try, catch, finally中的细节分析
首先来看一个程序(finally块中有return) public static int test(){ int i = 0; try{ i = 1; System.out.println("try i= "+i); return i; }catch (Excepti...
2019-07-16 14:48:57
169
原创 内存优化--内存抖动
内存抖动是指内存频繁的分配和回收, 而频繁的gc会导致卡顿, 严重时和内存泄漏一样会导致OOM垃圾回收在对对象进行回收前需要对垃圾进行采集, 不同的虚拟机实现可能使用不同的垃圾收集算法, 不同的手机算法的实现也不尽相同, 不同的算法各有各的优劣势常用的收集算法有:1. 标记-清除算法 Mark-Sweep算法分为标记和清除两个阶段, 首先标记出所有需要回收的对象, 在标记完成后统一回收被...
2019-07-09 13:02:26
3085
原创 对于普通的计算机, 对以下事件的平均耗时从小到大排序为?
对于普通的计算机, 对以下事件的平均耗时从小到大排序为——:A.读取1KB内存数据 B.从硬盘连续读取1KB数据 C.读取一次L2缓存 D.一次磁盘寻道C,A,D,BC,D,A,BD,C,A,BD,A,C,B答案是A首先, 速度最快的当然是缓存, 接着消耗时间最少的是内存, 磁盘寻道时间, 然后是硬盘连续读取时间一个个来分析, L2缓存是level2缓存是...
2019-07-04 08:52:48
1493
1
原创 DOM(文档对象模型)
操作DOM由于HTML文档被浏览器解析后就是一颗DOM树, 要改变HTML的结构, 就需要通过JavaScript来操作DOM要始终记住DOM是一个树形结构, 操作一个DOM节点实际上就是这么几个操作:更新: 更新改DOM节点的内容, 相当于更新了解该DOM节点表示的HTML的内容 遍历: 遍历该DOM节点下的子节点, 以便进行进一步操作 添加: 在该DOM节点下新增一个子节点,...
2019-06-30 16:55:12
133
原创 Java中的守护线程和非守护线程
Java中有两类线程: User Thread(用户线程) Daemon Thread(守护线程)守护线程也叫后台线程, 指的是程序在运行的时候后台提供一种通用服务的线程, 比如jvm中垃圾回收线程, 这种线程并不属于程序中不可或缺的部分. 因此当所有非守护线程结束时, 程序也就终止了, 同时会杀死进程中所有的守护线程. 反过来说, 只要有任何非守护线程在运行, 程序就不会终止.守护线程...
2019-06-17 20:29:26
663
原创 页面跳转的两种方式 -- 请求转发forward 和 重定向sendRedirect
在使用servlet/jsp的时候, 常常会遇到这两个问题, 所以搞明白是非常有必要的重定向和转发的区别:重定向访问服务器两次, 转发只访问服务器一次 重定向可以看见目标页面的url, 转发只能看见第一次访问的页面url, 以后的工作都是服务器来做的. 重定向跳转后必须加上return, 要不然页面虽然跳转了, 但是还是会执行跳转后面的语句, 转发是执行了跳转页面, 下面的代码就不会...
2019-06-11 22:27:23
2417
原创 链表和数组的区别
数组是由下标索引和data两部分组成链表是由data和指向下一个数据的指针地址两部分组成数组和链表的区别如下:数组静态分配内存, 链表动态分配内存; 数组在内存中连续, 链表不连续; 数组元素在栈区, 链表元素在堆区; 数组利用下标定位, 时间复杂度O(1), 链表定位元素时间复杂度O(n) 数组插入或删除元素的时间复杂度O(n), 链表的时间复杂度O(1)数组的特点:...
2019-06-11 19:59:31
560
原创 一道关于Integer的笔试题
面试题://有如下4条语句:Integer i01 = 59;int i02 = 59;Integer i03 =Integer.valueOf(59);Integer i04 = new Integer(59);以下输出结果为false的是:A. System.out.println(i01== i02);B. System.out.println(i01== ...
2019-06-11 09:43:40
739
原创 设计模式之结构型模式
结构型模式中最体现扩展性的模式是 ()A. 装饰模式B. 合成模式C. 桥接模式D. 适配器这个题选A1. 适配器模式 (Adapter)适配器模式是将一个类的接口转换成客户希望的另外一个接口. 适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.两个成熟的类需要通信, 但是接口不同, 由于开闭原则, 我们不能去修改这两个类的接口, 所以就需要一个适...
2019-05-30 17:00:15
158
原创 编译出错和运行出错的区别
要区分编译时错误和运行时错误, 先要明白什么是编译什么是运行首先来看这张图编译期就是将我们写的java源代码交给编译器执行的过程, 起翻译的作用...
2019-05-26 17:03:32
8079
3
原创 Java中super和this关键字的使用
在使用super和this关键字时, 以下描述正确的是()A. 在子类构造方法中使用super()显示调用父类的构造方法, super()必须写在子类构造方法的第一行, 否自编译不通过B. super() 和 this() 不一定要放在构造方法内的第一行C. this() 和 super() 可以同时出现在一个构造函数中D. this() 和 super() 可以在static 环境中使用...
2019-05-23 14:18:17
5926
1
原创 假设A类又如下定义, 设a是A类的一个实例, 下列哪个调用是错误的?()
假设A类又如下定义, 设a是A类的一个实例, 下列哪个调用是错误的?()public class A{public int i;static String s;void method1(){}static void method2(){}}A. System.out.println(a.i);B. a.method1();C. A.method1();D. A.method2...
2019-05-22 15:35:47
6771
原创 堆 栈 方法区中存放的是什么 ?
首先来看一道题 :单选题 : 方法通常存储在进程中的哪个区 ?A. 堆区B. 栈区C. 全局区D. 方法区这个题我们要注意的是题干的问题, 是问 " 进程 " 中的哪个区, 而不是JVM中的哪个区. 答案是D堆区存储的是一切new出来的对象栈区存储基本数据类型的值和对象引用.每个栈中的数据( 基础数据类型和对象引用 )都是私有的,其他栈不可以访问.栈分为三个部分 : 基本...
2019-05-22 15:20:36
8085
10
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅