《java核心技术 卷1 基础知识》二
Posted ase265
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《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())
以上是关于《java核心技术 卷1 基础知识》二的主要内容,如果未能解决你的问题,请参考以下文章