Java基础:
1 jdk与jre的区别,jvm
jdk:java开发工具
jre:java运行环境
jvm:Java虚拟机,只能识别.class文件,jvm是java跨平台的核心
2 == 和 equals 的区别是什么
==比较的是两个对象的地址
equals比较的是两个对象的内容
所以,当equals为true时,==不一定为true
3 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗
不对
两个对象equals相等,那么它们的hashCode一定相等,反之不一定
两个对象==相等,那么它们的hashCode一等相等,反之不一定
4 final 在 java 中有什么作用
修饰 修饰引用 类属性 类方法
修饰类: 该类成为最终类,无法被继承
修饰方法: 最终方法,不可以被重写,但是可以被继承
修饰引用: 引用为基本数据类型: 该引用为常量,无法被修改
引用为引用数据类型,比如对象,数组,该数组,对象本身可以修改,但指向该数组或对象的地址的引用不能改变
引用为类的成员变量,必须当场赋值,否则会编译报错
5 java 中的 Math.round(-1.5) 等于多少
-1
java 中的 Math.round(1.5) 等于多少
2
6 String 属于基础的数据类型吗?
不属于
基础数据类型: 整数型: byte short int long
浮点型: float double
布尔型: boolean
字符型: char
7 java 中操作字符串都有哪些类?它们之间有什么区别
string; stringBuffer ;stringBuilder
String: final修饰,String类的方法都是返回new string();即对String对象的任何改变都不影响到原对象,对字符串的修改都会生成新的对象
StringBuffer: 对字符串的操作都加了synchronized,线程安全
StringBuilder: 不保证线程安全,在方法体内需要进行字符串的修改操作,可以new stringBuilder对象,调用StringBuilder对象的append,replace,delete等方法修改字符串
8 String str="i"与 String str=new String(“i”)一样吗
不一样 指向内存的地址不一样
9 如何将字符串反转
1 使用StringBuffer的Reverse方法
2 使用for循环,空字符串去拼接
10 String 类的常用方法都有那些?
- equals:字符串是否相同
- equalsIgnoreCase:忽略大小写后字符串是否相同
- compareTo:根据字符串中每个字符的Unicode编码进行比较
- compareToIgnoreCase:根据字符串中每个字符的Unicode编码进行忽略大小写比较
- indexOf:目标字符或字符串在源字符串中位置下标
- lastIndexOf:目标字符或字符串在源字符串中最后一次出现的位置下标
- valueOf:其他类型转字符串
- charAt:获取指定下标位置的字符
- codePointAt:指定下标的字符的Unicode编码
- concat:追加字符串到当前字符串
- isEmpty:字符串长度是否为0
- contains:是否包含目标字符串
- startsWith:是否以目标字符串开头
- endsWith:是否以目标字符串结束
- format:格式化字符串
- getBytes:获取字符串的字节数组
- getChars:获取字符串的指定长度字符数组
- toCharArray:获取字符串的字符数组
- join:以某字符串,连接某字符串数组
- length:字符串字符数
- matches:字符串是否匹配正则表达式
- replace:字符串替换
- replaceAll:带正则字符串替换
- replaceFirst:替换第一个出现的目标字符串
- split:以某正则表达式分割字符串
- substring:截取字符串
- toLowerCase:字符串转小写
- toUpperCase:字符串转大写
- trim:去字符串首尾空格