- 博客(68)
- 资源 (14)
- 问答 (1)
- 收藏
- 关注
转载 Redis在游戏开发中的典型应用
1.摘要Redis作为目前最流行的键值对存储数据库,有着丰富的数据结构支持,在民生、金融、游戏、直播等诸多领域都有广泛的应用,大大提升了开发者的开发效率。今天我们主要介绍Redis在游戏开发中的几个典型应用场景:用户数据缓存、持久化功能的消息队列、乐观锁功能。2.典型应用场景下面我们一一来介绍上述几个场景下是如何应用Redis的。2.1 Redis作为DB的缓存通常来说,每...
2018-03-05 10:37:40
1706
原创 Python学习之旅--Lambda表达式在循环语句中需要注意的问题
目前在学习Python中,不时的总结一些学习过程中遇到的一些问题。在循环语句中使用Lambda表达式时需要注意一些潜在的问题,先看代码:>>> def makeActions(): acts = [] for i in range(5): # Tries to remember each i acts.appen...
2018-02-24 18:00:09
4407
1
原创 Scala中的模式匹配match
scala中的模式匹配类似与java中的switch语法,但功能比switch更加强大,且能匹配的方式各种各样。我总结了一下,scala的match的匹配方式有如下几种:通配模式 变量模式 构造器模式 序列模式 元组模式 类型模式
2017-09-01 12:19:40
1258
原创 Spark中宽依赖和窄依赖的区别
Spark中宽依赖和窄依赖窄依赖:RDD的每个分区仅依赖一个父RDD的分区;宽依赖:RDD的每个分区依赖多个父RDD的分区;那么为什么要区分窄依赖和宽依赖呢?窄依赖在划分Stage时,可以划分在一起,而且可以并行计算,并且在数据恢复时只需要重新计算父RDD即可,恢复方便。而宽依赖则不然,因为宽依赖的范围较广,必须重新计算所有的父RDD依赖,计算量大,不容
2017-07-28 18:26:50
1759
1
原创 Redis集群原理分析
Redis集群的原理主要是围绕着‘槽’的概念展开的,先来理解集群中‘槽’的概念。reids集群是通过将所有的key进行分区来实现的,redis集群最多有16384个分区(也可以称作‘槽’,英文:slot),然后在集群节点中指定分区范围来实现。例如:集群中的节点A负责0 - 10000,节点B负责 10001-16384,每个节点负责的分区数可以自行设置。redis中的每一个key都有唯一的分区号与
2017-02-24 16:50:27
548
原创 request中参数(parameter)和属性(Attribute)的区别
在JAVA WEB开发中经常遇到获取请求参数的值和在request对象中set或者get属性,初学者往往容易混淆,那么二者之间关系到底如何呢?下面是个人的总结:区别:来源不同: 参数(parameter)是从客户端(浏览器)中由用户提供的,若是GET方法是从URL中提供的,若是POST方法是从请求体(request body)中提供的; 属性(attribut
2017-02-05 17:36:53
21625
4
原创 Oracle自带全文索引
使用场景:当需要在大量文章中通过关键字搜索文章时,Oracle自带的全文索引对于提高搜索性能非常有帮助,并且使用也很方便。使用前的准备工作:1、先查看oracle是否自带有ctxsys用户,如果没有该用户则不能使用全文索引功能,必须先手动安装,安装方式很简单,参考下一步;2、如果自带有ctxsys用户,请忽略该步骤;(1)dba账号登录SQLPLUS,创建全文索引使
2017-01-21 22:17:17
1102
原创 Java延迟初始化的2种经典模式
静态域的延迟初始化: // Lazy initialization holder class idiom for static fields private static class FieldHolder { static final FieldType field = computeFieldValue(); } static FieldType getField() { r
2016-01-05 23:40:46
1122
原创 私有锁对象模式
// private lock object idiom - thwarts denial-of-service attack private final Object lock = new Object(); public void foo() { synchronized (lock) { ... } }优点:防止其他客户端超时的持有锁对象,从而避免客户端的拒
2016-01-05 23:17:30
1905
原创 Collection.synchronized*方法注意事项
引API的一句话:返回指定列表支持的同步(线程安全的)列表。为了保证按顺序访问,必须通过返回的列表完成所有对底层实现列表的访问。在返回的列表上进行迭代时,用户必须手工在返回的列表上进行同步: List list = Collections.synchronizedList(new ArrayList()); ... synchronized(list) {
2016-01-05 22:46:20
1140
转载 MyBatis缓存
Mybatis缓存一、MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空。 2. 二级缓存与一级缓存其机制相
2015-09-20 21:55:11
386
转载 JavaScript原型链
一. 普通对象与函数对象 JavaScript 中,万物皆对象!但对象也是有区别的。分为普通对象和函数对象,Object ,Function 是JS自带的函数对象。下面举例说明 function f1(){}; var f2 = function(){}; var f3 = new Function('str','console.log(str)'); var o3
2015-09-16 22:36:27
396
原创 this是谁?
JavaScript中的this跟面向对象语言中的this有些区别,在实际编码中需要注意一些小问题。 name = 'pxd'; var obj = {name:'java', t:function(){ alert(this.name); }}; var temp = obj.t; temp(); //pxdname相当于是一个全局变量,类似于:win
2015-09-13 21:37:29
468
转载 Ext的get和fly方法
Ext.Element是Ext对Dom元素的一个强有力封装,它封装了很多方便对dom操作的接口(并通过Element的dom属性引用对应的dom元素),因此每创建一个Element元素都将消耗不少的内存(主要是大量的操作接口消耗),因此如果创建过多的Element元素必然导致内存占用的剧增和系统性能的下降。Ext.get和Ext.fly返回的都是一个Element对象,但是Ext.
2015-09-12 21:28:24
624
原创 JQuery的第一个句源码
先给出JQuery源码的第一句:(我们就分析这一句源码)(function( window, undefined ) {})(window);这一段源码主要有3个问题需要解答:1、(function(){})() 这是干嘛?第一个括号包含的内容表示一个函数表达式,最后一个括号表示立即执行,并传入参数,整体就是一个“立即执行的匿名函数表达式”。2、为什么要将全局wind
2015-09-10 14:38:07
449
原创 JavaScript词法分析过程
在调用一个JavaScript方法之前,都会对方法进行一次词法分析的过程,主要分析如下内容:第一步: 先分析参数第二布: 再分析变量声明第三步: 最后分析函数声明现提供一个具体例子代码,并解析分析步骤:function t(age){ var e = 2; var age = 10; function age() { }}t(2);具体步骤:
2015-09-09 22:35:55
1138
1
原创 一笑而过之面试小题
public class Demo01 { public static void change(Integer i) { System.out.println(i); } public static void main(String[] args) { ((Demo01)null).change(10); }}今天出现这样的奇葩面试题,一时没回过神了,虽然还是答
2015-09-09 21:47:38
365
原创 Java参数按值传递和按引用传递
参数按值传递:传递到方法中的数据是参数的副本,因此方法内部对参数的修改不会影响外部变量。受影响的参数类型有:8种基本类型和String对象。参数按引用传递:传递到方法中的数据是参数的引用,内部对参数的修改也会作用到外部。受影响的参数类型有:除String对象和8种基本类型的包装类以外其他所有对象类型、数组类型。
2015-09-09 21:30:45
405
原创 JavaScript中undefined和is not defined异常
不解释,直接上代码:console.log(xx);console.log(window.xx);(其中xx是一个不存在的变量)当直接打印xx变量时,直接抛出一个is not defined异常并终止执行。然而将xx变量以window.xx的形式打印出来时,缺直接输出一个undefined,并没有出现异常,可以继续执行。查阅相关文档之后才知道,打印undefi
2015-09-08 22:00:30
23717
转载 KMP算法原理解析
这种算法不太容易理解,网上有很多解释,但读起来都很费劲。直到读到Jake Boxer的文章,我才真正理解这种算法。下面,我用自己的语言,试图写一篇比较好懂的KMP算法解释。 1. 首先,字符串"BBC ABCDAB ABCDABCDABDE"的第一个字符与搜索词"ABCDABD"的第一个字符,进行比较。因为B与A不匹配,所以搜索词后移一位。 2.
2014-07-26 16:52:43
482
转载 浮点型数据经度丢失问题
问题提出:12.0f-11.9f=0.10000038,"减不尽"为什么?来自MSDN的解释:http://msdn.microsoft.com/zh-cn/c151dt3s.aspx为何浮点数可能丢失精度浮点十进制值通常没有完全相同的二进制表示形式。 这是 CPU 所采用的浮点数据表示形式的副作用。为此,可能会经历一些精度丢失,并且一些浮点运算可能会产生意外的结果。
2014-05-08 21:34:28
1141
转载 java之代理
Java之代理... 1一. 概念... 1二. jdk的静态代理... 1三. jdk动态代理... 4四. cglib 动态代理... 7五. jdk动态和cglib动态代理比较... 9六. 面向切面编程... 101.几个应用... 132.面向切面的概念...
2014-05-03 22:52:28
491
原创 String在编译时和运行时的不同
废话不多说,上代码:package test.pxd.pongo;public class TestMap { public String get(String a,String b){ return a + b; } /** * @param args */ public static void main(String[] args) { TestMap m
2014-03-08 00:32:09
1022
原创 ArrayList使用小结
最近研究到一个问题,在使用ArrayList的时候发现的,当遍历List的时候不要修改List中的内容,具体可以看看ArrayList的源代码。如果需要更改可以使用CopyOnWriteArrayList。
2014-03-07 22:21:21
722
原创 Java多线程之可阻塞的队列
研究多线程的时候在JDK文档中发现一个实现阻塞队列的好案例,记录下来,也跟大家分享一下! 注意:try...finally...是为了防止线程挂死之后没有解锁。问题:一直没有明白一个问题,就是为什么要2个Condition,觉得一个Condition不会出现任何问题。恳请各位网友能解决小弟的疑问!
2014-03-02 21:13:21
775
Neo4j开发手册
2019-04-18
TBase数据库教程
2019-04-18
深入理解Linux内核第三版(英文原版)
2019-04-22
POI官方Jar包
2014-05-29
JOOQ jar包
2019-04-28
Python机器学习实践指南
2018-02-02
OAuth2实战
2019-04-18
数据结构经典教程
2019-04-18
oracle多字段全文索同步问题
2017-01-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅