自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 探究外部类访问内部类的可行性

public class Outer {    class Inner {        private int i=0;        private Inner() {            this.i=1;        }    }        public Inner getInner() {        return new Inner();

2017-11-01 12:14:17 223

原创 探究Java中Set和List转换时,元素的存储方式

SetNewsListDetailBean> set = new HashSetset.addAll(mData);set.addAll(list);mData.clear();mData.addAll(set);此代码片段先把mData存储到set中,再清空mData中数据。若数据是以浅拷贝的形式存入,则此时Set的元素个数将减少,以至于无法达到转换的目标。但是,实际上调试程序之后发现清

2017-09-03 22:42:00 382

原创 Java编程思想之枚举类型

1.     关键字enum可以将一组具名的值的有限集合创建为一种新的类型。这些具名的值为该枚举类型的实例对象。2.     创建enum时,编译器生成一个继承了java.lang.Enum的类。Enum类实现了Comparable接口,所以具有compareTo()方法,还是实现了Serializable接口。3.     使用static import能够将enum实例的标识符带入当前

2017-08-30 20:53:36 467

原创 Java编程思想之I/O系统

Java I/O系统

2017-08-29 22:45:02 449

原创 Java的for循环上界可变性探讨

import java.util.ArrayList;public class Test {public static void main(String[] args) {ArrayList a = new ArrayLista.add(0);System.out.println(a.size());for(int i=0;ia.add(i);if(

2017-08-29 21:15:00 303

原创 Java编程思想之容器深入研究

1.     每个Java.util容器都有其自己的Abstract类,它们提供了改容器类的部分实现,因此只需实现那些产生想要容器所必需的方法。2.     设计模式:享元。享元模式使得对象的一部分可以被具体化,因此与对象中的所有事物都包含在对象内部不同,可以在更加高效的外部表中查找对象的一部分或整体。比如对象内部只存储外部表的索引。3.     可选操作:实现类并不需要为这些方法提供功能

2017-08-21 20:17:02 411

原创 Java编程思想之数组

1.     数组是一种效率最高的存储和随机访问对象引用序列的方式。2.     数组可以持有某种具体类型,这意味着可以通过编译期检查,来防止插入错误类型和抽取不当类型。3.     数组标识符是一个引用,指向在堆中创建的一个真实对象,这个数组对象用来保存指向其他对象的引用。对象数组保存的是引用,而基本类型数组直接保存基本类型的值。4.     初始化:Object[] a={new

2017-08-18 18:14:45 215

原创 Java编程思想之泛型

1.     泛型实现了参数化类型的概念,意思是适用于许多许多的类型。在创建参数化类型的一个实例时,编译器会负责转型操作,并保证类型的正确性。2.     泛型的主要目的之一是用来指定容器要持有什么类型的对象,而且由编译器来保证类型的正确性。3.     泛型类的格式:类名后面跟尖括号,尖括号里放入类型参数。4.     元组用来将一组对象直接打包存储于某一个单一对象中。这个容器对象运

2017-08-16 13:37:56 387

原创 Java编程思想之类型信息

1.     运行时类型信息使得可以在程序运行的时候发现和使用类型信息。主要包括两种方式:第一种就是RTTI,假定编译时已经知道所有类型,主要用在多态,类型转换;另一种是反射,允许在运行时才发现和使用类的信息。2.     从List中取出某特定类型,首先通过容器和泛型来包装在编译时能够从object类转型成基类,而在运行时,通过类型转换来转成特定类型。3.     Class对象包含于类

2017-08-09 19:27:53 444

原创 Java编程思想之字符串

1.     String对象是不可变的,String类中任何修改String值的方法都是创建了一个全新的String对象,以包含修改后的字符串内容,而最初的String对象则不变。2.     方法中的参数引用,拷贝了实参引用,指向单一物理位置的对象,属于局部引用。3.     String对象只具有可读性,任何指向其的引用不会改变它的值,因此,就不会对指向它的其他引用有影响了。4.

2017-08-07 11:55:07 196

原创 Java编程思想之通过异常处理错误

1.     异常分为被检查的异常和运行时异常,被检查的异常在编译时被强制要求检查。异常被用来错误报告和错误恢复,但很大一部分都是用作错误报告的。2.     异常情形是由于当前环境下无法得到必要的信息导致当前方法或作用域无法继续执行。当抛出异常时,首先在堆上创建了异常对象,其次当前的执行路径中止并在当前环境中弹出对异常对象的引用,此时异常处理机制接管程序,并开始寻找一个恰当的地方来继续执行程

2017-08-03 18:11:24 501

原创 Java编程思想之持有对象

1.     通过使用泛型,就可以在编译期防止将错误类型的对象放置到容器中。当指定了某类型作为泛型参数时,不仅此类型的对象可以放置到容器中,通过向上转型也可以把子类对象放进去。2.     Java容器类类库的主要作用是保存对象。容器不能持有基本类型。1)     Collection: 一个独立元素的序列,一种存放一组对象的方式。List必须按照插入顺序保存元素,Set不能有重复元素,Q

2017-08-02 18:55:44 407

原创 Java编程思想之内部类

1.     将一个类定义在另一个类的内部,这就是内部类。2.     在外部类的方法中生成内部类的对象,直接使用内部类名就可以了。对于非静态内部类对象来说,创建时必须声明这个对象的引用类型:外部类名.内部类名。3.     内部类的对象可以访问生成它的外围对象的所有成员,而不需要任何特殊条件。内部类还拥有其外部类的所有成员的访问权。当通过外部类对象创建内部类对象时,此内部类对象会得到一个

2017-07-31 12:17:28 217

原创 Java编程思想接口

1.     抽象类和接口为它把所有的子类创建了一个通用接口,通用接口建立了一种基本形式,以此表示所有导出类的共同部分。2.     抽象方法只有声明而没有方法体,且对于抽象类的抽象方法来说,必须在返回类型前面加上abstract关键字。如果一个类具有至少一个抽象方法,那此类是抽象类。3.     抽象类无法创建出对象。如果继承了抽象类,且实现了抽象类的所有抽象方法,则可以创建导出类的对象

2017-07-20 21:49:09 240

原创 Java编程思想多态

1.     多态用到了动态绑定的机制。2.     方法调用的绑定:将一个方法调用同一个方法主体关联起来叫做绑定。如果在程序执行前进行绑定,叫做前期绑定。动态绑定,也叫做后期绑定,它的含义是在运行时根据对象的类型进行绑定,用于多态机制。编译器一直不知道对象的类型,但是方法调用机制能找到正确的方法体加以调用,这是根据在对象中安置了某种“类型信息”。由于final能够防止覆盖,所以可以有效地关闭

2017-07-18 21:18:08 313

原创 Java编程思想复用类

1.两种复用类的方法:组合和继承。2.组合在新的类中使用现有类的对象当成员。初始化引用的地方包括:1).定义对象的地方,先于构造器初始化前调用。2).类的构造器中。3).当要使用对象之前进行初始化,这叫做惰性初始化。4).使用实例初始化。3.子类通过继承得到基类中的所有域和方法,包括静态成员。只能够访问public成员和protected成员。当创建子类的对象时,该对象包括一个父类的子对象

2017-07-18 20:13:58 205

原创 Java编程思想之访问权限控制

1.     访问权限控制的等级,从最大权限到最小权限依次是:public,protected,包访问权限(没有关键词)和private。2.     Java源代码文件内只能有一个同名的public类,如果文件内有额外的类的话,包外的类是无法看到这些类的。3.     当编译源代码文件时,对文件中的每个类,都会有一个输出文件。意味着一个类可以产生多个.class文件。4.     J

2017-07-14 21:32:35 465

原创 Java编程思想初始化与清理

1.用构造器确保初始化。2.方法重载:方法名相同而形参类型列表(包括顺序)不同的一类方法。如果传入的数据类型(实参)小于方法的形参类型,则实参类型就会提升成符合方法形参的类型。如果传入较大的实参类型,必须类型窄化转换成符合方法形参的类型,否则会导致编译器出错。3.由于一般使用时,并不关心方法的返回值,而是为了其他副作用效果而调用方法的,所以可能直接调用方法而忽略返回值,因此,根据返回值来区

2017-07-11 10:04:12 185

原创 Java编程思想之控制流程

1.循环结构得到“假”的结果时,跳出循环。2.Java中的逗号操作符一般只用在for循环的初始化和步进部分,定义的任意个变量为同类型。还可在程序初始化部分。3.foreach语法用在数组和容器,Iterable对象上。4.循环语句的主题部分,都可用break和continue来控制流程。break退出循环,不执行剩下的循环语句。而continue则停止执行当前的循环,然后退回循环开始处

2017-07-10 20:17:04 153

原创 Java编程思想之操作符

1. 静态导入(static import)类后可以直接引用类的方法,不需要声明该类的存在。2.对对象进行赋值时,赋的是对象的引用,因此但原引用改变对象的值时,也影响到了新引用的所指相同对象。两个引用不独立。方法调用也存在引用别名的问题。3.当对对象的引用使用==或!=时,比较的是对象的引用,而非对象的值。但基本类型可以用==和!=比较变量值。4.equals()默认比较引用,除非被覆

2017-07-05 19:59:44 178

原创 Java编程思想之一切都是对象

1.用引用操作对象就好比用遥控器操控电视机,因此引用可以独立存在,并不一定要和对象相连。在语法上偏向于c++的引用,而不是指针。2.用new来创建对象。Java有五个地方存储数据。一,寄存器,读取速度最快的存储区,但只能根据需求分配,不能直接控制。二,堆栈,处于RAM中,通过堆栈指针上下移动从处理器中分配内存。但是程序运行时,Java系统得知道堆栈内所有项目的生命周期,以便于上下移动堆

2017-07-05 14:38:55 137

原创 Java编程思想之对象导论

今天看了Java编程思想书中的第一章对象导论,做一个理解性的总结。一,首先说了介绍了面向对象的思想:即把现实中的问题空间的元素表示在程序的解空间中。这是一种比较灵活的语言抽象,对象和类要有状态和操作。5个基本特性:1.万物皆有对象。2.程序是对象的集合,它们通过发送消息来通信。3.每个对象都由自身和其他对象所组合而成。4.每个对象都有所属的类型。5.同类的对象有公共的方

2017-06-30 22:38:52 292

原创 cousera of pku:魔兽世界:终极版

做这个终极版的题目,花了大概3个礼拜的时间。做完之后,感觉立刻轻松了很多,也学到了很多。这是我第一个写的差不多2000行的程序,当然也有比较大的满足感。首先,先说下这个题目的注意事项。1.这个题目是魔兽世界系列题目最复杂的一题,理论上是可以通过前面的装备和备战进行扩充的。但实际上,由于我们这些新手能力用限,刚开始写出来的装备和备战程序的可扩充性不强。所以我强烈建议,等做到这道题的时候,重新

2016-05-21 22:53:41 668

原创 cousera of pku:魔兽世界:行军

这是第三部分,足足花了我一周多的时间才编写完成。#include#include#include#includeusing namespace std;class army;class weapon;class city;int Num, flag1 = 0, flag2 = 0, t = 0, minu = 0;class soldier {f

2016-05-21 22:51:21 247

原创 cousera of pku:魔兽世界:装备

这是魔兽世界系列的第二个程序,都是用c++编写的.#include#include#includeusing namespace std;int Liceman = 0, Llion = 0, Lwolf = 0, Lninja = 0, Ldragon = 0;//记录每个战士的生命值int t = 0;//记录时间int flag1 = 0, flag2 = 0;/

2016-05-21 22:43:51 272

原创 cousera of pku:魔兽世界:备战

#include#includeusing namespace std;int Liceman = 0, Llion = 0, Lwolf = 0, Lninja = 0, Ldragon = 0;//记录每个战士的生命值int t = 0;//记录时间int flag1 = 0, flag2 = 0;//标记red和blue司令部是否生产完char *p1 = "red"

2016-05-21 22:39:26 328

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除