`
dasheng
  • 浏览: 148602 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
1,注解为我们在代码中添加信息提供了一种形式化的方法,使我们在以后的的工作中很方便的使用这些数据。   2,注解是众多引入java 5中的重要的语言变化之一,java 5 内置了3中注解,在java.lang有注解:     @Override 表示当前的方法定义将覆盖超类的方法。     @Deprecated,如果程序员用了标注为它的元素,那么编译器会发出警告信息。     @SuppressWarrngs,关闭不当的编译器警告。   java还另外提供了四种注解,专门负责新注解的创建。   @Target(ElementType.METHOD)@Retention( ...
1,关键字enum可以把一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用。   2,基本enum特性   创建enum时,编译器会为你生成一个相关的类,这个类继承自java.lang.Enum。调用enum的values()方法,可以   遍历enum实例。   enum Shrubbery { GROUND, CRAWLING, HANGING } public class EnumClass {  public static void main(String[] args) {    for(Shrubbery s : Shrubbery. ...
1,对程序语言设计者来说,创建一个好的输入/输出(I/O)系统是一项艰难的事。   2,File类:     它是能代表一个特定的文件的名称,又能代表一个目录下的一组文件的名称。如果它代表一个文件集,我们就可以对此集合调用list()方法,这个方法会返回一个字符的数组。   3,文件目录器   public class DirList {  public static void main(String[] args) {    File path = new File(".");    String[] list;    if(args.length == 0) ...
1,jdk5增加如下接口:   Queue接口和实现PriorityQueue和各种风格的BlockingQueue. ConcurrentMap接口和实现ConcurrentHashMap.它们用于多线程机制。 CoppyOnWriteArrayList和CoppyOnWriteArraySet,它们也是用于多线程机制。 EnumSet和EnumMap,为了使用Enum而设计的Set和Map的特殊实现。 Collections类的多个便利方法。 2,Collections类的ncopies()和fill()方法。   class StringAddress {  priv ...
1,数组和其他种类的类的容器之间的区别有三个方面:效率,类型和保存基本类型的能力。   数组可以持有基本的类型,而泛型之前的容器则不能。但是有了泛型,容器就可以指定并检查它们所持有的对象的类型,   并且有了自动包装机制,容器看起来还能持有基本类型。   2,数组标示符其实只是一个引用,指向在堆中创建的一个真实的对象,这个数组对象用来保存指向其他对象定的引用。   对象数组和基本类型数组在使用上基本是相同的;唯一的区别就是对象数组保存的是引用,基本类型数组直接保存基本类型   的值。   public class ArrayOptions {  public static ...
1,一般的类和方法,只能使用具体的类型:要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的代码,这种刻板的限制对代码的约束就会很大。   2,范型接口   范型也可以应用于接口。   3,范型方法 ...
1,运行时类型信息使得你可以在程序运行时发现和使用类型信息。   2,运行时识别对象和类的信息有两种方式:第一种方式:   传统的“RTTI”,它假定我们在编译时已经知道了所有的类型;第二种方式是“反射”机制,它允许我们在运行时发现和   使用类的信息。   3,为什么需要RTTI   面向对象的编程的基本目的是:让代码只操纵对基类的引用:   abstract class Shape {  void draw() { System.out.println(this + ".draw()"); }  abstract public String toS ...
1,字符串操作是计算机程序设计中最常见的行为。   2,String是不可变的   当把String 对象当作方法的参数时,都会复制一份引用,而该引用所指的对象其实一直待在单一的物理位置上,从未动过。   3,重载“+”和StringBuilder   public class WhitherStringBuilder {  public String implicit(String[] fields) {    String result = "";    for(int i = 0; i < fields.length; i++)      resu ...
1,java的基本理念是:结构不佳的代码不能运行。   2,当异常抛出后,有几件事会随之发生。首先,同java的其他对象的创建一样,将使用new在堆上创建异常对象。然后,   当前的执行路径(它不能继续下去了)被终止,并且从当前的环境中弹出对异常的引用。此时,异常处理机制接管程序。并   开始寻找一个恰当的地方来继续执行程序。这个恰当的地方就是异常处理程序,它的任务就是将程序从错误状态中恢复,以   使程序要么换一种方式运行,要么继续运行下去。   3,异常的参数   所有标准的异常类都有两个构造器: 1个是默认构造器;另一个是接受字符串作为参数,以便把相关的信息放入异 ...
1,范型和类型安全的容器     @SuppressWarning("unchecked")  类型检查的警告, 被忽略!   Collection:一个独立元素的序列,这些元素都服从一个或多个规则。   Map:一组成对的“键值对”对象,允许你使用键来查找值。   2,容器的打印   打印数组,用Arrays.toString()来打印。打容器则不需要,直接system.out.println(collection)即可。   ArrayList,LinkedList都是List类型,前者随机访问比较快,后者优势在于顺序访问;   HashSe ...
1,已经将一个类的定义放在另一个类的定义内部,这就是内部类。   2,内部类可以访问其外围类的方法和字段。   3,.this和.new 如果你需要生成对外部类对象的引用,可以使用外部类的名字后面紧跟圆点和this。   public class DotThis {  void f() { System.out.println("DotThis.f()"); }  public class Inner {    public DotThis outer() {      return DotThis.this;      // A plain "thi ...
1,接口和 内部类为我们提供了一种将接口和实现分离的更加结构化的方法。   2,包含抽象方法的类叫抽象类。如果一个类包含一个或多个抽象方法,该类必须被限定为抽象类,否则编译器会报错。   3,接口   一个接口表示所有实现了该特定接口的类看起来都想这样。   4,我们应该使用接口还是基类。   如果要创建不带任何方法定义和成员变量的抽象类,那就应该创建接口而不是抽象类   5,接口的任何域自动是static和final的。   6,嵌套接口   接口可以嵌套在类或者其他接口中。   class A {  interface B {    void f();  ...
1,多态通过分离做什么和怎么做,从另一个角度将接口和实现分离开来。   2,向上转型(upcasting) 将某个对象的引用视为对其基类的引用的做法叫向上转型。   3,前期绑定和后期绑定(动态绑定)   将一个方法调用和一个方法的主体关联起来被称作绑定,若在程序执行前进行绑定(如果有的话,由编译器和连接程序实   现),叫前期绑定。   在运行时根据对象的类型进行绑定,叫后期绑定,也叫动态绑定。   java中除了static方法和final方法(private方法属于final方法)之外,其他的所有方法都是后期绑定,我们不必判定是否   应该进行后期绑定,它 ...
1,组合(composition):   新的类由现有的类的对象组成,这种方法称为组合;   2,继承:按照现有类的类型来创建新类,无需改变现有类的形式。   3,带参数的构造器   class Game {  Game(int i) {    print("Game constructor&q ...
1,访问控制与“最初的实现并不恰当”有关。 2,java是没有c的条件编译的,可以通过import达到条件变异的目的,导入不同的包,包含相同的类,有不得方法实现。   3,包访问权限:   默认访问权限是没有任何关键字的。有时表现为friendly,当前包中所有其他类对这个成员有访问权限,对包之外的类,这   个成员是private的。   4, class Cake {  public static void main(String[] args) {    Pie x = new Pie();    x.f(); //正常 调用  }} /* Output:   ...
Global site tag (gtag.js) - Google Analytics