自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 收藏
  • 关注

原创 Java实现端口扫描器

通过Java实现一个端口扫描器原理介绍端口扫描顾名思义,就是扫描目的资源的端口,来发现目的资源是否对外开放某个端口,提供了某种网络服务。在安全攻防领域经常通过端口扫描技术来发现关键资产对外提供服务的情况。红军为发现暴露的风险点,进行安全加固;蓝军为识别目标服务,以便识别资产的脆弱点,实施针对性网络攻击。实现功能介绍对指定ip进行指定端口进行扫描,获取目的ip的端口开放情况扫描模式:TCP全连接扫描、TCP半连接扫描(待实现)通过发送空信息,获取开放端口对应服务的应答,获取指纹信息,从而判

2021-11-09 09:04:23 6734

原创 DNS协议介绍与原理剖析

2021-07-14 00:41:36 169

原创 SpringBoot 2.2.x 的一些坑

背景: druid版本:1.1.10; springboot版本:2.2.5 RELEASE坑一:报错:Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically...

2020-03-14 02:00:45 4495

原创 Windows下,如何查找进程的端口号和PID

一、查看端口号:法1:调出“任务处理器”,选择“详细信息”功能,可以直接查看程序PID,如图:法2:tasklist二、通过PID查找进程如果pid是80,则打开“cmd 窗口”,运行命令:tasklist|findstr "80"三、查找端口号的使用进程如果端口是80,则打开“cmd 窗口”,运行命令:netstat -aon|findstr "80"...

2020-03-14 00:24:33 2691

原创 使用Javac编译时,出现乱码

报错: 今天在主动使用javac编译类的时候,发现报错,报错内容为部分乱码,表示:某些字符无法用GBK编码解析; 原因分析: 发现所在的行数存在中文注释,联想可知,编译时,编码格式的问题出现问题;我的代码文本是UTF-8格式,但是javac命令使用了GBK来解析我的java文件,导致中文识别为乱码。 解决方案: 1、编译时使用 “javac -encodi...

2019-12-10 08:42:49 2112

原创 Java实现Socket网络聊天室

最近在学Socket编程,为了巩固知识,简单实现了一个网络聊天室;目前只实现了个群聊功能,有时间继续更新和完善,下面附上代码截图,代码上都有详细的注释,如果有看不懂的地方,欢迎留言或私信我。 一、源代码地址:https://github.com/aa792978017/ChatRoom 二、本地多客户端调试效果图:(为了方便本地调试区分不同客户端,这里把用户名都设置为了“路人xxx...

2019-12-09 20:41:50 4218 4

原创 IDEA快捷键记录

一、精确跳转1.查看实现类:ctrl + alt + B2.查看基类: ctrl + O3.查看继承关系:ctrl + H4.查看类文件的结构:alt + 7, 之后按 esc 光标会回到文本里面。5.查看项目目录:alt + 1,同上6.左右窗口切换:alt + ⬅/➡7.两个项目窗口来回切换:ctrl + alt + [ / ]8.查看最近打开的文件:ctrl ...

2019-09-25 17:11:15 449

原创 秒杀系统操作笔记

Springboot 打包命令1.mvn clean2.mvn install3.java -jar xxx.jarSpringboot读取配置文件方式 @Component @ConfigurationProperties(prefix="ds") @PropertySource("classpath:ds.properties") 新建一个...

2019-09-09 21:54:54 164

原创 如何成为一名软件测试工程师

最近在做测试工作,需要具备测试的技能,抽空了解了学习了测试工程师相关的工作职责和技能需求,这里简单做个总结文章最后会贴上我做的xmind思维导图文件连接,感兴趣的可以下载。持续分享各种学习记录,大家可以多关注,也希望能与大家一起讨论交流,欢迎留言。百度网盘链接链接:https://pan.baidu.com/s/1TlXX_NA_FCJ59m53CLUh7w提取码:g70t...

2019-07-05 11:47:13 379

原创 REST API 接口测试总结

最近在做测试相关的工作,简单学习和总结了一下REST API测试知识 文章最后会贴上我做的xmind思维导图文件连接,感兴趣的可以下载。 博主持续分享各种学习记录,大家可以多关注,也希望能与大家一起讨论交流,欢迎留言。百度网盘链接链接:https://pan.baidu.com/s/1TlXX_NA_FCJ59m53CLUh7w提取码:g70t...

2019-07-04 10:38:52 368

原创 RPC是什么?跟REST的区别是什么?

经常看到RPC等字样,一直好奇是啥,查了下资料,这里用脑图做个简单总结,大家可以通过这个总结对他们有个整体认识,有时间再深入分析一下原理和主流的RPC框架文章最后会贴上我做的xmind思维导图文件连接,感兴趣的可以下载。博主持续分享各种学习记录,大家可以多关注,也希望能与大家一起讨论交流,欢迎留言。百度网盘链接链接:https://pan.baidu.com/s/1...

2019-07-02 14:34:33 447

原创 Java-IO简要总结

Java的IO体系中包括BIO、NIO和AIO,也是面试中场问的问题,这里用脑图做个简单总结,后续把原理分析跟进一下 文章最后会贴上我做的xmind思维导图文件连接,感兴趣的可以下载。 博主持续分享各种学习记录,大家可以多关注,也希望能与大家一起讨论交流,欢迎留言。百度网盘链接链接:https://pan.baidu.com/s/1TlXX_NA_FCJ59m53CLU...

2019-07-02 11:39:30 221

原创 创业知识积累

写在前面 推荐大家一个解密创业的公众号--"蛋解创业",以下内容总结于该公众号的文章. 文章最后会贴上我做的xmind思维导图,感兴趣的可以下载。 博主持续分享各种学习记录,大家可以多关注,也希望能与大家一起讨论交流,欢迎留言。1.网红店速成套路和持续经营模式要素广告宣传新趋势----故事化营销相关书籍分享:《故事经济学》、《故事》,作者:罗伯特·麦基...

2019-06-28 13:03:15 180

原创 学习技巧积累

复习原则英语单词背诵技巧:活用构词法多做脑图总结借助制图工具processon或者xmind等工具,进行思维导图制作,回忆知识点,理解和建立知识体系结构,然后查漏补缺制作脑图要点1.结构清晰,逻辑明了2.不要由过多的细节,总结概括为主,难以理解的地方可以多花点笔墨记录细节3.一般第二遍学习的时候再做,不要每理解知识点就开始做脑图提高大脑学习能力---参考书籍...

2019-06-23 23:56:42 162

原创 LeetCode(3)--无重复字符串的最长子串--Java实现

题目描述:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。思路:1.暴力解法:尝试计算每一种子串是否有重复,如果没有重复,记录其长度,记录最长的一个不重复子串,这个解法显然不是好的解法.这里就不介绍了.2.滑动窗口:通过一个可以移动的窗口(i,j),起始时i=j=0,j依次递增遍历到的字符,如果该字符未出现过,保存在一个HashSet里面,记录此时的长度,更...

2019-06-19 12:10:27 272

原创 LeetCode(2)-- 两数相加--Java实现

问题描述:给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。思路:因为两个链表遍历时是从各位开始,而且最后输出的链表也是从个位开始,因此,我们可以每次顺序两个链表遍历一个节...

2019-06-18 18:47:40 758

原创 Springmvc中文参数乱码

1.今天用SpringMVC,用postman传中文参数,传到后端老是乱码,后端代码里面也设置了UTF-8,结果发现是Tomcat的问题,修改tomcat的conf/server.xml中的<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" useBodyEnco...

2019-06-10 14:56:34 418

原创 美团研发一面总结

前天刚接到美团HR的面试邀请,这个面试来得有点晚,没打算复习就直接面了,因为已经有华为offer了。。。 一面问题如下:1、自我介绍: 我巴拉巴拉,一堆,感觉还是讲得不好,应该多夸夸自己的,多讲讲自己知识的广度,让面试官知道自己学过很多东西然后重点提自己擅长的地方的,让他一会问自己擅长的,在以后的面试要好好改改。2、项目: 我大二的时候跟着网上视频做了一个校园订餐系统...

2019-06-06 20:52:57 3296 1

原创 使用Git命令克隆项目、同步代码、拉取代码

克隆远程仓库:到需要clone的github仓库复制它的https连接 命令行进入需要存放github仓库的地方 输入sudo git clone -b xx(分支名) httpsxxxx(项目地址) 克隆以后会发现一个问题,所有克隆下来的文件权限是可读不可以写的(Linux下);因此需要修改文件权限: sudo chmod -R 777 dir/ 同步代码到github:添加...

2019-06-05 20:55:46 645

原创 Java注解

元注解:@Document :标记注解,注解信息包含到说明文档中@Target:标识注解的目标:该注解用于方法、类、变量,可以有多个,类型为ElementType TYPE:表示类、接口、枚举声明 FIELD:字段,包括枚举变量 METHOD:方法 PARAMETER:方法中的参数...

2019-04-22 01:04:35 92

原创 Java内部类的本质:

本质:1、内部类与包含它的外部类有比较紧密的关系,而与其他类关系不大,定义在类的内部,可以实现对外部的完全隐藏,可以有更好的封装性,代码实现上也更简洁。2、内部类只是一个Java编译器的概念,对于Java虚拟机而言,它不知道有内部类存在,Java编译器在编译的时候,每个内部类最后都会编译为一个独立的类(外部类$内部类名.class)3、内部类可以方便地访问外部类的私有变量,可以声明为p...

2019-04-21 16:43:13 624

原创 Java常用命令:

1、javac xxx.java 编译java文件,里面不能带有包名,有的话需要指定加载目录2、javap -c xxx 获取对class文件反编译后的字节码文件3、jps 查看正在运行的java程序 命令格式: jps [ option ] [ hostid ] 如: jps -m 2207 输出2207java程序启动时的main函数输入参数选项 ...

2019-04-21 16:09:40 382

原创 Java枚举类型解析

枚举 枚举是一种特殊的数据,它的取值有限,是可以枚举出来的,比如一周有七天,性别有男女等,虽然定义类也能实现,但是枚举更简洁、安全和方便。这里先定义最简单一个尺码枚举类来演示://这个尺码枚举类里面的每个枚举元素代表尺码的:小小码,小码,中码,大码,加大码public enum Size { XSMALL, SMALL, MEDIUM, LAR...

2019-04-21 16:05:12 413 1

原创 不引入第三个变量交换两个变量的值

据我所知有两种办法:1、算术运算: int a = 10; int b = 12; a = a+b; // a = 10+12 = 22 b = a-b; //b = 22-12 = 10 a = a - b; // a = 22-10 = 12 交换成功2、位运算: int a =...

2019-04-20 17:39:58 2009

原创 单例模式详解

单例模式:角色:单例类:提供单例的工厂,返回单例 使用者:获取并使用单例类定义:结构只包含一个被称为单例的特殊类,通过单例模式可以保证一个类只有一个对象实体特点:单例类只能有一个实例 单例类必须自己创建自己的唯一实例 单例类必须给所有其他对象提供这一实例要点:私有的构造方法 指向自己实例的私有静态引用 以自己实例为返回值的静态的公有的方法优点:内存中只有一...

2019-04-19 14:45:15 127

原创 大整数乘法,Java实现

/** * 分治法 */public class BigDecimal { // 以字符串的方式输入两个超大的整数,将两个数值相乘的结果计算出来 public static void main(String[] args) { Scanner in = new Scanner(System.in); String a = in.next();...

2019-04-19 00:21:45 2538

原创 Java线程池

线程池:作用:1、利用线程池管理并复用线程、控制最大并发数等。(减少频繁创建和销毁线程带来的性能开销)2、实现任务线程队列缓存策略和拒绝机制(拒绝机制用于拒绝一次性过多的线程,导致系统资源不足,引起其他服务也崩溃)3、实现某些与时间相关的功能,如定时执行、周期执行(有一些时间控制的线程池)4、隔离线程环境。(为不同服务开启独立配置的线程池,可以防止服务速度不同带来的影响)优...

2019-04-16 21:07:12 123

原创 Java多线程基础知识

守护线程与用户线程:Java中线程分为两类:守护线程和用户线程。用户线程:JVM启动是会调用main函数,main函数所在线程就是用户线程,还有就是我们自己手动开启的线程,Thread等守护线程:JVM内部会启动好多守护线程,像垃圾回收线程等。区别: 1、最后一个非守护线程结束时,JVM会正常退出,不管是否有守护线程。(只要有一个用户线程未结束,JVM都不会停止)如...

2019-04-16 21:06:32 112

原创 JUC并发包总结

ThreadLocal思想:ThreadLocal通过让每一个线程复制一份变量,使得每个线程对变量进行操作时实际上是操作自己本地内存里面的副本,从而避免了对共享变量进行同步。作用:每一个ThreadLocal能够放一个线程级别的变量,可是它本身能够被多个线程共享使用,并且又能够达到线程安全的目的,且绝对线程安全。使用:public class ThreadLocalTest {...

2019-04-16 21:05:50 442

原创 日志总结

日志,即记录系统的工作。原因有三个: 1、记录操作轨迹:可以知道系统都做了些什么事情。 2、监控系统运行状况:可以结合系统性能分析工具,查看不同时间里,系统的运行情况,结合日志,进行调优 3、回溯系统故障:系统出错的可以通过日志,看看出错的时候执行了什么操作,处于什么状态推荐的系统日志命名格式: appName_logType_logName.log。应用名_...

2019-04-16 15:59:34 509

原创 MySQL原理总结

多版本并发控制(MVCC):1、可以认为是行级锁的一个变种,但是很多情况下都避免了加锁操作,不同引擎的实现方式不一样2、实现是通过保存数据在某个时间的快照来实现的。3、Innodb中,是通过在每行记录后面保存两个隐藏的列来实现的。一个保存了行的创建时间,一个保存了行的过期时间(删除时间)实际存储的是系统的版本号。每开始一个新的事务,系统版本号都会自动递增。事务开始时刻的版本号作为事务的...

2019-04-16 14:12:00 788 2

原创 Java单元测试知识总结(基于JUnit)

在日常开发中离不开进行代码的测试,因此很有必要学会如何进行规范的单元测试单元测试的好处:1、提升软件质量2、促进代码优化3、提升研发效率4、增加重构自信单元测试基本原则:(AIR原则,必须用断言式来检测,符合BCDE原则)1、Automatic(自动化)2、Independent(独立性)3、Repeatable(可重复)4、Border,边界值测试,包含循...

2019-04-15 18:21:44 1295

原创 SSL总结

HTTPS 是最流行的HTTP安全形式,使用时所有的HTTP请求和响应数据都会在发送到网络前,进行加密;HTTPS在HTTP下面提高哦你了恶意该传输级的密码安全层。大部分编码和解码都是在SSL库中完成的。数字加密: 1、密钥:改变密码行为的数字话参数 2、对称密钥加密系统:编、解密使用不同的密钥的算法。 3、非对称密钥加密系统: 编、解码使用不同的密钥的算法...

2019-04-11 23:28:26 233

原创 二叉树的镜像,Java实现,剑指Offer27题

二叉树的镜像这道题比较简单,熟悉二叉树就能清楚地分析出其镜像的结构特征,递归交换左右子树即可/** * 二叉树的镜像 */public class Main27 { /** * 先判断空树的特殊情况 * @param root */ public void Mirror(TreeNode root) { if (roo...

2019-04-10 23:19:34 160

原创 树的子结构,Java实现,剑指Offer面试题26

主要是考察树的遍历和指针的运用,难度不大/** * 树的子结构 */public class Main26 { /** * 入口函数 * 优先检测空指针等特殊情况 * @param root1 * @param root2 * @return */ public boolean HasSubtree(Tree...

2019-04-10 22:40:54 135

原创 删除链表中重复的节点Java实现,剑指Offer面试题18

常规链表应用/** * 删除重复的节点 * 用的指针比较多,注意程序的鲁棒性 */public class Main18 { public ListNode deleteDuplication(ListNode pHead) { //若头指针为null,直接返回 if(pHead == null) { return n...

2019-04-10 21:28:41 395

原创 链表中环的入口节点,剑指Offer面试题23。Java实现

这道题的思路如下:特殊情况: 1、头节点为空,或者只有头节点,则返回null,不存在环(鲁棒性,考虑清楚特殊情况)常规情况: 1、首先判断有无环:通过两个速度不一样的指针同时从头开始走,快指针一次走两步,慢指针一次走一步,如果存在环,快指针一定会赶上慢指针; 当它们不为空,且相同的时候,说明它们在环中相遇了。 2、判断环中有多少个节点:当从上述步骤走完的时候,快指针和...

2019-04-10 07:39:13 143

原创 整数拆分,LeetCode 343题 ,Java实现

整数拆分问题,求最有值,具有最优子结构,具有重叠自问题 --->符合动态规划模型通过自底向下的方式,把计算过的自问题结果保存起来,减少运算次数。/** * 整数划分问题 * 动态规划, * 要分析清楚, * 几个特点:1,求最优值,2,最优子结构,3,重叠子问题 * 子问题的答案先存起来 */public class Main343 { public i...

2019-04-09 23:45:37 1352

原创 矩阵中的路径,Java实现,剑指Offer面试题12

矩阵中的路径符合回溯法,因而用回溯法解决。其他剑指Offer面试题答案可见我其他博客/** * 矩阵中的路径 * 回溯法 */public class Main12 { //函数入口 public boolean hasPath(char[] matrix, int rows, int cols, char[] str){ //建立字符串的二维矩阵,...

2019-04-08 17:11:05 224

原创 机器人的运动范围,Java实现

该题型属于回溯法的模型: 回溯法适合由多个步骤组成的问题,而且每一个步骤有多个选择。选择了其中一个以后,又会面临新的选择。在不断选择的过程中到达最终状态/** * 机器人的运动范围 * 使用回溯法解决 */public class Main13 { //记录能走的格子总数 public int total = 0; //函数入口 pub...

2019-04-08 16:11:47 160

空空如也

空空如也

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

TA关注的人

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