您的位置:首页 > 职场人生

java面试常见基础知识点(一)

2016-12-22 09:51 375 查看
1,Java有几种技术架构?
JAVAEE:企业级开发,针对web程序开发
JAVASE:桌面应用程序开发
JAVAME:开发电子消费产品和嵌入式设备

2,JDK和JRE的区别
JDK:Java Development Kit,java的开发和运行环境,java的开发工具和JRE。
JRE:Java Runtime Enviroment,java程序的运行环境,java运行所需要的类 + JVM。

3,javac和java命令分别有什么作用?
javac:启动java的编译程序,对指定扩展名的.java文件进行编译。生成jvm可识别的字节码文件,即class文件。
java:负责运行,会启动jvm,加载运行时所需要的类库,并对class文件进行执行。

*4,一个“.java”源文件中是否可以包括多各类(不是内部类)?有什么限制?
可以有多个类,但只能有一个public,并且public的类名必须和文件名相一致。

5,什么是标识符?
在程序中自定义的名词。比如类型,变量名,函数名。包含0-9、a-z、&、_
注意:1)不能以数字开头。2)不能使用关键字。

6,基本数据类型有哪些?
byte、short、int、long、double、float、char、boolean

7,int和Integer有什么区别?
int是java提供的8中原始数据类型之一,默认值为0;Integer是java为int提供的封装类,默认值为null,
Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况。

8,&和&&的区别?
&:无论左边结果是什么,右边都参与运行
&&:短路与,如果左边为false,则右边不再执行

9,switch能够作用在int以外的类型上?
1)能作用在int、short、char、byte
2)JDK1.7以后可以作用在String上

10,short s1=1; s1=s1+1; 有什么错? short s1=1;s1+=1;有什么错?
前者:s1+1 会自动提升表达式的类型,所以结果是int类型,编译器将报告需要强制转换类型的错误。
后者:不会报错,+=是java语言规定的运算符,java编译器户对它进行特殊处理,因此可以争取编译

11,char类型变量能不能存储一个中文汉字?为什么?
char类型变量是用来存储Unicode编码的字符的,Unicode编码字符集中包含了汉字,所以char中当然可以存储汉字啦。
不过,如果某个特殊的汉字没有被包含在Unicode编码字符集中,那么char型变量就不能存储这个特殊汉字。
(即:char型变量能够存储包含在Unicode编码字符集中的汉字)

12,使用final关键字修饰一个变量时,是引用变量不能变,还是引用的对象不能变?
使用final关键字修饰一个变量时,是指引用变量不能变,引用对象所指的对象中的内容还是可以改变的。
例如:final StringBuffer hello= new StringBuffer("hello word"); 变量hello后面可以追加内容,不改变引用就可以。

13,"=="和"equals"方法究竟有什么区别?
==操作符专门用来比较变量的值是否相等也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型
的数据或两个引用变量是否相等,只能用==操作符。
equals方法是用于比较两个独立的对象的内容是否相同,就好比比较两个人的长相是否相同,它比较的两个多线是独立的。

14,静态变量和实例变量的区别?
在语法定义上的区别:静态变量钱要加static关键字,而实例变量前则不加。
在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间 ,才能使用这个实例变量。

静态变量不属于某个实例对象,而是属于类,也成为类变量。

15,是否可以从一个static方法内部发出对非static方法的调用?
不可以,因为非静态方法要与对象关联在一起,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,
可以直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,
那个非static方法是关联在哪个对象上呢?

*16,Math.round(11.5)等于多少?Math.round(-11.5)等于多少?
12,-11。round方法代表四舍五入,如果是正数,小数部分>=0.5,则整数部分+1;如果是负数,小数部分>=-0.5,则整数部分+1。

*17,成员变量和局部变量的区别?
1)成员变量直接定义在类中,局部变量定义在方法中,参数上,语句中。
2)成员变量在这个类中有效,局部变量只在属于自己的大括号内有效。
3)成员变量存在于堆中,随着对象的产生而产生,消失而消失;局部变量存在于栈中,随着所属区域的运行而存在,结束而释放。

18,构造函数和一般函数有什么区别?
1)两个函数定义格式不同,构造函数没有返回值,名字必须与类名相同。
2)构造函数是在对象创建时,就被调用,用于初始化,而且初始化动作只执行一次。一般函数,
是对象创建后,需要调用才执行,可以被调用多次。

19,构造代码块和构造函数有什么区别?
构造代码块:是给所有的对象进行初始化,也就是说,所有的对象都会调用一个代码块。只要对象一建立,就会焦勇这个代码块。
构造函数:是给与之对应的对象进行初始化,具有针对性。(可以重载,创建 不同的对象,走不同的初始化。)

20,什么叫做封装?有什么好处?
封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:将变化隔离;便于使用;提高重用性;安全性。
封装原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共方法对其访问。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  j面试题 java基础