- 博客(90)
- 收藏
- 关注

原创 迷你HTTP服务器+小型博客
Http请求首先编写代码进行解析请求请求包含以下部分请求行 GET /aaa.html?id=1&password=ppp&name=10 HTTP/1.1请求头 Host: www.aaa.com Accept:text/html等信息请求体 请求体(get方法没有请求体)特殊格式的请求 “GET /hello?target=%E4%B8%AD%E5%9B%BD HT...
2019-08-21 22:01:50
2256

原创 Java:基于Linux平台的语音聊天机器人
项目名称: 基于Linux平台的语音聊天机器人开发环境: Centos7+IDEA+JDK1.8+Maven项目功能:1.语音聊天功能:能够实现人机交互,进行语音聊天。2.命令识别功能:通过语言聊天判别对话内容是否是命令,如果 是命令则执行命令。3.文字识别功能:通过语言控制进入文字识别系统,将有文字的预设图片传入到指定路 径下。由程序识别后,返回图片中的字。4.手势识别功能:通过语言...
2019-07-19 18:06:51
979

原创 基于Java的多人在线聊天室
客户端代码如下package com.bitee7.multclient;/* 多线程聊天室 Name: linrui Date: 2019/3/12*/import java.io.IOException;import java.io.PrintStream;import java.net.Socket;import java.util.Scanner;...
2019-03-22 10:02:01
1365
原创 react引入antd组件示例步骤
如果:info There appears to be trouble with your network connection. Retrying…重新执行:sudo yarn add babel-plugin-import。项目跟目录创建:config-overrides.js。修改package.json。然后删除:yarn.lock。配置antd加载需要的库。
2022-08-23 00:44:20
688
原创 【selenium自动化】第四篇,结合testNg
一、添加testNg pom依赖 <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.9.10</version> </dependency>二、使用 入参形式 @BeforeTest public static void
2022-07-17 15:55:52
286
原创 【并发】概念
CPU在一个时刻只能运行一个线程A线程时间片结束时,保存上下文信息。1.寄存器2.程序计数器:保存执行指令的位置,每个线程之间都有一个独立的程序计数器。需要操作系统介入,用户态和内核态之间切换,消耗大量资源。减少线程上下文切换的出现1.减少锁资源竞争。2.减少锁持有时间:别的线程会被阻塞将与锁无关的代码移出同步代码块3.减少锁的粒度使用读写锁锁分解:如concurrentHashMap的桶4.CAS,非阻塞乐观锁。5.减少GC频率,垃圾回收时会产生内存碎片,需要移动存活对象。会暂停线程,
2022-07-10 20:29:37
175
原创 【Java】基础概念map和string
JDK 8以后 HashMap采用 数据,链表,红黑树实现。哈希冲突时,拉链法解决。链表长度大于阈值8 时,采用链表转红黑树。哈希查找时间复杂度:o(1)哈希冲突时,链表时间复杂度O(n)红黑树时,时间复杂度O(log n)基于红黑树的有序Map默认key的自然顺序排序,也可使用comparator自定义排序时间复杂度:O(log n)插入和查找时,根据key得到相应的hash值,再根据值得到下标位置。1。哈希值和数据长度&运算,得到下标位置。(n-1)&hash2.解决hash冲突has
2022-07-10 16:45:28
531
原创 【selenium自动化】第五篇,使用
一、使用js/jQuery代码 @BeforeTest public static void init() { System.setProperty("webdriver.chrome.driver", "chromedriver"); } @Test(description = "") public static void test06() throws InterruptedException { WebDriver webDriv
2022-04-07 01:20:51
1467
原创 【selenium自动化】第四篇,配合testNg
一、添加testNg依赖 <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.9.10</version> </dependency>二、使用 dataProvider @BeforeTest public static v
2022-04-06 23:03:26
228
原创 【selenium自动化】第三篇,常用方法
#最大化窗口webDriver.manage().window().fullscreen();#向前webDriver.navigate().back(); /** 多个窗口之间切换 */ Set<String> windowHandles = webDriver.getWindowHandles(); webDriver.switchTo().window(windowHandles.toArray()[0].toStrin
2022-04-06 17:05:59
461
原创 【selenium自动化】第二篇,八种元素定位
Selenium有八种元素定位方式。一、通过id如图所示为百度搜索框,输入内容区域的id为:kw(key word) public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "/Users/aaa/selenium/Project/chromedriver"); WebDriver webDriver = new ChromeDriver();
2022-04-05 20:04:29
779
原创 【selenium自动化】第一篇,环境搭建(MAC)
一。安装pom依赖1.修改setting.xml依赖为国内镜像 <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/repositories/central/</url> <mirrorOf>central</mirrorOf> </m
2022-04-04 19:06:34
854
原创 Java工厂模式
工厂模式: 工厂模式可以负责实例化大量公共接口的类。工程模式可以动态决定哪个类被实例化,消费者需要哪个产品就直接向工厂提出请求就可以了。工厂根据要求会去寻找这个类进行实例化。简单工厂通常是一个工厂有很多类,通过提供参数,返回几个产品中的一个类的实例对象。用户不必关系内部实现。只需要提供一个名称就可以获得。interface Car { public String CarName(...
2019-09-17 23:53:28
231
原创 Java五种单例模式
懒汉式: 延迟加载,线程安全,调用效率不高public class LazySingleton { private LazySingleton(){} private static LazySingleton lazySingleton; public static LazySingleton getInstance() { if (lazySingl...
2019-09-17 22:57:36
211
原创 测试基础
1.什么是软件测试软件测试就是为了发现错误而执行程序的过程。是依据软件开发各阶段的规格说明和程序内部结构设计的测试用例、用来验证输入和预期结果是否匹配。总结起来就是 验证程序正常运行。满足用户的需求。发现缺陷。2.软件测试的目的是什么目的是为了找出软件中潜在的问题和缺陷。然后进行修复提高软件质量。3.什么是需求文档测试需求不一定正确。所以还需要验证需求中是否存在逻辑问题或者需求在技...
2019-08-16 15:51:42
729
原创 Java栈和队列
栈进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的代价比较小。数组实现一个栈public class Stack { private int top = 0; private int[] arr...
2019-08-09 15:52:29
163
原创 Java链表
顺序表一般采用一段连续的存储单元依次存储数据元素的线性结构。在数组上完成增删查改。顺序表有两种:1.静态顺序表,使用定长数组存储2.动态顺序表,使用动态开辟的数组存储中间或者头部的插入删除,需要时间O(n)复杂度顺序表一般增容是2倍。将原来的数据拷贝到新数组中,会有不小的性能损耗。链表...
2019-08-07 20:51:04
203
原创 Java反射
反射什么是反射反射值得是对象的反向操作处理,一般情况下我们根据包名.类名找到类而通过反射,可以直接取得对象,利用Object的getClass方法。通过反射骂我们也可以知道任意一个类的属性和方法,动态获取信息以及动态调用对象的方法功能称为反射机制可以通过反射实例化对象//获取实例化对象 Object newobj= Class.forName("java.util.Da...
2019-08-06 14:38:03
157
原创 Java集合类
Collection接口Collection接口是单个集合保存的最大父接口只是一个存储数据的标准我们通常使用其子类 LIst MapList 接口 可以存放重复数据方法1 list.get(index) 根据索引取得保存数据方法2 list.set(index,value) 修改数据由于LIst也是接口,我们想取得实例化对象,就必须有子类,ArrayList,Vector,L...
2019-08-05 20:19:38
155
原创 计算机网络
Http和Https区别Http运行在TCP协议上,进行的是明文传输,客户端和服务端都无法验证对方身份Https运行在SSL安全套接字上。SSL运行在TCP上。是加密的http端口不同:http 80 https 443资源消耗不同 https由于加密消耗更多的内存和CPUhttps是一中共享秘钥和公开密钥混合的加密机制,需要向认证机构购买证书对称机密 和 非对称加密对称加......
2019-08-04 18:18:04
242
原创 Java:JDBC
JDBC是什么JDBC是一种用于执行SQL语句的Java API该API由Java中的java.sql.*和javax.sql.*的一些类和接口组成工作原理:JDBC为多种数据库提供了统一的访问方式。真正的数据库操作实现是由数据库提供的。驱动程序进行访问数据库。应用层使用JDBC接口层连接到JDBC驱动层的驱动程序访问数据库。JDBC使用流程(MySQL)开始导入数据库驱动包加载...
2019-08-01 15:15:02
327
原创 Loadrunner
LoadRunnerLoadRunner是一种自动负载测试工具,从用户关注的响应时间,吞吐量,并发用户等方面来衡量系统的性能表现运行原理LoadRunner启动后,会有一个Agent进程。通过这个进程可以监视各种协议的Client和Server端的通讯,进行录制脚本,然后LoadRunner调用这些脚本向服务器端发送请求,接收服务器的响应。由哪些部分组成虚拟脚本生成器VuGenVirt...
2019-07-31 19:14:26
251
原创 自动化测试
什么是自动化测试值软件测试的自动化,在预设状态下运行应用程序或系统。主要运用于产品型的项目。和机械性项目。自动化框架和自动化工具区别自动化测试框架分为上层和下层。上层是管理整个自动化测试的开发,执行维护。下层主要是测试脚本的开发,构架驱动等。利用自动化工具录制测试脚本自动化测试优点1.减少重复测试时间,减少人为错误,实现快速回归测试。2.可以执行更多繁琐的测试。3.测试脚本的...
2019-07-31 17:25:03
191
原创 测试有哪些类型
开发阶段分单元测试又称模块测试,主要是检验软件基本组成单位的正确性,测试阶段编写测试驱动开发,主要由开发人员或者白盒测试工程师测试,参考《详细设计文档》。主要是测试接口,局部数据结构,路径等。集成测试主要是对系统的接口和集成后的功能进行的测试,黑盒测试与白盒测试相结合。主要由白盒测试工程师和开发人员进行。参考《概要设计文档》。冒烟测试冒烟测试,主要是为了确认软件的基本功能正...
2019-07-30 18:45:36
3115
原创 测试理论
什么是软件测试软件测试就是发现程序中隐藏错误的一个过程,他主要在于检验预期结果与实际结果之间的差别测试与调试的区别测试是为了发现程序的缺陷,调试是为了解决问题测试主要是测试人员来执行,单元和集成测试主要是开发人员,系统测试由测试人员。而调试只是开发人员。测试在软件开发整个周期,而调试只是在开发阶段为什么要做软件测试首先我对测试这个职位很有兴趣。其次测试是软件最终的一道防线。站在一个...
2019-07-30 15:30:11
272
原创 MySQL:事务管理,视图,用户管理
什么是事务事务就是一组DML语句组成,这一组语句要么全部成功,要么全都不成功,是一个整体事务的基本操作创建表create table tt(id int primary key,name varchar(30)not null default ‘ ’,money decimal(10,2)not null default 0.0)开始事务mysql> start tr...
2019-07-29 16:10:58
121
原创 MySQL:索引
索引特性索引是为了提高数据库的性能,提高一个海量数据的检索速度,但是插入,更新,删除速度降低,增加了大量的IO常见索引主键索引-primary key唯一索引-unique普通索引-index全文索引-fulltext基本原理以空间换时间,建立二叉树select * from EMP where empno=998877;此条语句是根据下标一个一个查alter table ...
2019-07-28 20:06:55
132
原创 MySQL:函数,复合查询
函数内置函数current_date() 当前日期 2019年7月28日current_time() 当前时间 15:33:20current_timestamp() 当前时间戳 2019年7月28日15:33:57datediff(date1,date2) 两个日期的差时间是天date_add(‘0000-00-00’,interval n day) 在date上添加时间,可添加y...
2019-07-28 18:24:42
368
原创 MySQL:基础
为什么要用数据库因为文件存储不安全,并且不利于数据的查询与管理,也不利于存储大量的数据,所以采用数据库存储易于管理,更安全,更加便捷。数据库的存储介质为磁盘和内存。服务器+数据库主要有四层关系,安装数据库服务器只是在机器上安装了数据库管理系统。服务器↓数据库管理系统↓数据库(多个)↓表(多个)基本使用方法创建数据库create database db1;使用数据库use ...
2019-07-26 19:30:57
176
原创 总结篇 one
1.面向对象的特征有哪些?封装多态继承抽象封装:把数据和操作数据的方法绑定起来,对数据的访问只能通过指定的接口,封装就是隐藏一切可以隐藏的东西。多态:允许不同子类型的对象对同一消息做出不同的响应。就是说同样的对象引用调用同样的方法但是做了不同的事情。运行时的多态:方法重写就是,A调用B的方法,但是B实现这个方法有很多种。编译时的多态:方法重载就是。继承:继承是从已有类的信息创建新类,提供继...
2019-07-23 19:00:38
195
原创 Java:Garbage Collection
GC是什么,描述一下GC的基本原理垃圾回收器,内存处理时,不当的操作会使程序不稳定或者崩溃,当程序创建对象时,GC就开始监视这个对象的大小内存使用情况等,GC通常采用有向图记录和管理堆中的对象,判断哪些对象不可达,GC就回收这个内存空间。也可以使用Sysytem.gc()手动回收。Java中会存在内存泄漏吗?存在内存泄漏GC会自动释放那些不需要的对象,以避免大部分的内存泄漏,但是仍然会有...
2019-07-22 15:49:29
210
原创 Java:锁
简述一下Synchronize和Lock的区别Lock能完成Synchronize的所有功能Lock有精准的语法和性能,Synchronize会自动释放锁,而lock需要手工释放,必须在finally中释放。如果确保N个线程访问N个资源,但是又不导致死锁可以指定获取锁的顺序,所有县城都以同样的顺序获取锁和释放锁。什么是死锁两个以上线程都在等待对方执行。陷入了无限等待。说明一下锁和同步...
2019-07-22 14:52:35
118
原创 Java:线程
如何保证线程安全通过合理的时间调度,避免共享资源冲突,在并行任务上,保证任务与任务之间不会共享资源。请你说一下线程的基本状态和状态之间的关系创建–就绪-(堵塞)-运行–终止runnable就绪状态,blocked堵塞状态,running运行状态,什么是线程池创建和销毁对象是很浪费时间的, 因为创建一个对象要获取内存资源和其他更多的资源,线程池就是创建若干个可执行的线程在容器中,需要的时...
2019-07-21 21:31:56
142
原创 JavaSe
若对一个类不重写,equals()比较什么比较的对象的地址hashCode()与equals()方法有什么联系Java对象对以上两个方法有如下规定,相同的对象必须具有相等的哈希码。如果两个对象的hashcode相同,他们不一定相同Java名词解释—构造函数:每一个类都有构造函数,在创建新对象的时候,构造函数会被调用。如果没有提供构造函数的话,系统会有默认的无参构造方法。—构造函数重...
2019-07-17 10:58:13
114
原创 Java基础
Java与JavaScript适用于:Java适用于网络互联网应用开发,JavaScript适用于Web页面基于对象和面向对象:Java:面向对象语言,不管什么都要设计对象。JavaScript:脚本语言,基于对象和事件驱动的语言,本身提供内部对象。解释和编译:对于Java,必须编译再执行 对于JavaScript是一种解释型语言,不需要编译,直接由浏览器解释执行。强...
2019-07-12 15:04:29
115
原创 有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。 John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。
有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。输入输入的第一行是正整数n (1 <= n <...
2019-05-26 17:59:02
1998
原创 Java:几种排序算法对比
直接插入排序插入排序就是:取出一个数,插入到有序数组中,首先,取出第一个元素放入有序数组中,然后取出第二个,两个数进行比较,如果它小,则有序数的最后一个向后移动一格,然后与有序数组倒数第二个比较,如果小,则继续向后移动。如果碰到比它小的,则插入在其后面。算法思想为:外层循环是遍历数组的所有值 内层循环是,找到小于该值的下标,然后大于该下标的值向后移动。public static void i...
2019-05-06 00:34:25
480
原创 Java:检查括号是否匹配
题目:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。解题思路:利用栈的思想,遇到左括号入栈,第一个如果是右括号False,遇见右括号出栈判断,最后判断栈是否为空附上代码 boolean isValid(String s) ...
2019-04-21 15:25:41
5343
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人