- Redis面试题----为什么要做Redis分区?
指尖下的技术
Java面试题redisjava数据库
Redis分区,也称为分片(Sharding),是将数据分散存储到多个Redis实例上的一种策略。做Redis分区主要有以下几个方面的原因:扩展性突破单机内存限制:随着业务的发展,数据量会不断增大,而单个Redis实例的内存是有限的。通过分区可以将数据分散到多个Redis实例中,理论上可以不受单机内存的限制,从而存储更多的数据。例如,一个电商平台的商品缓存数据量巨大,单台Redis服务器无法容纳,
- Redis面试题----MySQL 里有 2000w 数据,Redis 中只存 20w 的数据,如何保证 Redis 中的数据都是热点数据?
指尖下的技术
Java面试题redismysql数据库
要保证Redis中存储的20w数据都是热点数据,可以从数据筛选和数据淘汰两个大的方面来考虑,以下是详细的实现思路和方法:数据筛选1.基于业务规则分析业务场景:不同的业务场景有不同的热点数据特征。例如,在电商系统中,热门商品、促销商品往往是热点数据;在新闻资讯系统中,最新发布、阅读量高的新闻是热点数据。根据业务的特点,确定热点数据的规则。定期同步:编写脚本或程序,根据业务规则从MySQL中筛选出符合
- Java 设计模式面试题
code36
Java面试题设计模式java面试
说一下开发中需要遵守的设计原则?设计模式中主要有六大设计原则,简称为SOLID,是由于各个原则的首字母简称合并的来(两个L算一个,solid稳定的),六大设计原则分别如下:1、单一职责原则单一职责原则的定义描述非常简单,也不难理解。一个类只负责完成一个职责或者功能。也就是说在类的设计中我们不要设计大而全的类,而是要设计粒度小、功能单一的类。比如我们设计一个类里面既包含了用户的一些操作,又包含了支付
- Python常见面试题的详解13
ylfhpy
python开发语言面试
1.以下X是什么类型X=(iforiinrange(10))要点在Python中,变量的类型取决于其赋值的对象。下面代码中的(iforiinrange(10))是一个生成器表达式。生成器表达式是一种简洁的创建生成器的方式,它类似于列表推导式,但使用圆括号而非方括号。生成器是一种特殊的迭代器,它不会一次性生成所有的值,而是在需要时逐个生成,这在处理大量数据时可以节省内存。pythonX=(ifori
- 2020年Python最新面试题(四):爬虫基础知识
Amo Xiang
Python3入门与进阶pythonhttp面试题spider
目录1.什么是爬虫?2.爬虫的基本流程有哪些?3.Request中包含了哪些内容?4.Response中包含了哪些内容5.HTTP请求中的POST、GET有什么区别?6.HTTP、HTTPS协议有什么区别?7.Cookie和Session有什么区别?8.域名和IP之间有什么关系?如何查看某个域名对应的IP地址?9.在HTTP协议头中,keep-alive字段有什么作用?10.HTTP常用的状态码(
- Python常见面试题的详解7
ylfhpy
python开发语言面试
1.内置的数据结构有哪几种Python中有多种内置的数据结构,主要分为以下几种:1.1数值类型整数(int):用于表示整数,没有大小限制。例如:1,-5,100。浮点数(float):用于表示小数。例如:3.14,-0.5。复数(complex):由实部和虚部组成,虚部以j或J结尾。例如:3+4j。1.2序列类型字符串(str):由零个或多个字符组成的不可变序列。例如:"hello"。列表(lis
- Python常见面试题的详解10
ylfhpy
python开发语言面试
1.哪些操作会导致Python内存溢出,怎么处理?要点1.创建超大列表或字典:当我们一次性创建规模极为庞大的列表或字典时,会瞬间占用大量的内存资源。例如,以下代码试图创建一个包含10亿个元素的列表,在执行这段代码时,由于需要为这10亿个整数分配内存空间,很容易就会导致内存溢出错误。pythonhuge_list=[iforiinrange(10**9)]2.递归深度过大:递归函数在没有正确设置终止
- Python常见面试题的详解11
ylfhpy
Python基础和面试python开发语言面试
1.函数调用参数的传递方式是值传递还是引用传递?要点在Python中,参数传递方式既不是纯粹的值传递,也不是纯粹的引用传递,而是“对象引用传递”。本质上传递的是对象引用的副本,对于不可变对象,函数内修改参数不会影响原对象;对于可变对象,函数内修改参数可能会影响原对象。python#不可变对象作为参数(类似值传递)defmodify_immutable(num):num=num+1returnnum
- Java集合设计模式面试题
夜游猿
Java开发工程师面试java设计模式开发语言
Java集合设计模式面试题迭代器模式Q1:Java集合框架中的迭代器模式是如何实现的?迭代器模式提供了一种统一的方式来访问集合中的元素,而不需要暴露集合的内部结构。publicclassIteratorPatternExample{//1.基本迭代器使用publicvoidbasicIteratorUsage(){Listlist=newArrayListiterator=list.iterato
- Python常见面试题的详解23
ylfhpy
Python基础和面试python开发语言面试数据库
1.存储过程与触发器有什么区别要点定义用途:存储过程是预编译SQL语句集合,存于数据库,含逻辑控制和变量,用于特定业务,可被调用;触发器是特殊存储过程,特定数据库事件触发,用于数据完整性和审计。调用方式:存储过程需显式调用;触发器由事件自动触发,不可显式调用。参数传递:存储过程可接收输入输出参数;触发器通常无显式参数,基于触发事件表数据操作。存储过程和触发器在数据库中扮演着不同但又重要的角色。存储
- 网络安全常见面试题--含答案
网络安全-杰克
web安全安全
本文面试题汇总:防范常见的Web攻击重要协议分布层arp协议的工作原理rip协议是什么?rip的工作原理什么是RARP?工作原理OSPF协议?OSPF的工作原理TCP与UDP区别总结什么是三次握手四次挥手?tcp为什么要三次握手?dns是什么?dns的工作原理一次完整的HTTP请求过程Cookies和session区别GET和POST的区别HTTPS和HTTP的区别session的工作原理?htt
- JVM 高级面试题及答案整理,最新面试题
扫地僧009
互联网大厂面试题jvmjava面试
JVM中的垃圾收集器有哪些,它们的工作原理是什么?JVM中的垃圾收集器主要包括以下几种:1、Serial收集器:它是一个单线程收集器,工作时会暂停所有其他工作线程("Stop-The-World"),它的优点是简单高效(与其他收集器的单线程比),适用于单核处理器的环境。2、ParNew收集器:可以看作是Serial收集器的多线程版本,主要用于新生代的垃圾收集,适合多核处理器环境。3、Paralle
- Spring Boot 面试题及答案整理,最新面试题
扫地僧009
互联网大厂面试题springboot后端java面试
SpringBoot中的自动配置是如何工作的?SpringBoot的自动配置是其核心特性之一,它通过以下方式工作:1、@EnableAutoConfiguration注解:这个注解告诉SpringBoot开始查找添加了@Configuration注解的类,并自动配置它们。当应用启动时,SpringBoot会扫描项目依赖中的jar包,寻找包含spring.factories文件的项目。2、条件注解:
- Spring Cloud 面试题及答案整理,最新面试题
扫地僧009
互联网大厂面试题springcloudspring后端面试
SpringCloud中断路器的原理及其作用是什么?SpringCloud断路器的原理和作用基于以下几个关键点:1、故障隔离机制:在微服务架构中,断路器作为一种故障隔离机制,当某个服务实例出现问题时,断路器会“断开”这个实例,防止故障蔓延到其他服务。2、快速失败机制:当断路器打开时,对该服务的调用将会快速失败而不是等待,从而避免资源浪费和延迟。3、服务降级:在断路器打开时,可以为用户提供备选的响应
- Spring MVC 面试题及答案整理,最新面试题
扫地僧009
互联网大厂面试题springmvcjava面试
SpringMVC中的DispatcherServlet是什么,它如何工作?DispatcherServlet是SpringMVC中的核心组件,负责协调不同的请求处理器。它的工作流程包括:1、请求接收:接收HTTP请求,并将其转发到相应的处理器。2、处理器映射:根据请求查找合适的Controller。3、调用适当的处理器:执行处理器逻辑并返回ModelAndView对象。4、视图渲染:将Model
- C++八股(面试题、手撕题)自用版
为了找工作开始抱佛脚
c++开发语言面试
目录面试题:1.defineinline在编译的哪个阶段2.conststatic3.子函数返回结构体有什么问题,返回对象调用了哪些函数4.volatile关键字5.编译器基本原理6.预处理、编译、汇编、链接以及他们在操作系统上如何运作的7.数组和指针(二维)8.指针和引用9.new和malloc10.万能引用和右值引用11.解释中断,以及底层发生的操作细节12.C++多线程在操作系统上如何运作的
- 腾讯面试:大厂必问消息队列场景面试题
消息队列腾讯面试问题
今天,我将那些大厂必问的消息队列的场景问题为大家整理出来,本文将跟大家一起来探讨如何回答这些问题。为什么要使用消息队列?保证消息有序,一个topic只能有一个partition吗?(消息顺序)业务突然增长,导致消息消费不过来怎么办?(消息积压)生产者收到写入成功响应后消息一定不会丢失吗?(消息丢失)高并发场景下怎么保证消息不会重复消费?(重复消费)如何保证消息的可靠性?各大消息队列中间件对比及使用
- Java面试题总结之Spring高频面试题
程恤
javaspring面试
一、题目:谈谈你对Spring框架的理解1.Spring是一个开源框架,主要是为简化企业级应用可开发而生,可以实现EJB可以实现的功能,Spring是一个IOC和AOP容器框架。①控制反转(IOC):Spring容器使用了工厂模式为我们创建了所需要的对象,我们使用时不需要自己去创建,直接调用Spring为我们提供的对象即可,这就是控制反转的思想②依赖注入(DI):Spring使用JavaBean对
- spring security面试题
「已注销」
springjava后端
1、springsecurity所谓的全局上下文是如何实现的?ThreadLocal2、了解springsecurity哪些核心组件,并介绍?AuthenticationManagerBuilder@Configuration@EnableWebSecuritypublicclassWebSecurityConfigextendsWebSecurityConfigurerAdapter{@Over
- Java集合性能优化面试题
夜游猿
Java开发工程师面试javapython开发语言
Java集合性能优化面试题初始化优化Q1:如何优化集合的初始化?publicclassCollectionInitializationExample{//1.合理设置初始容量publicvoidinitializationOptimization(){//不好的实践:使用默认容量ListbadList=newArrayListgoodList=newArrayListmap=newHashMapl
- 腾讯SQL面试题变体实现:最长连续天数与允许1天中断的进阶解法
数据大包哥
#大厂SQL面试指南sql数据库大数据
腾讯SQL面试题变体实现:最长连续天数与允许1天中断的进阶解法作者:某七年数据开发工程师|2025年02月23日关键词:滑动窗口、容错机制、连续区间优化一、变体题型需求分析在原题如何找出连续5天涨幅超过5%的股票基础上,需实现两个扩展场景:最长连续天数:输出每只股票历史上连续涨幅≥5%的最长天数允许1天中断:筛选连续5天中有≥4天达标(允许1天不达标)的股票业务价值:前者用于评估股票动量强度,后者
- 2024腾讯最新面经总结:面试题库+实战笔记(附答案解析)
2401_84048521
程序员面试笔记职场和发展
20、你们用过缓存吗没有,但是用redis做了分布式锁21、你说说下分布式锁怎么做的?分布式锁也是一个锁,需要满足几个特性,1可重入2可以识别加锁的身份防止ABA问题3考虑是否需要续约key是所需要加上的锁的业务资源唯一编码,value是当前线程的uuid,uuid存在threadLocal内加锁的时候用的jedis,先设一个过期时间,然后用ex,若不存在key则添加新key,若已经存在则直接失败
- 21个MongoDB经典面试题
程序员麦冬
面试文mysqljavaredismongodb数据库
1、什么是MongoDB?MongoDB是一个文档数据库,提供好的性能,领先的非关系型数据库。采用BSON存储文档数据。BSON()是一种类json的一种二进制形式的存储格式,简称BinaryJSON.相对于json多了date类型和二进制数组2、MySQL与MongoDB之间最基本的差别是什么?MySQL和MongoDB两者都是免费开源的数据库。MySQL和MongoDB有许多基本差别包括数据的
- MongoDB 面试题及答案整理,最新面试题
孙恒阳
mongodb数据库
MongoDB中索引的工作原理及其类型MongoDB中索引的工作原理类似于传统数据库,用于加速查询操作。索引存储着文档的一个小部分字段,并按照这些字段的排序顺序进行组织。常见的索引类型包括:1、单字段索引:最基本的索引类型,只对文档中的一个字段进行索引。2、复合索引:对文档中的多个字段进行组合索引,可以支持对这些字段的查询操作。3、多键索引:用于数组字段,为数组中的每个元素创建索引项。4、全文索引
- Java 算法和数据结构 答案整理,最新面试题
扫地僧009
互联网大厂面试题java算法数据结构
Java中如何使用动态规划求解背包问题?1、定义子问题:首先确定动态规划状态,通常以物品数量和背包容量为变量定义子问题,例如dp[i][j]表示前i件物品放入容量为j的背包所能获得的最大价值。2、确定状态转移方程:基于是否选择当前物品,将问题分为两个子问题,即dp[i][j]=max(dp[i-1][j],dp[i-1][j-weight[i]]+value[i]),表示选择当前物品和不选择当前物
- 数据仓库面试题集锦(附答案和数仓知识体系),面试必过
m0_60635001
2024年程序员学习数据仓库面试spark
3、如何构建数据仓库?数据仓库模型的选择是灵活的,不局限与某种模型方法;数据仓库数据是灵活的,以实际需求场景为导向;数仓设计要兼顾灵活性、可扩展性、要考虑技术可靠性和实现成本1)调研:业务调研、需求调研、数据调研2)划分主题域:通过业务调研、需求调研、数据调研最终确定主题域3)构建总线矩阵、维度建模总线矩阵:把总线架构列表形成矩阵形式,行表示业务处理过程,即事实,列表示一致性的维度,在交叉点上打上
- Elasticsearch 相关面试题
一切顺势而行
elasticsearch
1.Elasticsearch基础Elasticsearch是什么?Elasticsearch是一个分布式搜索引擎,基于Lucene实现。Mapping是什么?ES中有哪些数据类型?Mapping:定义字段的类型和属性。数据类型:text、keyword、integer、float等。2.什么是全文检索?全文检索是一种基于文本内容的检索方式。3.ES支持哪些类型的查询?全文查询:match、que
- 腾讯PHP经典面试题(附答案)
事业运财运爆棚
android
腾讯PHP经典面试题(附答案)PHP开发工程师笔试试卷姓名:PHP一、PHP开发部分1.合并两个数组有几种方式,试比较它们的异同答:1、array_merge()2、’+’3、array_merge_recursivearray_merge简单的合并数组array_merge_recursive合并两个数组,如果数组中有完全一样的数据,将它们递归合并array_combine和‘+’:合并两个数组
- 前端开发岗模拟面试题套卷A答案及解析(一)技术面部分
向贤
前端开发前端数据库javascript面试
前端开发岗模拟面试题套卷A答案及解析(一)技术面部分(一)技术面一、JavaScript核心技术(ES6+)1-1、实现防抖函数functiondebounce(fn,delay){lettimer=null;returnfunction(...args){clearTimeout(timer);//清除已有定时器timer=setTimeout(()=>{fn.apply(this,args);
- 微信小程序面试题
Sunshinedada
vue.js前端javascript
微信小程序面试题微信小程序页面的生命周期函数主要包括哪些?onLoad:页面加载时触发。一个页面只会调用一次,可以在onLoad的参数中获取打开当前页面路径中的参数。onShow:页面显示时触发调用。onReady:页面初次渲染完成时触发,一个页面只会调用一次。onHide:页面隐藏时触发,如navigateTo或底部tab切换到其他页面等。onUnload:页面卸载时触发。如redirectTo
- LeetCode[Math] - #66 Plus One
Cwind
javaLeetCode题解AlgorithmMath
原题链接:#66 Plus One
要求:
给定一个用数字数组表示的非负整数,如num1 = {1, 2, 3, 9}, num2 = {9, 9}等,给这个数加上1。
注意:
1. 数字的较高位存在数组的头上,即num1表示数字1239
2. 每一位(数组中的每个元素)的取值范围为0~9
难度:简单
分析:
题目比较简单,只须从数组
- JQuery中$.ajax()方法参数详解
AILIKES
JavaScriptjsonpjqueryAjaxjson
url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。
type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和 delete也可以使用,但仅部分浏览器支持。
timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局
- JConsole & JVisualVM远程监视Webphere服务器JVM
Kai_Ge
JVisualVMJConsoleWebphere
JConsole是JDK里自带的一个工具,可以监测Java程序运行时所有对象的申请、释放等动作,将内存管理的所有信息进行统计、分析、可视化。我们可以根据这些信息判断程序是否有内存泄漏问题。
使用JConsole工具来分析WAS的JVM问题,需要进行相关的配置。
首先我们看WAS服务器端的配置.
1、登录was控制台https://10.4.119.18
- 自定义annotation
120153216
annotation
Java annotation 自定义注释@interface的用法 一、什么是注释
说起注释,得先提一提什么是元数据(metadata)。所谓元数据就是数据的数据。也就是说,元数据是描述数据的。就象数据表中的字段一样,每个字段描述了这个字段下的数据的含义。而J2SE5.0中提供的注释就是java源代码的元数据,也就是说注释是描述java源
- CentOS 5/6.X 使用 EPEL YUM源
2002wmj
centos
CentOS 6.X 安装使用EPEL YUM源1. 查看操作系统版本[root@node1 ~]# uname -a Linux node1.test.com 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [root@node1 ~]#
- 在SQLSERVER中查找缺失和无用的索引SQL
357029540
SQL Server
--缺失的索引
SELECT avg_total_user_cost * avg_user_impact * ( user_scans + user_seeks ) AS PossibleImprovement ,
last_user_seek ,
 
- Spring3 MVC 笔记(二) —json+rest优化
7454103
Spring3 MVC
接上次的 spring mvc 注解的一些详细信息!
其实也是一些个人的学习笔记 呵呵!
- 替换“\”的时候报错Unexpected internal error near index 1 \ ^
adminjun
java“\替换”
发现还是有些东西没有刻子脑子里,,过段时间就没什么概念了,所以贴出来...以免再忘...
在拆分字符串时遇到通过 \ 来拆分,可是用所以想通过转义 \\ 来拆分的时候会报异常
public class Main {
/*
- POJ 1035 Spell checker(哈希表)
aijuans
暴力求解--哈希表
/*
题意:输入字典,然后输入单词,判断字典中是否出现过该单词,或者是否进行删除、添加、替换操作,如果是,则输出对应的字典中的单词
要求按照输入时候的排名输出
题解:建立两个哈希表。一个存储字典和输入字典中单词的排名,一个进行最后输出的判重
*/
#include <iostream>
//#define
using namespace std;
const int HASH =
- 通过原型实现javascript Array的去重、最大值和最小值
ayaoxinchao
JavaScriptarrayprototype
用原型函数(prototype)可以定义一些很方便的自定义函数,实现各种自定义功能。本次主要是实现了Array的去重、获取最大值和最小值。
实现代码如下:
<script type="text/javascript">
Array.prototype.unique = function() {
var a = {};
var le
- UIWebView实现https双向认证请求
bewithme
UIWebViewhttpsObjective-C
什么是HTTPS双向认证我已在先前的博文 ASIHTTPRequest实现https双向认证请求
中有讲述,不理解的读者可以先复习一下。本文是用UIWebView来实现对需要客户端证书验证的服务请求,网上有些文章中有涉及到此内容,但都只言片语,没有讲完全,更没有完整的代码,让人困扰不已。但是此知
- NoSQL数据库之Redis数据库管理(Redis高级应用之事务处理、持久化操作、pub_sub、虚拟内存)
bijian1013
redis数据库NoSQL
3.事务处理
Redis对事务的支持目前不比较简单。Redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令。当一个client在一个连接中发出multi命令时,这个连接会进入一个事务上下文,该连接后续的命令不会立即执行,而是先放到一个队列中,当执行exec命令时,redis会顺序的执行队列中
- 各数据库分页sql备忘
bingyingao
oraclesql分页
ORACLE
下面这个效率很低
SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM IPAY_RCD_FS_RETURN order by id desc) A ) WHERE RN <20;
下面这个效率很高
SELECT A.*, ROWNUM RN FROM (SELECT * FROM IPAY_RCD_
- 【Scala七】Scala核心一:函数
bit1129
scala
1. 如果函数体只有一行代码,则可以不用写{},比如
def print(x: Int) = println(x)
一行上的多条语句用分号隔开,则只有第一句属于方法体,例如
def printWithValue(x: Int) : String= println(x); "ABC"
上面的代码报错,因为,printWithValue的方法
- 了解GHC的factorial编译过程
bookjovi
haskell
GHC相对其他主流语言的编译器或解释器还是比较复杂的,一部分原因是haskell本身的设计就不易于实现compiler,如lazy特性,static typed,类型推导等。
关于GHC的内部实现有篇文章说的挺好,这里,文中在RTS一节中详细说了haskell的concurrent实现,里面提到了green thread,如果熟悉Go语言的话就会发现,ghc的concurrent实现和Go有点类
- Java-Collections Framework学习与总结-LinkedHashMap
BrokenDreams
LinkedHashMap
前面总结了java.util.HashMap,了解了其内部由散列表实现,每个桶内是一个单向链表。那有没有双向链表的实现呢?双向链表的实现会具备什么特性呢?来看一下HashMap的一个子类——java.util.LinkedHashMap。
- 读《研磨设计模式》-代码笔记-抽象工厂模式-Abstract Factory
bylijinnan
abstract
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
package design.pattern;
/*
* Abstract Factory Pattern
* 抽象工厂模式的目的是:
* 通过在抽象工厂里面定义一组产品接口,方便地切换“产品簇”
* 这些接口是相关或者相依赖的
- 压暗面部高光
cherishLC
PS
方法一、压暗高光&重新着色
当皮肤很油又使用闪光灯时,很容易在面部形成高光区域。
下面讲一下我今天处理高光区域的心得:
皮肤可以分为纹理和色彩两个属性。其中纹理主要由亮度通道(Lab模式的L通道)决定,色彩则由a、b通道确定。
处理思路为在保持高光区域纹理的情况下,对高光区域着色。具体步骤为:降低高光区域的整体的亮度,再进行着色。
如果想简化步骤,可以只进行着色(参看下面的步骤1
- Java VisualVM监控远程JVM
crabdave
visualvm
Java VisualVM监控远程JVM
JDK1.6开始自带的VisualVM就是不错的监控工具.
这个工具就在JAVA_HOME\bin\目录下的jvisualvm.exe, 双击这个文件就能看到界面
通过JMX连接远程机器, 需要经过下面的配置:
1. 修改远程机器JDK配置文件 (我这里远程机器是linux).
 
- Saiku去掉登录模块
daizj
saiku登录olapBI
1、修改applicationContext-saiku-webapp.xml
<security:intercept-url pattern="/rest/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<security:intercept-url pattern=&qu
- 浅析 Flex中的Focus
dsjt
htmlFlexFlash
关键字:focus、 setFocus、 IFocusManager、KeyboardEvent
焦点、设置焦点、获得焦点、键盘事件
一、无焦点的困扰——组件监听不到键盘事件
原因:只有获得焦点的组件(确切说是InteractiveObject)才能监听到键盘事件的目标阶段;键盘事件(flash.events.KeyboardEvent)参与冒泡阶段,所以焦点组件的父项(以及它爸
- Yii全局函数使用
dcj3sjt126com
yii
由于YII致力于完美的整合第三方库,它并没有定义任何全局函数。yii中的每一个应用都需要全类别和对象范围。例如,Yii::app()->user;Yii::app()->params['name'];等等。我们可以自行设定全局函数,使得代码看起来更加简洁易用。(原文地址)
我们可以保存在globals.php在protected目录下。然后,在入口脚本index.php的,我们包括在
- 设计模式之单例模式二(解决无序写入的问题)
come_for_dream
单例模式volatile乱序执行双重检验锁
在上篇文章中我们使用了双重检验锁的方式避免懒汉式单例模式下由于多线程造成的实例被多次创建的问题,但是因为由于JVM为了使得处理器内部的运算单元能充分利用,处理器可能会对输入代码进行乱序执行(Out Of Order Execute)优化,处理器会在计算之后将乱序执行的结果进行重组,保证该
- 程序员从初级到高级的蜕变
gcq511120594
框架工作PHPandroidhtml5
软件开发是一个奇怪的行业,市场远远供不应求。这是一个已经存在多年的问题,而且随着时间的流逝,愈演愈烈。
我们严重缺乏能够满足需求的人才。这个行业相当年轻。大多数软件项目是失败的。几乎所有的项目都会超出预算。我们解决问题的最佳指导方针可以归结为——“用一些通用方法去解决问题,当然这些方法常常不管用,于是,唯一能做的就是不断地尝试,逐个看看是否奏效”。
现在我们把淫浸代码时间超过3年的开发人员称为
- Reverse Linked List
hcx2013
list
Reverse a singly linked list.
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
p
- Spring4.1新特性——数据库集成测试
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
- C# Ajax上传图片同时生成微缩图(附Demo)
liyonghui160com
1.Ajax无刷新上传图片,详情请阅我的这篇文章。(jquery + c# ashx)
2.C#位图处理 System.Drawing。
3.最新demo支持IE7,IE8,Fir
- Java list三种遍历方法性能比较
pda158
java
从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象,测试代码例如以下:
package com.hisense.tiger.list;
import java.util.ArrayList;
import java.util.Iterator;
- 300个涵盖IT各方面的免费资源(上)——商业与市场篇
shoothao
seo商业与市场IT资源免费资源
A.网站模板+logo+服务器主机+发票生成
HTML5 UP:响应式的HTML5和CSS3网站模板。
Bootswatch:免费的Bootstrap主题。
Templated:收集了845个免费的CSS和HTML5网站模板。
Wordpress.org|Wordpress.com:可免费创建你的新网站。
Strikingly:关注领域中免费无限的移动优
- localStorage、sessionStorage
uule
localStorage
W3School 例子
HTML5 提供了两种在客户端存储数据的新方法:
localStorage - 没有时间限制的数据存储
sessionStorage - 针对一个 session 的数据存储
之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不
现在的6509及7609,SUP720交换带宽去到720G,是不是可以说7609/6509 可以取代一部分GSR的地位?
答:从某一部分功能来说是可以的。6509以前主要定位于公司企业局域网核心交换机,而GSR定位于广域网高速核心路由设备。7609的SUP720可以提供720G的高速交换能力,MSFC3和PFC3提供高速路由处理能力和大量FEATURE,再加上现在7600系列上的新的SIP+SPA高速线速板卡,完全可以胜任核心路由设备的工作,最适合作汇聚和业务提供路由器。而随着技术的发展,CRS?的出现,GSR逐渐从核心往骨干汇聚发展,作为各种高低速线路的汇聚,在这方面7609和GSR都可以。但7609和GSR在体系结构上还是有根本不同,7609是从交换机发展而来,GSR在内部是将数据分解为标准的信元交换,在队列和调度方面也有不同,所以说作为纯核心路由器来说还是GSR更好,因为它经过多年的考验。从价格来说7609还是比较贵的,而GSR某些时候还要便宜。
ISIS level1 的路由表包括哪此路由?当有多个level??出口时,其它路由它从哪里学到,如何选路?
答:ISIS level1和level2 维护LSD和SPF,LEVEL1的路由表是由LEVEL1 LSD通过SPF计算所得,只包括本地AREA的详细路由和与之连接的LEVEL??通过ATT位发来的缺省路由。当有多个LEVEL12是,每个 LEVEL12通过对发出的LSP包中的ATT位置1,表示其有到其它AREA的路由,而当LEVEL1路由器收到此LSP是选择最近的LEVEL12路由器转发流量。
MPLS L3 ×××,如果我想让两个不同的×××作单向互访,怎么做?
答:如果是两个×××的互通,可以将两个×××的路由信息输出到相同的一个RT,并都导入,可实现互通。如果要单向访问,可建立一个公共×××,导出两个×××的RT,两个×××都可以对公共×××实现访问。
跨域的MPLS L3 ×××可以谈谈思路吗?
答:RFC2547bis和最新的rfc4364都对其有定义,主要有三种。Option A B C: Option A: back to back v** 互连。两个*S间通过VRF 间的背对背的连接,路由可以选择静态或动态路由,这种方法简单实用,适于不同运营商间的连接。 Option B :MeBGP ***v4连接两个AS间通过ASBR间建立MeBGP ***v4,×××路由通过MBGP承载,具有较好的可扩展性。 Option C: RR间多跳MeBGP两个AS间建立MEBGP,但不是在ASBR上,是在两个AS各自的RR间,这样有较好的可扩展性,灵活性。但较复杂。要解决下一跳问题有标签问题。
MPLS L3 ×××的一个用户,他有上internet的需求,如何实现?有几种实现方法?特点各是什么?
答:有三种。 1、通过×××访问internet. 传统做法是:设置一个集中的防火墙通过NAT实现INTERNET访问,简单易实现,只是不能对INTERNET流量和×××流量进行区分,安全存在问题。或者在PE路由器上配置PACK LEAKING 实现。 2、独立的INTERNET访问向每个××× SITE 提供独立的INTERNET连接线路,由CE路由器实现NAT到INTERNET。要求PE路由器向CE提供独立的线路或虚电路,PE路由器要有访问 INTERNE的能力。优点是能将×××流量和INTERNET流量分
开。 3、通过单独的×××实现INTERNET连接,建立一个单独的×××,将INTERNET缺省路由和部分路由注入,在需要INTERNET访问SIET相连的PE路由器上实现×××互通,从而访问INTERNET。比较复杂,但可支持各种INTERNET访问要求。建议采用这种。
L3 ×××与L2 ×××各自的特点是怎样?你觉得哪一种模式运营起来比较有前景?
答:L3 ××× 的PE路由器需要维护客户×××的路由信息,要实现各×××的路由选择和维护,而L2 ×××只在客户间建立透明的二层通道,不维护三层的信息,相对没有L3 ×××复杂。L3 ×××已经在现实环境中应用多年,比较成熟,适合多SITE的复杂的用户,MPLS L2 ×××用于替代传统的二层FR、ATM等技术,适合点到点的互连或少量SITE的连接。L2 ×××由于维护较方便,性价比高,最近几年应发展迅速,而传统的L3 ×××也不会在短时间淘汰。
ISIS与OSPF的区别谈一谈吧,各个方面。
答:它们有很多共同之处,都是链路状态路由协议,都使用SPF算法,VSLM 快速会聚。从使用的目的来说没有什么区别。从协议实现来说OSPF其于TCP/ ip协议簇,运行在IP层上,端口号89;ISIS基于ISO CLNS,设计初是为了实现ISO CLNP路由,在后来加上了对IP路由的支持。从具体细节来说: 1:区域设计不同,OSPF采用一个骨干AREA0与非骨干区域,非骨干区域必须与AREAO连接。ISIS由L1 L2 L12路由器组成的层次结构,它使用的LSP要少很多,在同一个区域的扩展性要比OSPF好。 2 OSPF有很多种LSA,比较复杂并占用资源,而ISIS的LSP要少很多,所以在CPU占用和处理路由更新方面,ISIS要好一些。 3 isis 的定时器允许比OSPF更细的调节,可以提高收敛速度。华为、Cisco网络技术论坛 4 OSPF数据格式不容易增加新的东西,要加,就需要新的LSA,而ISIS可以很容易的通过增加TLV进行扩展,包括对IPV6等的支持。 5 从选择来说,ISIS更适合运营商级的网络,而OSPF非常适合企业级网络。
一个骨干网或城域网选ISIS及OSPF基于什么理由?
答:从可用性来说,两种IGP协议都可以,但对于具体情况,经过分析,可能得出选哪种协议更优一些: l 从稳定和可靠性来看:骨干网要求路由协议的高稳定性和可靠性,以及快速收敛。OSPF协议是基于IP层的,所以其只能支持IP网络,且网络上一些基于IP 的***会影响到OSPF的正常运行。ISIS是直接运行在链路层上的,其可以承载多种网络类型,且在预防网络***方面也有一些天然的优势。 l 从支持的网络规模来看:OSPF、ISIS都有网络分层的概念,也都有区域的概念,OSPF有骨干区域0和分支区域,ISIS有相应的Level2、 Level1的概念。OSPF有普通区域、Stub区域、Total Stub区域、NSSA区域等区域类型,而IS㊣S 从功能上看它就是一个OSPF 的简化版本,只实现了骨干区(LEVEL2) 和STUB 区(LEVEL1),由于其LEVEL1访问其他区域网络是采用到最近的L1/L2 路由器方式,容易产生路由次优化问题, 这样某些组网时就需要借助其他的方法来实现某些功能,如:在构建MPLS ×××的过程中就需要采用路由***,造成实现和维护复杂。由于ISIS计算路由的时候采用PRC计算,ip前缀作为最短生成树的叶子节点,而OSPF是围绕链路建立的,在相同大小的区域,ISIS比OSPF更加稳定且消耗资源少,相比OSPF支持的网络规模更大。
l 从灵活性来看:OSPF协议比较灵活,协议是基于接口的,支持的网络类型全面,且技术成熟,在城域网中,使用IGP用来传播用户路由,组网设备杂,关注的是协议的灵活性兼容性,以及能否满足大量用户复杂路由控制的需求,这些是OSPF 的强项,建议使用OSPF。对于新维护方面OSPF协议在城域网中得到了广泛的应用,尤其是早期的网络维护人员对OSPF协议相当熟悉; l 从扩展性来看:ISIS结构严谨,运行稳定,IS㊣S路由器只能属于一个区域,并且不提供对NBMA、P2MP接口的直接支持。ISIS可扩展性更好:ISIS能支持多种网络层协议( OSPF仅支持IP协议);ISIS区域能平滑地平移、分割、合并,流量不中断;ISIS是基于TLV的,协议本身扩展容易。最近几年,在各大运营商的骨干网络中大量使用了ISIS协议,在选取协议时,需要考虑原有网络中运行的是何种协议,如目前某些运营商在骨干层次采用ISIS,而在城域网内部采用 OSPF协议,为了保护网络的延续性,在选取协议类型时需要予以考虑。新建的网络,如果所有设备都支持ISIS,可以考虑ISIS。 9. BGP选路原则常用是哪些?在骨干网与城域网间如何搭配一块使用?
答:BGP有很多属性,用于路由选择的有9个左右,常用的有LCAL PREFERENCE,AS㏄ATH,MED,METRIC,COMMUNITY这几个。在骨干网与城域网连接中,骨干网向城域网发送缺省路由或部分明细路由,城域网将本地路由信息发到骨干网上。接收路由主要通过设置lcoal preference控制上行流量分担,如果骨干网发过来的明细路由带有MED,也可以通过MED值控制。发布出去的路由通过MED AS PATH控制回程流量的分担。发布路由可以设置COMMUNITY表示路由起源。在有多条出口链路时通过BGP实现流量分担。
如果BGP加上max path,会在哪个BGP选路属性之前应用这个选项?
答:在最后一个BGP router id之前。
为什么骨干网pop及城域网出口要作next﹉op﹕elf?
答:骨干网与城域网之间通过EBGP连接,而城域网收到的骨干网路由在发给内部IBGP邻居时不会改变路由的下一跳,下一跳的地址为骨干网设备地址,而 IBGP内部路由器也没有其路由信息,所有路由下一跳不可达,只有在城域网RR将路由发给IBGP邻居时要加next﹉op﹕elf,改变路由的下一跳,路由才可达。
两个AS之间,有四台路由器口字型互联,其中一台路由器上从EBGP学到一个网络,又从IBGP学到同一个网络,选路哪个?是哪个属性影响?如果我在IBGP过来那个加上MED小于从EBGP过来的,又选哪个?为什么?
答:选EBGP那一条,如果加了MED,则选MED低的那个。
local﹑re与weight的区别是什么?
答:Weight 是CISCO专有的,LOCAL㏄RE是公认必遵的BGP属性。Weight 只在本地ROUTER上有用,不可传递;而LOCAL㏄RE用于一个AS内部,可在整个AS内传递。它们都是数值大的路由选中,而CISCO路由器中 WEIGHT决策在LOCAL㏄RE前。
BGP能不能实现负载均衡?如果可以,有哪些方法?
答:可以。对于EBGP可以通过设置EBGP㎝ULTIHOP,通过相等的IGP METRIC实现。对于IBGP可以通过配置muximum﹑aths,使其在等值的IGP METRIC链路上实现。
多个AS之间,可不可以比较MED?如可以,需要前提条件吗?如有,前提条件是什么?
答:默认是不比较来自不同AS的路由的MED值,但可设置bgp alwaysヽompare﹎ed使其对来自不同AS的路由的MED值进行比较。
MED能不能和AS内的IGP度量值结合起来?如可以,如何做?
答:设置Med的route﹎ap 配置set metric internal
割接限定回退的时间还有十分钟,割接还未成功,局方已经催你回退了,但你觉得这些问题你再努力5分钟可能会解决,你的选择是什么?
答:立即回退
骨干网的QoS,如何部署?你认为什么骨干网什么情况下是有拥塞发生了?
答:对于电信级骨干网,轻载是骨干网上实现QOS的最好方法,保持流量低于带宽的50%,在需要时增加带宽,并且通过控制接入的流量在稳定的范围内。也可以对流量进行简单的分类,通过DIFF㏒ERV实现不同流量的QOS,对于复杂的QOS需求,可以使用TE实现。对于企业级骨干网,WAN链路为较低速率,此时可通过DIFF㏒ERV实现QOS,但如果流量已达到90%以前,QOS的实施对整个网络质量不能很好的改善。一般而言,在网络设备能全线速和 BUFFER足够的情况一下,骨干网一般用POS接口,骨干网流量达到50%以上就应规划增加带宽,达到60%就比较紧张,70%网络质量可能开始下降,80%就有拥塞发生了。可以通过延迟和延迟抖动测试出来。
对于工程及维护来说,你觉得L3网络和L2网络哪个比较好?
答:对于工程实施来说,L2网络简单。对于网络管理来说,L3要可控一些。
L3网络与L2网络对环路的处理各是什么样的机制?
答:L3网络通过运行的路由协议的算法保证形成一个无环的拓扑。L2是通过STP 实现
一般情况下,L2交换机的生成树有多少数量?
答:2950 支持64个PVST+ instances 16个MST,3550 是128WH pvst+instances 65个MST
3550的生成树模式是什么?生成树数量是怎样的?
答:支持128个PVST+,65个MST,都支持PVST 和MSTP。
跟据你的经验,GE的端口,当流量达到多少时,你可以认为是有拥塞发生了?2.5G POS口,当流量达到多少时,你可以认为有拥塞?
答:对于GE端口,如果流量达到900M时可视为发生拥塞,而对于POS口,如果硬件板卡都是线速,并且BUFFER足够,当流量达到达2G左右时可视为发生拥塞.。