![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java学习
文章平均质量分 72
洋气月
这个作者很懒,什么都没留下…
展开
-
redis启动失败
(2)重新打开一个cmd,查看端口6379被哪个进程id占用,查出pid是18704。(1)打开cmd,查看端口6379是否被某个进程占用,跳出一个空白cmd说明被占用。(4)依次转第(2)步、第(1)步指令查看端口6379是否还被占用,未被占用。(3)杀死这个16400进程。原创 2022-10-14 10:35:45 · 572 阅读 · 0 评论 -
karate参数使用和设置debug超长延时
karate一些参数说明和设置debug超长延时。原创 2022-10-10 17:28:47 · 379 阅读 · 0 评论 -
Scenario和Scenario Outline的区别
可以发现比较冗余,每次都写一样的代码,那么这时候可以使用scenario outline。不会每次都重复跑scenario,而是每次都跑一行,原创 2022-09-05 15:33:50 · 630 阅读 · 1 评论 -
网络重要知识点
request里面最重要的是:如果是application/json,那么request里面就把一个字符串化后的json 数据放在body里,这样服务器可以把它恢复成正确的数据结构,比如说{["ab","bc"]},到服务器端恢复出来就是String XX[],String数组。Reuqest如果是直接发binary stream过来,服务器这端就用byte[]接收。对于Response也一样,有字节流类型,有字符串类型(text类型),也有json转成字符串类型(另一种text类型)...原创 2022-08-29 14:44:10 · 690 阅读 · 0 评论 -
Google测试之道读后感
测试人员严格区分为SET和TE。SET前期深度参与项目的开发,推动开发人员的自测,从破坏者的角度寻找各种bug,通过开发各种测试工具来提高工作效率。TE则在后期项目被确立后参与进来,从用户的角度去平衡开发与需求。google中测试人员被派驻到到各个产品中进行测试,SET更多的负责产品的质量保障,加快测试与研发的效率,而TE则是从用户角度去体验和完善产品,优化各个逻辑操作,推动产品的用户体验。原创 2022-08-25 11:24:47 · 1763 阅读 · 0 评论 -
异常exception和错误error即推荐用法@sneakythrow
Throwable类是Java异常类型的顶层父类,一个对象只有是 Throwable 类的(直接或者间接)实例,他才是一个异常对象,才能被异常处理机制识别。JDK中内建了一些常用的异常类【如图】,我们也可以自定义异常。原创 2022-08-25 11:20:34 · 1384 阅读 · 0 评论 -
jmockit,mockito和powermock
123456。原创 2022-08-22 16:02:57 · 225 阅读 · 0 评论 -
【cto面经】
一面:一面也就是所谓的简历面,你简历有什么会问什么,也比较基础,不会的就答不会罢了.1.TCP、UDP的区别(八股)2.TCP三次握手和四次挥手(八股)3.HTTP、HTTPS区别(八股)问了下项目相关的一点点东西4.CPU内部结构及作用(八股)5.进程和线程的区别和联系(八股)6.CPU进程调度算法(八股)7.集合类的各种继承关系(八股)8.HashMap与HashTable区别,HashTable底层实现(八股)9. Volatile和synchronized的区别(八股).原创 2022-03-29 14:32:43 · 4181 阅读 · 0 评论 -
CSAPP 程序的机器级表示
1、历史发展 我们先来简单的了解一下Intel处理器的发展历史。 1978年Intel发布了第一款微处理器-8086,在接下来的四十多年里,Intel不断地推出新的处理器,从最早的16位扩展到32位,近些年又扩展到64位。 2、程序编码 下面看一个C代码的例子: #include<stdio.h>void mulstore(long,long,long *);int main() {long d;multstore(2,3,&d) ;...原创 2022-03-21 10:44:42 · 1114 阅读 · 0 评论 -
tcp/ip五层协议模型
每一层都呼叫它的下一层提供的网络来完成自己的需求。(如果是四层模型数据链路层和物理层在一层)1、物理层:负责光电信号传递方式。集线器工作在物理层。以太网协议。2、数据链路层:负责设备之间的数据帧的传输和识别。交换机工作在数据链路层。例如网卡设备的驱动,帧同步,冲突检测,数据差错校验等工作。3、网络层:负责地址管理和路由选择。路由器工作在网络层。4、传输层:负责两台主机之间的数据传输。5、应用层:负责应用程序之间的沟通。网络编程主要针对的就是应用层。传输层和网络层的封装在操作系统完成。原创 2022-03-17 10:24:24 · 4113 阅读 · 0 评论 -
Session、Token、Jwt、Oauth2 区别和原理详解
1.认证(Authentication)通俗的说就是验证当前用户的身份,证明你是你自己。2.授权(Authorizatio)用户授予第三方应用访问该用户某些资源的权限。实现授权的方式分为: cookie session token OAuth 3.什么是Cookie HTTP是无状态的协议(对于事务处理没有记忆能力,每次客户端和服务端会话完成时,服务端不会保存任何会话信息):每个请求都是独立的,服务端无法分辨上一次的请求发...原创 2022-03-17 10:17:46 · 6860 阅读 · 0 评论 -
【mysql系列】锁
从锁的粒度,我们可以分成两大类:表锁 开销小,加锁快;不会出现死锁;锁定力度大,发生锁冲突概率高,并发度最低 行锁 开销大,加锁慢;会出现死锁;锁定粒度小,发生锁冲突的概率低,并发度高 不同的存储引擎支持的锁粒度是不一样的:InnoDB行锁和表锁都支持! MyISAM只支持表锁!InnoDB只有通过索引条件检索数据才使用行级锁,否则,InnoDB将使用表锁也就是说,InnoDB的行锁是基于索引的!表锁下又分为两种模式:表读锁(Table Read Lock)...原创 2022-03-15 14:46:01 · 493 阅读 · 0 评论 -
【mysql系列】面试必问:索引
一般对索引有以下认知:索引可以加快数据库的检索速度 表经常进行INSERT/UPDATE/DELETE操作就不要建立索引了,换言之:索引会降低插入、删除、修改等维护任务的速度。 索引需要占物理和数据空间。 了解过索引的最左匹配原则 知道索引的分类:聚集索引和非聚集索引 Mysql支持Hash索引和B+树索引两种看起来好像啥都知道,但面试让你说的时候可能就GG了:使用索引为什么可以加快数据库的检索速度啊? 为什么说索引会降低插入、删除、修改等维护任务的速度。 索引的最左匹配原则指的是什原创 2022-03-09 11:18:27 · 1299 阅读 · 0 评论 -
【mysql系列】MVCC通俗解释
为什么要有事务说到事务,不得不提到转账的事情,几乎所有的关于事务的文章都会提到这个老掉牙的案例,我也不例外。转账在数据库层面可以简单的抽象成两个部分:从自己的账户中扣除转账金额; 往对方账户中增加转账金额。如果先从自己的账户中扣除转账金额,再往对方账户中增加转账金额,扣除执行成功,增加执行失败,那自己的账户白白少了100块,欲哭无泪。如果先往对方账户中增加转账金额,再从自己的账户中扣除转账金额,增加执行成功,扣除执行失败,那对方账户白白增加了100块,自己的账户也没有扣钱,喜大普奔。原创 2022-03-08 13:36:18 · 478 阅读 · 0 评论 -
【mysql系列】Redis与MySQL双写一致性如何保证?
谈谈一致性一致性就是数据保持一致,在分布式系统中,可以理解为多个节点中数据的值是一致的。强一致性:这种一致性级别是最符合用户直觉的,它要求系统写入什么,读出来的也会是什么,用户体验好,但实现起来往往对系统的性能影响大 弱一致性:这种一致性级别约束了系统在写入成功后,不承诺立即可以读到写入的值,也不承诺多久之后数据能够达到一致,但会尽可能地保证到某个时间级别(比如秒级别)后,数据能够达到一致状态 最终一致性:最终一致性是弱一致性的一个特例,系统会保证在一定时间内,能够达到一个数据一致的状态。这原创 2022-03-07 18:09:52 · 203 阅读 · 0 评论 -
【mysql系列】引擎innodb 、myisam7点对比和如何选择?
InnoDB 支持事务,MyISAM 不支持事务。这是 MySQL 将默认存储引擎从 MyISAM 变成 InnoDB 的重要原因之一; InnoDB 支持外键,而 MyISAM 不支持。对一个包含外键的 InnoDB 表转为 MYISAM 会失败; InnoDB 是聚簇索引,MyISAM 是非聚簇索引。聚簇索引的文件存放在主键索引的叶子节点上,因此 InnoDB 必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其原创 2022-03-07 17:59:10 · 456 阅读 · 0 评论 -
【mysql系列】数据库六大范式详解
目前关系数据库有六种范式:第一范式(1NF) 第二范式(2NF) 第三范式(3NF,又称巴斯-科德范式(BCNF)) 第四范式 (4NF) 第五范式(5NF,又称完美范式)最常接触到的是前三个范式范式具体是用来干嘛的?我们在设计关系数据库时,要遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小,简单来说就是规范数据库的设计重要的概念:函数依赖(functional dependency) :若在一原创 2022-03-07 17:52:47 · 1266 阅读 · 0 评论 -
四种元注解(target、retention、documented、inherited)
目录1、元注解(meta-annotation): @Target: @Retention: @Documented: @Inherited:自定义注解:1、元注解(meta-annotation): 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解: 1.@Target, 2.@Retention,...原创 2022-03-01 10:14:15 · 1309 阅读 · 0 评论 -
python脚本连接数据库
# -*- coding: utf-8 -*-import unittestfrom sqlalchemy import create_enginefrom sqlalchemy.engine import reflectionclass TestMySQL(unittest.TestCase): def setUp(self): # 创建连接 self.engine = create_engine("mysql+pymysql://root:1234.原创 2022-02-24 15:26:51 · 1043 阅读 · 0 评论 -
selenium自动化测试页面功能
from selenium import webdriverfrom time import sleepfrom selenium.webdriver.common.action_chains import ActionChains# 加上参数,禁止 chromedriver 日志写屏options = webdriver.ChromeOptions()options.add_experimental_option( 'excludeSwitches', ['enable-loggin.原创 2022-02-24 15:24:09 · 456 阅读 · 0 评论 -
【mysql系列】 三大日志详解(binlog、redolog、undolog)
binlog、redolog、undologredo log保证事务的持久性,undo log用来帮助事务回滚及MVCC的功能。binlog用于记录数据库执行的写入性操作(不包括查询)信息,以二进制的形式保存在磁盘中。binlog是mysql的逻辑日志逻辑日志:可以简单理解为记录的就是sql语句。 物理日志:因为mysql数据最终是保存在数据页中的,物理日志记录的就是数据页变更。binlog是通过追加的方式进行写入的,可以通过max_binlog_size参数设置每个...原创 2022-02-24 11:31:52 · 973 阅读 · 0 评论 -
GC回收算法&垃圾收集器&GC日志解释
垃圾收集算法1、标记-清除(Mark-Sweep)算法 这是最基础的算法,标记-清除算法就如同它的名字样,分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,标记完成后统一回收所有被标记的对象。这种算法的不足主要体现在效率和空间,从效率的角度讲,标记和清除两个过程的效率都不高;从空间的角度讲,标记清除后会产生大量不连续的内存碎片, 内存碎片太多可能会导致以后程序运行过程中在需要分配较大对象时,无法找到足够的连续内存而不得不提前触发一次垃圾收集动作。标记-清除算法执行过程如图:...原创 2022-02-16 15:04:30 · 273 阅读 · 0 评论 -
几种常见web 容器
web容器1. Tomcat是Apache鼎力支持的Java Web应用服务器,由于它优秀的稳定性以及丰富的文档资料,广泛的使用人群,从而在开源领域受到最广泛的青睐。2. Jboss作为Java EE应用服务器,它不但是Servlet容器,而且是EJB容器,从而受到企业级开发人员的欢迎,从而弥补了Tomcat只是一个Servlet容器的缺憾。3.Resin也仅仅是一个Servlet容器,然而由于它优秀的运行速度,使得它在轻量级Java Web领域备受喜爱,特别是在互联网Web服务领域,众多.原创 2022-01-13 10:24:30 · 4350 阅读 · 0 评论 -
Filter 和 Interceptor区别
Filter和Interceptor的联系和区别 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/456610808?utm_source=wechat_session&utm_medium=social&utm_oi=1197944133762072576&utm_campaign=shareopn《Filter简述和@Filter注解使用》主要对过滤器Filter进行了简单的说明,本文将对拦截器Interceptor进行简单讲解,并通原创 2022-01-13 10:16:34 · 1794 阅读 · 0 评论 -
java中for、foreach、stream性能比较
java中for、foreach、stream性能比较进步你我他 2020-04-06 19:20:13 5879 收藏 8文章标签: java 算法版权我们在开发中循环遍历一个数组经常会用到,jdk8推出了一些新特性,对循环做了比较,通过代码亲测,记录一下!1、for循环public static void main(String[] args) { Long startTime = System.currentTimeMillis(); formMethod...原创 2021-12-22 09:31:49 · 4663 阅读 · 1 评论 -
牛客:操作系统
1. 进程和线程的区别?调度:进程是资源管理的基本单位,线程是程序执行的基本单位。 切换:线程上下文切换比进程上下文切换要快得多。 拥有资源: 进程是拥有资源的一个独立单位,线程不拥有系统资源,但是可以访问隶属于进程的资源。 系统开销: 创建或撤销进程时,系统都要为之分配或回收系统资源,如内存空间,I/O设备等,OS所付出的开销显著大于在创建或撤销线程时的开销,进程切换的开销也远大于线程切换的开销。为什么需要线程?线程产生的原因:进程可以使多个程序能并发执行,以提高资源的利用率和系统的吞..原创 2021-12-07 21:15:50 · 419 阅读 · 0 评论 -
数据库binlog(二进制日志binary log)
二进制日志中存储的内容称之为事件,每一个数据库更新操作(Insert、Update、Delete,不包括Select)等都对应一个事件。mysql binlog基本原理 - 简书 (jianshu.com)https://www.jianshu.com/p/a0bcb778b7f5(27条消息) 消息中间件(一)MQ详解及四大MQ比较_jcpp9527的博客-CSDN博客_mqhttps://blog.csdn.net/wqc19920906/article/details/82193316基于bi原创 2021-12-01 10:23:27 · 7180 阅读 · 1 评论 -
高并发问题如何回答?
(19 封私信 / 62 条消息) 我没有高并发项目经验,但是面试的时候经常被问到高并发、性能调优方面的问题,有什么办法可以解决吗? - 知乎 (zhihu.com)https://www.zhihu.com/question/421237964/answer/1795200233下面我结合我面试候选人的经验,以及我对高并发的理解,给你一个非常完整的建议。如果能认真看完,我相信一定有所收获,至少应付面试没啥问题。首先说一下,当我作为面试官问候选人「对于高并发的理解」时,我觉得「答得不好」的情况分.原创 2021-11-29 15:09:51 · 625 阅读 · 0 评论 -
【架构知识】微服务有什么认识?微服务演进?
1,单体架构Web应用程序发展的早期,大部分web工程是将所有的功能模块(service side)打包到一起并放在一个web容器中运行,很多企业的Java应用程序打包为war包。其他语言(Ruby,Python或者C++)写的程序也有类似的问题。假设你正在构建一个在线商店系统:客户下订单、核对清单和信用卡额度,并将货物运输给客户。很快,你们团队一定能构造出如下图所示的系统。这种将所有功能都部署在一个web容器中运行的系统就叫做单体架构(也叫:巨石型应用)单体架构有很多好处:IDE都是为原创 2021-11-29 11:24:40 · 661 阅读 · 0 评论 -
Docker【狂神笔记】
1,what?打包装箱,每个互相隔离,将服务器利用到极致传统:开发jar包,运维下载然后自己配环境运行now:开发、打包、部署、上线,一套流程做完java-----apk---发布(应用商店)----张三使用spk----安装即可用java-----jar(环境·)-----打包项目带上环境(镜像)------(Docker仓库:商店)------下载我们发布的镜像---直接运行2,...原创 2021-11-26 16:02:02 · 244 阅读 · 0 评论 -
Linux基本命令
1,ls,touch,mkdir//创建文件touch 11111.txt//创建隐藏文件touch .22.txt//创建文件夹mkdir 222//列出文件和隐藏文件ls -a //以列表形式显示ls -l//以列表显示文件时,以合适的单位来显示ls -l -h//以2开头的所有文件ls 2*//以2开头的,后面必须只有一位的文件(一个?只表示一位)ls 2?//顺序不唯一,结果都一样ls -l -h -a <======>ls原创 2021-11-16 15:28:53 · 1744 阅读 · 0 评论 -
基本类型long在内存中以补码存在
深度剖析数据在内存中的存储(原码、补码、反码、大小端、面试题)_m0_49622667的博客-CSDN博客我们知道基本的数据类型有char ,short, int, long,long long ,float,double.那么这些数据在内存中是怎样存储的呢? 一、整形在内存中的存储int a=10;这句代码大家应该扫一眼就能看懂;这代表我们为变量a分配4个字节;那这个数据在内存中怎么存储的?我先为大家解开谜题:对于整形来说,数据存放内存中其实是存放补码。补码又是什么鬼?接下来咱们先补补课计算机中的有符..原创 2021-11-08 10:39:19 · 684 阅读 · 0 评论 -
Win10 端口被占用解决方案
Windows平台在windows命令行窗口下执行:C:>netstat -aon|findstr "80"TCP 127.0.0.1:80 0.0.0.0:0 LISTENING 2448可知:端口被进程号为2448的进程占用,继续执行下面命令:根据进程号来查看相应的进程:C:>tasklist|findstr "2448"thread.exe 2016 Console 0 16,064 K很清楚吧,thread占用了你的端口,Kill it如果第二步查不到,那就开任务管理原创 2021-11-04 18:16:57 · 3249 阅读 · 0 评论 -
transient关键字
java中的关键字transient,这篇文章你再也不发愁了https://baijiahao.baidu.com/s?id=1636557218432721275&wfr=spider&for=pc这个关键字的作用其实我在写java的序列化机制中曾经写过,不过那时候只是简单地认识,只要其简单的用法,没有深入的去分析。这篇文章就是去深入分析一下transient关键字。先给出这篇文章的大致脉络首先,介绍了transient的基本概念和基本用法、然后,介绍深入分析一下transie原创 2021-11-02 10:28:20 · 159 阅读 · 0 评论 -
Comparator的comparing实现排序
public static void main(String[] args) { ArrayList<Model> models = new ArrayList<>(); Model model1 = new Model(); model1.setAge(300); model1.setName("a"); models.add(model1); Model model2 = ne...原创 2021-10-29 16:15:21 · 1659 阅读 · 0 评论 -
排序算法模板总结【y总最简洁模板】
1,各算法复杂度2,冒泡排序优化:加一个bool flag = false;只要扫一遍之后没有swap交换过,则flag就一直为false。然后flag部位true,则跳出注意每次循环,结尾的是最大的,不需要再次比对 public static int[] BubbleSort(int[] nums) { boolean flag = false; for (int i = 0; i < nums.length; i++) { .原创 2021-10-28 14:12:16 · 347 阅读 · 0 评论 -
在一个循环中将许多字符串连接在一起时,使用 StringBuilder类可以提升性能
String对象是不可改变的。每次使用System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的String对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用System.Text.StringBuilder类。 通过用一个重载的构造函数方法初始化变量,可以创建StringBuilder类的新实例,正如以下示例中所阐释的那样。StringBuilder My...原创 2021-10-27 16:49:09 · 405 阅读 · 0 评论 -
直接继承InputStream的类和需要filterInputstream过滤的类
FilterInputStream, read(), OutputStream, PushbackInputStream下面哪个是FilterInputStream的子类?继承FilterInputStream,需要被过滤的数据:BufferedInputStream,, DataInputStream直接继承InputStream:ByteArrayInputStream,FileInputStream,PipedInputStream...原创 2021-10-25 15:37:05 · 402 阅读 · 0 评论 -
算法(y总)
目录1,二分算法模板如何选择差别:mid计算不同,一个下取,一个上取(L + R + 1 >>> 1)1,二分算法模板如何选择若二分的点是绿色的(绿线最左边的黄色点),则用模板一;若二分的点是红色的(红线最右边的黄色点),则用模板二。模板一中:如果M(二分得到的中点)取到,是在绿色线上,则黄点在M左边且M可能正好取到黄点上,所以区间变为【L,M】。如果M取到在红线上,黄点在M右边且M不可能取到,所以是【M+1,R】;模板二同理...原创 2021-10-15 17:02:39 · 1741 阅读 · 0 评论 -
查看端口被占用的进程并关闭
命令:netstat -ano|findstr 80801.使用cmd命令查看端口号占用情况,例如查看端口 8014,可以看出进程号为10728;netstat -ano | findstr 端口号2.关闭该进程方法一:使用任务管理器关闭:菜单栏 -> 右键 - > 任务管理器 -> 详细信息,根据PID排序找到PID为10728的进程,选择后点击结束任务。方法二: 使用命令关闭命令:taskkill -PID 进程号 -F...原创 2021-10-13 15:11:29 · 1128 阅读 · 0 评论