1.JDK(java的开发工具包) 包括javac(java的编译器) java监控的工具,开发工具组成的
JRE(java的运行时环境)是由jvm还有java的基础类库组成的
2.==在比较基本数据类型的时候,比较的是基本类型的值
在比较引用对象的时候,比较对象的内存地址
equal只能比较引用类型,有的类型重写了equal方法,比较的是对象的值,不然就是比较对象的内存地址。
3. hashcode 对象的储存地址
1、如果两个对象equals相等,那么这两个对象的HashCode一定也相同
2、如果两个对象的HashCode相同,不代表两个对象就相同,只能说明这两个对象在散列存储结构中,存放于同一个位置
4. 如果一个类定义成final,这个类就不能被继承
如果一个方法被定义成final,这个类就不能被重写
如果一个数据类型被定义成final 这个数据类型就不能被修改
5.round是取四舍五入 math.round(-1.5)=-1.0
cell是往上整,floor是往下取整
6.基础数据类型:char boolean double int float long short byte
7.String 效率太低,因为string被定义成final 所以每一次修改String的值都会创建一个新的对象
StringBuffer 和 StringBuilder 都是用char[]的方式存储的,长度都是默认未19,他们会自动扩容都是以原本的长度*2+2的长度扩容的,
Stringbuffer 是线程安全的,不过相对效率较低,在多线程的情况下,可以选择StringBuffer ,可以建立字符串缓冲区
Stringbuilder 是线程不安全的,所以在单线程的情况下,要选择这个
8.不一样 第一个只产生了一个对象 ,第二个产生了两个对象
9. 通过Stringbuffer 或者Stringbuilder.converse.toString()
public static String reverse2(String str) { char[] chars = str.toCharArray(); String reverse = ""; for (int i = chars.length - 1; i >= 0; i--) { reverse += chars[i]; } return reverse; }
public static String reverse2(String str) { char[] chars = str.toCharArray(); String reverse = ""; for (int i = chars.length - 1; i >= 0; i--) { reverse += chars[i]; } return reverse; }
11.抽象类不一定要有抽象方法,不是抽象方法的方法一定要被实例,
12.抽象类不能被实例化 这是一个java的编码的规范
13.抽象方法一定不能是final,因为抽象类一定要被继承
14.
- 抽象类只能继承一次,但是可以实现多个接口
- 接口和抽象类必须实现其中所有的方法,抽象类中如果有未实现的抽象方法,那么子类也需要定义为抽象类。抽象类中可以有非抽象的方法
- 接口中的变量必须用 public static final 修饰,并且需要给出初始值。所以实现类不能重新定义,也不能改变其值。
- 接口中的方法默认是 public abstract,也只能是这个类型。不能是 static,接口中的方法也不允许子类覆写,抽象类中允许有static 的方法
15.文件输入输出流,字节输出输入流
16.https://blog.csdn.net/m0_38109046/article/details/89449305
1.BIO : 同步阻塞性的io:每一个客户端发送新的请求都会产生新的进程。进程的开销很大,严重的话会导致系统的奔溃。
NIO:同步不阻塞的io:有四个属性:1.no blocking 单线程在操作过程中,同时可以做别的事情,2.buffer 加入了缓冲区 在读取数据的时候,NIO会建立channel然后再再buffer中读取数据。
再发送数据的时候,会先buffer把数据通过channel输送出去。3.channel 4 选择器 可以减少增加进程的消耗
-
从通道进行数据读取 :创建一个缓冲区,然后请求通道读取数据。
-
从通道进行数据写入 :创建一个缓冲区,填充数据,并要求通道写入数据。
AIO异步 IO 是基于事件和回调机制实现
17.Files.copy();
Files.delete();
Files.exist()
Files.read();
Files.write();
Files.size();
Files.remove();
Files.createFile();