是否可以从一个static方法内部发出对非static方法的调用?
答:不可以,非static方法的调用需要对象的参与,而static方法是通过类来进行访问的
Integer与int的区别
答:从数据类型上来看,Integer属于引用数据类型,int属于基本数据类型。
从存储方式上来看,Integer实际上是对象的引用,指向存储在堆内存中的Integer对象;而int是直接存储数据。
Integer的默认值是null;int默认值是0。
Math.round(11.5)等於多少?Math.round(-11.5)等於多少?
答:Math.round(11.5)=12;Math.round(-11.5)=-11
Math.round的规则:
当小数点后一位=5时,正数运算结果为整数部分+1,负数为整数部分
当小数点后一位<5时,无论正负数结果都是整数部分
当小数点后一位>5时,无论正负数运算结果是整数部分绝对值+1,符号不变
Overload和Override的区别?Overloaded的方法是否可以改变返回值的类型?
答:Overload是方法重载,Override是方法重写(覆盖);
overload存在于同一个类中,override只能存在于父类和子类中。
overload参数类型、参数个数、返回值至少一个不同,override方法名、参数、返回值必须相同。
overload中方法的异常类型和数目不会对重载造成影响,override中子类不能抛出比父类更多的异常
overload中重载的方法与修饰符无关,override在进行继承时子类的访问权限不能比父类低
由于方法的重载与修饰符和返回值是无关的,所以overload是可以改变返回值类型的
接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concreteclass)?抽象类中是否可以有静态的main方法?
答:接口可以继承接口
抽象类可以实现接口
抽象类可以继承实体类
抽象类中可以有静态的main方法
Java中实现多态的机制是什么?
答:子类继承父类,类实现接口。方法的重写Overriding和重载Overloading是Java多态性的不同表现,只不过重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。
abstractclass和interface语法上有什么区别?
答:
抽象类可以写所有的方法,只是抽象类的构造方法在实例化的时候必须赋值子类对象;接口不能写构造方法
抽象类可以定义普通的成员变量;接口只能定义public static final修饰的变量,即常量
抽象类中可以写静态方法;在jdk8之前,接口只能写抽象方法,但从jdk8开始,接口中就可以定义静态方法了
抽象类的方法的访问类型可以是public、protected和default;接口中方法的访问类型只能是public,即默认的public abstract
一个类可以实现多个接口,但只能继承一个抽象类;并且接口可以继承多个类,但抽象类只支持单继承。
abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
答:
方法不能同时被static和abstract修饰:
一是由于static修饰的方法必须有方法体而abstract修饰的方法没有方法体,两者互相矛盾;
二是因为abstract修饰的方法必须被重写(overwrite)而static修饰的静态方法不能被重写(overwrite)
方法不能同时被native和abstract修饰:
native修饰方法只有方法的声明,没有方法的实现,它将方法的实现交给本地操作系统
abstract修饰的方法也只有方法的声明,没有方法的实现,但它将方法的实现交给子类
如果这两者同时修饰同一个方法就会产生矛盾:究竟是把方法交给本地实现还是类实现,
所以这两者不能同时修饰一个方法
方法不能同时被synchronized和abstract修饰:
synchronized修饰的方法称为同步代码块,必须拥有方法体;而abstract修饰的方法没有方法体
内部类可以引用它的包含类的成员吗?有没有什么限制?
答:
只有静态内部类有例外:
静态内部类:当内部类是静态内部类时,可以引用包含类的成员变量,但必须有static修饰
内部类:当内部类时普通的成员内部类时,可以访问包含类中的所有任何成员变量
String s = "Hello";s = s + "world!";这两行代码执行后,原始的String对象中的内容到底变了没有?
答:没有变,当我们执行第一条语句String s = "Hello"时,引用s第一次指向的内容是“Hello”;当执行了+操作后,引用s的内存地址发生改变,并指向“World!”,此时String对象中的内容并没有改变。
原文:https://www.cnblogs.com/javaisbest/p/11606980.html