蓝桥杯备赛(java组)做题思路
对照数据找规律,找不出就把数据带入执行一遍
对照规律设计公式,思考选择什么算法:递归,dfs,dp,暴力
动态规划
根据问题总结递归方程
初始化值
过滤约束条件下的情况
利用状态转移方程求出结果
基础能力准备闰年(366天)1year % 4 == 0 && year % 100 !=0; //二月份有29天
普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。
办公软件技巧word查找功能:ctr + F;
excel计算两年之间的天数:
数学知识储备标准差$$σ=\sqrt{∑(X−μ)2 \over N}$$
排列$$C^{N}_{M}={N! \over (N-M)!*M!}$$
$$C^{N}{M}+C^{N-1}{M}=C^{N}_{M+1}$$
$$C^{0}{M}+C^{1}{M}+…..+C^{M}_{M}=2^M$$
两点截 ...
好用工具内网穿透cpolar
启动cpolar
配置Authtoken
登录cpolar官网获取
1cpolar authtoken ZGMyNThkMzgtZmU1YS00ZWZjLWE2ZjgtYTViODY5NzI2MmIy
开始穿透
1cpolar http 11434
cpolar状态监听面板
cpolar状态监听面板地址:https://dashboard.cpolar.com/status
我们可以通过状态监听面板来发现我们启动cpolar服务。
如何快速访问Github高速访问Github解决方案
寻找最新的DNS域名解析IP
下面的地址无需访问 GitHub 即可获取到最新的 hosts 内容:
文件:https://raw.hellogithub.com/hosts
JSON:https://raw.hellogithub.com/hosts.json
找到之后复制内容到hosts文件
1234567891011121314151617181920212223242526272829303132333435363738394 ...
OAuth2登录协议
本文以微信授权登录来演示说明
参考文档:
微信登录功能 / 网站应用微信登录开发指南 (qq.com)
微信登录开发者测试平台 (qq.com)
所用到的依赖:
123456789101112131415<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.3</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.17</version> ...
资安学工考勤系统当前技术需要
Git的深入理解
表文档导出技术
swagger使用
熟悉若依框架
数据库表设计数据库名称:
表一:用户表
字段
含义
数据类型
默认值
是否可空
约束
th_id
学号
bigint(20)
否
主键
tb_name
姓名
varchar()
否
tb_major
班级
varchar()
否
表二:考勤人表
字段
含义
数据类型
默认值
是否可空
约束
tb_id
工号/学号
bigint(20)
否
主键
tb_name
姓名
varchar()
否
tb_sex
性别
tinyint
否
tb_identity
身份(字典)
tinyint
否
外键
表三:检查表
字段
含义
数据类型
默认值
是否可空
约束
备注
tb_id
ID
bigint
主键
tb_check_time
检查时间
timestamp
默认系统时间年月日,也可以自己选择
tb_check_section
检查节次
tinyint
节次是固定的,用0-12来决 ...
Redis学习笔记
缓存击穿:key对应的数据存在,但在redis中过期,此时若有大量并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端DB压垮。
缓存穿透:key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。
缓存雪崩:当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,也会给后端系统(比如DB)带来很大压力。
redis安装教程1.安装redis依赖环境
1yum install -y gcc tcl
2.将tar.gz包放入对应目录中**/usr/local/src**,并解压
1tar -zxvf redis-6.2.7.tar.gz
3.到解压目录中执行编译代码
1cd redis-6.2.7
1make && make install
前台启动redis1redis-serv ...
JUC并发编程本文参考链接:https://itbaima.net
什么是juc?
juc是java中处理线程的工具包
wait和sleep?
sleep不释放锁睡觉,wait释放锁睡觉
并行和并发?
并行:
常出现在多核处理器,多个任务同一时间执行
并发:
多任务同时执行,cpu执行一个任务一段时间再切换到其他任务,实现同时进行的效果
用户线程和守护线程?
java对象头
偏向锁:在很多情况下抢锁过程一般都是同一个线程抢锁成功,所以设置了偏向锁,Markword用于记录“常胜者”线程id,当参与竞争资源时,偏向锁指向的id代表的线程可以直接获取锁,无需进行CAS操作
注意:MarkWord里默认数据是存储对象的HashCode等信息,但是在运行期间,Mark Word里存储的数据会随着锁标志位的变化而变化
在表2-4中:每一个对象都有一个monitor与之关联。==重量级锁也就是通常说synchronized的对象锁,锁标识位为10,其中指针指向的是monitor对象(也称为管程或监视器锁)的起始地址==
M ...
Java圣经Java是“半编译半解释”的语言
编译:.java需要编译成.class才能执行(性能高)
解释:.class需要JVM解释才能运行(跨平台性好)
此外,JVM 中的即时编译器(Just-In-Time Compiler, JIT)可以选择性地将一些经常执行的字节码编译成本地机器码,以提高执行效率。
基础篇面向对象三特性封装、继承、多态
重载
方法的返回值类型不会影响方法的重载。区分重载的方法的关键在于方法的名字以及参数列表的不同。
123456private int getMax(int maxIndex) { }private String getMax(int maxIndex,int maxLen) { }
访问修饰符1234int x =0; // package-private 同一个包下的所有子类都可以访问public int x = 0; —— 公开访问。private int x = 0; —— 私有访问。protected int x = 0; —— 受保护访问(只要在同一个父包下都可以访问)。 ...
数据结构分类
逻辑结构
树,图,数组,哈希,等等
物理结构
计算机保存数据的结构
顺序结构(易查找,难插入)
链式结构(元素用指针相连)
指针保存的是链表下一个元素的地址
空间复杂度
对象头信息消耗16字节,数组头信息消费24个字节(都还不包含内容信息)
一个字节有八位!
(非)线性数据结构线性结构是什么?
一个前驱一个后继
数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构。线性结构是一个有序数据元素的集合。
线性结构特点:
线性结构有唯一的首元素(第一个元素)
线性结构有唯一的尾元素(最后一个元素)
除首元素外,所有的元素都有唯一的“前驱”
除尾元素外,所有的元素都有唯一的“后继”
数据元素之间存在“一对一”的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。
常用的线性结构有 线性表,栈,队列,双队列,循环队列,一维数组,串。线性表中包括顺序表、链表等,其中,栈和队列只是属于逻辑上的概念,实际中不存在,仅仅是一种思想,一种理念;线性表则是在内存中数据的一种组织、存储的方式。
非线性结构非线性结构是什么? ...