JAVA面试知识点2

  • Integer和int的区别是:int是八大数据类型之一,而Interget是interesting的包装类,int默认伟0,Integer因为是引用数据类型所以没有赋值的时候默认是null。
  • Java初始化的加载顺序是: 父类静态尘缘变量 父类静态代码块 子类静态成员变量 子类静态代码块 父类非静态成员变量 父类非静态代码块 父类构造函数 子类非静态成员变量,子类非静态代码块 子类构造函数 ,下面注释标注了执行的顺序:
class StaticStuff{ 
    static int x=10; //1
    static { x+=5; } //2
    public static void main(String args[ ]) 
        { System.out.println(“x=” + x); }  //3
    static { x/=3;} }  //2
  • 下面这段代码最后的输出是什么? 
    public class Test{
        private static int i=1; 
        public int getNext(){ 
            return i++; } 
        public static void main(String [] args){ 
            Test test=new Test(); 
            Test testObject=new Test(); 
            test.getNext(); 
            testObject.getNext(); 
            System.out.println(testObject.getNext()); 
        } 
    }

    首先需要注意的是int 是static的,所以不管有多少对象,都共用一个变量。这里getNext方法被调用了三次,所以进行了三次i++的操作,但是要注意的是最后一次调用是先返回,然后再执行+1,i++代表的就是+1的操作是在这行代码执行完毕之后才执行的。

  • Sttring的底层是char数组,他的length()返回数组大小,而unicode中一个汉字是可以用一个char来表示的,一个汉字是等于一个字符char的。一个汉字等于两字节(byte)

  • 几个关键字的访问的范围大小分别是 public>protected>default>private 分别对应包外 >子类> 包内部>类内部 

  • package Test;
    public class Test {
        private static void test(int[] arr) {
            for (int i = 0; i < arr.length; i++) {
                try {
                    if (arr[i] % 2 == 0) {
                        throw new NullPointerException();
                    } else {
                        System.out.print(i);
                    }
                } finally {
                    System.out.print("e");
                }
            }
        }
     
        public static void main(String[]args) {
            try {
                test(new int[] {0, 1, 2, 3, 4, 5});
            } catch (Exception e) {
                System.out.print("E");
            }
        }
     
    }

    这段代码的执行如下图所示,首先finally的代码无论代码是否异常都会执行,并且会先于throw和catch,所以先输出了e,然后try里面的异常让main函数捕获了之后打印了E。

  •  
  • (short)10/10.2*2 这个short强转的是10,然后由于式子中有浮点数,所以答案会是double
  • 类之间的几种常用关系

USES-A:依赖关系,A类会用到B类,这种关系具有偶然性,临时性。但B类的变化会影响A类。这种在代码中的体现为:A类方法中的参数包含了B类。

关联关系:A类会用到B类,这是一种强依赖关系,是长期的并非偶然。在代码中的表现为:A类的成员变量中含有B类。

HAS-A:聚合关系,拥有关系,是关联关系的一种特例,是整体和部分的关系。比如鸟群和鸟的关系是聚合关系,鸟群中每个部分都是鸟。

IS-A:表示继承。父类与子类,这个就不解释了。
本项作者:A呀
链接:牛客网公司真题_免费模拟题库_企业面试|笔试真题
来源:牛客网

  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值