java学习day59-SpringAOP --Cache操作(注解)
Spring AOP中Cache操作实现 缓存场景分析 在业务方法中我们可能调用数据层方法获取数据库中数据,假如访问数据的频率比较高,为了提高的查询效率,降低数据库的访问压力,可以在业务层对数据进行缓存. Spring 中业务缓存应用实现 开启缓存配置 在项目(SpringBoot项目)的启动类上添加@EnableCaching注解,以启动缓存配置。 package com.cy;
@EnableCaching
@EnableAsync//spring容器启动时会创建线程池
@SpringB
Daliy Algorithm (字符串,暴力,数学)-- day 96
Nothing to fear 种一棵树最好的时间是十年前,其次是现在! 那些你早出晚归付出的刻苦努力,你不想训练,当你觉的太累了但还是要咬牙坚持的时候,那就是在追逐梦想,不要在意终点有什么,要享受路途的过程,或许你不能成就梦想,但一定会有更伟大的事情随之而来。 mamba out~ 2020.7.26 人一我十,人十我百,追逐青春的梦想,怀着自信的心,永不言弃! CF#658Div2-C1 分析 首先观察数据范围大概是一个\(O(n^2)\)的时间复杂度,毕竟n只有1000 我们倒着考虑,因
SpringBoot 入门:10 - 统一异常处理
在开发过程中,我们经常会遇到程序报错的情况,对调用方来说,这种情况下他们能看到的就是一大段错误或者是描述模糊的提示。我们希望对可预期的异常进行全局捕获,并进行适当处理,然后以清晰的说明返回给调用方。 在 Spring Boot 中我们可以使用 @Control
从linux内核理解Java怎样实现Socket通信
前言 前段时间买本书研究了 TCP/IP 通信,弄清楚了计算机之间是怎么通信的。网络通信的的基础就是 TCP/IP 协议簇,也被称为 TCP/IP 协议栈 ,也被简称为 TCP/IP 协议。 TCP/IP 协议 并不是只有 TCP 和 IP 协议,只是这俩用的
.net 面试宝典超多常见面试题
.NET面试宝典 目录 一、 第1阶段:HTML&c#基础4 1. 简述 private、 protected、 public、 internal 修饰符的访问权限。 4 2. ADO.NET中的五个主要对象 4 3. 列举ASP.NET 页面之间传递值的几种方式。 5 4. 面向对象的三个特性? 5 5. C#中的委托是什么?事件是不是一种委托?事件和委托的关系。 5 6. override与重载的区别 6 7. 属性和public字段的区别是什么?调用set方法为一个属性设值,然后用get
P3199 【[HNOI2009]最小圈】
疑似三倍经验 因为和机房一些大佬一起做的这道题,所以emmm他们貌似也写了题解,在做这道题的时候也参照了其他大佬写的一些题解,所以如果程序有雷同请见谅(手动鞠躬) 题目也是莫名其妙地给了一大串数学式,简洁地重新说一下题目 给你一张图,图中有环,定义一个环的平均值为环的边权和÷环中点的个数,那么就应该有了一中非常暴力的思路 想办法找出来图中所有的环并求出其平均值,再比较出最小值 这个方法确实怎么想都很暴力,但是一点也不好实现,可能是我太弱,我实在想不太出来有什么算法可以找出来所有的环,所以这种思
【LeetCode】329. 矩阵中的最长递增路径(深入理解DFS)
题目链接 https://leetcode-cn.com/problems/longest-increasing-path-in-a-matrix/ 题目描述 给定一个整数矩阵,找出最长递增路径的长度。 对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。 示例 1:
输入: nums =
[
[9,9,4],
[6,6,8],
[2,1,1]
]
输出: 4
解释: 最长递增路径为 [1, 2, 6, 9]。
示例
TypeScript error TS1005: ';' expected
今天你想写一个TypeScript,来练练手。初来乍到就遇到了一个问题你,搞了半天,不多说,直接上: 代码: let userName:string = '安其拉';
alert(userName);
错误: C:\Users\Panmy\Desktop\typescript\test1.ts(9,5): error TS1005: ';' expected.
坏境: window typescript版本 不管怎么update都是 Version 1.0.3.0 原因: 网上得知type
java基础:多线程学习笔记
多线程 基本概念 并发:指两个或多个事件在同一时间段内发生。(交替执行) 并行:指两个或多个事件在同一时刻发生。(同时执行) 进程:指一个内存中运行的应用程序,每个应用程序都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。点击应用程序,程序会从硬盘(RAM)进入到内存(ROM)中,占用一定的内存空间执行。进入到内存中的程序叫进程。 线程:指进程中的一个执行单元,负责当前进程中程序
超硬核Java工程师学习指南,真正的从入门到精通,众多粉丝亲测已拿offer!
最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好。原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都是站在Java后端的全局上进行思考和总结的,忽略了很多小白们的感受,而很多朋友都需要更加基础,更加详细的学习路线。 所以,今天我们重新开一个新的专题,分别按照四篇文章讲述Java的学习路线(分别是入门篇,初级篇,中级篇,高级篇),笔者也打算趁此机会,回忆一下自己的Java学习历程。今天我们要讲的是,小白同学如何入门Java。 先
博客园装饰样式 博客园美化样式
博客园美化样式一条龙服务 博客园作为自己总结知识、见证自己技术成长的技术家园,就像自己的房间一样,想收拾的干净,舒服,与众不同 因为网上内容比较零散杂乱,装饰博客的时候也花了挺多时间去搜索,测试,针对自己博客布局进行了css样式的调整和js微调 本来只是想自己使用,有网友需要,就开放出来,来源于网络回归于网络,代码已经增加注释并且明确代码安放位置,希望可以帮到大家,节省各位的时间 以下代码均亲测有效且大多正在使用,效果参考我的博客 所有前端源码均来自网络,作者不详,感谢网络各位前端大神的奉献
CDQ 分治多维偏序问题小结
一、关于 cdq 分治 有的时候,后面的值会依赖前面的值。比如 DP 的过程中,要求出后面的 DP 值,我们就需要先求出前面的 DP 值。 这时候就需要用到 cdq 分治。这个分治的思路如下: 递归处理左边 计算左边对右边带来的贡献 递归处理右边 二、多维偏序问题 1. 最长上升子序列(二维偏序) 题目大意:有 n 个数 a1,...,an,求最长上升子序列的长度。1≤n≤105。 Solution: 设 f[i] 表示以 i 结尾的最长上升子序列的长度。 然后可以用 DP 来求解:f[i]=
缓存雪崩,缓存击穿,缓存穿透
缓存穿透 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求
如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。
解决方案: 接口层增加校验,如用户鉴权校验,id做基础校验,id<=0的直接拦截; 从缓存取不到的数据,在数据库中也没有取到,这时也可以将key-value对写为key-null,缓存有效时间可以设置短点,如30秒(设置太长会导致正常情况也没法使用)。这样可以防止攻击用户反复用同一个id暴力攻击 缓存击穿 缓存击穿
Solution -「洛谷 P6021」洪水
\(\mathcal{Description}\) Link. 给定一棵 \(n\) 个点的带点权树,删除 \(u\) 点的代价是该点点权 \(a_u\)。\(m\) 次操作: 修改单点点权。 询问让某棵子树的根不可到达子树内任意一片叶子的代价。 \(n,m\le2\times10^5\)。 \(\mathcal{Solution}\) 不考虑修改,列出 DP: \[f(u)=\begin{cases}a_u&u\text{ is leaf}\\\min\{a_u,\sum_v
Spring整合Mybatis(xml方式)
Spring整合Mybatis 目录 Spring整合Mybatis 导入依赖 配置文件 整合思路 xml方式配置 环境配置 数据库连接属性 bean对象 持久层 服务层接口 不使用mybatis:scan 服务层实现类 spring配置文件 使用mybatis:scan 服务层实现类: spring配置文件: 依赖 导入依赖 Spring所需依赖:spring-context、spring-aspects、aspectjrt、aspectjweaver、spring-tx、spring-jd
剑指 Offer 53 - II. 0~n-1中缺失的数字
题目 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 示例: 输入: [0,1,3] 输出: 2 解题思路 方式一:直接遍历数组; 方式二:使用二分法。 代码 代码一: public int missingNumber(int[] nums) {
for(int i=0;i<nums.length;i++){
if(nums[i]!=i){
剑指 Offer 53 - I. 在排序数组中查找数字 I
题目 统计一个数字在排序数组中出现的次数。 示例: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 解题思路 使用二分法查找,找到与目标数字相等的值的最左侧位置,然后向后移动,记录目标数字的次数。 代码 public int search(int[] nums, int target) {
if (nums==null||nums.length==0){
return 0;
}
int left = 0;
求解立方根 (HJ107)
一:解题思路 这道题目和 leetcode69 题,求解x的平方根有些类似。都是采用二分的思想来做,可以对比分析。 二:完整代码示例 (C++版和Java版) C++: #include <iostream>
using namespace std;
double getCubeRoot(double input)
{
double low = 0;
double high = input;
while ((high-low)>=0.001)
{
HDU1162 Eddy's picture
Eddy begins to like painting pictures recently ,he is sure of himself to become a painter.Every day Eddy draws pictures in his small room, and he usually puts out his newest pictures to let his friends appreciate. but the result it can be imagined,
今日推荐
周排行