《Java并发编程的艺术》第6、7章 Java并发容器与框架/Java中的13个原子操作
第6章 Java并发容器和框架 6.1 ConcurrentHashMap(线程安全的HashMap、锁分段技术) 6.1.1 为什么要使用ConcurrentHashMap 在并发编程中使用HashMap可能导致程序死循环,而线程安全的HashTable效率又非常低下。基于以上两个原因,便有了ConcurrentHashMap的登场机会。 (1)线程不安全的HashMap 在多线程环境下,使用HashMap进行put操作会引起死循环(因为多线程会导致HashMap的Entry链表
用Maven整合SSM框架
前述 Maven 是专门用于构建和管理Java相关项目的工具,利用 Maven 的主要目的是统一维护 jar 包。关于 Maven 的安装在这篇里面就不说了。 SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。关于SSM框架的基本思想这里也不赘述了,主要是记录 Maven 整合 SSM 的过程。 整体项目结构 创建Maven项目 新建M
LOJ2482 CEOI2017 Mousetrap 二分答案、树形DP
传送门 表示想不到二分答案qwq 将树看作以陷阱为根。先考虑陷阱和起始点相邻的情况,此时老鼠一定会往下走,而如果管理者此时不做操作,那么一定会选择让操作次数变得最大的一棵子树。设\(f_i\)表示当前老鼠在第\(i\)个点、管理者先手,老鼠往下然后被逼回第\(i\)个点的最小操作次数。那么管理者一定会封掉儿子中\(f\)最大的,然后老鼠进入\(f\)次大的;当老鼠走到子树中一个点不能动的时候,管理者一定会把这个点的其他没有被封住的子树全部封住,这样显然是最优的。所以\(f_i = cmx\{f
Apache Shiro 会话+缓存+记住我(三)
1、会话管理SessionDao和SessionManager 1)安装Redis 2)依赖 <dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.8.0</version>
</dependency> 3)配置redis连接池的bean: @Bean
p
SpringBoot 集成mongodb(1)单数据源配置
新项目要用到mongodb,于是在个人电脑上的虚拟环境linux上安装了下mongodb,练习熟悉下。 1、虚拟机上启动mongodb。 首先查看虚拟机ip地址,忘了哈~~ 命令行>ifconfig mongodb安装目录bin>sudo ./mongod -f mongodb.conf 检查是否已经启动: 也可以用客户端连接: 2、用SpringBoot建立mongoProj工程; 2.1、配置文件设置 pom.xml <!-- mongodb 配置 -->
Memcache与Redis的区别都有哪些?
5. Memcache与Redis的区别都有哪些? 1)、存储方式 Memecache把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。 Redis有部份存在硬盘上,这样能保证数据的持久性。 2)、数据支持类型 Memcache对数据类型支持相对简单。 Redis有复杂的数据类型。 3)、使用底层模型不同 它们之间底层实现方式 以及与客户端之间通信的应用协议不一样。 Redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。 4),value
jQuery其他事件
ready(fn) 当DOM载入就绪可以查询及操作时,绑定一个要执行的函数。 resize([[data],fn]) 当调整浏览器窗口的大小时,发生resize事件。它属于BOM中的window对象。 focus([[data],fn])、blur([[data],fn]) 当元素获得(失去)焦点时触发focus(blur)事件。 change([[data],fn]) 当元素的值发生改变时,会发生change事件。?发生检测的条件是什么? select([[data],fn]) 当texta
Java基础--注解、反射
一、注解(Annotation) 1、什么是注解? 从JDK5开始,Java增加了Annotation(注解),Annotation是代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。 2、Annotation与注释的区别: (1)Annotation不是程序本身,可以对程序进行解释,此处可以理解为注释。但是Annotation可以被其他程序(比如编译器)读取,并进行处理。 (2)注解与注释最大的区别就是注解存在被处理的流程,即注解是会被程序处理的。 3
flink Reduce、GroupReduce、GroupCombine笔记
1、reduce操作,在分组的dataset上使用,也可以在不分组的dataset上使用 应用于分组DataSet的Reduce转换使用用户定义的reduce函数将每个组减少为单个元素。对于每组输入元素,reduce函数连续地将元素对组合成一个元素,直到每个组只剩下一个元素。
注意,对于ReduceFunction,返回对象的key字段应与输入值匹配。这是因为reduce是可隐式组合(combine)的,并且从combine运算符发出的对象在传递给reduce运算符时再次按key分组。
Faster-RCNN算法学习
目录 引言 RCNN的算法思想 1.对图像生成候选区域 2.特征提取 3.类别判断 Fast R-CNN的算法思想 Faster RCNN算法思想 1.网络结构介绍 参考资料 引言 最近在研究Faster-RCNN算法,作为一名目标检测的新手,参考了许多优秀的博客,希望将他们的核心思想记录下来以便日后回忆学习,同时加深自己的理解,以下是我根据一些优秀的博客整理总结的,参考资料注了其来源。 RCNN的算法思想 RCNN算法大致流程 1.对图像生成候选区域 使用Selective Sear
[JZOJ6241]【NOI2019模拟2019.6.29】字符串【数据结构】【字符串】
Description 给出一个长为n的字符串\(S\)和一个长为n的序列\(a\) 定义一个函数\(f(l,r)\)表示子串\(S[l..r]\)的任意两个后缀的最长公共前缀的最大值。 现在有q组询问,每组询问给出\(L,R,x\) 你需要找到一个子串\(S[l,r]\)满足\([l,r]\subset[L,R]\)且\(f(l,r)\geq x\) 同时需要满足\(max(a[l..r])\)最小 求这个最小值,无解则输出-1 \(n,q\leq 50000\) Solution 这道题实
常用的计数方法--数组对象总和
1.使用reduce let arr = [{name:'a',count:23},{name:'b',count:23},{name:'c',count:23},{name:'d',count:23},{name:'e',count:23}]
let counts = arr.reduce(function(prev,item){
return prev+item.count
},0) 2.遍历相加 let count = 0;
arr.forEach(el=>{
coun
spark学习(1) : spark介绍
spark介绍 spark拥有hadoop mapreduce所具有的优点,但输出结果可以保存在内存中,从而不需要读写hdfs spark负责数据的计算,用来替代mapreduce编程模型,不能替代hdfs等存储系统 spark特点: 运算速度快,内存中计算可达hadoop的100倍,硬盘中也能快10倍 易于使用,可以使用java,scala,python等进行编程 通用,SQL,streaming实时计算,MLib机器学习,graphX图计算 可以运行在各种平台上 为什么要学习spark:
https://github.com/esofar/cnblogs-theme-silence/blob/master/docs/deploy.md
https://github.com/esofar/cnblogs-theme-silence/blob/master/docs/deploy.md
spark streaming流式计算---监听器
随着对spark的了解,有时会觉得spark就像一个宝盒一样时不时会出现一些难以置信的新功能。每一个新功能被挖掘,就可以使开发过程变得更加便利一点。甚至使很多不可能完成或者完成起来比较复杂的操作,变成简单起来。有些功能是框架专门开放给用户使用,有些则是框架内部使用但是又对外暴露了接口,用户也可以使用的功能。 今天和大家分享的是两个监听器SparkListener和streamingListener,由于这两个监听器的存在使得很多功能的开发变得轻松很多,也使很多技术实现变得轻便很多。 结合我的使
spring注解驱动开发(三):servlet3.0
servlet3.0查看官网: 属于jsr规范 查看tomcat支持servlet的版本 : 发现只有tomcat7以上才能支持servlet3.0 servlet示例: 支持WebServlet,Webfilter,WebListener注解,示例如下: package com.atguigu.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.serv
微信小程序~App.js中获取用户信息
(1)代码:主要介绍下获取用户信息部分 onLaunch: function () {
// 展示本地存储能力
var logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs', logs)
// 登录
wx.login({
success: res => {
// 发送 re
关于目录的操作|*|<>|opendir |readdir|unlink|find2perl|rename|readlink|oct()|utime
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 foreach my $arg(@ARGV)
7 {
8 print "one is $arg\n";
9 }
10
11 # perl t.pl *.txt
12 # one is 1.txt
13 # one is 2.txt
14
15 my @all_files = glob '*';print "@all_files\
今日推荐
周排行