随笔分类 -  Java Teching

The folder used for the teching the Java programming language.
摘要:amazon云平台:http://aws.amazon.com注册网页:https://portal.aws.amazon.com/gp/aws/developer/registration/index.html需要信用卡(visa),会有系统回话:当系统说完:报出页面上的PIN码。会扣除1美金,不过24小时之后会有1美金回到账户中1. 进入:https://portal.aws.amazon.com/gp/aws/developer/registration/index.html 2. 输入用户名和密码3. 创建实例:选择自己需要的类型(我这边选择的免费的Tier)4. 最主要的是Secur 阅读全文
posted @ 2013-02-20 22:46 papertiger 阅读(263) 评论(0) 推荐(0)
摘要:Object --> Java中使用了单根结构 --> 所有的类都是继承自Object.对于任何类,都是继承自Object. 不需要显式的写:extends Object. 通过多态的时候知道任何的对象变量都可以存储该对象类以及扩展类的对象。Object object = new Employee(); 然而做了这样一层转换之后,object失去了其的类型信息,当需要真正使用对象时需要进行显式的类型转换。Employee employee = (Employee)object;1:equals 1)满足自反性: x.equals(x) 一定要返回true. 2)满足对称性: 若x. 阅读全文
posted @ 2012-10-17 16:46 papertiger 阅读(177) 评论(0) 推荐(0)
摘要:abstract修饰符可以修饰1. 方法(抽象方法) 1.1 被abstract修饰符修饰,只有声明没有实现的方法.2. 类 2.1 被abstract修饰符修饰.一般在类的层次图中处于高层的类,类信息不足以描述一个对象.对于现实世界中并没有对应的真正实例与之对应。如Person是一个抽象类,并没有真正的一个对象对应于Person类View Code //Person.javapublic abstract class Person{ public String getName(){ return name; } public abstract String... 阅读全文
posted @ 2012-10-17 10:03 papertiger 阅读(264) 评论(0) 推荐(0)
摘要:隐式类型转换1. 基本数据类型 1.1: byte、short、char --> int --> long --> float --> double 基本数据类型能够进行隐式的类型转换2. 对象数据类型 可以将子类隐式的转换成为父类.在继承的结构可以安全的往上进行转型。显式的类型转换1. 基本数据类型 1.1: 基本数据类型进行反方向的类型转换需要进行显式的类型转换定义。 int i = 0x11; short s = (short)i; (short)需要加入进来... 阅读全文
posted @ 2012-10-16 23:27 papertiger 阅读(201) 评论(0) 推荐(0)
摘要:final 修饰词再对字段进行修饰时:只对于基本类型以及永恒类才具有常量的意义,原因见:http://www.cnblogs.com/papertigerv5/archive/2012/09/24/2700641.htmlfinal修饰符同样可以对类和方法进行修饰。当某类被final修饰时,表明该类不能作为其他类的基类 副作用: 由于不能被扩展,也就意味着所有的方法自动成为了final(然而对字段而言没有任何影响)例子: String是最终类,这样就带来了一个十分确定消息:一个String对象变量必然指向的一个字符串对象,而不能是什么其他的高级字符串什么对象当某类中的某个方法并不希望被扩展类. 阅读全文
posted @ 2012-10-07 21:03 papertiger 阅读(152) 评论(0) 推荐(0)
摘要:Term:静态绑定: 在编译期就已经知道调用哪个对象的什么方法。动态绑定: 只有到运行期才知道调用哪个对象的什么方法。假定一个对象x(其为X类),调用m方法: x.m();JVM实际的动作是怎么样的呢?1. 根据对象x的类型信息(X类),找出X类中的所有的名字为m的方法.2. 根据X类的类型信息,找出X类父类的所有的名称为m的方法.前两步能够找出x对象能调用的所有m方法。3. 根据调用语句提供的参数类型,唯一确定一个方法. 当找不到任何方法、找到一个以上的方法与之匹配,编译器报错. 匹配原则:(最精确匹配,兼容匹配) 3.1 重载方法的解决方案: 根据参数列表给出。 3.2 包含类型转换... 阅读全文
posted @ 2012-10-07 15:51 papertiger 阅读(368) 评论(0) 推荐(0)
摘要:替换原则:当一个软件实体可以使用某个类时,那么一定可以使用该类的子类,并且原代码并不会感觉父类与子类之间的差异。然而相反的替换却是不可以成功的。如:一个经理一定是个雇员,而雇员不一定是经理。编译器强制要求: 父类的对象变量可以引用该类的子类,而无法引用该类的父类。原因也如下代码:public class Employee{}public class Manager{ public void setBonus(double bonus){ this.bonus = bonus; } private double bonus;}public class TypeCo... 阅读全文
posted @ 2012-10-07 15:10 papertiger 阅读(195) 评论(0) 推荐(0)
摘要:多态:一个对象变量可以指向多种对象类型(前提是在同一个继承分支上)下面的代码表明employee变量既可以是Employee对象的变量,同样也可以时Manager对象变量。public class Employee{}public class Manager extends Employee{}public class Polymorphism{ public static void main(String[] args){ Employee employee = new Manager(); employee = new Employee(); ... 阅读全文
posted @ 2012-10-07 14:10 papertiger 阅读(130) 评论(0) 推荐(0)
摘要:Tutorial 1: 公司的雇员与经理Term: superclass --> 超类 subClass --> 扩展类继承使用的前提: 满足"is-a"的关系.例如:经理也是职员,但是经理却拥有雇员没有的属性(经理有员工没有的分红部分)继承设计的原则: 将一般性的,通用的属性和方法放置到父类中,而将特殊的属性以及方法放置到子类中View Code public class Employer { public Employer() { } public Employer(String name) { this.name = name; thi... 阅读全文
posted @ 2012-10-07 11:36 papertiger 阅读(176) 评论(0) 推荐(0)
摘要:由于时间上的紧迫性或者程序员忘记了private字段,经常忘记了加入private修饰符对类的字段进行修饰(面向对象的封装推荐我们的字段都声明为private)。这样是否会带来危险性?实际上这个是依赖与包是否已经被封上了。在Java1.2之后,package java --> 凡是以java或者javax开头的自己的类时,都会被Java的虚拟机拦截,避免恶意代码访问java.awt等包中的default字段。以下的代码展现了:我们无法使用 package java.awt, Java虚拟机的类加载器每当碰到有声明为java开头的包,都是不允许的。View Code package jav 阅读全文
posted @ 2012-09-28 23:14 papertiger 阅读(210) 评论(0) 推荐(0)
摘要:包的作用1. 为了更好的组织代码,能够将自己的代码与代码库的代码分离。2. 在需要合作完成的工作中,可以使用分包的方式来尽量的减少类命名的冲突。Sun公司推荐程序员使用公司域名的反向字符作为公司项目的起始包名:如 baidu.com --> com.baidu引入包的概念,主要是为了解决类名冲突的问题,能够使合作的团队中,在各自的包内自由的命名而不受到其他包的名称的影响。包的概念主要是为了程序员的一个方便理解和开发,对于编译器而言,包->子包 并不表明任何的关系,他们分别是一组类的集合。标示类所处的包的语法(必须是类文件中除注释以外的第一句):package com.baidu;使 阅读全文
posted @ 2012-09-27 00:22 papertiger 阅读(1349) 评论(0) 推荐(0)
摘要:在很多的面向对象的程序语言中,需要显式的对不再需要的对象进行析构操作,以便能够回收内存以及相关的资源(文件,句柄等),以C++作为典型的代表。Java在回收内存和资源采取了不同的策略:1. 内存:Java的GC自动的回收不会被再使用的对象所占用的空间,所以Java本身不支持析构。2. 资源:需要使用资源的方法显式的调用资源释放的方法(如文件中的close方法,画布等的dispose).Java本身提供一个类似于其他对面语言中提供的析构方法 --> finalize方法 --> 该方法保证会在Java GC在真正回收内存空间之前调用该方法。然而Java的垃圾收集器对内存进行回收的时间 阅读全文
posted @ 2012-09-26 23:53 papertiger 阅读(327) 评论(0) 推荐(0)
摘要:参数传递方式 1. 值传递 2. 引用传递.1. 值传递(Java的方式):传递的是的值的拷贝2. 引用传递:传递的是的存储值的引用由于值传递的方式注定了Java的方法的功能:1. 在方法体内都,无法修改作为参数的基本类型值。2. 在方法体内部,能够修改对象的内容。3. 在方法体内部,无法将参数外的引用指向新的对象。View Code public class Employee{ public double salary=5000.0d; }public class EmployeeTest{ public static void changePrimitive... 阅读全文
posted @ 2012-09-25 22:05 papertiger 阅读(246) 评论(0) 推荐(0)
摘要:对类的字段的初始化主要有以下三种方式:1. 通过声明对应字段直接给定该字段的初始值(此情况适用于所有的对象都具有一个相同的值,或者都是有相同的形式的值) View Code public class InitiateField{ private int iTest = 1; private Date currentDate = new Date(); }2. 通过构造函数来设置类的字段的值View Code public class InitiateClass{ public InitiateClass(){ ... 阅读全文
posted @ 2012-09-25 21:27 papertiger 阅读(273) 评论(0) 推荐(0)
摘要:static --> 修饰符,修饰对象表明是属于类,而非任何一个该类的实例的。换句话说:所有该类的实例所共享的。static field: 静态字段在整个class只有一份的拷贝,无论构造了多少个该类的对象(即便是没有构造任何一个该类的对象)只要类加载器对该类进行了加载,那么该静态字段就有一份拷贝。例如:对所有的该类的对象进行统一编号。就需要使得所有的变量共享一份拷贝。 静态字段中的变量使用的情况是及其小的,一般来说总是以符号常量的方式来定义字段。例如:Math中的PI, System中的out. 其中PI和out都是public修饰的,之前谈到所有的字段都需要用private来修饰。理 阅读全文
posted @ 2012-09-24 22:43 papertiger 阅读(236) 评论(0) 推荐(0)
摘要:一般来讲把类的实例字段直接暴露出去认为是一个很危险的行为,我们常常使用private的修饰符来防止这样的危险。而对于方法则有不同的处理方式:1. 暴露给用户的接口方法:所暴露的接口方法是该类向外提供的所有的功能的集合。2. 定义为Private的私有方法: 2.1:该类的暴露给用户的,或者说外类并不关注的、然而其需要为现有的接口方法提供支持。一些底层的实现方法(外部的调用接口方法的类并不关心其实现的方式) 2.2:某些方法在使用的过程中,如果不按照某些规则使用将会造成错误。必须进行对外的隐藏。(特殊要求的方法代码,不满足该条件的,会带来问题的方法。如必须按照一定的调用顺序)3. 定义为Pr.. 阅读全文
posted @ 2012-09-24 20:59 papertiger 阅读(461) 评论(0) 推荐(0)
摘要:今天发现有些同学对初始化还理解的不是很透彻,并且在脑中进行代码的运行的能力有所偏差,将来需要引入下面的例子来说明:Q: 以下代码打印的结果public class ContinueAndBreak{ public static void continueAndBreakTest(){ int outer = 1; int inner = 1; for(; outer < 5; outer++){ for(; inner < 5; inner++){ System.out.print(i... 阅读全文
posted @ 2012-09-24 19:25 papertiger 阅读(160) 评论(0) 推荐(0)