加载中...
kali安装
镜像下载下载地址 进去根据自己电脑配置以及虚拟器,选择合适的版本即可,博主这里选择的是kali-linux-2024.2-vmware-amd64.7z 下载后进行解压,解压之后会得到这样一个类似的文件夹。 注:本文采用导入虚拟机的方式来实现快捷安装 虚拟机安装打开Vmware,选择扫描虚拟机。 选择刚才解压得到的文件夹即可 点击下一步,然后下个界面点击完成即可。 启动kali,用户名和密码都是kali。 安装后kali的一些设置修改密码打开命令行,输入sudo passwd root,然后输入kali(也就是当前用户的密码),默认是kali, 再输入要修改的密码即可。 更新包先输入 1sudo apt update 然后该命令会去查看升级的包和依赖,但是不会下载和安装。 如果要升级,就需使用 1sudo apt upgrade -y 在软件安装的过程中,会出现很多的需要输入Y/N的情况,-y表示自动全部写yes。 注意:以上这句命令只会下载和安装新的包,但是不会清除旧的包。 如果要清除旧的包,需运行以下命令: 1sudo apt autoremove
密码学学习
绪论 Introduction Course Overview 安全通信: 网页流量使用HTTPS协议保护(SSL) 无线流量: 比如WI-FI使用WPA2保护 ,WPA2是802.11i的一部分 手机流量使用GSM加密机制保护 蓝牙流量也可以使用密码学保护 加密硬盘的文件: EFS(Encrypting File System) TrueCrypt 保护内容: DVD和蓝光碟,上面的电影是加密的 DVD用的是CSS(Content Scramble System,内容混淆系统) 蓝光碟用的是AACS(Advanced Access Content System,高级访问内容系统) 用户认证 HTTPS是HTTP协议的安全版本,它通过在HTTP下层使用SSL/TLS来加密数据传输。 在SSL(Secure Socket Layer,安全套接字层)更新到3.0时,IETF对SSL3.0进行了标准化,并添加了少数机制,标准化后的IETF更名为TLS1.0(Transport Layer Security ...
微服务学习
实用篇 认识微服务 服务架构演变 单体架构 单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。 单体架构的优缺点如下: 优点: 架构简单 部署成本低 缺点: 耦合度高(维护困难、升级困难) 分布式架构 分布式架构:根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。 分布式架构的优缺点: 优点: 降低服务耦合 有利于服务升级和拓展 缺点: 服务调用关系错综复杂 分布式架构要考虑的问题: 服务拆分粒度如何,例如哪几个服务要单独作为独立模块、哪些业务要在一起 服务集群地址如何维护,例如一个服务要去多个服务里面找它要的服务,它怎么找,它要找的那个服务的地址是什么 服务之间如何相互实现远程调用,例如上面那行是怎么找,这行的意思就是找到了怎么调用 服务健康状态如何感知,例如一个服务要去多个服务里面找它要的服务,它还要看对方的服务是否在线 微服务 微服务是一种经过良好架构设计的分布式架构方案,微服务架构特征: 单一职责:微服务拆分粒度更小,每一个服务都对应 ...
basePackages和basePackageClasses
basePackageClasses用法 123@Configuration@ComponentScan(basePackageClasses = {CDPlayer.class, DVDPlayer.class})public class CDPlayerConfig {} 将其指定为包中所包含的类或接口,这些类所在的包将会作为组件扫描的基础包。即会去扫描basePackageClasses类指定类或接口所在包下的所有组件,而不是指定某个组件! 也可以考虑在包中创建一个用来进行扫描的空标记接口(markerinterface)。通过标记接口的方式,能够保持对重构友好的接口引用,但是可以避免引用任何实际的应用程序代码(在稍后重构中,这些应用代码有可能会从想要扫描的包中移除掉)。 basePackageClasses相对于basePackages的好处 类型安全:与basePackages相比,basePackageClasses提供了一种类型安全的方式来指定扫描的基础包。由于你是通过提供一个类的字面量来指定扫描包的,因此如果包名 ...
近期笔试面试问题
2024-03-20 ==和equals的区别 ==:对于==比较的是值是否相等 如果作用于基本数据类型的变量,则直接比较其存储的值是否相等, 如果作用于引用类型的变量,则比较的是所指向的对象的地址是否相等。 其实==比较的不管是基本数据类型,还是引用数据类型的变量,比较的都是值,只是引用类型变量存的值是对象的地址 equals: 比较的是是否是同一个对象 首先,equals()方法不能作用于基本数据类型的变量, 另外,equals()方法存在于Object类中,而Object类是所有类的直接或间接父类,所以说所有类中的equals()方法都继承自Object类,在没有重写equals()方法的类中,调用equals()方法其实和使用==的效果一样,也是比较的是引用类型的变量所指向的对象的地址,不过,Java提供的类中,有些类都重写了equals()方法,重写后的equals()方法一般都是比较两个对象的值,比如String类。 Object类equals()方法源码: 123public boolean equals(Object obj) { ...
IDEA调试技巧
常用按钮 Step over:程序往下执行一行 Step into:进入方法内,可以进入自定义方法或三方库方法,JDK方法无法进入 Step out:退出方法,跟(force)step into 配合使用 Run to Cursor:运行到光标处,你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点 Show Execution Point :回到当前执行到的那一行 Resume Program:恢复运行程序,运行到下一个断点的地方 基本操作计算表达式步骤1:选中需要计算的表达式,右键,点击Evaluation Expression 步骤2:点击Evaluate 清除所有断点步骤1:Debug -> ViewBreakpoints 步骤2:点击Java Line Breakpoints前方的全选框,取消全选. 步骤3:点击减号,即Remove,即可全部删除
IDEA连接数据库
具体步骤 1)点击右边的DataBase,点击加号->Data Source,选择MySQL(根据自己的需求选择) 2)填入以下字段 3)点击Test Connection,出现以下说明连接成功 4)点击Apply,点击OK,点击刷新按钮,就能有相应数据库以及表出现了
MyBatis-Plus学习
一、MyBatis-Plus快速入门1.1 简介 课程版本:3.5.3.1 https://baomidou.com/ MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window) 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 特性: 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 M ...
SpringBoot3学习
一、SpringBoot3介绍 ### 1.1 SpringBoot3简介 课程使用SpringBoot版本:3.0.5 https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html#getting-started.introducing-spring-boot 到目前为止,你已经学习了多种配置Spring程序的方式。但是无论使用XML、注解、Java配置类还是他们的混合用法,你都会觉得配置文件过于复杂和繁琐,让人头疼! SpringBoot 帮我们简单、快速地创建一个独立的、生产级别的 Spring 应用(说明:SpringBoot底层是Spring),大多数 SpringBoot 应用只需要编写少量配置即可快速整合 Spring 平台以及第三方技术! SpringBoot的主要目标是: 为所有 Spring 开发提供更快速、可广泛访问的入门体验。 开箱即用,设置合理的默认值,但是也可以根据需求进行适当的调整。 提供一系列大型项目通用的非功 ...
SSM学习
一、SSM整合理解1.1 什么是SSM整合?微观:将学习的Spring SpringMVC Mybatis框架应用到项目中! SpringMVC框架负责控制层 Spring 框架负责整体和业务层的声明式事务管理 MyBatis框架负责数据库访问层 宏观:Spring接管一切(将框架核心组件交给Spring进行IoC管理),代码更加简洁。 SpringMVC管理表述层、SpringMVC相关组件 Spring管理业务层、持久层、以及数据库相关(DataSource,MyBatis)的组件 使用IoC的方式管理一切所需组件 实施:通过编写配置文件,实现SpringIoC容器接管一切组件。 1.2 SSM整合核心问题明确1.2.1 第一问:SSM整合需要几个IoC容器? 两个容器 本质上说,整合就是将三层架构和框架核心API组件交给SpringIoC容器管理! 一个容器可能就够了,但是我们常见的操作是创建两个IoC容器(web容器和root容器),组件分类管理! 这种做法有以下好处和目的: 1.分离关注点:通过初始化两个容器,可以将各个层次的关注点进行分离。这种分离 ...
SpringMVC学习
一、SpringMVC简介和体验 1.1 介绍 https://docs.spring.io/spring-framework/reference/web/webmvc.html Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称( spring-webmvc ),但它通常被称为“Spring MVC”。 在控制层框架历经Strust、WebWork、Strust2等诸多产品的历代更迭之后,目前业界普遍选择了SpringMVC作为Java EE项目表述层开发的首选方案。之所以能做到这一点,是因为SpringMVC具备如下显著优势: Spring 家族原生产品,与IOC容器等基础设施无缝对接 表述层各细分领域需要解决的问题全方位覆盖,提供全面解决方案 代码清新简洁,大幅度提升开发效率 内部组件化程度高,可插拔式组件即插即用,想要什么功能配置相应组件即可 性能卓著,尤其适合现代大型、超大型互联网项目要求 原生Se ...
MyBatis学习
一、Mybatis简介 1.1 持久层框架对比 JDBC SQL 夹杂在Java代码中耦合度高,导致硬编码内伤 维护不易且实际开发需求中 SQL 有变化,频繁修改的情况多见 代码冗长,开发效率低 Hibernate 和 JPA 操作简便,开发效率高 程序中的长难复杂 SQL 需要绕过框架 内部自动生成的 SQL,不容易做特殊优化 基于全映射的全自动框架,大量字段的 POJO 进行部分映射时比较困难。 反射操作太多,导致数据库性能下降 MyBatis 轻量级,性能出色 SQL 和 Java 编码分开,功能边界清晰。Java代码专注业务、SQL语句专注数据 开发效率稍逊于 Hibernate,但是完全能够接收 开发效率:Hibernate>Mybatis>JDBC 运行效率:JDBC>Mybatis>Hibernate 1.2 快速入门(基于Mybatis3方式) 1.准备数据模型 1234567891011121314CREATE DATABASE `mybatis-example`; ...