阿里Java软件开发工程师Java基础面试题集合

1.如果main方法被声明为private会怎样/strong>
能正常编译,但运行时会提示“main方法不是public”,运行报错,private的权限不足。

拓展:
public 公共的,谁都可以调用
private 是私有的,不能被其他类或方法调用
protected 是受保护的,子类,父类可以调用

阿里Java软件开发工程师Java基础面试题集合

7.如果去掉了main方法的static修饰符会怎样/strong>
程序能正常编译。运行时会抛NoSuchMethodError异常。

拓展:

  1. 在类中,变量的前面有修饰符static称为静态变量(类变量),方法的前面有修饰符static称为静态方法(类方法)。静态方法和静态变量是属于某一个类,而不属于类的对象。

  2. 如果一个方法没有用static来修饰的话就说明这是一个成员方法,只能通过对象来调用这个方法

  3. 在Java程序运行时,是没有实例化任何对象的,只能通过调用类方法来运行main方法,所以会用static来修饰

8.为什么oracle type4驱动被称作瘦驱动/strong>
oracle提供了一个type 4 JDBC驱动,被称为瘦驱动。
这个驱动包含了一个oracle自己完全用Java实现的一个TCP/IP的Net8的实现,因此它是平台独立的,可以在运行时由浏览器下载,不依赖任何客户端 的oracle实现。客户端连接字符串用的是TCP/IP的地址端口,而不是数据库名的tnsname。

9.介绍一下finalize方法
final: 常量声明。 finally: 处理异常。 finalize: 帮助进行垃圾回收。

接口里声明的变量默认是final的。final类无法继承,也就是没有子类。这么做是出于基础类型的安全考虑,比如String和Integer。这样也使得编译器进行一些优化,更容易保证线程的安全性。final方法无法重写。final变量的值不能改变。finalize()方法在一个对象被销毁和回收前会被调用。finally,通常用于异常处理,不管有没有异常被抛出都会执行到。比如,关闭连接通常放到finally块中完成。

10.什么是Java API/strong>
(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

拓展:
GUI API包含的类分为三个部分:组件类(component class) 容器类(container class),和辅助类(helper class)

  • 组件类是用来创建用户图形界面的,例如JButton,JLabel,JTextField.

  • 容器类是用来包含其他组件的,例如JFrame,JPanel

  • 辅助类是用来支持GUI组件的,例如Color,Font

11.GregorianCalendar类是什么东西/strong>
GregorianCalendar提供了西方传统日历(公历)的支持。

12.ResourceBundle类是什么/strong>
ResourceBundle用来存储指定语言环境的资源,应用程序可以根据运行时的语言环境来加载这些资源,从而提供不同语言的展示。

13.为什么Java里没有全局变量/strong>
全局变量是全局可见的,Java不支持全局可见的变量,因为:全局变量破坏了引用透明性原则。全局变量导致了命名空间的冲突。

14.如何将String类型转化成Number类型/strong>
Integer类的valueOf方法可以将String转成Number。下面是代码示例: 、
String numString = “1000″;
int id=Integer.valueOf(numString).intValue();

15.SimpleTimeZone类是什么/strong>
SimpleTimeZone提供公历日期支持。

16.while循环和do循环有什么不同/strong>
while结构在循环的开始判断下一个迭代是否应该继续。do/while结构在循环的结尾来判断是否将继续下一轮迭代。do结构至少会执行一次循环体。

17.Locale类是什么/strong>
Locale类用来根据语言环境来动态调整程序的输出。 、

18.面向对象编程的原则是什么/strong>
主要有三点,多态,继承和封装。

  • 封装性,把相关的数据封装成一个“类”组件
  • 继承性,是子类自动共享父类属性和方法,这是类之间的一种关系
  • 多态,增强软件的灵活性和重用性

19.介绍下继承的原则
继承使得一个对象可以获取另一个对象的属性。使用继承可以让已经测试完备的功能得以复用,并且可以一次修改,所有继承的地方都同时生效。

20.什么是隐式的类型转化/strong>
隐式的类型转化就是简单的一个类型赋值给另一个类型,没有显式的告诉编译器发生了转化。并不是所有的类型都支持隐式的类型转化。

隐式转换(也就是自动转换)就是小转大:例如double a=1;1是一个整型,但是在赋度值和运算的时候会自动转换成回double a=1.00这种情况,显示转换(也叫强制转换)答就是大转小:例如int a = (int)12.4,这种装换会丢失精度

21.sizeof是Java的关键字吗/strong>
不是,sizeof是C/C++里面的关键字。

22.native方法是什么/strong>
native方法主要用于加载文件和动态链接库,是非Java代码实现的方法,需要用c语言重写。

23.在System.out.println()里面,System, out, println分别是什么/strong>
System是系统提供的预定义的final类,out是一个PrintStream对象,println是out对象里面一个重载的方法。

  • 向控制台打印指定内容
  • System – 发出系统指令
  • out – 向外输出的动作
  • println – 打印后换行
  • () – 是方法的标志

24.封装,继承和多态是什么/strong>
封装是指隐藏对象的属性和实现细节
仅仅对外提供公共的访问方式。
好处:
1、 提高安全性
2、 提高重用性

继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
Java继承是使用已存在的类的定义作为基类/父类/超类,新类的定义可以增加新的数据或新的功能,也可以用父类的功能。
但不能选择性地继承父类(超类,基类)。
这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。

来源:XING_Gou

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年3月25日
下一篇 2020年3月25日

相关推荐