搜档网
当前位置:搜档网 › Coremail 4.0 高级API使用手册(Java版)

Coremail 4.0 高级API使用手册(Java版)

Coremail 4.0 高级API使用手册(Java版)
Coremail 4.0 高级API使用手册(Java版)

Coremail 4.0 高级API(Java)使用手册

版权声明

本文档版权归盈世信息科技(北京)有限公司所有,并保留一切权利。未经书面许可,任何公司和个人不得将此文档中的任何部分公开、转载或以其他方式散发给第三方。否则,必将追究其法律责任。

免责声明

本文档仅提供阶段性信息,所含内容可根据产品的实际情况随时更新,恕不另行通知。如因文档使用不当造成的直接或间接损失,本公司不承担任何责任。

文档更新

本文档由盈世信息科技(北京)有限公司于2013年5月最后修订。

公司网站

https://www.sodocs.net/doc/d012633735.html,

销售咨询热线400-000-1631

技术支持热线400-888-5422

A、文档修改记录

B、文档审核记录

目录

1Coremail 4.0 API通用函数说明 (1)

1.1getClient(连接APIServer使用的socket) (1)

1.2getRetCode(获取操作的返回值) (2)

1.3getResult(操作的返回结果) (2)

1.4getResultEx(返回操作的返回结果) (3)

1.5getErrorInfo(描述操作失败原因) (3)

1.6toString(返回操作结果的字符串表示) (3)

2API函数的使用步骤 (3)

3Coremail 4.0 API具体功能应用 (5)

3.1登录 (5)

3.1.1用户登录 (5)

3.1.2检查用户是否存在 (7)

3.1.3验证用户密码 (8)

3.1.4检查用户的session,返回用户信息 (8)

3.1.5检查用户的session,并刷新访问时间 (9)

3.1.6获取用户session中的变量 (10)

3.1.7用户退出 (10)

3.2组织维护 (11)

3.2.1创建组织 (11)

3.2.2获取组织属性 (13)

3.2.4组织域名分配(添加/删除) (15)

3.2.5组织COS分配(添加/修改/删除) (16)

3.2.6根据COS获取用户列表 (17)

3.2.7获取站点所有组织标识列表 (18)

3.3部门维护 (18)

3.3.1创建部门 (18)

3.3.2删除部门 (19)

3.3.3获取部门属性 (20)

3.3.4设置部门属性 (20)

3.4用户维护 (21)

3.4.1创建用户 (21)

3.4.2删除用户 (22)

3.4.3用户属性获取 (22)

3.4.4获取用户的Popweb属性 (23)

3.4.5用户属性变更 (24)

3.4.6别名维护(添加/删除/获取) (25)

3.4.7把用户设置为组织管理员 (26)

3.4.8修改用户主标识 (27)

3.4.9用户跨组织移动 (27)

3.5域名维护 (28)

3.5.1检查域名或者域名别名是否存在 (28)

3.5.3增加域名 (29)

3.5.4删除域名 (29)

3.5.5增加域别名 (30)

3.5.6删除域别名 (30)

3.6邮件维护 (31)

3.6.1获取未读邮件数 (31)

3.6.2获取用户未读邮件列表 (32)

4附录 (33)

4.1返回信息表 (33)

4.2用户属性表 (34)

1Coremail 4.0 API通用函数说明APIContext类提供一个工厂方法,产生一个的客户端连接IClient类型的实例,即API 客户端对象。客户端对象可以进行多次调用APIServer的方法,进行操作,操作完成后客户端请求对象IClient使用close方法关闭连接。

同时,IClient类型的实例操作通常返回一个APIContext类型的对象,它记录客户端与API Server之间的连接信息。可以通过APIContext.getRetCode以及APIContext.getResult等方法,获取IClient调用APIServer所得的结果。

以下为APIContext所提供的方法:

1.1getClient(连接APIServer使用的socket)

public static final IClient getClient(https://www.sodocs.net/doc/d012633735.html,.Socket socket)

throws java.io.IOException

功能:根据socket获取API客户对象,客户对象可以进行多次API操作,

操作完成后请使用IClient.close() 来关闭连接。

请注意, 每个client(socket)只能在一个thread中使用, 如果需

要并发请为每个thread申请单独的连接

入口参数:

socket 连接APIServer使用的socket 返回值类型:

客户对象

抛出异常类型:

https://www.sodocs.net/doc/d012633735.html,ng.NullPointerException:当传入的socket为null

java.io.IOException

1.2getRetCode(获取操作的返回值)

public final int getRetCode()

功能:获取操作的返回值

返回值类型:

使用类的静态常量定义(例如:public static final int RC_NORMAL),各自的含义为:

RC_NORMAL:操作成功

RC_ASSWORD_ERR:用户密码错误

RC_SES_ERROR Session:错误

RC_SESID_NOT_FOUND:Session ID 不存在或已经过时

RC_USER_EXIST:用户已存在

RC_USER_NOT_FOUND :用户不存在

1.3getResult(操作的返回结果)

public final https://www.sodocs.net/doc/d012633735.html,ng.String getResult()

功能:操作的返回结果(只对有返回结果的操作才有意义)

返回值类型:

请参考各个API函数调用的说明

1.4getResultEx(返回操作的返回结果)

public final Object getResultEx()

功能:返回操作的返回结果. 和getResult不同的是, 此方法可以返回其它数据类型.

返回值类型:

操作的返回结果.

1.5getErrorInfo(描述操作失败原因)

public final https://www.sodocs.net/doc/d012633735.html,ng.String getErrorInfo()

功能:操作失败时对操作失败原因的描述字符串

返回值类型:

失败原因的描述字符串

1.6toString(返回操作结果的字符串表示)

public final String toString()

功能:返回操作结果的字符串表示

返回值类型:

操作结果的字符串表示

2API函数的使用步骤

配置访问Coremail API 服务器的ip

用户通过调用API接口函数进行二次开发前,请用户预先配置好要访问API机器的ip。如果不设置访问机器的ip,用户将不允许进行API访问。配置方法如下:

1.登录系统管理界面,点击全局设定功能

2.选择配置管理中的“API”如下图,在“IP设置”一栏中设置好要访问机器的ip

使用Coremail 4.0的API库:

1.将所提供的APIClient.jar添加到的运行环境中(classpath)

2.参考实例程序:APIDemo.java

程序过程:

1.实例化https://www.sodocs.net/doc/d012633735.html,.Socket 类,建立网络连接

2.利用1建立的Socket实例,使用APIContext.getClient(https://www.sodocs.net/doc/d012633735.html,.Socket socket)提供的工厂方法,获取客户端的IClient的对象实例

3.用IClient的createUser,changeAttrs,setTimeOut等成员函数执行具体任务,返回APIContext类型的对象,通过APIContext.getRetCode

以及APIContext.getResult方法获取返回结果。

4.用IClient的实例的close方法关闭连接

API java接口调用方法:apiSubmit(String encodedCommand)

其中cmd=x&.....&attrs=URL编码过的attrs属性。attrs属性,为输入批量属性。

范例:(可参考APIDemo.java)

Socket socket = new Socket("127.0.0.1", 6195);

IClient client = APIContext.getClient(socket);

try {

APIContext ret = client.createUser("1", "a", "foo",

"domain_name=https://www.sodocs.net/doc/d012633735.html,&cos_id=1&user_status=0"a_delta=0");

if (ret.getRetCode() == APIContext.RC_NORMAL) {

System.out.println("User created: foo@https://www.sodocs.net/doc/d012633735.html,");

} else {

System.out.println("User create failed, code=" + ret.getRetCode() + ", msg=" + ret.getErrorInfo());

}

} finally {

client.close();

}

3Coremail 4.0 API具体功能应用

3.1登录

3.1.1用户登录

cmd命令号:5

方法名称:userLogin

功能:用户登录, 使用所有缺省参数.

入口参数:

user_at_domain 用户邮件地址: user_id@domain_name

返回值类型:

操作成功时,返回到APIContext:result的是用户的session ID

抛出异常类型:

java.io.IOException

cmd命令号:5

方法名称:userLoginEx

功能:用户登录, 使用附加参数,并返回额外的信息

入口参数:

user_at_domain - 用户邮件地址: user_id@domain_name

attrs - 操作属性, 属性值中如果有特殊字符必须用url的方式编码, 如等于号"="

编码为"%3D"。

详细说明:

操作成功时,返回到APIContext:result为encode的用户属性字符串: "sid=[用户的session id]&webname=[web主机前缀]"; web主机前缀包含协议,机器IP,端口部分, 并且结尾不包含'/' 符号

?例如: https://www.sodocs.net/doc/d012633735.html,

?又如: https://www.sodocs.net/doc/d012633735.html,:8080

支持的操作属性, 见下表:

属性名属性含义

type 登录类型: 例如"WEB" / "API" (默认) 这样的字符串(Coremail XT U3 后才支持) 所有支持的类型包括: "WEB" / "POP3" / "IMAP" / "SMTP" / "API"

remote_ip 登录用户的IP

ipcheck 仅为"1" 时表示需要检查浏览器的IP

cookiecheck 检查浏览器的cookie 值

language 登录的语言, 和配置有关, 为"0" / "1" 等数字

style 登录的风格, 和配置有关, 为"0" / "1" 等数字

返回值类型:

APIContext的retCode是操作结果,0表示操作成功,其他值代表操作失败,请参考返回信息表。

抛出异常类型:

java.io.IOException

3.1.2检查用户是否存在

cmd命令号:4

方法名称:userExist

功能:检验用户是否存在

入口参数:

user_at_domain 用户邮件地址: user_id@domain_name

返回值类型:

APIContext的retCode是操作结果,0表示操作成功,其他值代表操作失败,请参考返回信息表。

抛出异常类型:

java.io.IOException

3.1.3验证用户密码

cmd命令号:12

方法名称:authenticate

功能:验证用户密码.

入口参数:

user_at_domain 用户邮件地址: user_id@domain_name

password 用户密码

返回值类型:

APIContext的retCode是验证结果,0表示验证通过,35表示验证失败,其它返回值参照说明。关键错误代码包括:

APIContext.RC_USER_NOT_FOUND: 用户不存在

APIContext.RC_PASSWORD_ERR: 密码验证失败

抛出异常类型:

java.io.IOException

3.1.4检查用户的session,返回用户信息

cmd命令号:9

方法名称:sesTimeOut

功能:检查用户session,并返回用户的信息.

入口参数:

ses_id 用户session ID

返回值类型:

操作成功时,返回到APIContext:result的格式为:

uid=...@...&domain_id=...&org_id=...,而uid为user@domain的格式,即用户的邮件地址

关键错误代码包括:

APIContext.RC_SESID_NOT_FOUND: session ID 不存在或已经过时

APIContext.RC_SES_ERROR 或其它值: 其它的session错误

抛出异常类型:

java.io.IOException

3.1.5检查用户的session,并刷新访问时间

cmd命令号:10

方法名称:sesRefresh

功能:检查用户session,并刷新访问时间.

入口参数:

ses_id 用户session id

返回值类型:

操作成功时,除了返回值没有其它信息,表示传入的是合法的session,并且已经刷新.

关键错误代码:

APIContext.RC_SESID_NOT_FOUND: session id 不存在或已经过时APIContext.RC_SES_ERROR 或其它值: 其它的session错误

操作结果, 见附录的说明

抛出异常类型:

java.io.IOException

3.1.6获取用户session中的变量

cmd命令号:8

方法名称:getSesssionVar

功能:获取用户session中的变量.

入口参数:

ses_id 用户session id

ses_key 要获取的变量名

返回值类型:

操作成功时,变量的值直接返回到APIContext:result 关键错误代码: 关键错误代码:

APIContext.RC_SESID_NOT_FOUND: session id 不存在或已经过时APIContext.RC_SES_ERROR 或其它值: 其它的session错误

操作结果, 见附录的说明

抛出异常类型:

java.io.IOException

3.1.7用户退出

cmd命令号:6

方法名称:userLogout

功能:结束用户session

入口参数:

ses_id 用户session ID

返回值类型:

APIContext的retCode是操作结果,0表示操作成功,其他值代表操作失败,请参考返回信息表。

抛出异常类型:

java.io.IOException

3.2组织维护

3.2.1创建组织

cmd命令号:22

方法名称:addOrg

功能:创建组织

入口参数:

org_id - String 组织ID

attrs - String 组织属性串attrs的格式,&号分隔的key=value,例如:

cos_id=1&number_of_classes=100... 可用属性(可选)如下表:

属性名属性含义

org_name 组织名称, 如果不提供则org_name=OrgID

domain_name 组织的许可域名。如果是不存在的域名会先自动创建域名

res_grp_id 资源组ID, 如果不填则使用

programs/RmiServer/APIDefaultRes下的配置值

cos_id 创建组织时可指定一个COS ID, 并分配数量。缺省取programs/RmiServer/APIDefaultCos 下的配置值(配置值用cos_name指定COS)

num_of_classes 指定的COS ID类型用户数限制,org_assignable_quota 可分配容量

org_status 组织状态(0正常1暂停2锁定)

org_expiry_date 过期日期。NULL或者空表示不过期。格式为: yyyy-mm-dd

org_address 地址org_phone_number 电话org_contact 联系人

返回值类型:

操作结果, 见附录的说明

抛出异常类型:

java.io.IOException

3.2.2获取组织属性

cmd命令号:24

方法名称:getOrgInfo

功能:获取组织属性

入口参数:

org_id - String 组织ID

attrs - String 组织属性串可获取属性(可选)如下表:

属性名属性含义org_name 组织名称

domain_name 组织的许可域名列表, 以逗号","分隔

res_grp_id 资源组ID

org_assignable_quota 可分配容量

org_status 组织状态(0正常1暂停2锁定)

org_expiry_date 过期日期。NULL或者空表示不过期。格式为: yyyy-mm-dd

org_address 地址

org_phone_number 电话

org_contact 联系人

not_used_quota 此ORG还剩余的容量,单位M 返回值类型:

操作结果, 见附录的说明

java.io.IOException

3.2.3修改组织属性

cmd命令号:23

方法名称:alterOrg

功能:修改组织属性

入口参数:

org_id - String 组织ID

attrs - String 组织属性串可修改属性

属性名属性含义org_name 组织名称

org_assignable_quota 可分配容量

org_status 组织状态(0正常1暂停2锁定)

org_expiry_date 过期日期。NULL或者空表示不过期。格式为: yyyy-mm-dd

org_address 地址org_phone_number 电话org_contact 联系人返回值类型:

操作结果, 见附录的说明

java.io.IOException

3.2.4组织域名分配(添加/删除) cmd命令号:26

方法名称:addOrgDomain

功能:添加组织的许可域名

入口参数:

org_id - 组织ID

domain_name - 要分配的许可域名返回值类型:

操作结果, 见附录的说明

抛出异常类型:

java.io.IOException

cmd命令号:27

方法名称:delOrgDomain

功能:删除组织的许可域名

入口参数:

org_id - 组织ID

domain_name - 要取消的许可域名

返回值类型:

操作结果, 见附录的说明

实验5 JAVA常用类

山西大学计算机与信息技术学院 实验报告 姓名学号专业班级 课程名称 Java实验实验日期成绩指导教师批改日期 实验5 JAVA常用类实验名称 一.实验目的: (1)掌握常用的String,StringBuffer(StringBuilder)类的构造方法的使用;(2)掌握字符串的比较方法,尤其equals方法和==比较的区别; (3)掌握String类常用方法的使用; (4)掌握字符串与字符数组和byte数组之间的转换方法; (5)Date,Math,PrintWriter,Scanner类的常用方法。 二.实验内容 1.二进制数转换为十六进制数(此程序参考例题249页9. 2.13) 程序源代码 import java.util.*; public class BinToHexConversion{ //二进制转化为十六进制的方法 public static String binToHex(String bin){ int temp; //二进制转化为十六进制的位数 if(bin.length()%4==0) temp = bin.length()/4; else temp = bin.length()/4 + 1; char []hex = new char[temp]; //十六进制数的字符形式 int []hexDec = new int[temp];//十六进制数的十进制数形式 int j = 0; for(int i=0;i=0&&dec<10) return (char)('0'+dec-0); else if(dec>=10&&dec<=15) return (char)('A'+dec-10); else return '@'; }

开放平台技术合作合同模板模板

开放平台技术合作合同模板 V1.0编号:xxxxxxxxxxxxxxxxxxxxxxxxx 本合同由以下双方签署: 甲方:XXXXXXXXXXXX有限公司(以下简称“甲方”) 地址: 联系人: 联系方式: 乙方:XXXXXXXXXXXX有限公司(以下简称“乙方”) 地址: 联系人: 联系方式: 本合同根据《中华人民共和国合同法》及相关法律、法规的规定,甲乙双方经友好协商,签订此合同,以兹共同遵守。 一、定义及解释 1. XXXXX开放平台(以下简称“平台”或者“开放平台”):基于甲方各类业务的开放,由甲方提供技术文档、应用程序及相关技术支持,服务商可以通过这些技术文档、应用程序及技术支持开发应用及软件以便服务于自身或服务于平台其他用户。服务商可以通过平台应用编程接口调用指定的功能服务,访问由甲方提供的或用户授权的与用户相关的数据和/或来自甲方其他应用程序的数据信息,或者由乙方/开发者应用向甲方提供、回流数据。平台可能包括但不限于一个或多个技术文档和应用程序。 2. 服务商:指通过有效申请并通过审核验证的可基于平台进行应用开发的单位(即本合同中“乙方”)。 3. 甲方商家(或称“商家”):指通过甲方运营/管理的网络服务平台(包括但不限于xx网、甲方关联方、甲方合作方运营/管理的网络服务平台及未来可能新设或合作的网络平台等)发布商品/服务信息、向用户提供商品/服务并向服务商采购应用的自然人、法人和其他组织。 4. 用户:指通过访问和使用甲方运营/管理的网络服务平台,与甲方商家达成订单或

有意向达成订单的消费者。 5. 应用:指服务商基于平台所开发的应用程序或软件服务,包括自用型应用和他用型应用两种类型。 6. Open API:指对所有申请并审批通过后的应用开放的遵照甲方接口协议即可调用的数据接口。 7. SDK:指对所有申请并审批通过后的应用开发的遵照甲方接口协议即可调用的编程接口。 8. UI SDK:指对所有申请并审批通过后的应用开发的遵照甲方接口协议即可调用并嵌套的界面应用。 9. 开发者:服务商接入平台需要进行系统开发,开发者是服务商中的系统开发人员(即本合同中“乙方开发人员”)。 二、甲方的服务内容 本合同生效后,乙方将开发者资质、公司资质、需要的接口服务等内容提交甲方审核,甲方审核通过后,将提供以下服务: 1. 甲方向乙方提供服务商平台,并为乙方提供应用开发的技术文档、应用程序及技术支持,包括应用数据接口的开发、封装以及与此有关的互联网技术服务。 2. 乙方基于和甲方的合作,就相关合作问题要求甲方提供的其他技术服务/支持。 3. 乙方通过平台和接口开发以便服务于乙方自身或平台其他商家。乙方可通过平台指定的方式,访问由甲方提供的或用户授权的与用户相关的数据和/或来自甲方其他应用程序的数据信息,或者由乙方向甲方提供、回流数据。 4. 具体合作方式:open API,SDK,UI SDK 三、甲方权利义务 1. 甲方负责应用开发的网络环境、接口的维护,以及平台的建设与维护。 2. 甲方有权对乙方提交的信息及线上应用/软件服务进行审核,甲方的审核流程如下: (1) 入驻审核:乙方自助申请并按照甲方“开放平台申请加入页面”中的要求提交相关资质、乙方产品信息等其他甲方需要乙方提交的信息。甲方审核人员会对乙方自助申请入驻时提交的资质及产品信息等进行审核;审核通过后,乙方有权参与平台的测试环境开发;在乙方资质缺失、拒不提供、信息造假、不符合甲方《开放平台运营管理规则》等情况下,

Java常用类和方法面试题+答案

2015年12月20日18:25:21 Java常用类和方法重点总结 作者:数据分析玩家 1、简述Java中内存分配的问题 1>凡是new()出来的东西,都是在堆中进行分配的 2>局部变量【数据类型+变量名】都是在栈中进行分配的 3>静态变量【static】和字符串常量【“String”】都是在数据区进行分配的 4>方法【代码】都是在代码区进行存放的 2、简述Java中Object类的地位 1>Java中所有的类【自己定义的类以及Sun公司提供的类】都默认自动继承了Object类 2>Java中所有的类都从Object类中继承了toString()方法、hashCode()方法和equals()等方法 3、简述Object类中toString()方法的注意事项 1>toString()方法的返回值是一个字符串 2>toString()方法返回的是类的名字和该对象的哈希码组 成的一个字符串,即toString()方法返回的是该对象的字符串表示形式 3>在Java中System.out.println(类对象名)实际输出的是该对象的toString()方法返回的字符串,即括号中的内容等价于类对象名.toString(),toString方法的好处是在碰到

println方法的时候会被自动调用,不用显示的写出来 4>建议所有的子类都重写从Object类中继承过来toString 方法,否则toString方法的返回值没有什么实际含义 4、简述Object类中equals()方法的注意事项 1>equals方法的返回值为true或false 2>Object类中equals方法只有在两个对象是同一块内存区域时,即不但内容相同、地址还必须相同时才返回true,否则即便内容相同、如果地址不同只会返回false 3>重写Object类中的equals方法目的在于:保证只要两个对象的内容相同,equals方法就返回true 5、简述Object类中hashCode()方法的注意事项 1>哈希码原本指的是内存空间地址的十六进制表示形式 2>hashCode()方法返回的是该对象的哈希码、即该对象的真实内存地址的十六进制表示形式,但是重写完hashCode()方法之后,返回的不再是该对象真实内存地址的十六进制表示形式 6、学习Java中toString方法、equals方法、hashCode方法共同的一个注意事项 在Java中,凡是动态分配的内存都是没有名字的,而是将其地址赋给一个指针变量【引用】,用指针变量去代表这个事物,所以引用和动态分配的内存有本质上的区别,但是在学习Java中的toString方法、equals方法和hashCode方

API或专属页面框架合作协议(模板)

合同编码: 框架合作协议 甲方: 地址: 乙方: 地址: 说明:本合同由《合作协议书》及协议附件两部分组成,合同中没有涉及的内容,由甲、乙双方协商一致后另行签订书面文件。 签约地点:市区 签约时间:年月日

合作协议书 鉴于互联网技术的发展及国家大力提倡阳光采购,为了更好地服务于采购单位,实现采购的阳光化、便捷化、电子化,甲乙双方同意发挥各自的优势,在公共采购领域中开展紧密合作。 本着“公平自愿、互利共赢”的原则,甲乙双方经友好协商就合作事宜达成合作意向,签署本协议书。具体内容如下: 第一条合作内容: 1、双方有意愿积极探索电子商务在公共采购领域的合作。 2、乙方负责自身内部平台的开发、维护和管理等工作,并协助甲方进行平台接口开发及对接工作。 3、甲方负责平台接口开发和商品、交易服务的提供。 4、甲方提供给乙方自营商品,乙方根据甲方提供商品在乙方平台销售,甲方根据乙方系统的订单推送给乙方指定收货人发货。 第二条技术合作部分 1、甲方提供平台接口的技术支持。 2、甲方在现有技术上努力维护网上交易平台的正常运行,并努力提升和改进技术,使网上交易活动得以顺利进行。 3、乙方可以抓取或者链接甲方推送至乙方平台上的:□ 商品介绍、□ 价格、□ 库存、□ 商品评价、□ 其他。 4、乙方有责任保证平台接口的安全使用,不得泄露甲方提供的接口信息和数据信息,如因泄露所造成的一切损失均由乙方承担,并承担万元的违约金。 5、甲方保留在任何时候自行决定对平台服务及其相关功能、升级的权利;甲方进一步保留在服务中开发新的模块、功能的权利,上述所有新的模块、功能、软件服务的提供,除非甲方另有说明,否则仍适用本协议,如因甲方软件升级、改造影响到与乙方的合作,甲方应提前2日书面通知乙方。 6、双方保证所提供的数据、文档、资料、数据包及数据包中用户信息、商品信息、交易信息等准确无误,并不得采取任何非法方式篡改系统中的交易数据、用户信息、积分信息等系统数据或代码,否则,应承担万元的违约金 第三条商务合作部分 1、商品 1.1乙方仅可购买甲方提供的自营类商品及服务,第三方商家提供的商品及服务暂不支持交易。

2019最新Java面试题,常见面试题及答案汇总

ava最新常见面试题+ 答案汇总 1、面试题模块汇总 面试题包括以下十九个模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。如下图所示: 可能对于初学者不需要后面的框架和JVM 模块的知识,读者朋友们可根据自己的情况,选择对应的模块进行阅读。 适宜阅读人群 需要面试的初/中/高级java 程序员 想要查漏补缺的人 想要不断完善和扩充自己java 技术栈的人 java 面试官 具体面试题 下面一起来看208 道面试题,具体的内容。 一、Java 基础 1.JDK 和JRE 有什么区别? 2.== 和equals 的区别是什么? 3.两个对象的hashCode()相同,则equals()也一定为true,对吗? 4.final 在java 中有什么作用? 5.java 中的Math.round(-1.5) 等于多少? 6.String 属于基础的数据类型吗? 7.java 中操作字符串都有哪些类?它们之间有什么区别? 8.String str="i"与String str=new String(“i”)一样吗? 9.如何将字符串反转? 10.String 类的常用方法都有那些? 11.抽象类必须要有抽象方法吗? 12.普通类和抽象类有哪些区别? 13.抽象类能使用final 修饰吗?

14.接口和抽象类有什么区别? 15.java 中IO 流分为几种? 16.BIO、NIO、AIO 有什么区别? 17.Files的常用方法都有哪些? 二、容器 18.java 容器都有哪些? 19.Collection 和Collections 有什么区别? 20.List、Set、Map 之间的区别是什么? 21.HashMap 和Hashtable 有什么区别? 22.如何决定使用HashMap 还是TreeMap? 23.说一下HashMap 的实现原理? 24.说一下HashSet 的实现原理? 25.ArrayList 和LinkedList 的区别是什么? 26.如何实现数组和List 之间的转换? 27.ArrayList 和Vector 的区别是什么? 28.Array 和ArrayList 有何区别? 29.在Queue 中poll()和remove()有什么区别? 30.哪些集合类是线程安全的? 31.迭代器Iterator 是什么? 32.Iterator 怎么使用?有什么特点? 33.Iterator 和ListIterator 有什么区别? 34.怎么确保一个集合不能被修改?

合作协议书通用版

STANDARD AGREEMENT SAMPLE (协议范本) 甲方:____________________ 乙方:____________________ 签订日期:____________________ 编号:YB-BH-029003 合作协议书通用版

合作协议书通用版 合作协议书(保健品系列合作) 立协议双方: ×××有限公司(以下简称甲方) ×××(以下简称乙方) 甲、乙双方本着互利互惠、共同发展的原则,经过弃分的可行性研究和相互协商,一致决定联合出资开发、生产、经营"×××"×××项目。为明确双方权利、义务,特订立本协议。 一、×××系采用高新技术开发的新一代纯天然保健食品,其可行性研究报告及市场前景预测,已得到双方确认。 二、×××系列产品的生产配方由乙方提供,作价万元,并以此作为出资的一部分。 产品配方在作为出资提供后,其所有权归双方共同享有。 三、双方出资比例各占投资总额的%,其中甲方以现金方式出资,乙方以现金和技术出资。 为产品的研发及向卫生部门申报保健品生产批准文号,甲方现金出资万元,乙方现金出资万元,另加上述技术(配方)出资万元,作为第一共同出资。

在获得卫生部门批准文号后,组织生产、经营所需的资金由双方按上述比例全额投入。 四、甲、乙双方按投资比例分配利润,承担对外债务,任何一方不得擅自在未经对方同意及清算前提出退出合作。 五、×××系列产品的生产、经营活动以甲方名义进行,其运作模式按甲方公司内部规章制度执行。 如需另行吸收股东组建公司,按《公司法》有关规定执行。 六、本协议未尽事宜,双方协商解决,并订立补充协议,以作为本协议的补充,具有相同的法律效力。 七、本律师一经签署,即具有法律效力,任何一方均应信守。如有违约,需承担相应的法律责任。 八、甲、乙双方发生纠纷,应本着有利于事业发展的原则。协商解决,如协商不成,则可诉诸法院。 九、本协议一式二份,双方各执一份,在各方签字或盖章后生效。 甲方:×××有限公司(公章) 代表: 乙方: 年月日 XX网络科技有限公司 YunBo Network Technology Co., Ltd.

java中常用关键字总结

Java中的关键字总结 final 关键字 1、用final修饰的类不能被继承,没有子类; 2、用final修饰的方法,方法不能被重写; 3、用final修饰变量,变量的值不能被修改,表示常量,(书写规范:全部字母都要大写;多个单词,可以使用下划线(_)分开;) 注意:如果被final修饰的变量是一个引用类型的数据,那么通过这个引用改变堆空间中的数据,不会报错;如果被final修饰的变量是一个引用类型的数据,那么通过这个引用改变堆空间中的数据,不会报错; 4、final用于成员变量表示该成员变量为常量,不能被修改,必须在变量定义时赋值。 5、final用于局部变量表示该局部变量为常量,不能被修改,可以在变量定义时赋值,也可以先定义变量后赋值。 什么时候用final关键字? 有的时候不想别人重写我的方法就使用final关键字修饰该方法; static关键字 1、static用于成员变量表示该变量只有一份,也就是说静态成员变量属于类而不属于某个具体的类实例对象,所有的类实例对象共享这个静态成员变量;静态函数是不需要对象的,直接可以使用类名来调用; 2、非静态函数可以调用静态函数;静态函数不能调用非静态函数(非静态函数都是通过对象调用的);静态函数不能使用非静态成员变量,但可以使用静态成员变量; 3、静态函数调用时不需要对象的,所以不能使用和对象有关的关键字;(this;super;) 4、构造函数不能使用static修饰(构造函数是创建对象,开辟空间,给所有成员变量赋默认值之后,有JVM调用进栈,用来给对象的成员变量赋初始值的) static用于类,这里指的是内部类,那么在别的地方就可以通过外部类名来引用这个静态的内部类。 5、static还可以用于类的代码块,叫做静态代码块,静态代码块在类加载的时候就执行完毕,而类只加载一次;是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先

合作协议合同范本官方

合作协议合同范本 甲方:xxx ,身份证号:xxxxxxxxxxxx. 乙方:xxx ,身份证号:xxxxxxxxxxxx. 丙方:xxx ,身份证号:xxxxxxxxxxxxx. 丁方:xxx ,身份证号:xxxxxxxxxxx. 甲方、乙方、丙方、丁方本着互谅互让、平等协商的精神, 就xxxx 的经营管理事宜等达成协议如下: 一、合作事宜及职责划分 甲方、乙方、丙方、丁方在符合四方共同利益的前提下,现就正式接手xxxxx 经营管理有关事宜,自愿结成战略合作伙伴关系。具体职责范围划分如下: (1)甲方主管市场的账务管理,负责与有关管理机构、商户的协调处理关系,是合作组织唯一的合法代表人。 (2)乙方负责财务以外的市场具体管理、有关工作的开展与 实施、以及冲突问题的解决等。

(3)丙方、丁方在乙方的领导下工作,配合乙方工作抓好秩序与卫生的管理工作。 二、盈余分配与债务承担 1. 盈余分配: 甲方、乙方、丙方、丁方不领取工资报酬,在扣除正常办公开支、上交费用、人员工资(收费人员两人、会计一人、卫生清洁人员一人)及向xxxxx 交纳的费用后由甲方主持分配。其中甲方所得份额为50%,乙方、丙方、丁方三方共得50%的份额。 2. 债务承担: 若因xxxxxx 原因或其他市场方面的原因导致甲方承担债务 的,债务由本协议各方按盈余分配比例承担,并互负连带责任。 三、合作范围内的事务处理,如人员的选聘等需由甲乙丙丁四方共同协商,所需费用甲乙丙丁四方共同承担,费用的用途应予明示,各方均享有知情权。 四、甲乙丙丁任何一方不得从账务中支取、借支款项,任何一方以个人名义做出的民事行为或以合作组织名义,实为谋取个人利益的民事行为的后果均由其个人承担,与合作组织的其他方无关。一方更不得因己方原因使合作方的商业信誉受损。

JAVA中常用类的常用方法

JAVA中常用类的常用方法 一、https://www.sodocs.net/doc/d012633735.html,ng.Object类 1、clone()方法 创建并返回此对象的一个副本。要进行“克隆”的对象所属的类必须实现https://www.sodocs.net/doc/d012633735.html,ng. Cloneable接口。 2、equals(Object obj)方法 ?功能:比较引用类型数据的等价性。 ?等价标准:引用类型比较引用,基本类型比较值。 ?存在特例:对、Date及封装类等类型来说,是比较类型及对象的内容而不考虑引用的是否为同一实例。 3、finalize()方法 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 4、hashCode()方法返回该对象的哈希码值。 5、notify()方法唤醒在此对象监视器上等待的单个线程。 6、notifyAll()方法唤醒在此对象监视器上等待的所有线程。 7、toString()方法 返回该对象的字符串表示。在进行String与其它类型数据的连接操作时,自动调用toString()方法。可以根据需要重写toString()方法。 8、wait()方法 在其他线程调用此对象的notify() 方法或notifyAll() 方法前,导致当前线程等待。 二、字符串相关类 l String类 charAt(int index) 返回指定索引处的char 值。 compareTo(String anotherString) 按字典顺序比较两个字符串。 compareToIgnoreCase(String str) 按字典顺序比较两个字符串,不考虑大小写。 concat(String str) 将指定字符串连接到此字符串的结尾。 endsWith(String suffix) 测试此字符串是否以指定的后缀结束。 equals(Object anObject) 将此字符串与指定的对象比较。 equalsIgnoreCase(String anotherString) 将此String 与另一个String 比较,不考虑大小写。indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。 indexOf(String str) 返回第一次出现的指定子字符串在此字符串中的索引。 lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引。 length() 返回此字符串的长度。 replace(char oldChar, char newChar) 返回一个新的字符串,它是通过用newChar 替换此字符串中出现的所有oldChar 得到的。split(String regex) 根据给定正则表达式的匹配拆分此字符串。 startsWith(String prefix) 测试此字符串是否以指定的前缀开始。 substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。 substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的beginIndex 处开

服务合作协议书范本

服务合作协议书范本 甲方: 住址: 法人代表: 身份证号: 乙方: 住址: 法人代表: 身份证号: 甲乙双方本着相互信任,真诚合作的原则,经双方友好协商,就乙方为甲方提供特定服务达成一致意见,特签订本合同。 一、服务内容 1、乙方同意向甲方提供附于本合同并作为本合同一部分的附件(附件自拟)所列的特定服务。服务的内容、时限、衡量成果的标准见附件。 2、如果乙方在工作中因自身过错而发生任何错误或遗漏,乙方应无条件更正,而不另外收费,并对因此而对甲方造成的损失承担赔偿责任,赔偿以附件所载明的该项服务内容对应之服务费为限。若

因甲方原因造成工作的延误,将由甲方承担相应的损失。 3、乙方的服务承诺: (1)乙方接到甲方通过电话、信函传真、电子邮件、网上提交等方式提出关于附件所列服务的请求后,在两个有效工作日内给予响应并提供服务。 (2)乙方提供给甲方的服务,必须按照合同附件规定的标准进行。 二、服务费的支付 1、服务费总金额为___________人民币(大写:____________人民币元整)。 2、本费用结构仅限于附件中列明的工作。如果甲方要求扩大项目范围,或因甲方改变已经议定的项目内容导致乙方需重复进行项目步骤,乙方将需要重新评估上述费用结构。 3、甲乙双方一致同意项目服务费以人民币形式支付。甲方将在验收确认该阶段服务完成合格,并且乙方发出该阶段工作的费用账单及正式有效的税务发票后______个工作日内,向乙方支付约定的费用。 4、有关发票方面的任何问题,甲方应在收到发票后及时书面通知乙方,以便乙方及时作出解释或解决问题,以使甲方能按时付款。 5、乙方将自行承担项目实施范围内合理的差旅费用。 6、乙方同意免除项目杂费。 三、服务的变更

实验5Java常用类(一)

实验5 Java类库和常用类(一) 一. 实验目的及实验环境 1理解类库的概念,掌握分析、应用类库中的类的方法。 2熟练掌握Math类的常用方法。熟悉Random类的常用方法。 3理解String类的特性,熟练掌握String类的常用方法。 4能用Date类创建对象,熟练掌握Date类的常用方法。 5熟练掌握SimpleDateFormat解析日期和设置日期输出格式。 6学会查阅Java API在线参考文档和离线文档的方法。 二. 实验内容 1 基本内容(实验前请及时熟悉如下相关内容) 1)练习使用Math类的常用方法。 2)应用String类编程练习。 3)编写程序应用Random类生成随机数。 4)练习使用Date类的常用方法。 5)查阅Java API在线参考文档和下载Java API离线文档。 示例1. 应用SimpleDateFormat类的程序示例如下,共同学们模仿参考。 import java.text.*; import java.util.Date; public class FormatDateTime { public static void main(String[] args) { SimpleDateFormat myFmt = new SimpleDateFormat("yyyy年MM月dd日 HH 时mm分ss秒"); SimpleDateFormat myFmt1 = new SimpleDateFormat("yy/MM/dd HH:mm"); SimpleDateFormat myFmt2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 等价于now.toLocaleString() SimpleDateFormat myFmt3 = new SimpleDateFormat("yyyy年MM月dd日 HH 时mm分ss秒 E "); SimpleDateFormat myFmt4 = new SimpleDateFormat("一年中的第 D 天一年中第w个星期一月中第W个星期在一天中k时 z时区"); Date now = new Date();//当前时间 System.out.println(myFmt.format(now)); System.out.println(myFmt1.format(now)); System.out.println(myFmt2.format(now)); System.out.println(myFmt3.format(now)); System.out.println(myFmt4.format(now)); System.out.println(now.toGMTString());//The method toGMTString() from the type Date is deprecated. System.out.println(now.toLocaleString()); System.out.println(now.toString()); } }

合作开发合同协议书范本完整版

合作开发合同 甲方:________________________________ 乙方:________________________________ 签订日期:________ 年 ______ 月 _____ 日甲方:________________________ 住所:________________________

法定代表人:__________________ 项目联系人:__________________ 联系方式:____________________ 通讯地址:____________________ 电话:________________________ 传真:________________________ 电子信箱:____________________ 乙方:________________________ 住所:________________________ 法定代表人:__________________ 项目联系人:__________________ 联系方式:____________________ 通讯地址:____________________ 电话:________________________ 传真:________________________ 电子信箱:____________________ 本合同合作各方就共同参与研究开发_________ 项目事项,经过平等协商,在真实、充 分地表达各自意愿的基础上,根据《中华人民共和国合同法》的规定,达成如下协议,并由合作各方共同恪守。 第一条项目名称 第二条技术内容、范围和要求 1.技术内容: (1)新技术; (2)新产品; (3)新工艺; (4)新材料。 2.技术范围:______________________________

第三方服务合作协议范本专业版(2)

编号:QJ-HT-0690 第三方服务合作协议范本专 业版(2) Both parties to the contract shall perform their obligations in accordance with the contract or the law within the contract period. 甲方:_____________________ 乙方:_____________________ 日期:_____________________ --- 专业协议范本系列下载即可用---

第三方服务合作协议范本专业版(2)说明:该协议书适用于甲乙双方为明确各自的权利和义务,经友好协商双方同意签署协议,在协议期限内按照协议约定或者依照法律规定履行义务,可下载收藏或打印使用(使用时请先阅读条款是否适用)。 甲方: 地址: 乙方: 地址: 甲方及乙方在相互了解、相互信任的基础上,本着平等合作、互惠互利的原则,经友好协商,达成如下协议 第一条定义与解释 一、术语定义 除非本协议中另有约定,下列词语各自具有以下特定含义。 1、合作双方本协议中所规定的甲方及乙方。 2、保密信息属于一方所有,并被该方视为保密信息的、包括但不限于有关技术、财务、商业、客户信息,交易记录等数据和信息。

3、协议生效日合作双方签署本协议之日。 4、不可抗力在本协议期限内发生的不能预见、不能避免,并不能克服的客观情况,包括但不限于地震、台风、火灾、水灾、瘟疫、战争、罢工、暴动、电信部门技术管制等情况。 5、合作期限协议中述及的本协议之有效期限。 二、解释 1、本协议所指之日为公历日,本协议所指之工作日系指法定工作日。 2、本协议中之标题仅供参考之用,并不影响本协议任何部分之含义及解释。凡述及章、条款、段落时,均指本协议的章、条款、段落。 第二条声明及保证 一、法律地位 合作双方均声明及保证以下内容,自本协议签署生效之日起。 1、有资格从事本协议项下之服务,而该等服务符合各自的经营范围之规定。 2、可全权订立本协议并履行其于本协议项下之义务。 3、授权代表拥有充分授权,可代表授权方签署本协议。

第三方服务合作协议

第三方服务合作协议 甲方: 地址: 乙方: 地址: 甲方及乙方在相互了解、相互信任的基础上,本着平等合作、互惠互利的原则,经友好协商,达成如下协议 风险提示: 合作的方式多种多样,如合作设立公司、合作开发软件、合作购销产品等等,不同合作方式涉及到不同的项目内容,相应的协议条款可能大不相同。 本协议的条款设置建立在特定项目的基础上,仅供参考。实践中,需要根据双方实际的合作方式、项目内容、权利义务等,修改或重新拟定条款。 第一条定义与解释 一、术语定义 除非本协议中另有约定,下列词语各自具有以下特定含义。 1、合作双方本协议中所规定的甲方及乙方。 2、保密信息属于一方所有,并被该方视为保密信息的、包括但不限于有关技术、财务、商业、客户信息,交易记录等数据和信息。 3、协议生效日合作双方签署本协议之日。 4、不可抗力在本协议期限内发生的不能预见、不能避免,并不能克服的客观情况,包括但不限于地震、台风、火灾、水灾、瘟疫、战争、罢工、暴动、电信部门技术管制等情况。 5、合作期限协议中述及的本协议之有效期限。 二、解释 1、本协议所指之日为公历日,本协议所指之工作日系指法定工作日。 2、本协议中之标题仅供参考之用,并不影响本协议任何部分之含义及解释。凡述及章、条款、段落时,均指本协议的章、条款、段落。 第二条声明及保证 一、法律地位 合作双方均声明及保证以下内容,自本协议签署生效之日起。 1、有资格从事本协议项下之服务,而该等服务符合各自的经营范围之规定。 2、可全权订立本协议并履行其于本协议项下之义务。 3、授权代表拥有充分授权,可代表授权方签署本协议。 二、法律效力 1、自生效之日起,本协议对合作双方均具有法律约束力。 2、本协议合作双方均保证本协议的签署与履行及根据本协议所计划之商业行为在任何方面均不违反中华人民共和国的相关法律规定。 第三条合作方式与内容 风险提示: 应明确约定合作方式,尤其涉及到资金、技术、劳务等不同投入方式的。同时,应明确各自的权益份额,否则很容易在项目实际经营过程中就责任承担、盈亏分担等产生纠纷。 甲、乙双方共同合作__________,按照以下方式进行合作。 风险提示: 应明确约定合作各方的权利义务,以免在项目实际经营中出现扯皮的情形。 再次温馨提示:因合作方式、项目内容不一致,各方的权利义务条款也不一致,应根据实际情况进行拟定。 1、甲方将为________提供__________。 2、乙方将配合甲方,完成_________的方案制订,并提供相应的协助工作。 3、乙方为甲方提供__________项目前期的合作达成及合作后__________的维护工作。

java常用类知识点总结

java常用类知识点总结 Java常用类 要求: 1、掌握String和StringBuffer的区别,可以熟练使用String和StringBuffer的各 种方法进行相关操作。 2、能够自己编写一个得到日期的操作类,并将日期进行格式化操作。 3、掌握比较器及其基本原理,并可以通过比较器进行对象数组的比较操作。 4、掌握对象克隆技术及其实现 5、能够灵活应用正则表达式对字符串的组成进行判断 6、掌握Math、Random、基本数据类型的包装类的使用 7、描述出Object System对垃圾收集的支持 8、使用NumberFormat、DecimalFormat、BigInteger、BigDecimal进行数字的操 作 String和StringBuffer String的内容一旦声明不可改变,如果要改变,改变的是String的引用地址,如果一个字符串要经常改变,必须使用StringBuffer。 在一个字符串内容需要频繁修改时,使用StringBuffer可以提升操作性能,因为StringBuffer内容可以改变,而String内容不可改变。StringBuffer支持的方法大部分与String类似。 StringBuffer常见用法: (1) 字符串的连接操作

String类可以通过“+“进行字符串的连接,而StringBuffer中却只能使用append方法进行字符串的连接,而且此方法返回一个StringBuffer类的实例,这样就可以采用代码链的形式一直调用append方法。 (2) 在任意位置处为StringBuffer添加内容 可以使用insert方法在指定位置上为StringBuffer添加内容 字符串的反转操作(较为常见的操作,使用reverse方法) (3) 替换指定范围的内容 replace方法可对指定范围的内容进行替换。在String中如果要替换,使用的是replaceAll (4) 字符串截取(使用subString方法从指定范围中截取内容) (5) 删除指定范围的字符串(使用delete方法删除指定范围内容) (6) 查找指定内容是否存在(indexOf查找指定内容,查找到返回内容的位置, 没查到返回-1) 问题:(1)String s = "Hello";s = s + " world!";这两行代码执行后,原始的String对象中的内容到底变了没有, 没有。因为String被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。在这段代码中,s原先指向一个String对象,内容是 "Hello",然后我们对s进行了+操作,那么s所指向的那个对象是否发生了改变呢,答案是没有。这时,s不指向原来那个对象了,而指向了另一个 String对象,内容为"Hello world!",原来那个对象还存在于内存之中,只是s这个引用变量不再指向它了。通过上面的说明,我们很容易导出另一个结论,如果经常对字符串进行各种各样的修改, 或者说,不可预见的修改,那么使用String来代表字符串的话会引起很大的内存开销。因为 String对象建立之后不能再改变,所以对于每一个不同的字符

网站API服务合同

API服务合作协议 甲方:上海XX电子商务有限公司 乙方:深圳市XX网络科技有限公司 甲、乙双方就甲方在乙方网站(XX网站:https://www.sodocs.net/doc/d012633735.html, ,以下简称为乙方网站)获取数据查询API服务,在自愿、平等互利的基础上经过友好协商,达成以下协议: 一、甲方的权利与义务: 1、甲方可通过乙方授权IP( *,下简称IP)调用由乙方提供的物流查询API服务; 2、甲方接入IP必须向乙方提出申请,经授权后接入;如因代码搬迁需要更换IP,需要重新向乙方提出接入许可; 3、甲方承诺不通过开放API向乙方计算机进行任何与物流查询API服务无关的恶意操作; 4、超过服务规定流量的API调用,经乙方书面告知后,甲方需要支付乙方超额流量费; 5、甲方的业务必须符合国家法律和社会道德,产品形式形态需提前和乙方沟通,调用接口符合乙方具体的规定; 6、甲方承诺其不会将通过乙方网站提供的API服务、公开渠道以及基于本协议项下合作获取的查询相关数据用于本协议之外的商业目的(包括单独销售,与其他任何第三方进行合作);否则,甲方应承担由此引发的一切责任及损失。乙方有权提前终止本协议,并要求甲方赔偿乙方遭受的全部损失; 二、乙方的权利和义务: 1、乙方根据科研需要,完善API功能,提供稳定API服务; 2、乙方有义务在工作日内对甲方查询流量超标进行告知,并允许甲方在三个工作日对超标流量进行核实或对进行调整,在甲方确认核实的情形下,向甲方收取必要流量费用; 3、甲方单日流量超过60万单次以上对乙方服务器会造成较大的影响,须双方确认提高相应的服务套餐,如协商未果,乙方有权随时停止提供服务,避免影响乙方网站平台; 4、乙方需对甲方的查询资料进行严格保密,未经允许,不可泄露甲方资料,不可使用甲方资料进行任何商业活动; 5、乙方保证提供7*24小时技术服务支持,双方本着相互信任、以诚相见的原则,对于存在的技术问题、网络问题导致服务异常或者终止的情况共同协商、配合解决; 三、服务内容及费用: 以上金额以预付款的形式,进行多退少补-实际使用后按对应的套餐进行扣款;如果以季度预付,第三个月如要取消合作,须在第二个月结束的前一周时间提出,退款以整个月计算,当月如使用过则无法退款;季度结束后,如有多余的预付款,则可退款或顺延至次季

Java常用类String的面试题汇总

Java常用类String的面试题汇总 1、比较两个字符串时使用“==”还是equals()方法? 当然是equals方法。“==”测试的是两个对象的引用是否相同,而equals()比较的是两个字符串的值是否相等。简单来说,基本数据类型都可以使用==。而引用类型使用==比较不了。 2、如何将字符串转化成int? 使用包装类Integer。Integer.valueOf("2");其他基本数据类型都是类似 3、为什么在Java中存储密码要使用char[],而不使用String。 因为String是不可变的,当String创建之后,就不会再改变了。而char[]是可变的,程序员在用完之后可以将其改变,不会留下任何原始数据。所以,在使用密码时,一般都是会用char数组,例如JavaSwing中的JPassWordField,获取密码框的值就是使用char 数据。而不使用String。 4、String可以在Switch语句中使用吗? JDK1.7之后确实可以了。之前不行。需要程序员对JDK升级的API有适当的了解。 5、如何将字符串用空白字符分割开 可以使用正则表达式来做到分割字符。“\s”代表空白字符”“, “\t”, “\r”, “\n”等等, String[] strArray = str.split("\\s+"); 6、substring()方法到底做了什么? 因为String是不可变的,所以在字符串截取时,subString做了一些工作。在JDK6时,用一个字符数组来表示现存的字符串,然后在这个字符数组中截取字符串,截取之后,并没有创建新的字符数组。而在JDK7中,截取的新的字符串是一个新的数组,这样效率更快一些。因为垃圾回收器会去回收不再使用的字符串。

软件开发协议书范本

软件开发协议 甲方公司名称: 授权代表(签字): 乙方公司名称: 授权代表(签字): 合同签订日期:年月日

软件开发及战略合作协议 甲方: 乙方: 上述甲方(作为前期的项目委托方,协议中简称“甲方”)与乙方(作为前期的软件受托开发方,协议中简称“乙方”)经友好协商一致,就甲方软件开发事项达成以下协议。双方申明,双方都已理解并认可了本合同的所有内容,同意承担各自应承担的权利和义务,忠实地履行本合同。 第一条、签署本协议表明甲乙双方同意本协议的全部内容。所有本协议所定义的项目、工作、服务、产品均受本协议约束。 第二条、本协议中软件开发项目的内容、工作进度与安排、价款、交付和验收方式由以下双方约定条款决定。 第三条、合同履行期限按照本合同内规定的工作进度决定,经双方协商一致,可以延长该期限。 第四条、甲方应向乙方提供必要的内容资料和方便条件,协助配合乙方进行软件的开发、调试、安装及实施。 第五条、本合同自签订起 1 年内有效。有效期满后,甲方若仍需乙方提供软件维护服务及技术支持,则需甲、乙双方签订《软件维护协议》,否则乙方无义务为甲方提供维护服务及技术支持,乙方有权在合同有效期到期前10至15天通知甲方签订《软件维护协议》。 第六条、双方的基本权利和基本义务。 甲方的权利和义务: 1、甲方根据本合同项目的实际需要和乙方的要求提供协助,并提供企业有关的需求说明书, 资料,报表及文档。 2、甲方义务保证所提供的所有资料完整、真实、合法。 3、甲方有义务必须按本合同约定支付软件开发费用。 4、甲方有义务在规定期限内为乙方提供本软件涉及的第三方软件接口平台,提供二次开发 所需API接口定义及调用规则说明。原则上针对甲方二次定制开发的代码必须向甲方提供,甲方必须承诺对资料保密。如因第三方软件的接口平台不能如期提供造成项目推迟不能视为乙方违规,如因此造成项目上线延期,乙方概不承担任何责任。 5、甲方有权利在合同期满之前要求乙方对软件模块出现错误及故障,进行免费维护三个月。 6、甲方有权利要求乙方在合同约定的范围内为其提供软件开发源码,文档。 7、甲方在完成上面3所示的义务后,独立享有本软件的使用权,但不享有软件著作权及所 有权,甲方可以自主进行二次开发,乙方不能干涉。 8、甲方有权利在开发过程中要求乙方按照《软件平台基础功能明细》进 行开发,如有新增功能模块,双方友好协商决定。 乙方的权利和义务:

相关主题