在实现工作中久了,对于java的基础反而模糊了很多,特别是一些理论,最近在面试中,我也会把我这几天在android岗位面试中遇到的java面试题也分享给大家(后续会把android的面试知识点也一起分享),随便整理了一下java的基础知识点,随便分享给正在找工作的童鞋们一起来回顾,希望能找到一个满意的工作!
1)a = a + b 与 a += b 的区别(答案)
+= 隐式的将加操作的结果类型强制转换为持有结果的类型。如果两这个整型相加,如 byte、short 或者 int,首先会将它们提升到 int 类型,然后在执行加法操作。如果加法操作的结果比 a 的最大值要大,则 a+b 会出现编译错误,但是 a += b 没问题,如下:
byte a = 127;
byte b = 127;
b = a + b; // error : cannot convert from int to byte
b += a; // ok
(译者注:这个地方应该表述的有误,其实无论 a+b 的值为多少,编译器都会报错,因为 a+b 操作会将 a、b 提升为 int 类型,所以将 int 类型赋值给 byte 就会编译出错)
2)String min = "ab"; String max = "cabcdefjabfdemdadabc",统计大串中小串出现的次数字,手写编程
public static void main(String[] args) {
//定义大串
String max = "cabcdefjabfdemdadabc";
//定义小串
String min = "ab";
//定义计数器变量
int count = 0;
//定义索引
int index = 0;
//定义循环,判断小串是否在大串中出现
while((index = max.indexOf(min)) != -1) {
count++; //计数器自增
max = max.substring(index + min.length());
}
System.out.println(count);
}
String字符串的一些API:
int length():获取字符串的长度。
char charAt(int index):获取指定索引位置的字符
* int indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引。
* int indexOf(String str):返回指定字符串在此字符串中第一次出现处的索引。
* int indexOf(int ch,int fromIndex):返回指定字符在此字符串中从指定位置后第一次出现处的索引。
* int indexOf(String str,int fromIndex):返回指定字符串在此字符串中从指定位置后第一次出现处的索引。
* lastIndexOf
* String substring(int start):从指定位置开始截取字符串,默认到末尾。
* String substring(int start,int end):从指定位置开始到指定位置结束截取字符串。
3)json的解析
4)==号与equals()方法的区别:
==: 基本数据类型比较的是值是否相等, 引用数据类型比较的是地址值是否相等
equals(): 只能比较引用数据类型, 未重写之前,比较的是对象的地址值是否相同, 重写之后, 比较的是对象的属性值是否相同.
5)解释 Java 堆空间及 GC?(答案)
当通过 Java 命令启动 Java 进程的时候,会为它分配内存。内存的一部分用于创建堆空间,当程序中创建对象的时候,就从对空间中分配内存。GC 是 JVM 内部的一个进程,回收无效对象的内存用于将来的分配。
6)Java 中堆和栈有什么区别?(答案)
JVM 中堆和栈属于不同的内存区域,使用目的也不同。栈常用于保存方法帧和局部变量,而对象总是在堆上分配。栈通常都比堆小,也不会在多个线程之间共享,而堆被整个 JVM 的所有线程共享。