Chapter 2 General Questions about Java

10 篇文章 0 订阅

第二章节 java的常见问题

2.1 什么是jvm?java为什么被称为独立于平台的编程语言?
java虚拟机(jvm)是可以执行java字节码。每个java源文件被编译为字节码文件并由️jvm执行。是不用被重写或重新编译,java被设计构建并运行在任何平台上,不需要重写或者重新编译。java虚拟机意识到具体的指示长度和其他特性潜在的硬件平台。
2.2 jdk和jre之间的区别
java运行环境(jre)一般是java程序被执行的的jvm。它同样也包括执行applet的浏览器插件。java开发工具包(jdk)是全功能的java软件开发工具包,包括jre、编译器和java doc、javadebugger这类工具,为了使用者能开发、编译、执行java应用。
2.3 static关键字的含义?私有或静态方法可以被重载吗?
static关键字使得一个成员变量或方法在没有获得类的实例化对象的时候,被访问。在java中,用户不能重载静态方法。方法重载基于运行期的动态绑定,静态方法则是在编译期进行静态绑定。静态方法和类的实例没有联系。
2.4 在静态上下文中能否访问非静态对象
静态变量属于类,在每个实例中它的值都是相同的。静态变量的初始化在jvm加载类的时候完成。如果代码尝试访问非静态变量,编译器会报错,因为变量没有被创建,并且没有被包含在实例中。
2.5 java支持那些数据类型?什么是装箱和拆箱?
java的8种原始数据类型是:byte、short、int、long、float、double、boolean、char
装箱是由java编译器在原始类型和她们对应的对象包装类之间进行的自动转变。例如,编译器把int转换为Integer,double转换为Double等。如果反方向的转换,这个操作就被称为拆箱。
2.6 java中的重写和重载是什么?
同一个类中,两个及以上的方法有同样的函数名,但是参数不同,方法会重载。另外,在子类和父类之间,子类重定义父类的方法,发生重写。被重写的方法必须有相同的返回值类型、参数类型、方法名。重写的方法不会限制方法的它重写方法的访问。
2.7 java中的构造函数、构造函数重载、拷贝构造函数
创建对象的时候会引起构造函数。每个类都有构造函数。如果没有给类定义一个构造函数,java编译器(javac)会创建一个默认的构造函数。构造函数的重载和方法的重载是类似的。一个单独的类会创建不同的构造函数。每个构造函数有独特的参数列表。最终,java类似c++,会支持拷贝构造函数,如果你自己不写,java不会创建一个拷贝构造函数。
2.8 java支持多继承吗?
java不支持多继承,每个类只能继承一个类,但是可以实现不止一个接口。
2.9 接口和抽象类的区别是什么?
java提供并支持抽象类和接口。它们的实现有同样的特性,但是它们在以下的特性有所区别:
接口中的所有方法都是抽象的。另一方面,抽象类可能包括抽象和非抽象的方法。
一个类可能实现一系列的接口,但是只能即成一个抽象类。
实现接口的类,必须实现接口声明的所有方法。但是,一个类可能没有实现抽象类的所有声明的方法。尽管,有的子类也必须声明为抽象的。
抽象类可能会实现接口,没有提供接口方法的实现。
java接口中的定义的变量默认为final。抽象类可能包括非final的变量。
java接口的成员变量默认为public。抽象类的成员变量默认为private、protected、public。
接口是抽象的,并且不能被实例化。一个抽象类同样不能实例化,但它如果包含main方法,可以被调用。
2.10 引用传递和值传递是什么?
如果一个对象被值传递,其实是对象的拷贝被传递了。因此,即使对对象进行了改变,也不会影响到原来的值。如果对象是由引用传递,意味着时机会想没有被换地,传递的是对象的引用。因此,任何外部的方法可以被改变,在所有的地方都会反射。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值