Java部分常见面试题(三)

1:java内存泄漏一般在什么时候发生
在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点,首先,这些对象是可达的,即在有向图中,存在通路可以与其相连;其次,这些对象是无用的,即程序以后不会再使用这些对象。如果对象满足这两个条件,这些对象就可以判定为Java中的内存泄漏,这些对象不会被GC所回收,然而它却占用内存。
详情见 https://www.ibm.com/developerworks/cn/java/l-JavaMemoryLeak/
2:GC的工作原理
GC是什么? 为什么要有GC呢?
GC是垃圾收集的意思(Garbage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。
详情见 https://www.cnblogs.com/cnmenglang/p/6229254.html
3:HashMap和ArrayList分别是使用什么函数添加数据?
HashMapp 调用 put();
ArrayList 调用 add();
4:List集合的几种迭代方式
1:iterator迭代
2:增强for循环
3:通过元素的索引迭代
4:通过ListIterator迭代,也可向前迭代的
详细见 https://blog.csdn.net/wickedvalley/article/details/51584569
5:判断是否为纯字母的一个正则表达式
[a-zA-Z]+
6:java8中lambda表达式的内部资源引用
lambda内部可以使用静态、非静态和局部变量 这也称为lambda内的变量获取
7:什么是值传递?
值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。
8:什么是引用传递?
引用传递(pass by reference)是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。
关于值传递以及引用传递详情见 https://blog.csdn.net/w372426096/article/details/82216742
9:实参与形参
形式参数:是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数。
实际参数:在调用有参函数时,主调函数和被调函数之间有数据传递关系。在主调函数中调用一个函数时,函数名后面括号中的参数称为“实际参数”。

public static void main(String[] args) {
    ParamTest pt = new ParamTest();
    pt.sout("Hollis");//实际参数为 Hollis
}
public void sout(String name) { //形式参数为 name
    System.out.println(name);
}

猜你喜欢

转载自blog.csdn.net/qq_41193701/article/details/92744689