一、Shiro使用心得(shiro的概念性东西)
一、概述 (1)Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。 (2)我们从外部来看Shiro吧,即从应用程序角度的来观察如何使用Shiro完成工作。 Subject:主体,代表了当前“用户”,这个用户不一定是一个具体的人,与当前应用交互的任何东西都是Subject,如网络爬虫,机器人等;即一个抽象概念;所有Subject都绑定到SecurityManager,与Subject的所有交互都会委托给SecurityMan
ansible代码发布系统
ansible - 代码发布系统 ssh 秘钥登录 ssh-keygen # 用来生成ssh的密钥对
ssh-copy-id 192.168.107.131 # 复制秘钥到远程主机 ansible 命令格式 ansible <host-pattern> [options]
-a MODULE_ARGS, --args=MODULE_ARGS #模块的参数
-C, --check # 检查
-f FORKS, --forks=FORKS #用来做高并发的
--list-hosts #列出主机列表
寒假作业一:打印沙漏
本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印
*****
***
*
***
*****
所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。
给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。
输入格式:
输入在一行给出1个正整数N(≤1000)和一个符号,中间以空格分隔。
输出格式:
首先打印出由给定符号组
PAT-Radix (25)-二分
这个题题意是:给你两个数N1,N2,然后告诉你其中一个数的进制,问你在哪个最小的进制下,已知进制的那个数等于另一个数。 比如样例:6 110 1 10;10进制的6,在哪个进制下等于110,很明显是二进制。 这个题PAT官网和牛客网的数据差距挺大的,建议两边都AC。 这个题的坑点主要有两个: 1、即使用long long类型也会溢出,但是可以特判溢出所以用long long即可(但是牛客网数据我没特判溢出也过了...); 2、边界的寻找,第一次发现二分的边界如此重要,以前都是随便找找就AC..
Codeforces 1097E. Egor and an RPG game 构造
原文链接https://www.cnblogs.com/zhouzhendong/p/CF1097E.html 题解 首先我们求出 $k = f(n) = \max\{x|\frac{x(x+1)}2\leq n\}$ 。 具体构造方案是:(以 $n = 15$ 为例) 11 12 13 14 15 7 8 9 10 4 5 6 2 3 1 我们考虑如何构造。 求出当前序列的 LIS 长度(假设为 $len$)。如果 $len\geq k$ ,那么直接取出这个LIS,把问题转化成更小规模的问题
2048 (控制台版)
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
using namespace std;
class ErLingSiBa
{
private:
int Map[4][4], tmp[4][4];
int k[4],result[4];
public:
void init()
{
for(int i=0;i<4;i++)
异步解决方案的发展历程
1. 回调函数(callback) setTimeout(() => {
// callback 函数体
}, 1000) 缺点:回调地狱,不能用 try catch 捕获错误,不能 return 回调地狱的根本问题在于: 缺乏顺序性: 回调地狱导致的调试困难,和大脑的思维方式不符; 嵌套函数存在耦合性,一旦有所改动,就会牵一发而动全身,即(控制反转); 嵌套函数过多的多话,很难处理错误。 优点:解决了同步的问题(只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行)。
不带parent指针的successor求解
问题: 请设计一个算法,寻找二叉树中指定结点的下一个结点(即中序遍历的后继)。给定树的根结点指针TreeNode* root和结点的值int p,请返回值为p的结点的后继结点的值。保证结点的值大于等于零小于等于100000且没有重复值,若不存在后继返回-1。注意这里没有parent指针。 思路: 本质上还是二叉树的中序遍历。所以经过前面的学习我们有递归和非递归两种解法。 解法一(递归解法): 1 public class Successor2 {
2 public i
多线程下处理变量共享的几种方式
1.尽量将共享变量(共享变量指的是在堆内存上创建的对象或者数组,包括成员变量、静态变量和数组元素。)定义为局部变量。 2.如果多线程只是读取变量,可以定义全局final。 3.使用ThreadLocal将变量创建为线程私有。 4.加锁 public class Increment {
private int i;
public void increase() {
synchronized (this) { //使用this作为锁
「算法笔记」背包问题解题思路
本文中,约定物品个数为 \(n\),背包的最大价值为 \(m\)。 多重背包问题的转化 可以通过把一个多重背包中的物品拆成多个 \(01\) 背包中的物品(每次大小翻倍,最后余下的单独拆出一个物品)。插入一个物品的复杂度为 \(O(m \times \log m)\)。比较好写,较常用。 可以使用单调队列来优化 \(\text{DP}\),插入一个物品的复杂度为 \(O(m)\)。比较难写,卡常时用。 完全背包的特殊性质 对于物品集合 \(A\) 和物品集合 \(B\),\(A \bigcup
大数据技术之_05_Hadoop学习_04_MapReduce_Hadoop企业优化(重中之重)+HDFS小文件优化方法+MapReduce扩展案例+倒排索引案例(多job串联)+TopN案例+找博客共同粉丝案例+常见错误及解决方案
第6章 Hadoop企业优化(重中之重)6.1 MapReduce 跑的慢的原因6.2 MapReduce优化方法6.2.1 数据输入6.2.2 Map阶段6.2.3 Reduce阶段6.2.4 I/O传输6.2.5 数据倾斜问题6.2.6 常用的调优参数6.3 HDFS小文件优化方法6.3.1 HDFS小文件弊端6.3.2 HDFS小文件解决方案第7章 MapReduce扩展案例7.1 倒排索引案例(多job串联)7.2 TopN案例7.3 找博客共同粉丝案例第8章 常见错误及解决方案 第6
POJ 2018 Best Cow Fences(二分最大区间平均数)题解
题意:给出长度>=f的最大连续区间平均数 思路:二分这个平均数,然后O(n)判断是否可行,再调整l,r。判断方法是,先求出每个数对这个平均数的贡献,再求出长度>=f的最大贡献的区间,如果这个最大贡献大于0说明这个二分出来的数可行。 代码: #include<set>
#include<map>
#include<stack>
#include<cmath>
#include<queue>
#include<vector>
#include<string>
#include<cst
需求分析文档为什么很难写?
国内企业信息化领域的需求文档撰写通常在项目有影或者没影的时候就开始了,国外的需求分析可能通常以会议或谈话开始,国内却往往从文档开始,甚至可以说需求文档的撰写过程,就是了解需求的过程,通过一版一版的文档评审开始,如果文档不够完善,需求的调研可以一直延续到开发人员开发,测试人员测试,交付人员交付为止。而文档之所以难写又是因为写文档的人通常不是需求方,而是需求的服务方。首先,需求分析文档通常由乙方或称项
637.二叉树的平均值
题目 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组. 示例 1: 输入:
3
/ \
9 20
/ \
15 7
输出: [3, 14.5, 11]
解释:
第0层的平均值是 3, 第1层是 14.5, 第2层是 11. 因此返回 [3, 14.5, 11]. 代码 class Solution {
public:
vector<double> averageOfLevels(TreeNode* root) {
v
Spring Boot 整合mybatis时遇到的mapper接口不能注入的问题
现实情况是这样的,因为在练习spring boot整合mybatis,所以自己新建了个项目做测试,可是在idea里面mapper接口注入报错,后来百度查询了下,把idea的注入等级设置为了warning,至于怎末设置可以自行百度,这里不再赘述,但是接下来spring boot能够运行起来,但是通过浏览器访问的时候,就会报错,后来也是经过多方查询,发现了问题的原因,特此记录一下: spring boot整合mybatis时,要将mapper装配到spring容器中,要在mapper接口中加上@M
不同编程语言的初心和适用对象
C: 学习内容:指针、内存、数据类型 语言本质:理解计算机系统结构 解决问题:性能 适用对象:计算机专业 java: 学习内容:对象、跨平台、运行时 语言本质:理解主客体关系 解决问题:跨平台 适用对象:软件类专业 c++: 学习内容:对象、多态、继承 语言本质:理解主客体关系 解决问题:大规模程序 适用对象:计算机类专业 VB: 学习内容:对象、按钮、文本框 语言本质:理解交互逻辑 解决问题:桌面应用 适用对象:不确定 python: 学习内容:编程逻辑、第三方库 语言本质:理解问题求解 解
Shell编程_day4--技术流ken
本节内容 1. shell函数 2. shell正则表达式 shell函数 shell中允许将一组命令集合或语句形成一段可用代码,这些代码块称为shell函数。给这段代码起个名字称为函数名,后续可以直接调用该段代码。 格式 func() { #指定函数名
command #函数体
} 实例1: #!/bin/bash
func() {
echo "This is a function."
}
func
# bash test.sh
This is a fu
电子工程师从书系列15篇下载
下载地址:https://u18103887.ctfile.com/fs/18103887-327689676[添加链接描述](https://u18103887.ctfile.com/fs/18103887-327689676) 电子工程师从书系列下载
今日推荐
周排行