作为一名初涉这个行业的新手,学习java之后的一些总结。
1.什么是java虚拟机?为什么java语言被称作是“与平台无关的编程语言”?
java虚拟机又称jvm,是一个可以执行java字节码文件的虚拟机进程,java源文件被编译成能被jvm执行的字节码文件;
java语言是“跨平台”的语言,java被设计成允许应用程序在任意平台的运行,而jvm让这变成可能。
2.JDK和JRE的区别?
JDK:java开发工具包,包括了jre,编译器和其他的一些工具;
JRE:java运行环境,包括了jvm和java程序所需的核心类库;
如果只想执行程序,只需安装jre即可,但是如果想编写程序并执行,就需要jdk。
3.成员变量和局部变量的区别?
①在类中的位置不同:
成员变量:类中方法外
局部变量:方法中或者方法声明上
②在内存中的位置不同:
成员变量:堆内存
局部变量:栈内存
③生命周期不同:
成员变量:随着对象的创建而存在,随着对象的消失而消失;
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失;
④初始化值不同:
成员变量:有默认值,为null;
局部变量:没有默认值,必须赋值后才能使用;
当成员变量和局部变量的名称相同时,采用就近原则;
4.形式参数与返回值类型的问题?
①形参的改变会影响实参吗?
当形参是基本类型时,不会;
当形参是引用类型时,会;
当形参是基本类型时,不会;
当形参是引用类型时,会;
②形式参数是引用类型时:
类名作为形式参数,实际需要的该类的对象;
抽象类作为形式参数,实际需要的该抽象类的子类对象;
接口作为形式参数,实际需要的该接口的实现类对象;
③返回值类型是引用类型时:
引用类型:
类:返回的是该类的对象
抽象类:返回的是该抽象类的子类对象
接口: 返回的是该接口的具体实现类的对象
5.匿名对象怎么调用?有什么好处?
匿名对象调用方法,但是仅适合调用一次,调用多次不合适,因为每调用一次,就相当于在内存中开辟一个空间,占用内存;
匿名对象调用完毕就是垃圾,会被垃圾回收器回收;