1.面向对象都有哪些特性以及你对这些特性的理解?
封装,集成,多态
2.& 和 && 的区别
&&有短路效果,提高代码效率
3. 在 Java 中,如何跳出当前的多重嵌套循环
标号跳出指定循环,retuet结束min方法,countinue后面的将不在执行
4.两个对象值相同 (x.equals(y) == true) ,但却可有不同的hashCode,这句话对不对?
内容相等hash值一定相等,hash值相等对象不一定相等,例如:通话,重地
5.是否可以继承String
String被final修饰,不可以被继承 final修饰的变量会成常量不能被修改,修饰变量不可以修地址值,可以改值,方法不能重写,类不能继承
6.当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
引用数据,修改成员变量;基本数据,修改的是局部变量
7.重载(overload)和重写(override)的区别?重载的方法能否根据返回类型进行区分?
同一类中,方法名相同,参数不同,个数不同,类型不同,顺序不同,没有返回值重载
重写:继承或者实现,父类方法满足不了子类要求,体系中子类出现和父类出现了一样的方法声明(方法名,参数列表,返回值类型)
重载:同一类中,方法名相同,参数列表不同,与返回值无关
8.char 型变量中能不能存储一个中文汉字,为什么?
可以,有且仅有一个字符,char占两个字节,一个汉字也是
9.抽象类(abstract class)和接口(interface)有什么异同?
相同:
都可以写抽象方法,.不能实例化类不能多实现,.,抽象类被继承,接口被实现,都要重写抽象方法
不同:
抽象类:
是一个类,使用关键字 abstract
抽象类里面可以写非抽象方法
只能单继承或者多层继承
接口:
用interface修饰
练出了抽象还有默认方法
可以多实现
10.抽 象 的 (abstract) 方 法 是 否 可 同 时 是 静 态 的 (static), 是 否 可 同 时 是 本 地 方 法(native)
不可以,会冲突;
11.阐述静态变量和实例变量的区别
在语法定义上的区别:
静态变量前要加static关键字,而实例变量前则不加。
在程序运行时的区别:
实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。
- ==和 equals hashCode 的区别?
基本数据类型:
==比较的是内容
引用数据类型:
==比的是地址值,equals默认比地址值,重写按照规则比较,hashCode - break 和 continue 的区别?
跳出本循环,跳过后面的代码,继续循环
14.String s = “Hello”;s = s + " world!";这两行代码执行后,原始的 String 对象中的内容到底变了没有?
字符串不可变,它们的值在创建后不能被更改
通过构造方法创建
通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,虽然内容相同,但是地址值不同
直接赋值方式创建
以双引号方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM 都只会建立一个 String 对象,并在字符串池中维护
15.Java 中实现多态的机制是什么?
父类对象指向子类引用
16.Java 中异常分为哪些种类
编译,运行
17.error 和 exception 的区别?
错误虚拟机
异常可以捕获处理
18,throw 和 throws 的区别
抛出
声明
19,final、finally 的区别?
final:最终的 不可被改变,类不可有子类,变量变常量,引用类型不可以改变地址
finally:出不出错都运行,用于关闭流,关闭资源
20,Math.round(11.5)等于多少?Math.round(- 11.5) 又等于多少?
12,正数四舍五入
-11负数四舍五入向上
21,数组有没有 length() 方法?String 有没有 length() 方法
数组有length属性没有方法
string有方法
集合有size方法
22,String 、 StringBuilder 、 StringBuffer 的区别?
String:内容是不可变的
StringBuilder:内容可变,线程不安全
StringBuffer:内容可变,线程安全
23,什么情况下用“+”运算符进行字符串连接比调用 StringBuffer/StringBuilder对象的 append 方法连接字符串性能更好?
在java中无论使用何种方法进行字符串拼接,底层都是StringBuilder,所以是一样的
最新2020整理收集的一些高频面试题(都整理成文档),有很多干货,包含mysql,netty,spring,线程,spring cloud、jvm、源码、算法等详细讲解,也有详细的学习规划图,面试题整理等,需要获取这些内容的朋友请加Q君样:909038429
/./*欢迎加入java交流Q君样:909038429一起吹水聊天