第一期:Java面试 - 100题,梳理各大网站优秀面试题.大家可以跟着我一起来刷刷Java理论知识 [004] - JavaSE面试题(四):JavaSE语法(2) 第1问:重载(overload)和重写(override)的区别? 方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性. 重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同.参数个数不同或者二者都不同)则视为重载: 重写发生在子类与父类之间,重写要求子类被重写方法与父…
第一期:Java面试 - 100题,梳理各大网站优秀面试题.大家可以跟着我一起来刷刷Java理论知识 [003] - JavaSE面试题(三):JavaSE语法(1) 第1问:& 和 && 的区别? &运算符有两种用法: 按位与 逻辑与 &&运算符是短路与运算.逻辑与跟短路与的差别是很大的,虽然二者都要求运算符左右两端的布尔值都是true 整个表达式的值才是 true. &&之所以称为短路运算是因为,如果&&左边的表达式的值是…
JavaSE面试题 欢迎到我的Git仓库去提交您觉得优秀的内容! 1.是否可以从一个static方法内部发出对非static方法的调用? 不可以.当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那个非static方法是关联到哪个对象上的呢?这个逻辑无法成立. 2.Integer与int的区别? int是java提供的8种原始数据类型之一,Integer是java为int提供的封装类.int的默认值为0,而Integer的默认…
第一期:Java面试 - 100题,梳理各大网站优秀面试题.大家可以跟着我一起来刷刷Java理论知识 [002] - JavaSE面试题(二):基本数据类型与访问修饰符 第1问:Java的数据类型有哪些? 第2问:访问权限修饰符 public.private.protected, 以及不写(默认)时的区别? Java中成员的访问权限共有四种,可见性如下: 第3问:接口和抽象类有什么区别? 实现: 抽象类的子类使用extends来继承 接口必须使用implements来实现接口 构造函数: 抽象类…
第一期:Java面试 - 100题,梳理各大网站优秀面试题.大家可以跟着我一起来刷刷Java理论知识 [001] - JavaSE面试题(一):面向对象 第1问:面向对象和面向过程的区别? 面向过程 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗 资源;比如单片机.嵌入式开发.Linux/Unix 等一般采用面向过程开发,性能是 最重要的因素. 缺点:没有面向对象易维护.易复用.易扩展 面向对象 优点:易维护.易复用.易扩展,由于面向对象有封装.继承.多态性的特 性,可以设…
JavaSE 面试题 类初始化和实例初始化等 class Father { private int i = test(); private static int j = method(); static { System.out.print("(1)"); } Father() { System.out.print("(2)"); } { System.out.print("(3)"); } public int test() { System.…
JavaSE 面试题 成员变量与局部变量 public class Test { static int s; int i; int j; { int i = 1; i++; j++; s++; } public void test(int j) { j++; i++; s++; } public static void main(String[] args) { Test t1 = new Test(); Test t2 = new Test(); t1.test(10); t1.test(20…
JavaSE 面试题 方法的参数传递机制 import java.util.Arrays; public class Test { public static void main(String[] args) { int i = 1; String str = "hello"; Integer num = 200; int[] arr = {1, 2, 3, 4, 5}; MyData my = new MyData(); change(i, str, num, arr, my); S…
JavaSE 笔试题 自增变量 public class Test { public static void main(String[] args) { int i = 1; i = i++; int j = i++; int k = i + ++i * i++; System.out.println("i=" + i); System.out.println("j=" + j); System.out.println("k=" + k); }…
第一期:Java面试 - 100题,梳理各大网站优秀面试题.大家可以跟着我一起来刷刷Java理论知识 [012] - JavaSE面试题(十二):多线程(2) 第1问:多线程的创建方式? 方式一:继承Thread类创建线程类 方式二:通过Runnable接口创建线程类 方式三:通过Callable和Future创建线程 第2问:启动一个线程是调用  run() 方法还是  start() 方法? 启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由 JV…