Java教程

Java基础

本文主要是介绍Java基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.JDK和JRE有什么区别                                                                            

  JDK:简称Java Development kit,Java开发工具包,提供了Java开发环境和运行环境。

  JRE:简称Java Runtime Environment,Java运行环境,提供了Java运行时所需要的环境。

  JDK中包含了JRE、Javac(编译Java源码的编译器)、还包含了很多调试和分析Java程序的工具。

  运行Java程序只需要安装JRE就可以,只有需要编写Java程序的时候才需要安装JDK。

2.==和equals有什么区别                                                                        

  ==:基础数据类型比较的是值是否相等,引用数据类型比较的是内存地址是否相同。

  equals:默认情况下是引用比较,只有重写了equals方法(String、Integer)则比较的是值是否相等。

3.两个对象的hashCode相同,则equals()也一定为true?                                                           

  两个对象的hashCode相同,equals不一定为true。

  在散列表中,hashCode()相等即两个键值对的哈希值相等,然而哈希值相等并不一定能得出键值对相等。

  示例如下

public class Demo {
    public static void main(String[] args) {
        String str1 = "值1";
        String str2 = "值2";
        System.out.println(String.format("str1:%d | str2:%d",  str1.hashCode(),str2.hashCode()));
        System.out.println(str1.equals(str2));
    }
}
View Code

4.final在Java中有什么作用                                                                        

  final修饰的类叫最终类,该类不能被继承。

  final修饰的方法不能被重写。

  final修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改。

5.Java中的Math.round()                                                                          

  Math对象的方法可以在https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math查看。

  Math.round():表示四舍五入向上取整。

6.String属于基础数据类吗?                                                                        

  String不属于基础数据类型,基础数据有8种:byte、boolean、char、short、int、float、long、double。String属于对象是引用数据类型。

7.Java操作字符串的有哪些类,他们之间有什么区别?                                                             

  操作字符串的类有:String、StringBuffer、StringBuilder。

  String和StringBuffer、StringBuilder的区别:String声明的是不可变对象,每次操作都会生成新的String对象,然后指针指向新的String对象。而Stringbuffer、StringBuilder可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用String。

  StringBuffer和StringBuilder的区别:StringBuffer是线程安全的,而StringBuilder则是线程不安全的,但StringBuilder的性能却高于StringBuffer,所以单线程环境建议使用StringBuilder,多线程环境建议使用StringBuffer。

8.String str="1"与String str=new String("1")一样吗?                                                          

  不一样,String str="1"的方式,Java虚拟机会将其分配到常量池中,而String str=new String("1")则会被分配到堆内存中。

9.如何将字符串反转?                                                                           

  使用StringBuffer、StringBuilder的reverse()方法进行字符串反转。

10.String类的常用方法有哪些?                                                                     

  String的常用方法:

  • indexOf():返回知道字符串的索引。
  • charAt():返回知道索引处的字符。
  • replace():字符串替换。
  • trim():去除字符串两端空白。
  • split():分割字符串,返回分割后的字符串数组。
  • getBytes():返回字符串的byte数组。
  • length():返回字符串长度。
  • toLowerCase():将字符串转为小写字母。
  • toUpperCase():将字符串转为大写字母。
  • substring():截取字符串。
  • equals():字符串比较。

11.抽象类必须要有抽象方法吗?                                                                     

  抽象类不一定有抽象方法。

12.普通类和抽象类有哪些区别?                                                                     

  普通类不能包含抽象方法,抽象类可以包含抽象方法。

  抽象类不能实例化,普通类可以实例化。

13.抽象类能用final修饰吗?                                                                        

  不能,抽象类就是让其他类继承的,如果用final修饰则该类不能被继承,这样是彼此矛盾的,所以抽象类不能被final修饰。

14.接口和抽象类有什么区别?                                                                        

  实现:抽象类是extends来继承,接口则是使用implements实现。

  构造函数:抽象类可以有构造函数,接口不能有。

  实现数量:类可以实现多个接口,但只能继承一个类。

  访问修饰符:接口中方法默认用public修饰,抽象类中的方法有使用任意修饰符。

15.Java中IO流分为几种?                                                                         

  按功能分配:输入流、输出流。

  按类型分配:字节流、字符流。

  字节流和字符流的区别:字节流按8位传输以字节位单位输入输出数据,字符流按16位传输以字符为单位输入输出数据。

16.BIO、NIO、AIO有什么区别?                                                                    

  BIO:Block IO同步阻塞IO,就是我们平常使用的传统IO,它的特点是模式简单使用方便,并发处理能力低。

  NIO:New IO或Non Blocking IO同步非阻塞IO,是传统IO的升级客户端和服务器通过使用Channel(通道)通宵,实现多路复用。

  AIO:Asynchronous IO是NIO的升级,也叫NIO2,实现异步非阻塞IO,异步IO的操作基于事件和回调机制。

17.files的常用方法有哪些?                                                                        

  files的常用方法

  • exists():检测文件路径是否存在。
  • createFile():创建文件。
  • createDirectory():创建文件夹。
  • delete():删除文件。
  • copy():复制文件。
  • move():移动文件。
  • size():文件数量。
  • read():读取文件。
  • write():写入文件。
这篇关于Java基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!