我想简单了,还是他想复杂了?
能力说明:
精通JVM运行机制,包括类生命、内存模型、垃圾回收及JVM常见参数;能够熟练使用Runnable接口创建线程和使用ExecutorService并发执行任务、识别潜在的死锁线程问题;能够使用Synchronized关键字和atomic包控制线程的执行顺序,使用并行Fork/Join框架;能过开发使用原始版本函数式接口的代码。
能力说明:
了解Python语言的基本特性、编程环境的搭建、语法基础、算法基础等,了解Python的基本数据结构,对Python的网络编程与Web开发技术具备初步的知识,了解常用开发框架的基本特性,以及Python爬虫的基础知识。
能力说明:
理解微服务架构与单体应用架构在开发模式与运维上的区别,了解分布式、容器、DevOps在微服务架构中的应用,理解微服务的设计原则与服务组件。了解Service Mesh概念与Istio基础知识。
能力说明:
掌握Java开发环境下所需的MySQL高级技巧,包括索引策略、innodb和myisam存储引擎,熟悉MySQL锁机制,能熟练配置MySQL主从复制,熟练掌握日常SQL诊断和性能分析工具和策略。可对云数据库进行备份恢复与监控、安全策略的设置,并可对云数据库进行性能优化。掌握主要NOSQL数据库的应用技术。
阿里云技能认证
详细说明
全局解释器锁(GIL)导致了Python多线程无法利用多核CPU并发执行。引入GIL,是为了解决多线程之间数据完整性和状态同步的问题,简化了Python对共享资源的管理;但是也降低了并发编程的性能。
时间轮算法,其实很简单,就是用实际的时钟刻度槽位来存储任务。 时钟刻度可以更细致,比如把一天切分成246060个秒的刻度,秒的刻度上挂任务。
制作jupyter notebook的docker镜像,兼容numpy, pandas, matplotlib, pyspark, opencv-python, requests, flask等组件。
0424-MySQL事务与锁机制
验证主要步骤: 1、访问登录页面,页面浏览器,被设置Cookie。 2、页面刷新图片验证码,渲染到页面。 3、页面登录提交,一同提交用户输入的imgcode。 4、根据配置,先校验验证码,在校验用户密码。 5、如果校验不通过,跳转登录错误页面。
验证主要步骤: 1、访问登录页面,先对页面种植cookie。 2、提供api生成图片验证码,使用开源kaptcha生成图片。 3、生成图片时,获取cookie;以cookie值为key,图片验证码为value,缓存到redis。 4、redis缓存1分钟。
CentOS7环境下Apache安装。参考文档: https://blog.csdn.net/zhangge3663/article/details/94442605
MyBatis生成的Mapper文件,不打包到jar包中;单独提出来,修改mapper中的sql语句,重启项目生效。
Random与ThreadLocalRandom
mysql 中有一种机制是表锁定和行锁定,是为了保证数据的完整性。表锁定表示你们都不能对这张表进行操作,必须等我对表操作完才行。行锁定也一样,别的 sql 必须等我对这条数据操作完了,才能对这条数据进行操作。
HTTP与HTTPS
Redis-基本操作
Java-邮件发送工具
Java-验证码图片生成器
密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。高级加密标准算法从很多方面解决了令人担忧的问题。实际上,攻击数据加密标准的那些手段对于高级加密标准算法本身并没有效果。如果采用真正的128位加密技术甚至256位加密技术,蛮力攻击要取得成功需要耗费相当长的时间。安全研究人员还没有那么多的时间对这种加密方法进行破解试验。我们可能会随时发现一种全新的攻击手段会攻破这种高级加密标准。至少在理论上存在这种可能性。
Springboot-系统启动初始化
Springboot-设置上传文件大小与不安全的HTTP方法
SHA-1是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。2005年,密码分析人员发现了对SHA-1的有效攻击方法,这表明该算法可能不够安全。
MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。这套算法的程序在 RFC 1321 标准中被加以规范。1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。
Maven项目配置logback
Zookeeper集群集群安装配置
只有Leader才能处理写数据请求,Follower接受写数据请求要转发给Leader;半数以上的节点写数据完成,即写入数据成功。
ZooKeeper监听原理
CentOS7-安装MySQL8
Hadoop-HDFS的DataNode工作机制
Hadoop-HDFS的NameNode工作机制
Hadoop-HDFS读写流程
一趟快速排序,我们只确定了一个元素的最终位置; 我们最终需要经过n趟快速排序才能将一个含有N个数据元素的序列排好序。 最好情况下,每一次划分都正好将数组分成长度相等的两半O(NlogN)。 最坏情况下,每一次划分都将数组分成了0和n-1两部分: O(N^2)。
不在索引列上做任何操作(计算、函数、(自动or手动)类型转换)。 存储引擎不能使用索引范围条件右边的列。 使用不等于(!=或者<>)的时候无法使用索引会导致全表扫描。 is null,is not null也无法使用索引。 like以通配符开头(’%abc…’)mysql索引失效会变成全表扫描的操作。
如果输入数组已经是排好序的话,插入排序出现最佳情况。其时间代价是O(n)。 如果输入数组是逆序排列的,将出现最坏情况。 平均情况与最坏情况一样,其时间代价是 O(N^2)。
因为二分查找是一半一半的找,所以每次查找之后都会把查找范围减半; 比如说在一个 1 - 8 的有序数组里面查找 8 也就是查找最坏情况。 在数组当中完成二分查找需要 log2n - 1 次; 也就是时间复杂度是 log2n (就是 log 以 2 为底 n 的对数)
算法效率分为两种,一是时间效率(时间复杂度),二是空间效率(空间复杂度)。 时间复杂度是指程序运行的速度。 空间复杂度是指一个算法所需要的额外的空间。
一般来说,自定义同步器要么是独占方法,要么是共享方式; 他们也只需实现tryAcquire-tryRelease、tryAcquireShared-tryReleaseShared中的一种即可。 AQS也支持自定义同步器同时实现独占和共享两种方式,如ReentrantReadWriteLock。
AQS定义了一套多线程访问共享资源的同步器框架。 许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch。 它维护了一个volatile int state(代表共享资源)和一个FIFO线程等待队列。 多线程争用资源被阻塞时会进入此队列。 AQS定义两种资源共享方式:Exclusive(独占,只有一个线程能执行,如ReentrantLock)和Share(共享,多个线程可同时执行,如Semaphore/CountDownLatch)。
ReentrantLock构造方法(不带参数 和带参数 true: 公平锁; false: 非公平锁)
观察加入volatile关键字和没有加入volatile关键字时所生成的汇编代码发现; 加入volatile关键字时,会多出一个lock前缀指令。 lock前缀指令实际上相当于一个内存屏障。 内存屏障会提供3个功能: 确保指令重排序时不会把其后面的指令排到内存屏障之前的位置,也不会把前面的指令排到内存屏障的后面。 强制将对缓存的修改操作立即写入主存。 如果是写操作,它会导致其他CPU中对应的缓存行无效。
数据中台构建于数据湖之上,具备数据湖异构数据统一计算、存储的能力,同时让数据湖中杂乱的数据通过规范化的方式管理起来。数据湖、数据仓库和数据中台,他们并没有直接的关系,只是他们为业务产生价值的形式有不同的侧重。
集群启动过程中,DataNode会校验自己的文件,并上报校验结果到NameNode。校验一般使用CRC即循环冗余校验码。
Hadoop-HDFS文件块大小的设置
HDFS大文件存储在磁盘上,居然能这样恢复文件内容。
NameNode通过NetworkTopology维护整个集群的树状拓扑结构;拓扑结构的叶子节点DatanodeDescriptor是标识DataNode的关键结构。DataNode节点一般会挂载多块不同类型存储单元;StorageMap描述的正是存储介质DatanodeStorageInfo集合(Map默认长度16)。
Linux-SCP命令复制文件和目录
SSH免密码登录原理
Springboot项目使用assembly打包
ExecutorService是Java提供的用于管理线程池的类。该类的两个作用:控制线程数量和重用线程。 可缓存线程池:newCacheThreadPool ; 固定线程数:newFixedThreadPool ; 支持定时及周期性任务执行: newScheduledThreadPool ; 单线程化的线程池: newSingleThreadExecutor;
Hadoop单机部署
SSH免密码登录配置
继承类Thread与实现接口Runnable类似,因为Thread也是实现了接口Runnable; 继承类Thread与实现接口Runnable的run方法与start方法都会调用执行体,run同步执行,start异步执行; 实现接口Callable的线程被调用时,主线程会阻塞等待执行结果; 值得注意的是:实现接口Callable的线程名称和主线程名称一样。