- 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呀
链接:牛客网公司真题_免费模拟题库_企业面试|笔试真题
来源:牛客网