我最近在做什么?
2022/11/7
科研
Linux开发环境的安装与配置(长期更新)
主要用于收集一些环境的安装与配置,用于标准化自己的操作来方便以后的环境配置,之前也断断续续的写过其他的一些环境但是没有收集到一起找起来也不是很方便,所以趁着这个机会开一个帖子。
Redis这是我进行一些Redis学习配置相关的环境,使用Centos7进行配置。
打开服务器的6379端口:
1firewall-cmd --zone=public --add-port=6379/tcp --permanent && firewall-cmd --reload
因为Redis是使用C语言开发的,所以要保证Centos已经有了C相关的环境:
1gcc -V
如果没有的话使用下面的命令进行安装:
1yum install -y gcc
第一步 下载并解压安装包下载:
1wget https://download.redis.io/releases/redis-7.0.2.tar.gz
解压缩:
1tar -zxf redis-7.0.2.tar.gz
第二步 编译 (安装)可能会遇到一些权限相关的问题,提权应该就可以
123cd redis-7.0.2ma ...
华为面试经历
面试时间线:
2022.9.20 一面 60min
2022.9.22 二面 50min
2022.9.24 主管面 30min
其实之前面了很多了,这里就华为的面试做一个总结吧,面试官人都非常的不错,懂技术且谦虚,能够有这种交流的感觉。一面和二面是技术面,主要流程是先问问题,之后手撕代码。
2022.9.20 一面一面的问题主要是看着简历的项目逐条问的,然后从项目向基础扩展。
项目中数据库表的设计,后端接口的实现,大概是怎样做的
我看你还用了线程池和乐观锁,主要是怎么用的
了解线程池吗
项目中的图片这些静态资源存在什么地方
如果图片存在数据库中的应该使用什么样的格式,如果不存在本地还可以存在什么地方
如果让你实现一个OSS(对象存储服务), 你会如何进行设计
了解RestFul开发模式吗,你们在实践中是否使用过
讲一下项目中的聊天室,webSocket的怎么实现的,为什么使用webSocket进行实现
HTTP的长连接了解吗
我看你还用到MySQL,数据库连接池了解吗,讲一下具体的工作原理
项目实现登录功能了吗,是怎么进行实现的
第一个项目中的提到速度提升46%,这个4 ...
在地址栏输入网址到页面显示,中间经历的全过程!
首先,我们要知道url的具体含义,比如:http://va1lid.top/songList
http: 代表协议
va1id.top:表示服务器的地址,需要通过DNS获取到具体的IP地址
/songList: 表示请求的具体的资源或者是服务,是相对于在web服务器配置中配置路径的位置。
我们把url输入到地址栏之后:
HTTP首先构造HTTP的消息,请求行 + 请求头 + 数据
请求行: 请求方法(GET, POST etc.)、请求地址、协议/版本号(HTTP 1.1)
请求头:user-Agent、cookie etc.
消息体:payLoad
DNS域名是具有层级的,以 点分割,比如: va1id.top,top是一级地址,va1id是二级域名。
启动DNS服务将服务器的域名解析为IP地址:
首先向根域名服务器请求,他返回让去顶级域名服务器去请求
大概就是,我的域名是… ,我想知道我的IP—根域名服务器讲你应该去找top域名服务器
然后向顶级域名服务器请求,他返回让去权威域名服务器请求
然后在权威域名服务器中找到IP地址返回
以上是应用层,等构造好 ...
对象锁与类锁的理解
对象锁和类锁的区别 无论是对象锁还是类锁,我们分析的标准就是我们要获取的资源是否与创建新的对象有关。比如类信息、静态变量的数据无论创建多少个对象都只存在一份,而成员变量这种随着新对象的创建而创建。
类锁就是用在整个类上的锁,对象锁是用在实例上的锁。
对象锁还要分为对谁上锁:
对非静态变量上锁:只在当前线程或者当前对象上会发生阻塞,也就是不同的实例就不会阻塞,因为这些变量不是对类的,而是实例所有的。
对非静态方法上锁:只在当前线程或者当前对象上会发生阻塞
对this本身的实例上锁:只在当前线程或者当前对象上会发生阻塞
对static相关的上锁:他是共享的一个锁,所以不同的对象在不同线程进行获得锁,会因为没有获得到锁产生阻塞。
凡是在堆和方法区的变量做锁获取的资源,都会涉及到这些问题。
类锁:
是放在加载类上,类信息在方法区,整个JVM只有一份,所以他无论在什么时候都是阻塞的。实现方式
在static的方法上加synchronized
在static变量上加synchronized
synchronized获取Class对象
测试代码:
123456789101112131415 ...
Redis做分布式锁简单了解
要做什么?
什么是分布式
为什么要用分布式?
为什么要有分布式锁
如何使用Redis做分布式锁
Java-Interview-Prepare
[TOC]
JavaBasic Lambda表达式的优缺点
优点:
代码更加简洁,减少内部类的使用
缺点:
可读性差
不易于维护
抽象类和接口他们之间的区别共同点:
不能实例化
可以包含抽象方法
都可以进行默认实现
不同点:
抽象类只能是单继承,但是接口可以多实现类似于多继承的效果
接口只是对类的行为进行约束,但是抽象类更像是一种代码复用,强调的是所属关系
接口中的成员变量只能是用public static final进行修饰的,必须有初始值不能修改,抽象类的成员变量默认是default修饰,可以在子类中定义
深拷贝与浅拷贝
浅拷贝: 类似于重新在堆上创建一个对象,但是对象当中的变量如果是基本数据类型的话复制一份,如果是引用类型的话,直接复制这个对象的地址
深拷贝:在堆上创建一个对象,对象中所有的变量都是重新分配新的地址,像是一种递归进去的浅拷贝。
引用拷贝:不同的引用指向同一个对象
Java中有哪些容器
主要有List、Map、Set
List: ArrayList、LinkedList、Vector
Map:HashMap、HashTable、L ...
HTTPS简单了解
个人理解:
HTTPS的实现其应用层还是HTTP的协议,但是在应用层和传输层之间增加了SSL/TLS协议来保证HTTP的安全。
SSL/TLS协议
SSL: Secure Socket Layer 安全套接字层
TLS: Transport Layer Security 传输层安全
SSL协议和TLS协议都是位于应用层和传输层之间的协议,他们可以通过认证、数字签名等保证客户端/服务器的正确性,通过加密的方式保证数据的可靠性。
SSL (Secure Socket Layer)SSL协议提供的服务主要有:
认证用户和服务器,确保数据发送的是正确的客户端和服务器,通过CA证书实现
加密数据、防止数据被中途窃取,通过RSA非对称加密,以及对称加密实现
维护数据的完整性,防止在传输过程中被改变
TLS (Transport Layer Security)TLS可以看作是SSL3.0的升级版,升级包括:
更安全的算法
更严密的警报
HTTPS协议 HTTPS协议实际上就是运行在SSL/TLS协议之上的HTTP协议,简单看是通过SSL& ...
AOP面向切面简单Demo
AOP存在的主要目的就是为了解耦复杂业务,同时能够使业务具备较强的扩展性。
AOP面向切面的基本概念
切面:
连接点:在切入之后,需要插入代码的开始
切入点:标记连接点的位置
通知:在连接点之后要执行的代码,也就是要增强的部分,包括前置、后置、最终、环绕、最终五类
目标对象:被代理的对象,也就是增强对象
Spring AOP 实现实现一个用于记录日志的AOP
首先定义一个标记切入点、连接点的注解MyLog
12345@Documented@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.METHOD, ElementType.TYPE})public @interface MyLog {}
定义实际切入的Advice通知
需要增加注解 @Aspect
定义切入点:@Pointcut("@annotation(com.example.aopdemo.aop.anno.MyLog)")
定义通知: @After、 @Before 、@Around
1 ...
认识JWT
本篇将包含以下内容:
什么是JWT?
JWT的组成
如何使用JWT进行认证?
JWT的优缺点
什么是JWT?JWT (Json Web Token) 是一种基于Token的认证授权机制。可以看到JWT本身就是一种Token。JWT是目前最流行的跨域解决方案。
Token本身携带信息,不需要想Session一样在服务器端保存session状态信息,而实现真正的无状态。
JWT的组成?JWT本身是一串字符串,但是其中包含了以下的信息:
Header
type: JWT
alg: signature使用 什么加密算法,比如HS256
Payload: 主要是一些data信息,也包括自身可以携带的比如签发者、签发日期、过期时间等等信息。
Signature:通过Header、Payload以及存在服务器上的secret,使用Header中的加密算法alg进行加密得到的签名。
Pre: Header + Payload
After: Base64(Header).Base64(Payload).HS256(Base64(Header).Base64(Payload), ...









