Java实习生常规技术面试题每日十题Java基础(二)

目录

1. JAVA 的反射机制的原理。

2.静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同?

3.如何将String类型转化成Number类型。

4.什么是值传递和引用传递?

5.Java的访问修饰符是什么?

6.Java 基础数据类型有哪些?

7.hashCode()和equals()方法的重要性体现在什么地方?

8.switch 中用于判断的表达式,可以用哪些数据类型? 

9. char型变量中能不能存贮一个中文汉字?为什么? 

10.静态变量和实例变量的区别? 


1. JAVA 的反射机制的原理。

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。

2.静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同?

内部类是类中类(内部类不为同一包的其他类可见,具有很好的封装性),分为静态内部类,成员内部类,局部内部类以及匿名内部类;局部内部类写在方法里面;用到最多的就是匿名内部类。 

1. 静态的内部类称为嵌套类,嵌套类不能直接引用外部类的non-static属性和方法,创建嵌套类对象时不依赖外部类对象;

2. 静态内部类没有了指向外部的引用,和C++的嵌套类很相像了,Java内部类和C++嵌套类最大的不同在于是否具有指向外部引用这点;

3. 在任何非静态内部类中,都不能有静态数据、静态方法或者又一个静态内部类(也就是不止一层),然后静态内部类可以拥有这一切。

3.如何将String类型转化成Number类型。

Integer类的valueOf方法可以将String转成Number

4.什么是值传递和引用传递?

对象被值传递,意味着传递了对象的一个副本。因此,就算是改变了对象副本,也不会影响源对象的值。

对象被引用传递,意味着传递的并不是实际的对象,而是对象的引用。因此,外部对引用对象所做的改变会反映到所有的对象上。

5.Java的访问修饰符是什么?

在Java编程语言中有四种权限访问控制符,这四种访问权限的控制符能够控制类中成员的可见性。 

public是公共的,被public所修饰的成员可以在任何类中都能被访问到。

protected是受保护的,受到该类所在的包所保护。 

friendly是友好的,即在成员的前面不写任何的访问修饰符的时候,默认就是友好的。所谓友好的,是对同一package的类友好。  

private是私有的,即只能在当前类中被访问到,它的作用域最小。

6.Java 基础数据类型有哪些?

byte(字节)   short(短整型)  int(整型)  long(长整型)  float(浮点型)  double(双精度)        char(字符型)  boolean(布尔型) 

7.hashCode()和equals()方法的重要性体现在什么地方?

Java中的HashMap使用hashCode()和equals()方法来确定键值对的索引,当根据键获取值的时候也会用到这两个方法。如果没有正确的实现这两个方法,两个不同的键可能会有相同的hash值,因此,可能会被集合认为是相等的。而且,这两个方法也用来发现重复元素。所以这两个方法的实现对HashMap的精确性和正确性是至关重要的。

8.switch 中用于判断的表达式,可以用哪些数据类型? 

1. int

2.char

3.byte

4.short

5.枚举

6. String: PS:对JDK版本有要求,必须为1.7及以上版本

9. char型变量中能不能存贮一个中文汉字?为什么? 

Java里采用了Unicode编码格式,Unicode编码中一个char型占用2个字节,而一个汉字也是占用2个字节,所以可以存储中文汉字。

备注:C语言里,char占用1个字节,不用存汉字。

10.静态变量和实例变量的区别? 

在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。

在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。

 

其他面试题:

Java实习生常规技术面试题每日十题Java基础(八)

Java实习生常规技术面试题每日十题Java基础(七)

Java实习生常规技术面试题每日十题Java基础(六)

Java实习生常规技术面试题每日十题Java基础(五)

Java实习生常规技术面试题每日十题Java基础(四)

Java实习生常规技术面试题每日十题Java基础(三)

Java实习生常规技术面试题每日十题Java基础(二)

Java实习生常规技术面试题每日十题Java基础(一)

相关文章

暂无评论

暂无评论...