再来10道java基础题,供一样白的你,一起学习分享
1.JDK与JRE区别
JDK是JAVA开放工具集,供给开发者下载
JRE是运行环境,用于运行JAVA文件,供给程序用户下载。
JDK安装包中自带JRE,JVM,因此 JDK>JRE
2.==和equals()区别
基本数据类型一般用 ==, 而 == 和 equals 比较的都是数值对象
复合数据类型(String Integer Date)equals比较数值对象 ,==比较地址值
3.final在JAVA中的作用
修饰类:不可被继承
修饰方法: 锁定方法防止继承类修改
提高效率 , 原理:基于内嵌机制,调用final方法时,直接将方法主体插入调用处,省了调用函数的 开销。但如果方法过于庞大或者有循环,这种提高效率的方法可能失效
修饰变量:防止变量值改变。final修饰类的成员变量,必须初始化赋值且不能改变
4.hashcode相同,equals相同吗
hashcode获取对象在哈希表中的索引码(哈希码)
如果两个对象相等,他们的hashcode一i的那个相同 equals 为TRUE
如果两个hashcode相同 他们的equals并不一定相等。。。,
因为hashcode相同 就是两个键值对的哈希值相等 但可能存在哈希冲突的情况,并不一定得到键值对相等
5.Math.round(-1.5); 结果为-1
6.java中字符串操作的类
str.length 长度
str.indexof str.lastindexof 指定字符在串中的位置
str.equals
str.charAt获取指定位置字符
str.replace 替换
str.toUppercase/Lowercase
str.trim去掉首位空格
StringBuffer类:追加append 插入insert 替换 setCharAt
7.抽象类必须有抽象方法吗
抽象类可以没有抽象方法,但是如果一个类已经声明,即使没有抽象方法,也不能再实例化,不能直接构造该类的对象
如果类中有一个抽象方法 ,那么必须声明抽象类
8.抽象类可以被final修饰吗
不能
抽象方法为了继承之后重写方法所用
final修饰的类 无法继承
9.抽象类与普通类区别
抽象类 : Astract 修饰 ,方法不能有方法的主体只能有声明 被继承时子类必须实现所有方法,延伸性好可以多态
普通类:public 等修饰 ,可以有主体,不必实现所有,不可多态
10.抽象类与接口区别
抽象类:
被子类继承,方法声明与实现,定义普通变量
接口:
被类实现,自己本身只能做方法声明,定义的变量只能是公共的静态常量