类型系统

JAVA 基础

旧街凉风 提交于 2019-11-27 11:37:02
1. Java数据类型 Java是强类型语言,所有的变量必须先声明后使用,定义变量需要显示的声明一个在编译时就能确定的类型。 Java中的数据类型有两种,基本类型(Primitive Type)和引用类型(Reference Type)。 1)基本数据类型 Java 基本类型分为两类:数值型和布尔型。数值型可分为整型以及浮点型,整形中的字符型也可单独分为一类。所以一般把基本类型分为4类,如下表: 分类 类型 长度 整数型 int 32位 long 64位 short 16位 byte 8位 字符型 char 16位 浮点型 double 64位 float 32位 布尔型 boolean 1位 ①整型:int为最常用的整型变量。系统中的整数常量会被看作int处理。但有以下两个例外: 如果一个整数很小(在byte或short)的范围内,当这个整数常量被付给一个byte或short变量时,整数常量会被当作byte或short类型。 如果一个巨大的整数常量(超出了Int的存储范围)时,系统不会把这个整数当作long类型处理,除非用户在常量后加上一个字母"L"。 示例: [java] view plain copy public class IntegerValTest { public static void main(String[] args) { //下面代码是正确的

深入理解java异常处理机制

我怕爱的太早我们不能终老 提交于 2019-11-27 11:22:08
1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训” 告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案 哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。 <span style= "rgb(255, 255, 255);"> package Test; public class TestException { public TestException() { } boolean testEx() throws Exception { boolean ret = true; try { ret = testEx1(); } catch (Exception e) { System.out.println( "testEx, catch exception"); ret = false; throw e; } finally { System.out.println( "testEx, finally; return value=" + ret); return ret; } } boolean testEx1() throws Exception { boolean ret =

Go 变量及基本数据类型2

不想你离开。 提交于 2019-11-27 09:57:03
#### Go 变量及基本数据类型(二)今天学习一下基本数据类型,包括整数类型,小数类型,字符类型##### 整数类型用来存放整数数值的, 如0,1,-10,2222等; 整数型的类型有: 类型 有无符号 占用存储空间 表数范围 int8 有 1字节 -128~127 int16 有 2字节 -2^15~2^15-1 int32 有 4字节 -2^31~2^31-1 int64 有 8字节 -2^63~2^63-1 案例: package main import ( "fmt" "unsafe" ) func main(){ // 整数类型有符号(默认情况下int 类型根据系统平台有关,32 位系统int= int32 // 64 位系统int = int64 var i int = 1 var i1 int8 = 127 fmt.Println(i,i1) fmt.Println(unsafe.Sizeof(i)) //8 变量占用的内存大小单位字节 fmt.Println(unsafe.Sizeof(i1)) //1 变量占用的内存大小单位字节 }   整数类型的无符号类型 类型 有无符号 占用储存空间 表数范围 uint8 无 1字节 0~255 uint16 无 2字节 0~2^16-1 uint32 无 4字节 0~2^32-1 uint64 无 8字节 0~2^64-1

iOS面试题

淺唱寂寞╮ 提交于 2019-11-27 09:37:51
文章转载自: http://www.pythonheidong.com/blog/article/3327/ iOS面试题 1. Difference between shallow copy and deep copy? 浅复制和深复制的区别? 浅层复制:指向对象的指针,而不复制引用对象本身。深层复制:复制引用对象本身。 2.What is advantage of categories? What is difference between implementing a category and inheritance? 类别的作用?继承和类别在实现中有何区别? category可以在不熟悉,不改变原来代码的情况下往里面添加新的方法,只能添加,不能删除修改。并且如果类别和原来类中的方法名称冲突,则类别将覆盖原来的方法,因为类别具有更高的优先级。 类别主要有3个作用: (1)将类的实现分散到多个不同文件或多个不同框架中。 (2)创建对私有方法的前向引用。 (3)向对象添加非正式协议。 继承可以添加,修改或删除方法,并且可以增加属性。 3.Difference between categories and extensions? 类别和类扩展的区别。 categories和extensions的不同在于后者可以添加属性。另外后者添加的方法是必须要实现的。

软件工程作业

烂漫一生 提交于 2019-11-27 09:15:26
软件工程作业1 (第1 ~4 章) 一、选择题: 1. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( C )。 A. 软件工程 B.软件周期 C.软件危机 D.软件产生 2. 瀑布模型本质上是一种( A )模型。 A. 线性顺序 B.顺序迭代 C.线性迭代 D.早期产品 3. 瀑布模型存在的问题是( B )。 A .用户容易参与开发 B.缺乏灵活性C.用户与开发者易沟通 D.适用可变需求 4. 螺旋模型是一种将瀑布模型和( A )结合起来的软件开发模型。 A .增量模型 B.专家系统 C.喷泉模型 D.变换模型 5. 原型化方法是用户和设计者之间执行的一种交互构成,适用于( A )系统。 A .需求不确定性高的 B.需求确定的 C.管理信息 D.实时 6. 下列有关软件工程的标准,属于国际标准的是( D ) A.GB B.DIN C.ISO D.IEEE 7. 结构化方法是一种基于( D )的方法。 A. 数据结构 B.程序结构 C.算法 D.数据流 8. 软件可行性研究实质上是要进行一次( A) 需求分析、设计过程。 A 、简化、压缩的 B、详细的 C、彻底的 D、深入的 9. 可行性研究的目的是( D ) A 、分析开发系统的必要性 B、确定系统建设的方案 C 、分析系统风险 D、确定是否值得开发系统 10. 设年利率为i,现存入p元,不计复利

Delphi 异常处理

扶醉桌前 提交于 2019-11-27 05:01:31
Delphi错误:Stack overflow的解决方法 在编译Delphi程序时,执行一个内存记忆体的时候,提示:Project.exe raised exception class EStackOverflow with message : Stack overflow.这是堆栈溢出错误。 原因就是字符串所存储的内容超过DELPHI系统堆栈默认的大小 16*100000 。我们可以改大这个默认值。 那么如何给我们的应用程序分配更大的内存空间以避免堆栈溢出呢?其实,在每个Delphi项目中都有一个设置应用程序内存大小的地方。 解决方法: 点击 Project 菜单中 -> Options -> Linker -> Memory sizes -> 按照需要,改变 Max stack size 的大小。比如飘易这里改成了 1,000,000 ,即 16*1,000,000 。 注:Max stack size 的默认大小为 16*100,000 ,允许的范围在 65,536-16,777,216 。 Delphi异常处理try except语句和try finally语句用法以及区别 Delphi异常处理try except语句和try finally语句用法以及区别 一直写程序都没管他们,也尽量很少用,今天终于想把他给弄个明白,在网上找来,记下! 主要是前面小部分,后面的是详细说明

小菜鸟之数据库

十年热恋 提交于 2019-11-27 03:44:44
数据库复习提纲之文字版(这个只是自己整理文案,答案是查的,勿喷,谢谢,希望给别人一些帮助) 1 、 Oracle和 SQL server2005的区别 Oracle数据库:Oracle Database,又名Oracle RDBMS,或简称Oracle。是 甲骨文公司 的一款 关系数据库管理系统 。 它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。 sql server数据库:美国Microsoft公司推出的一种关系型数据库系统。SQL Server是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的 数据库管理系统 ,实现了与WindowsNT的有机结合,提供了基于 事务 的企业级信息管理系统方案 两者的区别: (1)操作的平台不同 Oracle可在所有主流平台上运行,Oracle数据库采用开放的策略目标,它使得客户可以选择一种最适合他们特定需要的解决方案。客户可以利用很多种第三方应用程序、工具。而SQL Server却只能在Windows上运行了。   但SQL Sever在Window平台上的表现,和Windows操作系统的整体结合程度,使用方便性

MYSQL-5-存储过程

不想你离开。 提交于 2019-11-26 22:28:14
变量 全局变量前有@@字符,由系统定义和维护 select @@rowcount;--返回上一条语句执行的条数 select @@version;--返回当前SQL Server服务器的日期版本和处理器类型 局部变量前有@字符,由用户定义和维护 创建函数(了解) use school2; delimiter $$ create function fun_get_sage(str varchar(12)) returns char(12) begin return(select sage from student where sname=str); end; 调用: select fun_get_sage('李彤'); 存储过程 语句 if...then... else if...then... else... end if; label:while... do end while; label:loop end loop; case when...then... when...then... else... end case; 实例一 delimiter $$ create procedure pro_test2() begin select "ok"; end $$ call pro_test2(); 实例二 delimiter $$ create procedure pro

数据库设计经验谈

梦想的初衷 提交于 2019-11-26 21:45:06
数据库设计经验谈 一个成功的管理系统,是由: [50% 的业务 + 50% 的软件 ] 所组成,而 50% 的成功软件又有 [25% 的数据库 + 25% 的程序 ] 所组成,数据库设计的好坏是一个关键。如果把企业的数据比做生命所必需的血液,那么数据库的设计就是应用中最重要的一部分。有关数据库设计的材料汗牛充栋,大学学位课程里也有专门的讲述。不过,就如我们反复强调的那样,再好的老师也比不过经验的教诲。所以我归纳历年来所走的弯路及体会,并在网上找了些对数据库设计颇有造诣的专业人士给大家传授一些设计数据库的技巧和经验。精选了其中的 60 个最佳技巧,并把这些技巧编写成了本文,为了方便索引其内容划分为 5 个部分: 第 1 部分 - 设计数据库之前 这一部分罗列了 12 个基本技巧,包括命名规范和明确业务需求等。 第 2 部分 - 设计数据库表 总共 24 个指南性技巧,涵盖表内字段设计以及应该避免的常见问题等。 第 3 部分 - 选择键 怎么选择键呢?这里有 10 个技巧专门涉及系统生成的主键的正确用法,还有何 时以及如何索引字段以获得最佳性能等。 第 4 部分 - 保证数据完整性 讨论如何保持数据库的清晰和健壮,如何把有害数据降低到最小程度。 第 5 部分 - 各种小技巧 不包括在以上 4 个部分中的其他技巧,五花八门,有了它们希望你的数据库开发工作会更轻松一些。 第 1 部分 -

[转]浅谈命令查询职责分离(CQRS)模式

戏子无情 提交于 2019-11-26 19:32:10
在常用的三层架构中,通常都是通过数据访问层来修改或者查询数据,一般修改和查询使用的是相同的实体。在一些业务逻辑简单的系统中可能没有什么问题,但是随着系统逻辑变得复杂,用户增多,这种设计就会出现一些性能问题。虽然在DB上可以做一些读写分离的设计,但在业务上如果在读写方面混合在一起的话,仍然会出现一些问题。 本文介绍了命令查询职责分离模式(Command Query Responsibility Segregation,CQRS),该模式从业务上分离修改 (Command,增,删,改,会对系统状态进行修改)和查询(Query,查,不会对系统状态进行修改)的行为。从而使得逻辑更加清晰,便于对不同部分进行针对性的优化。文章首先简要介绍了传统的CRUD方式存在的问题,接着介绍了CQRS模式,最后以一个简单的在线日记系统演示了如何实现CQRS模式。要谈到读写操作,首先我们来看传统的CRUD的问题。 一 CRUD方式的问题 在以前的管理系统中,命令(Command,通常用来更新数据,操作DB)和查询(Query)通常使用的是在数据访问层中Repository中的实体对象(这些对象是对DB中表的映射),这些实体有可能是SQLServer中的一行数据或者多个表。 通常对DB执行的增,删,改,查(CRUD)都是针对的系统的实体对象。如通过数据访问层获取数据,然后通过数据传输对象DTO传给表现层。或者