jdk是java开发工具包,其中包含了jre。jre是java运行时环境,如果只是运行java程序安装jre即可运行;如果还要开发java程序,则需要安装jdk,jdk中除了jre外还有编译java源码的编译器javac,除此之外还有很多java程序调试和分析的工具。
==用于比较基本数据类型比较的是内容,比较引用数据类型比较的是引用数据类型的地址。
equals用于比较引用数据类型,一般比较的是引用数据类型的地址,但是很多类如String、Integer中都重写了equals方法,所以在比较的时候比较的是引用数据类型的内容。
两个对象的hascode()相同只代表他们在散列表中存储的位置相同,一般来说对象在散列表中位置是通过对象的哈希值模除散列表的长度取余得到的,有可能出现不同对象出现在同一个位置的情况,故equals()不一定相同。
final在java中如果修饰类则该类不同被继承,如果修饰方法则该方法不能被重写,如果修饰变量,则该变量叫做常量,并且必须初始化,初始化之后值就不能被修改。
这是一个向上取证的函数,结果是-1
String不属于基本的数据类型,它是引用数据类型,基本的数据类型有八个,分别是byte、short、int、long、float、double、boolean、char
java中操作字符串的类有String、StringBuffer、StringBuilder。String声明的对象是不可变的,而buffer和builder可以在原有对象的基础上操作对象。其中buffer是线程安全的,builder是线程安全的,因此前者的性能低,后者的性能高。
不一样,前者虚拟机给它分配的内存在常量池,后者虚拟机给它分配的内存在堆空间。
使用StringBuilder和StringBuffer的reverse()方法。
indexof()、charAt()、replace()、replaceAll()、split()、subString()、toUpperCase()、toLowerCase()、length()、trim()、getbyte()、equals()
抽象类不一定有抽象方法,但是有抽象方法的类一定是抽象类。
普通类可以实例化,抽象类不能被实例化。普通类不能有抽象方法,抽象类中可以存在抽象方法。
抽象类不可以被final修饰,因为抽象类的初衷就是为了被继承实现的,如果被fianl修饰了那么此类就不能被其他类继承了。
接口是用来实现的,而抽象类是用来继承的;一个类可以实现多个接口,但是只能继承一个抽象类;抽象类可以有构造函数,而接口没有;抽象类可以有main方法并且可以启动,但是接口没有;抽象类的方法修饰符可以是任意的,但是接口的方法一般用public修饰。
按功能分为输入流和输出流;按类型分为字节流和字符流;
字节流是按8位输出以字节为单位输入输出数据,字符流是按16位输出以字符为单位输入输出数据
飞书文档笔记:https://b9xiv51sal.feishu.cn/docx/doxcnbxE312SNWOg8iSN6MgkwKe
BIO是同步阻塞IO,优点是模式简单、使用方便,缺点是并发处理能力低;NIO是同步非阻塞IO,客户端和服务端通过通道通信,实现了多路复用;AIO基于时间和回调机制实现了异步非阻塞IO。
createFile()、creatDirectory()、write()、read()、delete()、exit()、move()、copy()、size()。