java程序员面试基础题part1

 

1基本概念

1.1java语言有哪些优点

1)java为纯面向的语言

2)平台无关性,在任何平台上都能正确的运行代码

3)java内置了很多库,通过这些库,能简化开分人员的程序设计工作

4)提供对web开发的支持

5)有着良好的案情uanxing和健壮性

6)java是通过c++语言改进并重新设计而来的人

 

1.2java与C和C++有什么异同点

java和C++都是面向对象语言。都是用了面相对象思想,比如封装,继承,多态

需要注意的是·二者的区别

1)java为解释型语言,运行过程为源代码通过java编译器产生字节码,然后由JVM解释执行,而C是编译型语言,源代码经过编译和连接之后就生成了可以执行的二进制代码,所以java执行速度更慢,但是可以跨平台执行

2)java为春面向对象语言,所有的代码都要在类中实现,而C++可以设置全局函数

3)java没有指针

4)java不支持多重继承,只能用接口实现

5)java不需要考虑对象要占用的内存空间如何分配,用finalize方法就可以

 

1.3为什么需要public static void main(String[] args)

JVM运行时,首先是查找main方法并且执行,而要执行一个类的方法,就需要先实例化一个类的对象,然后通过对象来调用方法。但是由于main是程序的入口方法,所以不需要实例化

另外,main方法的前面修饰符顺序可以调换,而每个类都可以声明main方法.,但是只有与文件名相同的main方法才会被认定为入口方法。‘’

 

1.4静态块

如果在main方法之前通过静态块声明的东西,静态块在类加载之前就会被调用,例如在主方法前面加上static{

System.out.println("111"}这样的话,这个静态块也会在主方法调用前被实现。

并且要知道,静态块在程序中(同样的)只能被执行一次。

 

1.5实例化对象

1)首先,所有的成员变量都要进行初始化

2)调用构造函数

初始化原则

1)静态优先于非静态

2)父类优先于子类

3)按照定义顺序

顺序;父类静态变量 父类静态块 子类静态变量 子类静态块 父类静态变量 父类非静态块 父类构造函数

子类的同上

 

1.6构造函数

1)构造函数必须与类的名字相同,而且不能有返回值

2)每个类可以有很多个构造函数

3)构造函数可以有多个参数

4)构造函数一般会与new一起调用

5)构造函数不能被继承,因此不能被覆盖,但是构造函数能够被重载

6)子类可以通过super关键字进行显示的调用父类的构造函数

另外记得constructor是构造器即构造函数体

调用构造函数的情况是这样的Class c=new Class();

 

1.7java的反射机制

java的反射机制提供的功能有:得到一个对象所述的类,获取一个类的所有成员变量和方法,在运行时候进行创造对象,在运行时调用创造的方法,这个是关键所在

在反射机制中,比较重要的是class类,如何获取class类

1)class.forName();

2)类名.class

3)实例.getClass();

java常见的创建对象方式有以下几种

1)通过new进行实例化对象

2)通过反射机制进行创建对象

3)clone创建

4)反序列化创建

 

1.8new和newinstance区别

newinstance,只要是继承一个类,换用其他类的名称也可以

换句话说,从JVM上面理解,newinstance要对类进行加载,而且要进行连接

具体格式如下

Class c=Class.forName("Sub");

Base b=(Base)c.newInstance();

b......;

此时调用的是sub类的对象

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值