java开发工程师最基础的知识_java开发工程师笔试基础知识(一)

Java语言的优点

Java为纯面向对象的语言。Everything is boject。

平台无关性。一次编译,到处运行。java 为解释性语言,无论在Windows 还是linux上编译,由编译器编译的“中间代码”都会在Java 虚拟机(jvm)上解释执行,具有良好的跨平台,可移植性。

Java 提供了很多内置的类库,简化开发人员的程序设计工作。

提供了对Web应用的开发支持。

具有良好的安全性和健壮性。提供防止恶意代码攻击的安全机制(数组边界检测和Bytecode校验等),java的强类型机制、垃圾回收器、异常处理和安全检查机制使得java语言编写的程序由很好的健壮性。

去除了C++语言中难以理解、容易混淆的特性。例如头文件、指针、单元、运算符重载、虚拟基础类、多重继承等。

PS:Java语言是由 C++语言改进并重新设计而来的。

Java与C/C++的异同

同:

java 与C++ 都是面向对象语言,都使用了面向对象思想(封装、继承、多态等),都有很好的可重用性。

异:

Java 为解释性语言,源代码经过编译器编译为字节码,然后由JVM解释执行;而C/C++ 为编译型语言,源代码经过编译和连接后生成可执行的二进制代码。因此java的运行速度比C/C++慢,但是C/C++不能跨平台。

java为纯面向对象语言,除基本数据类型外(int、float等)所有类型都是类。C++兼具面向对象和面向过程编程的特点,可以定义全局变量和全局函数,但是java语言中不存在全局变量和全局函数。

与C/C++比,java没有指针。

java不支持多重继承,但是可以通过接口实现多继承的目的。C++支持多继承。

C++需要开发人员管理内存分配(包括申请与释放)(把释放资源的代码放在析构函数中),而java提供垃圾回收器来实现垃圾自动回收(自动调用对象的finalize()方法释放无用对象的内存)。

C++支持运算符重载,java不支持。

C++支持预处理(头文件、宏定义等),java不支持(但import机制类似预处理)。

C++支持默认函数参数,java不支持默认函数参数。

C/C++支持goto语句,但java不提供goto语句,但是java中goto是保留关键字。

java 不支持自动强制类型转换,必须由开发人员显式强制类型转换。C/C++支持自动强制类型转换,这会导致程序的不安全。

java的平台无关性,使得每种数据类型都分配固定长度,如int 总是32位,而C/C++同一个数据类型在不同的平台上会分配不同的字节数。

java提供对注释文档的内建支持,酸麻文件也可以包含他们自己的文档。

java 包含一些标准库,完成特定任务,而C++ 依靠一些非标准的、由其他厂商提供的库。

为什么需要public static void main(String[] args) 这个方法?

此为java程序的入口方法,JVM在运行程序时,会首先查找main()方法。static表明main()方法是一个静态方法,即代码是存储在静态存储区,只要类被加载后,就可以使用该方法而不需要通过实例化对象来访问,可以通过 类名.方法() 方式访问,字符串数组参数args为开发人员在命令行状态下与程序交互提供了一种手段。

如何实现在main()方法执行前输出"Hello World"?

程序运行时最先加载的是main()方法,但是并不一定是程序运行时第一个被执行的模块。

ebc4a446e68610f9cb1345bd4b141f75.png

运行结果为:

Hello World1

Hello World2

Java程序的初始化顺序是怎样的?

实例化对象时,对象所在类的成员变量先于所在类的构造函数初始化。

静态对象(变量)优先于非静态对象对象(变量)初始化,其中,静态对象(变量)只初始化一次,非静态对象(变量)可能会初始化多次。

父类优先于子类初始化。

成员变量定义的顺序进行初始化。

执行顺序:父类静态变量、父类静态代码块、子类静态变量、子类静态代码块、父类非静态变量、父类非静态代码块、父类构造函数、子类非静态变量、子类非静态代码块、子类构造函数。

Java中的作用域有哪些?

类的成员变量的作用范围与类的实例化对象的作用范围相同。

被static修饰的成员变量是静态变量或全局变量,静态变量不依赖特定的实例,被所有实例共享。只要一个类被加载,JVM就会给类的静态变量分配存储空间,可以通过类名和变量名来访问静态变量。7bb673b3390f0dfdace6683454c33d7a.png

一个Java文件中是否可以定义多个类?

可以,但是最多只能有一个类被public修饰,并且这个类的类名与文件名必须相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值