zoukankan      html  css  js  c++  java
  • Java基础回顾

    学习基础背景:Acmer、有C/C++基础

    以【Java语言程序设计(基础篇)】第10版为参考(感谢YJJ的推荐),列出部分知识点,注意思考背后的原因和好处坏处。

    【14-16章——关于可视化编程的章节】跳过

    【17章——IO博大精深】不断学习

    【附录ADHI】相对较有实际意义的附录

    对于foreach,获取的是值不是引用。即在如下操作后,vals不发生改变:

    for (Integer val : vals) {
        val += 1;
    }
    

    (Page 10)

    Java有三个版本:

    Java 标准版(Java Standard Edition, Java SE)可以用来开发客户端的应用程序。应用程序可以独立运行或作为applet在Web浏览器中运行。

    Java 企业版(Java Enterprise Edition, Java EE)可以用来开发服务器端的应用程序,例如,Java servlet和JavaServer Pages(JSP),以及JavaServer Faces(JSF)。

    Java 微型版(Java Micro Edition, Java ME)用来开发移动设备的应用程序,例如手机。

    (Page 42)

    为了提高可读性,Java允许在数值直接量的两个数字间使用下划线。如

    Integer million = 1_000_000;
    

    (Page 104)

    在一个Java程序中,java.lang包中的所有类是隐式导入的。

    (Page 142)

    输入重定向和输出重定向

    java demo < input.txt > output.txt
    

     (Page 224)

    具有同样类型的可变长度的参数可以传递给函数,并将作为数组对待。

    在方法声明中,指定类型后紧跟着省略号(...)。只能给方法中指定一个可变长参数,同时该参数必须是最后一个参数。如

    public static void printMax(double... numbers) {}
    

    (Page 244)

    锯齿数组(ragged array)的各行的长度可以不相同。如,

    Integer[][] arr = {
        {1, 2, 3}
        ,{1, 2}
        ,{1}
    };
    

     (Page 288)

    通常将与实例无关的变量或方法声明为静态,与实例相关的变量或方法声明为非静态。

    (Page 290)

    为了防止用户创建类的实例,可以将构造方法设为private。

    (Page 303)

    关键字this可以用于调用同一个类的另一个构造方法。如:

    public class Circle {
        private Double radius;
        public Circle(Double radius) {
            this.radius = radius;
        }
        public Circle() {
            this(1.0);
        }
    }
    

    Java要求在构造方法中,语句this(参数列表)应在任何其他可执行语句之前出现。

    如果一个类有多个构造方法,最好尽可能使用this(参数列表)实现它们。通常,无参数或参数少的构造方法可以用this(参数列表)调用参数多的构造方法。这样做通常可以简化代码,使类易于阅读和维护。

    (Page 328)

    Integer、Double、String等类的实例都是不可变的。

    注意以下输出结果为 false 跟 true

    String s1 = "Hello";
    String s2 = new String("Hello");
    String s3 = "Hello";
    System.out.println(s1 == s2);
    System.out.ptintln(s1 == s3);
    

    (Page 333)

    StringBuffer和StringBuilder类似于String类,区别在于String类是不可改变的。

    StringBuffer是同步的,StringBuilder是异步的。

    (Page 354)

    要调用父类构造函数就必须使用关键字super,而且这个调用必须是构造函数的第一条语句。如果没有显式调用super,编译器会自动将super();作为构造函数的第一条语句。

    (Page 364)

    a instanceof B用于判断变量a是否为类B的实例。

    (Page 377)

    子类可以重写父类的protected函数,并把可见性改为public。但是,子类不能削弱父类定义的函数的可访问性。如,一个函数在父类中定义为public,在子类中也必须定义为public。

    (Page 379)

    多态:Object obj = new Apple();

    动态绑定:当从引用变量调用实例函数时,该变量的实际类型在运行时决定使用该方法的哪个实现

    (Page 400)

    即使在到达finally块之前有一个return语句,finally块还是会执行。

    (Page 409)

    JDK 7提供了下面的新的try-with-resources语法来自动关闭文件。资源必须是AutoCloseable的子类型,比如PrintWriter,具有一个close()函数。资源的声明和创建必须在同一行语句中。

    try(
        PrintWriter printWriter = new PrintWriter(file);
    ) {
        printWriter.println("Hello, QQ");
    }
    

    (Page 428)

    抽象函数是非静态的。不能使用new操作从一个抽象类创建一个实例。

    (Page 436)

    接口中所有的数据域都是public static final而且所有的函数都是public abstract,所以Java允许忽略这些修饰符。

    (Page 442)

    对于protected native Object clone() throws CloneNotSupportedException;

    关键字native表明这个函数不是用Java写的,但它是JVM针对自身平台实现的。

  • 相关阅读:
    一些业内有名的网站收集
    WCF重载
    FCKEditor fckconfig.js配置,添加字体和大小 附:中文字体乱码问题解决
    查询第几条到第几条的数据的SQL语句
    SPOJ 9939 Eliminate the Conflict
    UVA 10534 Wavio Sequence
    HDU 3474 Necklace
    POJ 2823 Sliding Window
    UVA 437 The Tower of Babylon
    UVA 825 Walking on the Safe Side
  • 原文地址:https://www.cnblogs.com/nextbin/p/4927830.html
Copyright © 2011-2022 走看看