zoukankan      html  css  js  c++  java
  • java核心技术 卷1 基础知识—对象与继承

    《Java核心技术 卷1 基础知识》第4-5章

    在Java中没有类就无法做任何事情

    new操作符的返回值是一个引用

    在Java中,如果使用一个未初始化的指针,运行系统会产生一个运行时错误。

    Date 用来表示时间点
    LocalDate 日历表示法
    不推荐使用Date类来处理日历
    推荐使用LocalDate来处理日历

    每一个拥有名字的类都会被编译生成对应的class文件

    所有的Java对象都是在堆中构造的,构造器总是随着new操作符一起使用

    在Java中,所有的方法都必须在类的内部定义,但并不表示它们是内联方法,是否将某个方法设置为内联方法是Java虚拟机的任务

    建议使用类名来调用静态方法

    每个类都可以有一个main方法,这是一个常用于对类进行单元测试的技巧

    要完整描述一个方法,需要给出方法名以及参数类型。这也叫做方法的签名
    返回类型不是方法签名的一部分

    默认初始化:
    数值为0 布尔值为false 对象引用为null

    可以为任何一个类添加finalize方法。该方法将在垃圾回收器清除对象之前调用。
    在实际应用中,不要依赖于finalize方法回收任何短缺的资源,这是因为很难知道这个犯法什么时候才能够调用

    不允许扩展的类被称为final类

    包含一个或者多个抽象方法的类本身必须被声明为抽象的

    类即使不含有抽象方法,也可以将类声明为抽象类

    抽象类不能被实例化

    Java中的protected对所有子类和同一个包中的所有其他类都可见,与C++中的保护机制稍有不同
    Java中的protected的安全性较差

    Object类是所有类的超类
    Object类型的变量可以引用任何类型的对象
    在Java中只有基本类型不是对象,例如数值、字符和布尔类型的值都不是对象

    Object的equals方法:用于检测一个对象是否等于另一个对象,即判断这两个对象是否具有相同的引用
    Object的hashCode方法,由对象导出哈希值,即返回对象的散列码
    Object的toString方法,返回对象值的字符串
    Object的getClass方法,返回包含对象信息的类对象
    Object的getName方法,返回这个类的名字
    Object的getSuperclass方法,返回这个类的超类信息

    尽管Java允许在运行时确定数组的大小,但没有完全解决运行时动态更换数组的问题,
    一旦确定了数组的大小,改变它就太不容易了,于是就有了ArrayList类,它具有自动调节数组容量的功能

    ArrayList是一个使用类型参数的泛型类,为了指定数组列表保存的元素对象类型,需要用已对尖括号将类名括起来加在后面
    类似于 C++的vector模板,都是泛型类型

    但ArrayList的元素访问比较复杂,需要使用set或者get实现改变或者访问数组元素的操作

    所有的基本类型都有一个与之对应的类,这些类称为包装器
    自动装箱或者自动打包:指基本类型自动转换为对应的类的实例
    装箱和拆箱是编译器认可的,而不是虚拟机,编译器在生成类的字节码时,插入必要的方法调用,虚拟机只是执行这些字节码

    java设计者还将一些基本方法放置在包装器中,如将字符串转换为整形
    int x = Integer.parseInt(s);
    这里与Intger对象没有任何关系,parseInt是一个静态方法,但Integer类是放置这个方法的一个好地方。

    lambda表达式就是一个代码块,以及必须传入代码的变量规范
    即 参数,箭头(->)以及一个表达式。
    ()->代码块;
    但有时()会被省略,但不建议省略。

    对于只有一个抽象方法的接口,需要这种接口的对象时,就可以提供一个lambda表达式的接口,这种接口称之为函数式接口。
    例子:
    Comparator就是只有一个方法的接口,所以可以提供一个lambda表达式的值
    Arrays.sort(words,(first,seccond)->first.length()-second.length())

  • 相关阅读:
    DMA
    [计网笔记] 应用层
    为博客添加网易云音乐播放器外链
    acm对拍程序 以及sublime text3的文件自动更新插件auto refresh
    操作系统---内存管理(上) 概念 覆盖交换技术 连续分配管理方式
    操作系统---死锁的检测和解除
    C++ bitset的使用
    Codeforces Round #647 (Div. 2)
    sublime Text3 实现2:1:1三分屏效果
    操作系统---信号量以及四个进程同步问题
  • 原文地址:https://www.cnblogs.com/ASE265/p/12236824.html
Copyright © 2011-2022 走看看