"Java基础面试题" 在Java中,String类中的常用方法有split()、indexOf()、replace()、subString()、equals()、concat()等。其中,split()方法可以将字符串分割成字符串数组,indexOf()方法可以从指定字符提取索引位置,replace()方法可以替换字符串,subString()方法可以截取字符串,equals()方法可以比较字符串,concat()方法可以将指定字符串连接到此字符串的结尾。 在Java中,重载和重写是两个不同的概念。重载是指在一个类中定义了多个方法名相同,但是参数的数量不同,或者数量相同类型和次序不同的方法,这称为方法的重载。重写是指在子类的方法与父类的方法的名字、参数的个数跟类型、返回值一样的方法,这称为方法的重写。 在Java中,String类中的==和equals()方法的区别是,==比较的是内存地址,而equals()方法比较的是内容。在使用的时候,常量要放到前面,放到后面的话会有可能出现空指针异常。 在Java中,String、StringBuilder、StringBuffer三者的区别是,String主要用于少量的字符串操作,它是final修饰的不可变字符串。StringBuilder和StringBuffer都是用来拼接字符串的,StringBuffer是线程安全的但是效率低,StringBuilder是线程不安全的但是效率高。 在Java中,final关键字可以用来修饰类、方法、变量等,final修饰的类不能被继承,final修饰的方法不能被重写,final修饰的变量就相当于常量,不能被修改。finally关键字是用于异常处理中,try和catch里的代码执行完以后,必须要执行的方法。 在Java中,不可以有多继承,可以用接口来实现多继承。 在Java中,int和Integer的区别是,int是基本数据类型,而Integer是Java为int提供的封装类,是引用数据类型。int的默认值为0,而Integer的默认值为null。 Java的三大特性是封装、继承、多态。封装体现到我们把方法和变量都封装到一个类里,直接用对象调用就可以了。继承的体现是我们可以复用父类里的代码。多态就是Java里的继承、重写、重载,都是多态,父类引用指向子类对象的时候,那是对象向上转型。 ArrayList是基于数组实现的,是一个动态数组,容量能自动增长,初始化长度是10,扩容规则:扩容后的大小=原始大小*1.5。ArrayList是线程不安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的CopyOnWriteArrayList类。 ArrayList和LinkedList的区别是,ArrayList使用数组方式存储数据,所以根据索引查询数据速度快,而新增或者删除元素时需要设计到位移操作,所以比较慢。LinkedList使用双向链接方式存储数据,每个元素都记录前后元素的指针,所以插入、删除数据时只是更改前后元素的指针指向即可,速度非常快,然后通过下标查询元素时需要从头开始索引,所以比较慢,但是如果查询前几个元素或后几个元素速度比较快。
剩余65页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助