1. Java变量及其作用范围
Java变量可以分为:静态变量、成员变量和局部变量3种。静态变量指的是在类中用static修饰的变量,它的生存周期是由类来决定的。成员变量则是在类中没有用static修饰的变量,它的生存周期是由对象来决定的。局部变量则是定义在方法里的变量、方法里的参数或代码块里定义的变量,它们的作用范围是用大括号{}来界定的。
2. Java的变量分哪两种大的数据类型?
基本数据类型和引用数据类型。它们最大的区别在于,引用数据类型存放的是数据所在的地址,而基本数据类型则是直接存放数据的值。
3. Java包含哪些基本数据类型及其包装类
Java一共提供了8中基本数据类型及其包装类,如下表所示,它们均可以实现相互的转换。
基本数据类型 | 包装类 |
byte | Byte |
short | Short |
int | Integer |
float | Float |
double | Double |
long | Long |
boolean | Boolean |
char | Character |
4. 如何理解Java中的装箱和拆箱?
Java中的装箱和拆箱指的是基本数据类型和包装类的自动相互转换,它为开发者提供了方便,开发人员也可以不使用它,而手动的进行类型转换。并且,这个自动转换的过程是在编译阶段。
5. Java的引用和C++的指针有什么区别?
(1)类型:引用其值为地址的数据元素, Java封装了的地址, 可以转成字符串查看,长度可以不必关心。C++指针是一个装地址的变量,长度一般是计算机字长,可以认为是一个int。
(2)所占内存:引用声明时没有实体,不占空间。C+指针如果声明后会用到才会赋值,如果用不到不会分配内存。
(3)类型转换:引用的类型转换,也可能不成功,运行时抛异常或者编译就不能通过。C++指针只是个内存地址,指向哪里,对程序来说还都是一个地址。但可能所指的地址不是程序想要的。
(4)初始值:引用初始值为java关键字null。 C++指针是int,如不初始化指针,那它的值就不是固定的了,这很危险。
(5)计算:引用是不可以计算的。C++指针是int,,它可以计算,如++或--所以经常用指针来代替数组下标。
(6)控制:引用不可以计算,所以它只能在自己程序中,可以被控制。C++指针是内存地址,也可以计算,所以它有可能指向了一个不属于自己程序使用的内存地址,对于其他程序来说是很危险的,对自己程序来说也是不容易被控制的。
(7)内存泄露: Java引用不会产生内存泄露。C++指针是容易产生内存泄露的,所以程序员要小心使用,及时回收。
(8)作为参数: Java 的方法参数只是传值,引用作为参数使用时,回给函数内引用的值的COPY,所以在函数内交换两个引用参数是没意义的,因为函数只交换参数的COPY值,但在函数内改变个引用参数的属性是有意义的,因为引用参数的COPY所引用的对象是和引用参数是同一个对象。C++指针做为参数给函数使用,实际上就是它所指的地址在被函数操作,所以函数内使用指针参数的操作都将直接作用到指针所指向的地址(变量,对象,函数等)
Java的引用于C++的指针主要有以上区别。本质上,它们两者都是想通过一个叫做引用或者指针的东西,找到要操作的目标,方便在程序中操作。所不同的是Java的办法更加安全、方便一些,但失去了C++的灵活,也算是对指针的一种包装和改进。
6. 请简述Java中的main方法
main()方法是Java程序的执行入口,它是一个定义在类中、公开的、静态的、无返回值的、参数为一个字符串数组的方法,它的参数args与执行参数一一对应。
7. Java中的equal和==的区别是什么?
equal和==两者均为表示相等的意思,但是它们相等的含义却有所区别。
==运用在基本数据类型的时候,通过比较它们实际的值来判定是否相等;而用比较引用类型的时候,则是比较两个引用的地址是否相等,也就是是否指向同一个对象。
equal方法是java.lang.Object的方法,也就是所有的Java类都会有的方法,它可以被程序员覆盖重写,通过自定义的方式来判定两个对象是否相等。对于字符串java.lang.String类来说,它的equal方法用来比较字符串的字符序列是否完全相等。
8. Java提供了哪几种循环结构?它们各自的特点是什么?
Java提供了3中循环结构,即for,while和do…while语句。它们各自适用于不同的情况,其中for循环适合于能确定循环次数的循环结构。while语句则适合单条件的循环而do…while语句在执行某段代码之后,再循环的时候更适合一些。
9. Java中的三元运算符是什么?
Java的唯一一个三元运算符为表达式1?表达式2:表达式3。在?之前是一个布尔表达式,它只能返回true或false,如果表达式1返回true则执行表达式2,否则执行表达式3,并产生相应的返回值。它的主要作用为了使代码更简洁。
10. Java中的注释有哪些?
如果不算Annotation,Java的注释有3种,即行注释、块注释和文档注释。它们往往适合于不同的地方的注释,其中文档注释比较特殊,它的注释信息可以进入到javadoc文档中
但如果把Annotation也算作Java的注释的话,Java就有4种注释。Annotation与其它注释的本质区别就在于它会进入到编译层,并对程序结果产生影响。它最普遍的作用是用来替代XML提供一些配置信息,例如:JPA、Spring等框架的配置信息就可以通过Annotation来提供。