java exception

###异常种类

  • 检查性异常: 程序员无法预见,比如打开一个不存在的文件。
  • 运行时异常: 可能被程序员避免。

###Exception类的层次 exception

###java内置异常类 Java 定义了一些异常类在java.lang标准包中。
标准运行时异常类的子类是最常见的异常类。由于java.lang包是默认加载到所有的Java程序的,所以大部分从运行时异常类继承而来的异常都可以直接使用。
常见的运行时异常如下表所示:

异常 描述
ArithmeticException 当出现异常的运算条件时,抛出此异常。例如,除数为0,抛出此类的一个实例。
ArrayIndexOutOfBoundsException 用非法索引访问数组时抛出的异常。索引为负或大于等于数组大小,则该索引为非法索引。
ArrayStoreException 试图将错误类型的对象存储到一个对象数组时抛出的异常。
ClassCastException 当试图将对象强制转换为不是实例的子类时,抛出该异常。
IllegalArgumentException 抛出的异常表明向方法传递了一个不合法或不正确的参数。
NullPointerException 当应用程序试图在需要对象的地方使用 null 时,抛出该异常。
NumberFormatException 当试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。

常见的几个检查性异常:

异常 描述
ClassNotFoundException 试图加载类时,找不到相应的类,抛出该异常。
IllegalAccessException 拒绝访问一个类的时候,抛出该异常。
InterruptedException 一个线程被另一个线程中断,抛出该异常。
NoSuchFieldException 请求的变量不存在
NoSuchMethodException 请求的方法不存在

java的System.getProperty()方法

参数 意义
java.version Java 运行时环境版本
java.vendor Java 运行时环境供应商
java.vendor.url Java 供应商的 URL
java.home Java 安装目录
java.vm.specification.version Java 虚拟机规范版本
java.vm.specification.vendor Java 虚拟机规范供应商
java.vm.specification.name Java 虚拟机规范名称
java.vm.version Java 虚拟机实现版本
java.vm.vendor Java 虚拟机实现供应商
java.vm.name Java 虚拟机实现名称
java.specification.version Java 运行时环境规范版本
java.specification.vendor Java 运行时环境规范供应商
java.specification.name Java 运行时环境规范名称
java.class.version Java 类格式版本号
java.class.path Java 类路径
java.library.path 加载库时搜索的路径列表
java.io.tmpdir 默认的临时文件路径
java.compiler 要使用的 JIT 编译器的名称
java.ext.dirs 一个或多个扩展目录的路径
os.name 操作系统的名称
os.arch 操作系统的架构
os.version 操作系统的版本
file.separator 文件分隔符(在 UNIX 系统中是“/”)
path.separator 路径分隔符(在 UNIX 系统中是“:”)
line.separator 行分隔符(在 UNIX 系统中是“/n”)
user.name 用户的账户名称
user.home 用户的主目录
user.dir 用户的当前工作目录

代码示例:


java web学习笔记

主要参考YOUKU上李绪成老师的javaweb视频学习,感谢李绪成老师提供简单易懂的视频教程。

###1.MVC模式

a. M表示模型model,完成处理,如编写的Service、DAO、实体类。
b. V表示视图View,完成与用户的交互,输入界面和输出界面,编写jsp、freemarker或html文件。
c. C表示控制器Controller,协调输入、处理和输出之间的关系,使用Servlet实现。

###2.输入界面

有输入就需要form:

<form action="目标" method="post|get">
	......
</form>

c++继承中的隐藏规则


转载自:http://blog.csdn.net/jackystudio/article/details/17243251


###1.重载和覆盖

在了解隐藏之前,得先分清楚重载和覆盖。

  1. 重载:对同一个类而言的,函数名相同,函参不同,因为是在同一个类中,所以是否是virtual并不重要。
  2. 覆盖:对基类和派生类而言。函数名相同,函参相同,必须是virtual函数。

如下示例,1和2是重载关系,而1和3是覆盖关系。

class A{
public:
	virtual void fun(){cout<<"A::fun()";}//1
	void fun(int a){cout<<"A::fun(a)";}//2
};

class B : public A{
public:
	void fun(){cout<<"B::fun()";}//3
};

###2.隐藏

首先隐藏也是发生对基类和派生类而言的,所以主要就是要理清隐藏和覆盖的差异。

  1. 如上所述,覆盖要求是virtual函数,所以如果是不带virtual的同名同参函数,那么就是隐藏。
  2. 不管有没有virtual标识,函参不一样,那么也是隐藏。

cocos2d-x CCNode

##cocos2d-x节点类CCNode


转载自:http://blog.csdn.net/jackystudio/article/details/12703741


节点类CCNode可以说是游戏元素的祖宗了,基本上我们看得到的游戏元素都是以它为原型进行扩展的。像CCScene,CCLayer,CCSprite,CCMenu,CCSpriteBatchNode等等都是从CCNode继承而来。另外如果我们要自定义精灵,那么从CCNode继承也是一个很不错的选择。

1.概况

CCNode

CCNode直接从CCObject继承而来,有如下几个特点:


(1)可以包含其他CCNode节点,可以进行添加/获取/删除子节点操作。
(2)可以执行周期性的回调任务。
(3)可以执行动作。


一些子类化的节点提供了更为丰富的特性和功能。