大家好,我是程序员Manor,我希望自己能成为国家复兴道路的铺路人,大数据领域的耕耘者,平凡但不甘于平庸的人。
今天为大家带来14道Java开发岗面试题
答:对于short s1 = 1; s1 = s1 + 1; 由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误。 队友锁在边 对于short s1 = 1; s1 += 1; 由于 += 是java语言规定的运算符, java编译器会对它进行特殊处理, 因此可以正确编译。 队友加一
答: 使用final关键字修饰一个变量时,是指引用变量不能变, 引用变量所指向的对象中的内容还是可以改变的
答案( 1、””是运算符, 2、equals是超(人)类(型)Object中的方法 3、””比较基本类型是数值, 引用类型是地址比较内存地址, String类中重写的equals方法比较的是值) 因此圣诞树
不可以。 普通方法属于对象, 只有对象创建后才可以调用, 而static方法调用时不需要创建对象, 从static方法中调用非static方法时可能还没有创建任何实例对象 趴着睡退出
Int是基本数据类型, Integer为int对应的封装类型。 int的默认值为0, 而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别 家都没去
作用域 当前类 同一包 子类 其他包 Public(公开的 √ √ √ √ Protected(受保护的 √ √ √ × Default(默认的 √ √ × × Private(私有的 √ × × × 类包子其 那包紫琪 公受默私 公司没收
答:Overload是重载的意思, Override是覆盖的意思,也就是重写。
Override覆盖要注意以下的几点: 1.覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;
2.覆盖的方法的返回值必须和被覆盖的方法的返回值一致;
3.被覆盖的方法不能为private, 否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。
5.覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类; 表反派附议
overload要注意以下的几点: 1.重载只和参数列表有关。例如,不同的参数类型,不同的参数个数,不同的参数顺序 2.不能通过访问权限、返回类型、抛出的异常进行重载; 3.方法的异常类型和数目不会对重载造成影响; 4.对于继承来说,如果某一方法在父类中是访问权限是priavte,那么就不能在子类对其进行重载,如果定义的话,也只是定义了一个新方法,而不会达到重载的效果。 才不要·对喷
1.抽象类可以有构造方法,接口中不能有构造方法。
2.抽象类中可以有普通成员变量,接口中没有普通成员变量
3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
5.抽象类和接口中都可以包含静态成员变量, 抽象类中的静态成员变量的访问类型可以任意, 但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。 5. 一个类可以实现多个接口,但只能继承一个抽象类
接口中不能有构造方法 接口中没有普通成员变量 接口中的所有方法必须都是抽象的,不能有非抽象的普通方法 接口中的抽象方法只能是public类型的,并且默认即为public abstract类型 接口中定义的变量只能是public static final类型,并且默认即为public static final类型
不是,基本数据类型包括byte、int、char、long、float、double、boolean和short。 java.lang.String类是final类型的, 因此不可以继承这个类、不能修改这个类。
为了提高效率节省空间, 我们应该用StringBuilder类
答:创建了两个, “xyz” 是一个, new String 是一个, 存储的位置不一样,前者存储在常量池中,后者在堆中分配存储空间。 处分
答案: (String做字符串拼接会产生多个对象, 加大系统的开销。 而StringBuilder做字符串拼接只会产生一个对象,大大提高了频繁拼接字符串的效率) 参加真高
答案:(创建了一个对象) 编译可以对字符串常量直接相加的表达式进行优化, 不必要等到运行期去进行加法运算处理, 而是在编译时去掉其中的加号, 直接将其编译成一个这些常量相连的结果。 不包邮 不对劲,饿不起,自己
答案: (List: 存储的元素有序、 可重复、 允许值为空 Map:以键值对形式存储元素, 键不能重复, 值可重复 Set:存储的元素无序、 不可重复)
来嘛死人 有序重复 值为空
答案:(ArrayList底层是数组, LinkedList底层是双向链表。 ArrayList查找快增删慢, LinkedList查找慢增删快