12 2013 档案
摘要:在正式开始之前,有必要澄清一下本系列文章的写作边界,我想谈的是“事务性(OLTP)SQL Server数据库中的数据访问性能优化”,但文中介绍的这些技巧也可以用于其它数据库平台。同时,我介绍的这些技巧主要是面向程序开发人员的,虽然DBA也是优化数据库的一支主要力量,但DBA使用的优化方法不在我的讨论范围之内。当一个基于数据库的应用程序运行起来很慢时,90%的可能都是由于数据访问程序的问题,要么是没有优化,要么是没有按最佳方法编写代码,因此你需要审查和优化你的数据访问/处理程序。
我将会谈到10个步骤来优化数据访问程序,先从最基本的索引说起吧!
阅读全文
摘要:spring提供的事务管理可以分为两类:编程式的和声明式的。编程式的,比较灵活,但是代码量大,存在重复的代码比较多;声明式的比编程式的更灵活。编程式主要使用transactionTemplate。省略了部分的提交,回滚,一系列的事务对象定义,需注入事务管理对象;声明式:主要使用TransactionProxyFactoryBean,围绕Poxy的动态代理,能够自动的提交和回滚事务。统观spring事务,围绕着两个核心PlatformTransactionManager和TransactionStatus,下面我们以声明式方式来讲解。
阅读全文
摘要:Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存可以进行配置和更改,并且可以动态加载和卸载。 Hibernate还为查询结果提供了一个查询缓存,它依赖于第二级缓存。
阅读全文
摘要:Java的基础知识点就太多了,要说也不能穷尽,这个主要是靠自己在平时的积累和项目的开发经验,外边考的多的一般是继承,多态,线程,集合等等,但是笔试或者是面试中很有可能问许多集体的内容,比如hashMap和hashTable的异同点,集合的主要框架,这些要多看资料,我的建议是到网上去多下点笔试题,看到了就会有感觉,基础知识牢靠的话,笔试很容易过。面试的时候(我只能说关于技术的部分),java web面试,首先面试官要看你有没有项目的经验,所以简历中肯定要有项目的经验。再者,简历中的项目一定要是你亲身经历的,或者是你对这个项目很了解(不论是从技术或者是从源码),因为面试官在你介绍的项目的时候很可能打断你要你介绍具体的实现方法。 在介绍自己项目的时候,一定要发觉自己在项目中的闪光点,也就是有和一般的项目有重大区别的地方(可以对面试官详诉)。然后就是你在项目中所使用的技术,你要有一定的了解,比如说spring,你首先要知道使用spring框架的好处,然后就是spring的主要组成(ioc和aop),当然面试官回问一些关于技术的实际问题(比如说加载的applicationContext.xml可
阅读全文
摘要:在面试中,算法题目是必须的,通过算法能够看出一个程序员的编程思维,考察对复杂问题的设计与分析能力,对问题的严谨性都能够体现出来。算法是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。算法常常含有重复的步骤和一些比较或逻辑判断。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。一个算法的好坏,直接影响一个方法调用的性能,进而影响软件的整体性能。 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按...
阅读全文
摘要:在面试中,算法题目是必须的,通过算法能够看出一个程序员的编程思维,考察对复杂问题的设计与分析能力,对问题的严谨性都能够体现出来。算法是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。算法常常含有重复的步骤和一些比较或逻辑判断。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。一个算法的好坏,直接影响一个方法调用的性能,进而影响软件的整体性能。 1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c....
阅读全文
摘要:上一篇,我们给出了大概35个题目,都是基础知识,有童鞋反映题目过时了,其实不然,这些是基础中的基础,但是也是必不可少的,面试题目中还是有一些基础题目的,我们本着先易后难的原则,逐渐给出不同级别的题目,猛料还在后头呢,继续关注哦。续接上次提到的70题,本章将给童鞋们准备了13道经典题目 71、说出一些常用的类,包,接口,请各举5个要让人家感觉你对java ee开发很熟,所以,不能仅仅只列core java中的那些东西,要多列你在做ssh项目中涉及的那些东西。就写你最近写的那些程序中涉及的那些类。常用的类:BufferedReader BufferedWriter FileReader Fi...
阅读全文
摘要:当一个应用程序开始运行它的第一个组件时,Android会为它启动一个Linux进程,并在其中执行一个单一的线程。默认情况下,应用程序所有的组件均在这个进程的这个线程中运行。然而,你也可以安排组件在其他进程中运行,而且可以为任意进程衍生出其它线程.下面将介绍如何在android系统中使用线程和进程.进程 - Processes 默认情况下,同一应用程序的所有组件运行在同一进程中。不过,如果你需要控制某个组件属于哪个进程,也可以通过修改manifest文件来实现。manifest文件中的所有支持android:process属性的那些项,例如[活动| ],[服务| ], ,和[内容提供|]都...
阅读全文
摘要:上一篇,我们给出了大概35个题目,都是基础知识,有童鞋反映题目过时了,其实不然,这些是基础中的基础,但是也是必不可少的,面试题目中还是有一些基础题目的,我们本着先易后难的原则,逐渐给出不同级别的题目,猛料还在后头呢,继续关注哦。 这一章我们继续接下来的35个题目,这些题目也是一些基础知识,看看你有没有掌握咯。 36、数组有没有length()这个方法? String有没有length()这个方法?数组没有length()这个方法,有length的属性。String有有length()这个方法。 37、下面这条语句一共创建了多少个对象:String s="a"+"b
阅读全文
摘要:这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱。只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了。对于那些正打算找工作JAVA软件开发工作的童鞋们来说,当你看到这份题目的时候,你应该感动很幸运,因为,只要你把题目中的内容都搞懂了,在笔试的时候就可以游刃有余,通过面试只有半步之遥了,笔试只能反映你的JAVA技能。不管你是面试各个级别的JAVA工程师、架构师、还是项目经理,这个系列文章都是你最宝贵的资源,里面包括整个JAVA体系的知识,总会有你需要的内容。我会将这些面试题目通过文章的形式不断完善,如果你有更好的资料也可以共享出来,分享给..
阅读全文
摘要:1、Struts2架构图 这是Struts2官方站点提供的Struts 2 的整体结构。 执行流程图 2、Struts2部分类介绍 这部分从Struts2参考文档中翻译就可以了。ActionMapper ActionMapper其实是HttpServletRequest和Action调用请求的一个映射,它屏蔽了Action对于Request等 java Servlet类的依赖。Struts2中它的默认实现类是DefaultActionMapper,ActionMapper很大的用处可以根据自己的需要来设计url格式,它自己也有Restful的实现,具体可以参考文档的docs\a...
阅读全文
摘要:Windows Azure Storage由三个重要部分或者说三种存储数据服务组成,它们是:Windows Azure Blob、Windows Azure Table和Windows Azure Queue。在本文中将给大家介绍Windows Azure Storage中的这三种存储服务、Visual Studio环境下配置和使用开发存储和Windows Azure Storage应用场景。Windows Azure 存储服务的构成Windows Azure Storage由三个重要部分构成:Windows Azure Blob:存储大型数据。Windows Azure Table:存储..
阅读全文
摘要:Microsoft云存储服务分为两个部分,SQL Azure和Azure Storage。云存储系统的可扩展性和功能不可兼得,必须牺牲一定的关系数据库功能换取可扩展性。Microsoft实现云存储的思路有两种: 1, 做减法。SQL Azure直接在原有的SQL Server上引入分布式的因素,在满足一定可扩展性的前提下尽可能不牺牲原有的关系型数据库功能。SQL Azure的可扩展性是有限的,单个SQL Azure实例不允许超过50GB,这是因为SQL Azure不支持子表动态分裂,单个SQL Azure实例必须足够小从而可以被一个节点服务。具体信息可以参考我以前的一篇文章:Micros...
阅读全文
摘要:SQL Azure简介 SQL Azure是Azure存储平台的逻辑数据库,物理数据库仍然是SQL Server。一个物理的SQL Server被分成多个逻辑分片(partition),每一个分片成为一个SQL Azure实例,在分布式系统中也经常被称作子表(tablet)。和大多数分布式存储系统一样,SQL Azure的数据存储三个副本,同一个时刻一个副本为Primary,提供读写服务,其它副本为Secondary,可以提供最终一致性的读服务。每一个SQL Azure实例的允许的最大数据量可以为1GB或者5GB(Web Edition),10GB, 20GB, 30GB, 40GB或者50.
阅读全文
摘要:struts1和spring有两种整合的方法一种是action和spring bean映射;一种是将action交给spring初始化第一种方式:访问.do的URL->tomcat接收到request-〉到Struts配置文件里找对应的action-〉找到对应的action组件(Action那个类)-〉这个类对request进行一系列处理-〉调用spring提供的某个service的注入实例的方法->由这个方法返回值-〉响应输出第二种方式:访问.do的URL->tomcat接收到request-〉到Struts配置文件里找对应的action-〉找不到对应的action组件(A
阅读全文
摘要:在创建用户接口原型之前,应该先创建窗口结构图,窗口结构用于描述窗口之间的关系,于UML没有直接的关系,本章介绍窗口结构的设计过程,先介绍窗口结构的设计方法,然后设计总体窗口结构图,最后设计下一层的窗口结构图。 1、设计方法 窗口结构是窗口之间的切换流程,通过窗口结构,可以直观地看到通过用例的路径流程。窗口结构非常重要,一个软件系统在实用性上能满足用户的需要还是远远不够的,如果窗口结构设计不合理,也不会受用户欢迎。我们可以参考前面的接口类图来设计窗口结构,在“软件工程之系统建模篇【设计接口类模型】”中,已识别出系统的接口类,并画出接口类图,在设计窗口结构时,可以将接口类图中的依赖关系映射...
阅读全文
摘要:类模型是面向对象分析的核心,系统类模型用包图描述,前面的文章我们分析了实体类、接口类、接口控制类和用例控制类,本章我们将介绍系统类模型的设计,首先简要介绍类模型的设计方法,然后设计子系统的类模型,最后设计系统类模型。 1、设计方法 设计系统类模型,要明确子系统或系统的组成,及各个组成部分之间的关系,子系统的划分和前面介绍过的接口类包的划分相同,主要包括:发文办理、收文办理、会议管理、档案管理、公告管理、个人助理、系统管理、用户登录8个子系统,无论是子系统模型还是系统类模型,都包含接口类包、接口控制类包、用例控制类包以及有关系的实体类包。在前面我们知道,接口类依赖接口控制类、接口控制类依...
阅读全文
摘要:用例控制类模型描述接口控制类与实体类之间的通信,用例控制类位于系统结构的商业规则服务层,用例控制类模型用包图描述。本章介绍用例控制类模型的设计过程,首先介绍用例控制类模型的设计方法,然后设计子系统包图,最后设计系统包图。 1、设计方法 用例控制类代表用例,它的每一个操作对应一条通过用例的途径。接口控制类执行用户接口与应用程序其他层之间的通信任务,用例控制类则执行接口控制类与实体类之间的通信任务,通过交互来完成在用例中定义的路径。用例控制类直接与接口控制类一起工作,需要保持所有对象引用都将在用例控制类中。为使类之间简捷,用例控制类之间不应该有关系,接口控制类依赖于用例控制类,而用例控制类...
阅读全文
摘要:Hibernate配置文件主要功能是配置数据库连接和Hibernate运行时所需的各种属性,配置文件应该位于JAVA应用或者JAVA Web应用的类文件中,刚开始接触Hibernate的时候,感觉Hibernate的配置既繁琐有麻烦,不知道童鞋们在学习Hibernate的时候有没有这种感觉,是不是还在怀念用JDBC连接数据库呢,但是繁琐背后隐藏着巨大的价值,下面我们将带你一探配置背后的奥秘。 Hibernate配置文件的方式有两种:一种是通过XML格式文件配置,一种通过JAVA属性文件配置,属性文件配置采用的是“键=值”对的方式。建议采用XML格式文件配置格式,XML配置文件可以直接对映...
阅读全文
摘要:接口控制类模型描述用户接口与系统其他层之间的通信,接口控制类位于系统结构的商业上下文服务层,接口控制类模型用类图和包图描述。首先简要介绍接口控制类模型的设计方法,然后设计子系统的接口控制类与接口类的类图,最后设计系统及子系统的接口控制类的包图。 1、设计方法 接口控制类承担用户接口与应用程序的其他层之间通信的大多数工作,接口控制类比较简单,对于每一个需要与应用程序的其他层进行通信的用户接口,都应该有一个相应的接口控制类,对应的一个接口类即定义一个接口控制类。接口控制类通常是临时的,不用保存在外部存储器中,其生命周期在交互完成时结束。为使类之间的交互简捷、明了,接口控制类只与接口类、用例...
阅读全文
摘要:本文介绍接口类模型的设计过程。接口类模型描述系统活动者与系统交互的界面,接口类位于系统结构的表示服务层,接口类模型用类图和包图描述。首先简要介绍接口类模型的设计方法,然后设计子系统的类图,最后设计系统及子系统的包图。 1、设计方法 设计接口类模型,首先要识别出接口类,再识别出接口类之间的关系。接口类是应用程序的“可视区”,也是系统与外界的隔离层。接口类可以用用例去识别,用例驱动接口类设计。用户接口直接与用例相连,用户是通过用户接口发起和终止用例的。由于用户接口直接面向用户,设计过程中要反复与用户商量,充分理解用户的要求,将用例映射到用户界面时,要根据用户的需要对用例进行适当的组合。接口...
阅读全文
摘要:本文主要介绍实体类模型的设计过程,首先识别类及类之间的关系,然后画出类图和包图,最后识别类的属性和操作。类是面向对象方法的一个全新概念,类模型是面向对象分析的核心,实体类位于系统结构的商业规则服务层。实体类是系统需要持久保存的对象最终要映射到数据库。实体类模型用类图和包图描述。1、类的识别 1.1 类的识别 识别类币识别用例要困难的多,实体世界中,一切都是对象,识别起来并非易事。我们在程序设计过程中,一般是用名词识别方法,然而你也可以用其他的方法。用名词识别法时,从系统中找出名词、名词短语或名词性代词,他们往往对应着类。其中单数名词可以识别为对象,而复数名词则可以识别为类。并不是每个名词...
阅读全文
摘要:本文主要介绍用例模型的设计过程,首先从系统层设计用例模型,然后分别细化系统层识别的各用例,设计更为详细的用例模型。用例模型是开发过程的起点,并驱动建模全过程。以下以办公自动化(OA)中的办理发文用例模型为例,来讲解用例模型的设计过程。用例模型包括办理公文用例图及用例描述。办理发文用例模型 1、办理公文用例图 在设计办理发文用例模型之前,先要识别活动者和用例,活动者和用例识别以后,才能建立用例模型。 1.1 活动者识别 活动者是系统分析员与用户交流的起点,也是项目获得后续产品的关键。活动者可以是使用系统功能的人,也可以是软件系统和硬件设备,凡是与系统进行信息交换的外部实物,都可以归为...
阅读全文
摘要:开篇简述 博客自从大学毕业就开通了,到现在还没发布什么博文,以前不喜欢写博客,但是后来发现写文章其实也是自我提升一个方式,现在的工作不是很忙,趁此机会,写一些文章。此软件工程系统建模系列,以自己在工作中开发OA的系统为参考,结合UML语言来讲述办公自动化系统建模过程,篇幅大概20篇左右,分为建模篇和规划篇,建模篇主要介绍软件开发中各种模型的设计。本文作为开篇,主要简述相关的概念和这个系列的索引,由于本人技术和表述能力有限,错误之处在所难免,通过本系列,将能够学习到软件开发的各种模型设计,不求完美,但求有用。UML概述 UML译为统一建模语言,由面向对象方法领域三位著名学者提出,并结合优秀的..
阅读全文
摘要:什么是Zipalign?Zipalign是一个android平台上整理APK文件的工具,它首次被引入是在Android 1.6版本的SDK软件开发工具包中。它能够对打包的Android应用程序进行优化, 以使Android操作系统与应用程序之间的交互作用更有效率,这能够让应用程序和整个系统运行得更快。用Zipalign处理过的应用程序执行时间达到最低限度,当设备运行APK应用程序时占更少的RAM(Random Access Memory)随机访问内存,我们强烈推荐在新的和已经发布的程序上使用zipalign工具来得到优化后的版本——即使你的程序是在老版本的Android平台下开发的。这篇文章将
阅读全文