<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Alt__的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Alt__</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Alt__]]></copyright><item><title><![CDATA[压测结果-----聚合报告分析（JMeter）]]></title><link>https://blog.youkuaiyun.com/Alt__/article/details/121162501</link><guid>https://blog.youkuaiyun.com/Alt__/article/details/121162501</guid><author>Alt__</author><pubDate>Fri, 05 Nov 2021 14:39:38 +0800</pubDate><description><![CDATA[一、聚合报告中的主要名称的含意：



Label：每个请求的名称

#Samples：各请求发出的数量

Average：平均响应时间（单位：毫秒）。默认是单个Request的平均响应时间，当使用了Transaction Controller时，也可以以Transaction为单位显示平均响应时间

Median：中位数，具体后面讲

90%Line：后面讲

95%Line：后面讲

99%Line：后面讲

Min：最小响应时间

Max：最大响应时间

Error%：请求的错误率 = 错误请求的数.]]></description><category></category></item><item><title><![CDATA[Zookeeper学习]]></title><link>https://blog.youkuaiyun.com/Alt__/article/details/121091691</link><guid>https://blog.youkuaiyun.com/Alt__/article/details/121091691</guid><author>Alt__</author><pubDate>Tue, 02 Nov 2021 00:53:35 +0800</pubDate><description><![CDATA[一、zookeeper概述

1、工作机制：



2、特点



3、数据结构



4、应用场景

A、统一命名服务



B、统一配置管理



C、统一集群管理



D、服务器动态上下线



E、软负载均衡



二、Zookeeper集群

1、选举机制

A、第一次启动



B、非第一次启动



2、节点类型



3、监听器原理






...]]></description><category></category></item><item><title><![CDATA[JAVA并发----线程数设置]]></title><link>https://blog.youkuaiyun.com/Alt__/article/details/121091329</link><guid>https://blog.youkuaiyun.com/Alt__/article/details/121091329</guid><author>Alt__</author><pubDate>Mon, 01 Nov 2021 23:27:29 +0800</pubDate><description><![CDATA[一、提出问题

为了加快程序处理速度，我们会将问题分解成若干个并发执行的任务。并且创建线程池，将任务委派给线程池中的线程，以便使它们可以并发地执行。在高并发的情况下采用线程池，可以有效降低线程创建释放的时间花销及资源开销，如不使用线程池，有可能造成系统创建大量线程而导致消耗完系统内存以及“过度切换”(在JVM中采用的处理机制为时间片轮转，减少了线程间的相互切换) 。

但是有一个很大的问题摆在我们面前，即我们希望尽可能多地创建任务，但由于资源所限我们又不能创建过多的线程。那么在高并发的情况下，我们怎么选择最]]></description><category></category></item><item><title><![CDATA[CompletableFuture用法]]></title><link>https://blog.youkuaiyun.com/Alt__/article/details/120821509</link><guid>https://blog.youkuaiyun.com/Alt__/article/details/120821509</guid><author>Alt__</author><pubDate>Mon, 18 Oct 2021 10:44:04 +0800</pubDate><description><![CDATA[一、是什么


是Java 8 新增加的Api,该类实现，Future和CompletionStage两个接口，提供了非常强大的Future的扩展功能，可以通过回调的方式处理计算结果

二、怎么用

1、创建异步任务：


public static void main(String[] args) throws Exception {
         ExecutorService executor = Executors.newFixedThreadPool(10);
         String ]]></description><category></category></item><item><title><![CDATA[异步任务概念及实现]]></title><link>https://blog.youkuaiyun.com/Alt__/article/details/120119215</link><guid>https://blog.youkuaiyun.com/Alt__/article/details/120119215</guid><author>Alt__</author><pubDate>Sun, 05 Sep 2021 20:24:20 +0800</pubDate><description><![CDATA[一、什么是同步和异步

同步是阻塞模式，异步是非阻塞模式。
	同步就是指程序在执行某个请求的时候，若该请求需要一段时间才能返回信息，那么这个进程将会—直等待下去，知道收到返回信息才继续执行下去。
	异步就是程序调用一个耗时较长的功能（方法）时，它并不会阻塞程序的执行流程，程序会继续往下执行。当功能执行完毕时，程序能够获得执行完毕的消息或能够访问到执行的结果（如果有返回值或需要返回值时）。
下面通过一个示例来看一下同步和异步的区别。示例中程序通过网络获取两个文件，并对两个文件进行合并处理：



二、实现异步]]></description><category></category></item><item><title><![CDATA[PO、VO、BO、DTO 和 POJO的概念和用处]]></title><link>https://blog.youkuaiyun.com/Alt__/article/details/119651591</link><guid>https://blog.youkuaiyun.com/Alt__/article/details/119651591</guid><author>Alt__</author><pubDate>Thu, 12 Aug 2021 19:51:14 +0800</pubDate><description><![CDATA[一、概念

第 1 个：DAO

　　DAO（Data Access Object）数据访问对象，它是一个面向对象的数据库接口，负责持久层的操作，为业务层提供接口，主要用来封装对数据库的访问，常见操作无外乎 CURD。我们也可以认为一个 DAO 对应一个 POJO 的对象，它位于业务逻辑与数据库资源中间，可以结合 PO 对数据库进行相关的操作。

第 2 个：PO

　　PO（Persistent Object）持久层对象，它是由一组属性和属性的get和set方法组成，最简单的 PO 就是对应数据库中某个表]]></description><category></category></item><item><title><![CDATA[解决spring boot + mybatis 查询数据返回实体类时，实体类个别字段值为null的问题]]></title><link>https://blog.youkuaiyun.com/Alt__/article/details/119534056</link><guid>https://blog.youkuaiyun.com/Alt__/article/details/119534056</guid><author>Alt__</author><pubDate>Mon, 09 Aug 2021 11:36:12 +0800</pubDate><description><![CDATA[主要原因：表的字段名找不到实体类的对应的属性

解决方案：

1、开启mybatis的字段命名驼峰转换，在 application.yml添加


mybatis:
  configuration:
    map-underscore-to-camel-case: true


即可。

    2、采用resultMap,将查出的数据的列名称对应的实体属性单独定义，形式为&lt;resultMap&gt;...&lt;/resultMap&gt;。例如：




...]]></description><category></category></item><item><title><![CDATA[软测题目总结]]></title><link>https://blog.youkuaiyun.com/Alt__/article/details/116717335</link><guid>https://blog.youkuaiyun.com/Alt__/article/details/116717335</guid><author>Alt__</author><pubDate>Wed, 12 May 2021 19:28:55 +0800</pubDate><description><![CDATA[1.软件开发过程模型

瀑布模型：严格按照线性的、按阶段顺序逐步细化的开发模式

螺旋模型：基本思路时依据前一版本的结果构造新的版本，需要经历多次需求分析、设计、实现、测试这组顺序活动，不断重复迭代的过程形成了一个螺旋上升的路径（整个过程需要迭代多少次取决于具体情况）

         优点：能在迭代过程中收集到各种度量的数据

         缺点：需要投入更多的人力来更细致的管理其过程，主要因为每次迭代完必须保证其文档的一致性

增量模型：每次迭代只是在前一次...]]></description><category></category></item><item><title><![CDATA[小米测试面试题]]></title><link>https://blog.youkuaiyun.com/Alt__/article/details/115918578</link><guid>https://blog.youkuaiyun.com/Alt__/article/details/115918578</guid><author>Alt__</author><pubDate>Tue, 20 Apr 2021 21:09:46 +0800</pubDate><description><![CDATA[1.软件开发模型，不同模型间的区别？


2.软件测试分为哪几个阶段，集成测试和系统测试之间的区别？

主要分为四个阶段：单元测试、集成测试，系统测试、验收测试

集成测试和系统测试的区别：

1.测试方法不同：集成测试采用白盒+黑盒，系统测试采用黑盒

2.考察范围不同：集成测试主要测试模块之间的接口和接口数据传递关系，以及模块组合后的整体功 能；系统测试主要测试整个系统相对于需求的符合度

3.评估基准不同：集成测试主要是接口覆盖率，系统测试是测试用例对需求规格的覆盖率


3.白盒测试和黑盒测试的优缺]]></description><category></category></item><item><title><![CDATA[测试常见面试题]]></title><link>https://blog.youkuaiyun.com/Alt__/article/details/115707911</link><guid>https://blog.youkuaiyun.com/Alt__/article/details/115707911</guid><author>Alt__</author><pubDate>Wed, 14 Apr 2021 20:36:34 +0800</pubDate><description><![CDATA[1.公司的测试流程：

首先参与需求评审会议，产品会介绍产品业务及功能细节，开发会对功能实现流程做一个介绍；之后大佬制定具体测试计划，然后我们编写测试用例，写完后进行用例评审。等开发开发完成并且自测通过后提测，测试正式介入。先进行一轮详细测试，测试过程中发现的bug做好详细记录，并对bug进行跟踪，进行回归测试，直至产品满足需求。详细测试完成后有两人进行合并测试，测试结束后分析测试结果，编写测试报告。最后就是发布上线。上线后关注线上产品是否正常运行。

2.项目相关：



3.开发不认识bug怎么办？

]]></description><category></category></item><item><title><![CDATA[postman使用指南]]></title><link>https://blog.youkuaiyun.com/Alt__/article/details/115592923</link><guid>https://blog.youkuaiyun.com/Alt__/article/details/115592923</guid><author>Alt__</author><pubDate>Sun, 11 Apr 2021 11:37:12 +0800</pubDate><description><![CDATA[简单使用指南：

下图是Postman的工作区间，各个模块功能的介绍如下：

1、New，在这里创建新的请求、集合或环境；还可以创建更高级的文档、Mock Server 和 Monitor以及API。
2、Import，这用于导入集合或环境。有一些选项，例如从文件，文件夹导入，链接或粘贴原始文本。
3、Runner，可以通过Collection Runner执行自动化测试。后续介绍。
4、Open New，打开一个新的标签，Postman窗口或Runner窗口。
5、My Workspace - 可以单独或]]></description><category></category></item><item><title><![CDATA[自动化测试---元素定位]]></title><link>https://blog.youkuaiyun.com/Alt__/article/details/113879324</link><guid>https://blog.youkuaiyun.com/Alt__/article/details/113879324</guid><author>Alt__</author><pubDate>Sat, 20 Feb 2021 11:13:11 +0800</pubDate><description><![CDATA[1. Xpath 定位


	绝对路径（不推荐）
	
是一个完整的xpath路径，可通过浏览器插件定位并直接生成。但因为这种方式是直接写死的，页面一旦发生改动，维护成本非常大，所以我们一般都采用相对路径。例如：xpath=/html/body/div[2]/div[1]/div/div[1]/div/form/span[1]/input


	相对路径（推荐）
	
  就是使用元素本身定位。例：//*[@id="kw"]

xpath常用符号：
	　　/ 　　表示绝对路径绝对路径是指从根目录开始
		　..]]></description><category></category></item><item><title><![CDATA[Puppeteer Error：Execution context was destroyed, most likely because of a navigation.]]></title><link>https://blog.youkuaiyun.com/Alt__/article/details/113878997</link><guid>https://blog.youkuaiyun.com/Alt__/article/details/113878997</guid><author>Alt__</author><pubDate>Sat, 20 Feb 2021 11:03:27 +0800</pubDate><description><![CDATA[原因：页面发生了跳转导致page丢失

解决方案：


// 在跳转之后添加
await page.waitForNavigation(); // 等待页面跳转


]]></description><category></category></item><item><title><![CDATA[Linux基本命令]]></title><link>https://blog.youkuaiyun.com/Alt__/article/details/111632961</link><guid>https://blog.youkuaiyun.com/Alt__/article/details/111632961</guid><author>Alt__</author><pubDate>Thu, 24 Dec 2020 15:25:03 +0800</pubDate><description><![CDATA[一.系统命令

logout(注销) ,shutdown(关闭系统), halt(关机并切断电源), reboot(重启)

二.文件和目录操作

1. ls (列出文件列表),常用参数: -l , 用于显示目录下的文件

例:显示当前目录下文件列表

root@Lan-Test:~# ls -l 

root@Lan-Test:~# ll

2. cd (切换目录)，可让用户切当前所在的目录，即changedirectory

例:切换到/data/jetty-7.6.9/目录

root@Lan-Te.]]></description><category></category></item><item><title><![CDATA[秒杀服务]]></title><link>https://blog.youkuaiyun.com/Alt__/article/details/107871721</link><guid>https://blog.youkuaiyun.com/Alt__/article/details/107871721</guid><author>Alt__</author><pubDate>Thu, 24 Dec 2020 15:21:53 +0800</pubDate><description><![CDATA[定时任务&amp;Cron表达式






]]></description><category></category></item><item><title><![CDATA[Git常用分支命令]]></title><link>https://blog.youkuaiyun.com/Alt__/article/details/111632535</link><guid>https://blog.youkuaiyun.com/Alt__/article/details/111632535</guid><author>Alt__</author><pubDate>Thu, 24 Dec 2020 15:20:03 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[多线程面试总结一]]></title><link>https://blog.youkuaiyun.com/Alt__/article/details/109049974</link><guid>https://blog.youkuaiyun.com/Alt__/article/details/109049974</guid><author>Alt__</author><pubDate>Tue, 13 Oct 2020 15:42:29 +0800</pubDate><description><![CDATA[1.在Java程序中怎么保证多线程的运行安全？

出现线程安全问题的原因：

线程切换带来的原子性问题
	缓存导致的可见性问题
	编译优化带来的有序性问题
解决方案：

JDK Atomic开头的原子类，synchronized，LOCK，可以解决原子性问题
	synchronized，volatile，LOCK可以解决可见性问题
	Happens-Before规则可以解决有序性问题
2.线程与进程的区别

根本区别：进程是操作系统资源分配的基本单位，线程是处理器任务调度和执行的基本单位

资源开销：进程之]]></description><category></category></item><item><title><![CDATA[Java面试题2]]></title><link>https://blog.youkuaiyun.com/Alt__/article/details/108691881</link><guid>https://blog.youkuaiyun.com/Alt__/article/details/108691881</guid><author>Alt__</author><pubDate>Sun, 20 Sep 2020 12:48:44 +0800</pubDate><description><![CDATA[1.数组与集合的互相转换

数组转 List：使用 Arrays. asList(array) 进行转换。
	List 转数组：使用 List 自带的 toArray() 方法。
2.创建线程的四种方式

继承 Thread 类；
	实现 Runnable 接口；
	实现 Callable 接口；
	使用 Executors 工具类创建线程池
3.数据库的乐观锁和悲观锁是什么？怎么实现的？

数据库管理系统（DBMS）中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及]]></description><category></category></item><item><title><![CDATA[八大排序算法总结]]></title><link>https://blog.youkuaiyun.com/Alt__/article/details/108398689</link><guid>https://blog.youkuaiyun.com/Alt__/article/details/108398689</guid><author>Alt__</author><pubDate>Fri, 04 Sep 2020 10:07:26 +0800</pubDate><description><![CDATA[原文地址：http://blog.youkuaiyun.com/hguisu/article/details/7776068

概述

排序有内部排序和外部排序，内部排序是数据记录在内存中进行排序，而外部排序是因排序的数据很大，一次不能容纳全部的排序记录，在排序过程中需要访问外存。

我们这里说说八大排序就是内部排序。





当n较大，则应采用时间复杂度为O(nlog2n)的排序方法：快速排序、堆排序或归并排序。

 快速排序：是目前基于比较的内部排序中被认为是最好的方法，当待排序的关键字是随机...]]></description><category></category></item><item><title><![CDATA[数组和链表的区别]]></title><link>https://blog.youkuaiyun.com/Alt__/article/details/107941230</link><guid>https://blog.youkuaiyun.com/Alt__/article/details/107941230</guid><author>Alt__</author><pubDate>Tue, 11 Aug 2020 18:01:47 +0800</pubDate><description><![CDATA[谈到链表与数组的区别，可以从几个不同的角度来谈，

首先从逻辑结构上说，两者都是数据结构的一种，但存在区别，

数组是申请的一块连续的内存空间，并且是在编译阶段就要确定空间大小的，同时在运行阶段是不允许改变的，所以它不能够随着需要的改变而增加或减少空间大小，所以当数据量大的时候，有可能超出了已申请好的数组上限，产生数据越界，或者是数据量很小，对于没有使用的数组空间，造成内存浪费。

链表则是动态申请的内存空间，并不像数组一样需要事先申请好大小，链表是现用现申请就OK，根据需求动态的申请或删除内存空间，对于的]]></description><category></category></item></channel></rss>