自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shadon178 博客

常常总结,常常分享。

  • 博客(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

原创 C语言代码块的作用

1、限定作用域2、提早释放内存

2014-07-08 16:42:16 1957

转载 浮点型数据经度丢失问题

问题提出:12.0f-11.9f=0.10000038,"减不尽"为什么?来自MSDN的解释:http://msdn.microsoft.com/zh-cn/c151dt3s.aspx为何浮点数可能丢失精度浮点十进制值通常没有完全相同的二进制表示形式。 这是 CPU 所采用的浮点数据表示形式的副作用。为此,可能会经历一些精度丢失,并且一些浮点运算可能会产生意外的结果。

2014-05-08 21:34:28 1141

原创 Java之Exception

在用Spring 的AOP进行事务管理的时候

2014-05-08 21:16:24 649

转载 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

原创 Java多线程之读写锁经典案例

在Java的JDK文档中发现一个用读写锁写的缓存器,拿来跟大家分享下。

2014-03-02 17:58:15 1109

Neo4j开发手册

Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。 Neo4j因其嵌入式、高性能、轻量级等优势,越来越受到关注.

2019-04-18

TBase数据库教程

简单易用 开箱即用的用户体验,清晰合理的分布式架构方案,便捷的现有业务迁移接入。 安全可靠 支持金融级别的两地三中心容灾方案,特有的数据行级非对称加密特性,完善的数据访问安全管理和审计功能。 按需扩展,高效灵活 支撑海量数据的高并发在线交易型业务,提供灵活、完善的数据治理功能,助力解决各种数据治理难题。 简化运维 沉淀了丰富的运维经验,积累了大量数据库运维工具,降低分布式系统的运维门槛。

2019-04-18

深入理解Linux内核第三版(英文原版)

该书指导你对内核中使用的最重要的数据结构、算法和程序设计诀窍进行一次遍历。通过对表面特性的探究,作者给那些想知道自己机器工作原理的人提供了颇有价值的见解。书中讨论了Intel特有的重要性质。相关的代码片段被逐行剖析。然而,《深入理解LINUX内核》涵盖的不仅仅是代码的功能,它解释了Linux以自己的方式工作的理论基础。

2019-04-22

POI官方Jar包

POI官方Jar包 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 结构: HSSF - 提供读写Microsoft Excel格式档案的功能。 XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。 HWPF - 提供读写Microsoft Word格式档案的功能。 HSLF - 提供读写Microsoft PowerPoint格式档案的功能。 HDGF - 提供读写Microsoft Visio格式档案的功能。

2014-05-29

JOOQ jar包

JOOQ 是基于Java访问关系型数据库的工具包,轻量,简单,并且足够灵活,可以轻松的使用Java面向对象语法来实现各种复杂的sql。对于写Java的码农来说ORMS再也熟悉不过了,不管是Hibernate或者Mybatis,都能简单的使用实体映射来访问数据库。但有时候这些 ‘智能’的对象关系映射又显得笨拙,没有直接使用原生sql来的灵活和简单,而且对于一些如:joins,union, nested selects等复杂的操作支持的不友好。JOOQ 既吸取了传统ORM操作数据的简单性和安全性,又保留了原生sql的灵活性,它更像是介于 ORMS和JDBC的中间层。对于喜欢写sql的码农来说,JOOQ可以完全满足你控制欲,可以是用Java代码写出sql的感觉来。

2019-04-28

Python机器学习实践指南

非常完整清晰的电子书,并结合机器学习。强烈推荐!作者:Alexander T. Combs 是一位经验丰富的数据科学家、策略师和开发人员。他有金融数据抽取、自然语言处理和生成,以及定量和统计建模的背景。他目前是纽约沉浸式数据科学项目的一名全职资深讲师。

2018-02-02

OAuth2实战

OAuth是互联网公司广泛使用的授权协议,守护着全球不计其数的Web API。看似无所不能的它,却因为高度的灵活性而很难驾驭。本书从实战角度出发,带你领略OAuth生态系统的秀美风光,并学会自己构建安全的客户端、受保护资源和授权服务器,透彻理解OAuth 2的实现和部署流程,不仅知其然,还知其所以然。 本书重点讲解以下内容: - OAuth 2的设计理念和重要性; - 构建OAuth 2生态系统; - OAuth 2生态系统的常见漏洞; - 针对OAuth令牌和授权码的常见攻击; - 动态客户端注册。 “非常实用,告诉我们什么该做,什么不该做。”——Ian Glazer,Salesforce公司身份管理高级总监 “这本书的深度和广度令人折服,推荐所有Web开发人员都看看。”——Thomas O'Rourke,软件工程师 “内容简洁、结构清晰,让我对OAuth有了透彻了解。”——Roy Folkker,亚马逊读者

2019-04-18

数据结构经典教程

本书与清华大学出版社出版的《数据结构》(c语言版)一书相配套,主要内容有:习题与学习指导、实习题和部分习题的提示或答案三大部分和一个附录[“数据结构算法演示系统(类c描述语言3.1中文版)使用手册”,此软件已由清华大学出版社出版]。 其中习题篇的内容和《数据结构》(c语言版)一书相对应,也分为12章,每一章大致由基本内容、学习要点、算法演示内容及基础知识题和算法设计题五部分组成。实习题分成六组,每一组都有鲜明的主题,围绕1至2种数据结构,安排4至9个题,每个题都有明确的练习目的和要求,在每一组中都给出一个实习报告的范例,以供读者参考。 [1]

2019-04-18

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除