Java岗社招面经分享
1、Java 应用程序与小程序之间有哪些差别?
答:简单说应用程序是从主线程启动(也就是 main() 方法)。applet 小程序没有main 方法,主要是嵌在浏览器页面上运行(调用 init()线程或者 run()来启动),嵌入浏览器这点跟 flash 的小游戏类似。
2、字符型常量和字符串常量的区别
(1)形式上: 字符常量是单引号引起的一个字符,字符串常量是双引号引起的若干个字符
(2)含义上: 字符常量相当于一个整形值( ASCII 值),可以参加表达式运算。字符串常量代表一个地址值(该字符串在内存中存放位置)
(3)占内存大小:字符常量只占2个字节,字符串常量占若干个字节(至少一个字符结束标志) (注意:char在Java 中占两个字节)
3、构造器 Constructor 是否可被 override?
4、重载和重写的区别
(1)重载:发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同,发生在编译时。
(2)重写:发生在父子类中,方法名、参数列表必须相同,返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类;如果父类方法访问修饰符为 private 则子类就不能重写该方法。
5、自动装箱与拆箱
(1)装箱:将基本类型用它们对应的引用类型包装起来;
(2)拆箱:将包装类型转换为基本数据类型;
6、在 Java 中定义一个不做事且没有参数的构造方法的作用
答:Java 程序在执行子类的构造方法之前,如果没有用 super() 来调用父类特定的构造方法,则会调用父类中“没有参数的构造方法”。因此,如果父类中只定义了有参数的构造方法,而在子类的构造方法中又没有用 super() 来调用父类中特定的构造方法,则编译时将发生错误,因为 Java 程序在父类中找不到没有参数的构造方法可供执行。解决办法是在父类里加上一个不做事且没有参数的构造方法。
7、手撕代码。牛客题霸上的原题,可以去看看:NC58 找到搜索二叉树中两个错误的节点
#Java工程师##社招##面经#