Java基础面试题50题

1,""空字符串的作用

package com.neuedu.nineteen;

public class Test {
    public static void main(String[] args) {
        String s="";
        for (char  i = 'a'; i < 'd'; i++) {
            s=s+i;//输出abc
//            s=i+s;//输出cba
        }
        System.out.println(s);
    }
}

如题所示,当进行s=s+i的时候,s在前和s在后输出的结果是相反的。空字符串在前时是正着输出,空字符串在后是逆着输出

2.short s1 = 1 s1 = s1 + 1有什么错 short s1 = 1 s1 += 1有什么错

第一种情况,s1是short类型,在计算s1=s1+1时,前边是short型,后边是int型,不能自动转换。由于没有强转,要报类型错误。

第二种情况,使用了+=这个java自带的运算符,java内部会对其进行处理,所以编译通过,不会报错。

3.说说&和&&的区别。

&和&&都表示与的意思,既表达式俩边都成立,结果才成立。

&&是逻辑运算符,&&有短路作用,既当表达式左边为假时,不需要计算右边,整个的结果直接为假;&没有

&是位运算符,&的左右俩边可以是布尔类型,也可以是数值;&&俩边只能是布尔类型

4.Integer与int的区别

int是八大基本数据类型之一,Integer是int的封装类。

int的默认值是0,Integer的默认值是null,此时的0代表这个数赋值0,而null代表没接收到这个值

Integer提供了与整数相关的操作,int没有

5.==与equals的区别

从表面上看,对于基本数据类型==是判断的值是否相等;对于引用数据类型是判断是否为同一个对象

从本质上看,是看是否为一个引用地址

equals是判断值是否相等

6.override(重写)和overload(重载)的区别

重载是在一个类中,方法名相同,参数列表不同(参数类型和参数个数)的一种现象

1.重载与返回值类型无关

2.不能通过访问修饰符进行重载

如下是重载:

public void a(int x){
        x++;
}
public int a(int x,int y){
        return x+y;
}
protected double a(double d){
        return d;
}

重写是在父子类中,子类重写父类的方法,要求方法名与参数列表,返回值类型完全相同。子类重写父类规范要在子类的方法前加注解@Override

1.重写的返回值类型可以改,但只能是父子类

例如:

public Father a(Father f){
? ? ? ? System.out.println("aaaaa");
? ? ? ? return f;
? ? }
 
?@Override
? ? public Son a(Father f){
? ? ? ? System.out.println("bbbbbb");
? ? ? ? Son s=(Son)f;
? ? ? ? return s;
? ? }

2.重写的访问修饰符得大于等于原来的

3.不能重写私有方法

4.参数列表的顺序与类型必须一样,变量名可不同

7.接口与抽象类的区别

抽象类是用abstract修饰的类,抽象类不能new对象。

接口是比抽象类还抽象的“类”

普通类:具体实现

抽象类:规范(抽象方法),具体实现

接口:规范(抽象方法)

区别:

1.抽象类中可以有抽象方法也可以有非抽象方法,接口中只能有抽象方法

2.抽象类中可以有成员变量,接口中只能有常量,用public static final修饰,默认可不写

3.抽象类有构造方法,接口没有构造方法

4.抽象类中的方法的访问修饰符可以是public,protected,默认;接口中方法的访问修饰符只能是public,并且默认值是public abstract

5.抽象类中可以有静态方法,接口中不能有静态方法(JDK1.8之后接口中增加了静态方法和默认方法)。(static是类名直接调用,abstract是子类实现创建对象调用,如果一起修饰,自相矛盾了)

6.一个类可以实现多个接口,只能继承一个抽象类

8.JDK,JRE,JVM的联系与区别

JDK是java开发工具包,JDK包括JRE,类库,java工具

JRE是java运行环境,JRE包括JVM,JRE里有运行.class的java.ex

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值