自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(134)
  • 资源 (4)
  • 收藏
  • 关注

原创 [性能优化]-04java编程-避免正则表达式引发的回溯问题

正则表达式一、是什么? 就是一个概念,不同语言有不同的实现。 就是一个公式,使用一些特定的“元字符”来检索、匹配、替换符合规则的字符串。 元字符,如普通字符、标准字符、限定字符、定位字符等二、正则表达式 引擎 工作流程:程序对“公式”进行语法分析,并建立语法分析树。根据语法分析树 结合 正则表达式的引擎生成 执行程序(这个执行程序,叫做状态机/自动机),用于字符串匹配。 ...

2019-10-18 14:31:30 930

原创 [性能优化]-03java编程-字符串优化

高效的使用字符串,可以提升系统的整体性能。从以下方面入手学习:String对象的实现、特性、实际使用中的优化面试题:以3种方式创建对象,两两比较是否相等 一、实现方式 1、java6及之前版本 成员变量:4个,char[]数组、offset偏移量、count字符数量、hash哈希值 优点,通过offer + count 定位 char[]数组。高效、快速共享数组对象、...

2019-10-18 10:33:45 226

原创 [性能优化]-02制定调优策略

制定调优策略的步骤:1、性能测试;2、性能分析;3、性能优化。调优策略千变万化,但思想和核心都一样的。都是从“业务调优”——编码调优——系统调优。任何调优都需要结合场景,明确已知问题和性能目标,不能为了调优而调优,否则带来风险和bug。

2019-10-14 11:32:44 295

原创 [性能优化]-01调优指标

一、为什么调优?1、随着时间积累问题凸显。机器定时宕机,重启后恢复正常,以此循环2、搞活动并发量导致。不知道性能的极限,并发量导致性能瓶颈3、定时炸弹。上线后一直半死不活,无人问津。4、(最直接的目的)提高系统性能,缩减服务器数量,节省公司资源二、什么时候调优?1、开发初期 无需刻意优化,影响开发进度,带来新问题 保证有效编码。如,减少磁盘IO、降低锁竞争、高效算法、设计模式...

2019-10-12 10:29:57 219

原创 [性能优化]-00学习心得

原则!实践出真知学习心得:1、扎实的计算机基础 计算机组成原理、操作系统、网络协议、数据库 数据结构、算法、数学2、习惯透过源码看本质 技术论坛/公众号上的文章,帮助我们快速获取,快速理解,但缺失自己的判断 通过分析源码,分析实现原理,优缺点,学习牛人的思维方式,编码实现3、善于追问、总结 知其然还要知其所以然 了解技术背后的实现原理,...

2019-10-12 10:27:15 132

原创 芝诺悖论

参考博客:《切断时空的四大芝诺悖论,你永远也追不上一只乌龟》芝诺悖论:阿基里斯追不上乌龟、从A点到B点永不能到达、飞矢不动、游行队伍 世界十大悖论:费米悖论、乌鸦悖论、黄油猫悖论、芝诺悖论、霍金悖论、理发师悖论、外祖母悖论、上帝悖论、说谎者悖论、伊壁鸠鲁悖论 追乌龟这个悖论只说[0,s/(v1-v2))(前面是闭,后面是开)发生了什么,始终没有说这段时间的结束时刻会发生什么。...

2018-08-17 18:24:59 1407

原创 [高效学习]之1学习金字塔

学习,就像锻炼身体,需要人持久付出,会让人感到痛苦,并随时想找理由放弃。重要因素:明确目标方向、掌握正确的学习方法、端正态度、自律、坚持、举一反三、不断追问、实践、授课主动学习和被动学习1946年,美国学者埃德加-戴尔(Edgar Dale)提出了「学习金字塔」(Cone of Learning)的理论。之后,美国缅因州国家训练实验室也做了相同的实验,并发布了「学习金字塔」报告。高效学...

2018-08-17 17:44:14 1684

原创 【调错】(一)上传图片时缩略图显示问题

当用户上传的图片太大时,如6M。此时生成的缩略图显示有问题(部分图片为黑色,没有压缩完全)。最终定位到问题:压缩前的原图有问题。最终解决方案:更改图片的下载方式,由curl,替换为AWS3的api。

2017-11-10 17:17:04 1458

原创 【网络编程】(五)NIO特点、实现客户端和服务端的单/双向通信

本文主要介绍NIO的特点,其中几个重要的概念:Buffer、Channel、Selector。并代码举例说明:客户端和服务端的单向通信,双向通信。NIO本质就是避免原始的TCP建立连接使用的3次握手的操作,减少网络开销。

2017-10-26 12:26:57 1322

原创 【网络编程】(一)基本模型、套接字之间的连接

网络编程的基本模型是Client/Server模型。通过三次握手建立连接,并通过网络套接字(Socket)进行通信。连接过程的三个步骤:服务器监听,客户端请求,连接确认。

2017-10-26 12:12:03 956

原创 【网络编程】(四)BIO传统版、多线程版、线程池版对比

本文通过代码示例的方式,演示了BIO的三种实现方式,并进行总结对比。1)传统版:单线程模型下,只能有一个客户端。2)多线程版:一线程一连接模型。为每个请求都创建一个独立线程造成的线程资源耗尽问题。无法满足高性能、高并发接入的场景。3)线程池版:伪异步的IO通信框架,采用线程池+任务队列实现。但是由于它底层的通信依然采用同步阻塞模型,因此无法从根本上解决问题。

2017-10-26 10:40:01 1037

原创 【网络编程】(三)IO模型:BIO、NIO、AIO

本文用言简意赅的语言讲述了:BIO,NIO,AIO的特点,并推荐网络通信框架(如:mina、netty)

2017-10-26 10:31:32 639

原创 【网络编程】(二)同步和异步,阻塞和非阻塞,多路复用技术

本文从概念层面解释了:同步和异步,阻塞和非阻塞,多路复用技术。并举例说明,易于理解。

2017-10-26 10:14:52 839

原创 【系统性能优化】(四)数据库连接池

数据库连接的建立及关闭是一种极耗系统资源的操作,尤其是在多层结构的应用环境中,这种资源的耗费对系统性能影响尤为明显。在工作时做系统优化对这方面的很有体会,相同功能的查询语句,由于打开关闭数据库连接的次数不同导致两个查询语句耗费的时间差别很大。一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完后立即关闭连接。频繁地打开、关闭连接将会造成系统性能低下。虽然写高性能的sql语

2015-10-31 22:02:30 2357 3

原创 【系统性能优化】(三)数据库访问优化

要正确的优化SQL,我们需要快速定位能性的瓶颈点,也就是说快速找到我们SQL主要的开销在哪里?而大多数情况性能最慢的设备会是瓶颈点,如下载时网络速度可能会是瓶颈点,本地复制文件时硬盘可能会是瓶颈点,为什么这些一般的工作我们能快速确认瓶颈点呢,因为我们对这些慢速设备的性能数据有一些基本的认识,如网络带宽是2Mbps,硬盘是每分钟5400\7200转等等。因此,为了快速找到SQL的性能瓶颈点,我们需要

2015-10-31 22:00:22 1720 2

原创 【系统性能优化】(二)数据库设计

对一个数据库来说,只能做到更优,不可能最优,并且根据实际需要,优化方案也是有所差异的,大概需要我们关心的有它的读取速度、存储空间、可维护性以及可扩展性等,而这些方面往往又是相互矛盾的,下面就结合网上的一些资料来谈谈数据的分析设计。       一般来说,在系统分析阶段往往有很多需要关注的方面,系统各种功能性、可用性、可靠性、安全性需要求往往吸引了我们大部分的注意力,但是,我们还需要注意,性

2015-10-31 21:57:36 1694 4

原创 【系统性能优化】(一)数据库索引

面对这个信息量越来越大的社会,我们的电脑硬盘也变的越来越大,各种企业级数据库的信息也越来越多,那么如何从存放大量的数据的数据库里快速查找我们想要的东西呢?       其中的一个方案就是合理的使用索引。       索引是各种关系数据库系统最常见的一种逻辑单元,是关系数据库系统举足轻重的重要组成部分,对于提高检索数据速度有着至关重要的作用,索引的原理是根据索引值得到行指针,然后快速定位

2015-10-31 21:01:13 1787 3

原创 【spring框架】(三)面向切面编程(AOP)

AOP容器 对于放入业务容器的业务颗粒均享有此业务容器的所有通过AOP所具有的服务,并且可以进行相应的配置,哪些业务颗粒享有哪些服务等。 AOP容器是将业务颗粒和服务颗粒组装的过程,业务颗粒和服务颗粒均使用容器,这样可以实现他们之间多对多的关系配置,一个业务可以享用多个服务,一个服务可以被多个业务复用。

2015-08-31 12:38:14 2193 5

原创 【spring框架】(一)spring简介

本文先从spring框架底层模型的角度描述该框架的功能,然后介绍:Spring 面向切面编程(AOP)和控制反转 (IOC) 容器。

2015-08-31 11:19:04 1998 4

原创 【spring框架】(二)控制反转(IOC)容器

IoC是一个重要的面向对象编程的法则,用来解决程序的耦合问题,是轻量级的Spring框架的核心。 IOC是说对象的控制权限进行转移,转移到第三方。

2015-08-31 10:31:18 2130 2

原创 【springmvc框架】(一)原理分析

在整个 Spring MVC 框架中, DispatcherServlet 处于核心位置,负责协调和组织不同组件以完成请求处理并返回响应的工作。

2015-08-27 21:31:21 1833 2

原创 【Struts2框架】(一)原理分析

struts2是一款体现关注点分离思想的架构。 struts2将我们web开发中的各个需要处理的细节都封装到了拦截器中(Interceptor),每个拦截器负责自己独立的功能。 例如:参数拦截器(params),令牌拦截器(Interceptor-stack) 我们也可以指定自己的拦截器来拓展struts2的功能(自定义拦截器)

2015-07-31 21:13:34 2161 5

原创 单点登录(二)使用Cookie+File实现单点登录登出(附源码)

本文作为上一篇文章的扩展部分,添加“单点登出”功能。源码下载:链接: http://pan.baidu.com/s/1bn57xCF 密码: 5apa本例实现效果: 浏览器中输入网址:main.tgb.com,后输入用户名:it_main(以it开头即可)和密码pwd_main(以pwd开头即可),勾选“一周内自动登录”。点击“登录”按钮。即可实现单点登录功能。访问关联的网站,点击news.tgb.com/bbs.tgb.com,则无需输入:用户名和密码。点击“安全退出”按钮,则3个网站

2015-07-16 13:23:01 2944 6

原创 单点登录(一)使用Cookie+File实现单点登录

本文使用Cookies+Filter实现www.taobao.tgb.com 和 www.tianmao.tgb.com的单点登录。源码分享:链接: http://pan.baidu.com/s/1eQheDpS 密码: gn9d一 实现原理:使用用户名和密码登录taobao后,会将用户名存储在Session和Cookie中各一份。当用户登录tianmao时,可直接从Cookie中获取用户名和密码,不需要二次登陆。二 知识点解析:1.本例使用tomcat做服务器,绑定1个域名,且此域名对应2个不

2015-07-14 22:33:39 4080 6

原创 系统优化(一)Maven打包同一个jar有不同的:版本+时间戳(解决思路)

解决:maven仓库的ear里面有很多个相同的jar(只是包含不同的:版本+时间戳)

2015-07-08 21:14:39 15557 5

原创 WebService(2)-XML系列之用Stax操作Xml

Stax的基本操作,用于处理xml文档(功能同4):本文主要讲述了通过stax操作XML文件。1.读取xml 的4种方式: 1).基于光标的查找 2).基于迭代器模型的查找 3).基于过滤器 4).基于xpath的处理点评:基于光标/迭代器,都是建立在遍历整个文档的基础之上。 过滤器,过滤掉了我们不需要的内容,效率更高。 xpath方式,需要把xml文档都读进来(可以截取),效率不高2.写文档和修改文档

2015-06-30 15:20:26 2442 3

原创 WebService(2)-XML系列之Java和Xml之间相互转换

本文主要讲述:使用jaxb完成对象和xml之间的转换,并附源码下载。

2015-06-30 10:27:44 4680 2

原创 WebService(2)-XML系列之Schema

Schema同样用于检测XML是否符合语法规则。相对DTD而言,有如下优点:1.语法和Xml相同2.数据类型很多3.提供域名机制,就是Java中的包

2015-06-29 22:09:42 2385 3

原创 WebService(2)-XML系列之DTD

文档类型定义 DTD (Document Type Definition),专门用于检测XML是否符合语法规则。缺点:1)与XML语法不同;2)提供有限的数据类型,用户无法自定义类型;3)不支持域名机制

2015-06-29 15:41:57 1242 5

原创 一大波Java来袭(五)——Java集合概述

把“Java集合”比作是容器,可以把多个对象(实际:是对象的引用),扔在容器中。JDK1.5之前,被丢进集合中的对象,会丢失起数据类型。默认为Object类型JDK1.5之后,不会丢失数据类型,因为引入了“泛型”(作为下文重点)本文将结合数据结构,重点讲述Java的4种集合体系的功能和用法,并给出不同应用场景改如何选择?

2015-05-28 22:13:14 1105 4

原创 一大波Java来袭(六)——Java集合之Collection和Iterator接口

本文主要介绍Collection和Iterator接口。

2015-05-28 22:10:57 1093 3

原创 一大波Java来袭(七)——Java集合之Set接口

本文主要讲Collection接口之一Set接口及其实现类。Set集合,特点:无序,不可重复上文中我们介绍,Set集合类似于一个罐子,被丢进去的元素是没有明显顺序的。仔细想来,应该不会是随机存储的吧?其存储方式必定有一定的规律,且听我慢慢道来。

2015-05-28 22:10:11 1372 3

原创 一大波Java来袭(八)——Java集合之List接口

本文主要讲Collection接口之一List接口及其实现类。List集合,特点:有序,可重复。与上文中Set不同的是,List集合是有序的,这种顺序表现在:通过索引的形式,记录了元素的添加顺序。

2015-05-28 22:10:11 1410 2

原创 持久化API(JPA)系列(八)实体关系映射(ORM)之单表映射@EmbeddedId

本文将介绍《联合主键:使用@EmbeddedId嵌入外部主键》

2015-04-30 17:18:40 1808 17

原创 持久化API(JPA)系列(七)实体关系映射(ORM)之单表映射@IdClass

通过以前的文章,我们了解到@Table、@Column、@Id实现了单表的映射,并且书剑有一个@Id指定的唯一字段。有时我们的数据表也许是有多个主键联合组成的,因此对于单表映射的主键,还可以进行如下两种联合主键映射。 联合主键:使用@IdClass指定外部主键 联合主键:使用@EmbeddedId嵌入外部主键

2015-04-30 16:20:13 4017 14

原创 持久化API(JPA)系列(六)实体关系映射(ORM)之映射类型

ORM(Object-Relation-Map),其中Object表示实体Bean,Relation表示数据表,Map表示实体Bean与数据表的映射。由于EJB3中的实体Bean采用JPA框架,因此这里的ORM就是指JPA映射。它的作用也类似于Hibernate、iBATIS、JDO、TopLink等持久化层框架中的实体关系映射。

2015-04-30 11:53:57 1437 14

原创 持久化API(JPA)系列(五)控制实体Bean的生命周期

本文主要讲:控制实体Bean的生命周期。与会话Bean类似,实体Bean也有自己的生命周期,分别对应不同的状态。下面我们首先来讲解实体Bean的状态和生命周期事件:1、实体Bean生命周期的4种状态2、实体Bean的事件: @PostLoad @PrePersist和@PostPersist @PreUpdate和@PostUpdate @PreRemove和@PostRemove。3、事件回调的两种方法: 外部回调:编写外部监听器。

2015-04-30 09:55:33 1757 13

原创 持久化API(JPA)系列(四)管理器EntityManager--执行数据库更新

EntityManager是应用访问持久化上下文中的实体的接口,用来对实体Bean进行操作。我们可以使用它来创建、删除、修改持久化的实体,以体现到数据库中;也可以从数据库中查询得到实体或实体列表。所有的这些操作都是通过实体管理器进行的。本文将首先讲解EntityManager对象的引用方式,然后讲解使用EntityManager的操作函数实现数据库的各种操作,包括以下内容。持久

2015-03-31 18:59:00 7730 8

原创 持久化API(JPA)系列(三)实体Bean的开发技术-建立与数据库的连接

下面首先来讲解实体Bean的调用过程,然后通过开发第一个实体Bean,演示该配置与开发的过程,包括以下内容:1、配置数据源。2、指定数据源。3、开发第一个实体Bean--Student.java。4、开发会话Bean进行调用--StudentDAORemote.java和StudentDAO.java。5、打包并部署到JBoss服务器。6、开发客户端进行测试--StudentDAOClient.java。

2015-03-31 15:37:10 2352 7

原创 MySQL数据库管理(二)单机环境下MySQL Cluster的安装

上文《MySQL数据库管理(一)MySQL Cluster集群简介》对MySQL Cluster集群做了简要介绍,本文将教大家一步步搭建单机环境下的MySQL数据库集群。需要注意的是:此时与在MySQL中建表不同,需要在表的末尾加上“engine=ndb;”,因为使用的是MySQL Cluster,标的存储引擎是基于内存的NDB,而不是InnoDB。

2015-03-15 18:45:49 1964 6

闪电人生(热键)

不耐烦的双击鼠标来回的进行文件夹切换;每次都要费一番功夫去找一个常用的文件(文件夹);文件(文件夹)太多,眼花缭乱,很难找到自己需要的;复制、剪切的单一性(一次只能选一个)造成了繁琐的操作;电脑被恶意病毒感染后,自带的文件浏览器无法删除病毒,更无法发现病毒; 这些都是我们日常使用电脑的一些问题,相信大家深有体会,有时候造成很大的不便。改善的方法是让电脑可以触摸,但没有硬件的支持软件无法实现,所以我用键盘代替触摸,充分利用键盘快速浏览、操作您电脑内的文件!

2012-03-21

水镜语音阅读器

一款超炫的语音阅读器,适用于多国语音阅读。本人原创:刘水镜——廊师八期计算机提高班

2012-03-12

空空如也

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

TA关注的人

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