可信赖的扬中网站建设,网站做代理需要空间是多少钱,电商网页设计流程,网站做招聘需要什么资质1 JDK 和 JRE 有什么区别#xff1f; DK#xff08;Java Development Kit#xff09;是Java开发工具包的缩写#xff0c;它包含了Java编译器#xff08;javac#xff09;、Java虚拟机#xff08;JVM#xff09;和其他开发工具。JDK提供了开发Java应用程序所需的所有…1 JDK 和 JRE 有什么区别 DKJava Development Kit是Java开发工具包的缩写它包含了Java编译器javac、Java虚拟机JVM和其他开发工具。JDK提供了开发Java应用程序所需的所有工具和库。 JREJava Runtime Environment是Java运行时环境的缩写它包含了Java虚拟机JVM、类库和其他支持文件。JRE只用于运行Java程序而不包含开发工具。
简而言之JDK包含了JRE同时还包含了用于开发Java程序的编译器和其他工具
2 和 equals 的区别是什么 是比较运算符用于比较两个变量的值是否相等。对于基本数据类型比较的是它们的值对于引用类型比较的是它们在内存中的地址。 equals是Object类中定义的方法用于判断两个对象是否相等。默认情况下equals方法和运算符功能相同比较的是两个对象的地址。但是可以在类中重写equals方法根据需要自定义对象的相等条件。
3 两个对象的 hashCode()相同则 equals()也一定为 true对吗 不一定。hashCode是用于获取对象的哈希码散列码equals用于判断两个对象是否相等。如果两个对象的hashCode相同那么它们在散列表中的位置可能相同但并不意味着它们的内容相等。因此两个对象的hashCode相同并不一定意味着equals方法返回true。
4 final 在 java 中有什么作用 当应用于变量时表示该变量的值不能被修改即常量。 当应用于方法时表示该方法不能被子类重写。 当应用于类时表示该类不能被继承。
5 java 中的 Math.round(-1.5) 等于多少 Math.round(-1.5) 的结果是 -1。Math.round() 方法用于对浮点数进行四舍五入
6 String 属于基础的数据类型吗
String不属于基础的数据类型它是Java中的一个类。但是由于String在Java中使用非常广泛因此在某些情况下可以将其看作基础的数据类型。
7 java 中操作字符串都有哪些类它们之间有什么区别 String用于存储和操作字符串是不可变的。 StringBuilder用于高效地拼接和修改字符串是可变的。 StringBuffer与StringBuilder功能类似但是线程安全适用于多线程环境 String类是不可变的每次对字符串进行修改都会创建一个新的字符串对象StringBuilder和StringBuffer是可变的可以直接在原来的对象上进行修改。
8 String stri与 String strnew String(“i”)一样吗 String str i 是使用字符串字面量创建一个String对象会在字符串常量池中查找是否存在相同内容的字符串如果存在则直接引用如果不存在则创建新的String对象。 String str new String(i) 是使用new关键字创建一个新的String对象不会在字符串常量池中查找而是在堆内存中创建一个新的String对象。
9 如何将字符串反转
反转字符串的一种常见方法是使用StringBuilder或StringBuffer的reverse()方法示例代码如下 java String str Hello World; StringBuilder sb new StringBuilder(str); String reversedStr sb.reverse().toString(); System.out.println(reversedStr); // 输出dlroW olleH 10 String 类的常用方法都有那些
length()返回字符串的长度。 charAt(int index)返回指定位置的字符。 substring(int beginIndex, int endIndex)返回指定范围内的子字符串。 equals(Object obj)判断字符串与指定对象是否相等。 contains(CharSequence sequence)判断字符串是否包含指定的字符序列。 indexOf(String str)返回指定子字符串在字符串中首次出现的位置。 toUpperCase()将字符串转换为大写。 toLowerCase()将字符串转换为小写。 trim()去除字符串两端的空白字符。
11 抽象类必须要有抽象方法吗 抽象类不一定要有抽象方法。抽象类是不能被实例化的它存在的主要目的是为了被子类继承和实现。抽象方法是一种没有方法体的方法声明只有方法签名需要子类去实现
12 普通类和抽象类有哪些区别 普通类可以直接实例化和使用而抽象类不能直接实例化只能被子类继承和实现。抽象类可以包含普通方法和成员变量而接口只能包含常量和抽象方法。一个类只能继承一个普通类但可以实现多个接口。
13抽象类能使用 final 修饰吗 抽象类可以使用final修饰但是有一定的限制。如果一个抽象类被final修饰那么该类不能被继承。但是抽象类的方法可以继续被子类实现和重写即final关键字只对类有效不影响方法的继承和重写
14 接口和抽象类有什么区别
抽象类可以有构造方法而接口不能有构造方法。 类只能继承一个抽象类但是可以实现多个接口。 抽象类可以包含普通方法的实现而接口只能包含抽象方法和默认方法Java 8及以后版本还支持静态方法。 接口中的字段默认是常量而抽象类可以有普通成员变量。 接口中的方法默认是public修饰的而抽象类可以有不同的访问修饰符
15 java 中 IO 流分为几种
字节流Byte Stream用于读写字节数据如InputStream、OutputStream等。 字符流Character Stream用于读写字符数据如Reader、Writer等。 字节缓冲流Buffered Stream对字节流或字符流进行缓冲处理提高读写效率。 对象流Object Stream用于序列化和反序列化对象如ObjectInputStream、ObjectOutputStream等。
16 BIO、NIO、AIO 有什么区别 BIOBlocking IO阻塞式IO在IO操作时当前线程会被阻塞直到IO操作完成。每个连接需要独立的线程来处理适用于连接数较小的情况。 NIONon-blocking IO非阻塞式IO使用事件驱动模型通过Selector监听多个通道的事件实现单线程处理多个连接。适用于连接数较多但每个连接处理时间较短的情况。 AIOAsynchronous IO异步IO在IO操作时当前线程不会被阻塞可以继续处理其他任务。IO操作完成后系统会通知应用程序进行处理。适用于连接数较多且每个连接处理时间较长的情况。
17 Files的常用方法都有哪些 readAllBytes(Path path)读取文件的所有字节。 write(Path path, byte[] bytes)将字节数组写入文件。 copy(Path source, Path target, CopyOption... options)复制文件或目录。 delete(Path path)删除文件或目录。 exists(Path path)判断文件或目录是否存在。 isDirectory(Path path)判断是否为目录。 isRegularFile(Path path)判断是否为普通文件。 move(Path source, Path target, CopyOption... options)移动文件或目录。 newBufferedReader(Path path)创建一个BufferedReader以读取文件。 newBufferedWriter(Path path, OpenOption... options)创建一个BufferedWriter以写入文件