摘要:
问题:一个文件有8*106个正整数,每个数都小于107。文件中所有整数都是唯一的。要求对这些整数排序,按升序把排序的结构输出到磁盘上。
解决问题的方案有很多,下面我们介绍几种典型的方案:
1、位图排序。
2、C标准库qsort(排序)。
3、系统命令排序。
4、C++标准库set容器排序。 阅读全文
摘要:
那看看这句经典名言:O'Reilly's Java in a Nutshell by David Flanagan (see Resources) puts it best: "Java manipulates objects 'by reference,' but it passes object references to methods 'by value.'"1、对象是按引用操纵的2、Java 应用程序有且仅有的一种参数传递机制,即按值传递按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本按引用传 阅读全文
摘要:
使用指针时要涉及两个目标,即指针本身和指针所指的对象。关于const指针变量,可归结为以下三种: 1.指向常量的指针变量; 2.常指针变量; 3.指向常量的常指针变量。一、指向常量的指针变量:声明格式: const type * var_name; 或 type const * var_name;特点:可改值。 将指针声明冠以const,使指向的对象为常量,而不是指针为常量。注意:指向常量的指针不一定指向真正的常量,它也可以指向变量,只是从该指针的角度来看,它所指向的对象是常量,通过该指针不能修改它指向的对象。它还可以指向其它的对象,可以不初始化。例1: int a = 0... 阅读全文
摘要:
本文继续介绍第三种数据库访问的解决方案:Spring3.2 + Hibernate4.2。
Hibernate是一个开源的ORM框架,能自动为对象生成相应SQL并透明的持久化对象到数据库。
ORM全称对象关系映射(Object/Relation Mapping),指将Java对象状态自动映射到关系数据库中的数据上,从而提供透明化的持久化支持。
接下来,我们还是通过一个实际的项目实践Spring+Hibernate框架访问数据库。假设该项目的功能有:保存用户信息、查询用户信息。 阅读全文
摘要:
Spring JDBC提供了一套JDBC抽象框架,用于简化JDBC开发。Spring主要提供JDBC模板方式、关系数据库对象化方式、SimpleJdbc方式、事务管理来简化JDBC编程。
接下来,通过一个示例项目来展示如何使用Spring的JDBC框架访问数据库。假设该项目的功能有:保存用户信息、查询用户信息。
事务是企业应用开发的重要组成部分,它使软件更加可靠。它们确保一种要么全有 要么全无的行为,防止数据不一致而导致的不可预测的错误发生。 事务同时也支持并发,防止并发应用线程在操作同一数据时互相影响。 阅读全文
摘要:
Java连接数据库方法概述java.sql提供了一些接口和类,用于支持数据库增删改查等相关操作。该jar包定义了java访问各种不同数据库(mysql,oracle,sqlserver...)的统一接口和标准。同时,各个数据库厂商都提供了各个接口的实现类,称之为“jdbc driver”。1、使用java.sql API 利用该包提供的各种接口和类直接访问数据库。2、使用数据库连接池目前存在多个开源的java数据库连接池,这些连接池都是在java.sql基础上编写而成。1)连接池的解决的问题是: 当使用java.sql中提供的api创建数据库连接时候,需要耗费很大的资源。如果在程序中,每次.. 阅读全文
摘要:
原生的JDBC编程主要分一下几个步骤:(原生的JDBC编程指,仅应用java.sql包下的接口和数据库驱动类编程,而不借助任何框架)
1. 加载JDBC驱动程序;2. 负责管理JDBC驱动程序的类 DriverManager 会识别加载的驱动程序,用 DriverManager 类的方法 getConnection()来创建一个数据库连接类的实例对象;3. 获取Connection对象的实例,用Connection对象的方法创建一个 Statement 对象实例,执行标准的SQL语句,对数据库、表进行相关操作。4. 返回的结果用 ResultSet 类来处理。5、出现异常时,对事物进行回滚。
特点:应用原生的JDBC访问数据库的代码冗长、重复,容易忘记某一步骤从而导致出错,并且需要显示的控制事务。 阅读全文
摘要:
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。
下面介绍四款处理json的java类库:Json-lib、Gson、Jackson、Fastjson 阅读全文
摘要:
Swift是OpenStack的对象存储模块,Keystone是OpenStack的权限验证模块。可以于这两个模块搭建一个较为完善的云存储系统。1、官方方案云存储的服务器分三种类型:验证节点 Auth node – 运行 Auth service (keystone )代理节点 Proxy node – 运行 Proxy services存储节点 Storage node – 运行 Account, Container, and Object services此方案是官方文档上的方案,部署图如下:此方案中,有1个Proxy node ,运行 swift-proxy-server。 proxy 阅读全文
摘要:
OpenStack 的验证服务有两个主要功能: 1. 用户管理(租户、用户、权限) 2. Service catalog,管理服务的目录和它们的endpoint。相关概念1. User User即用户,他们代表访问openstack的人或程序。Users通过认证信息(credentials,如密码、API Keys等)进行验证。2. Tenant Tenant即租户,它是各个服务中的一些可以访问的资源集合。在Swift,资源是以tenant为单位进行划分的。Users默认的总是绑定到某些tenant上。3. Role Role即角色,Roles代表一组用户可以访问的资源权限。Role... 阅读全文