黑马程序员JavaEE点招总结Word格式文档下载.docx
《黑马程序员JavaEE点招总结Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《黑马程序员JavaEE点招总结Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。
变量在运算过程中的值是变化的,可以被多次赋值。
常量则是固定的。
9标识符的组成?
以及命名规则?
标识符有26个字母的大小写,0到9,_和$组成。
命名规则:
不能使用关键字,不能数字开头,严格区分大小写,要见名知义。
函数名和变量名如果是多个单词组成,第一个单词的首字母小写,其余首字母大写。
类名和接口名如果是多个单词组成,首字母全部大写。
包名全部小写。
常量名全部大写,如果是多个单词,用_隔开。
10.变量数据类型分为哪几种?
如何使用变量?
基本数据类型:
整形:
包括byte、short、int、long。
浮点型:
包括float、double。
字符型;
char;
布尔型:
boolean。
引用数据类型:
数组、类、接口。
变量需要先定义,再赋值,才能使用。
11.常量分为哪几种?
自定义常量和字面值常量。
自定义常量是我们自己通过final修饰定义的常量。
字面值常量包括整数、小数、布尔、字符、字符串。
12.byte的范围多少?
char的范围多少?
答:
byte范围-128到127。
char范围0到65535.
13.ASCII码表中字符'
0'
'
a'
A'
分别对应int类型的值是多少.
0在表中对应的值是48,a对应的是97;
A对应的是65.
14.long是8个字节,float是4个字节,为什么long比float小?
底层采用的运算规则不一样。
15.以取值范围的大小排列数据的基本类型.
double>
float>
long>
int>
char>
short>
byte
16.+=、-=、这些运算符内隐含了强制类型转换。
17.++和—的使用?
单独使用的时候,在前在后都一样。
参与运算的时候,在前是先自加或者自减,然后再用这个结果参与运算。
在后是先参与运算,再进行自加或者自减。
18.逻辑或"
|"
和短路或"
||"
有什么区别?
|不管前面的结果是真是假后面的都会运算,||前面为真后面的不参与运算。
但是结果是一样的。
19.逻辑与"
&
"
和短路与"
&
由什么区别?
不管前面的结果是真是假后面的都会运算,&
前面为假后面的不参与运算。
20.Math.round原理是什么?
先加0.5,然后再取floor值。
21.生成随机数的方法?
第一种:
Random类中的方法;
第二种Math.random()方法,生成的是0.0和1.0范围之间的小数。
22.if…else..和三元表达的区别
能用三元表达式写的就能用if语句写,但是能用if语句写的,三元表达式不一定能写。
三元表达式必须要有一个结果。
23.while、dowhile、for的区别?
dowhile语句是先执行后判断,while和for先判断后执行。
for循环结束后,其中定义的初始化条件不能再使用。
24.if和switch区别?
if1.对具体的值进行判断。
2.对区间判断。
3.对运算结果是boolean类型的表达式进行判断。
switch:
1.对具体的值进行判断。
2.值的个数通常是固定的
25.switch语句的表达式可以放什么?
byte、short、int、char。
JDK1.5以后可以使用枚举,1.7之后可以使用String。
26.死循环的两种写法.
while(true)和for(;
;
)
27.break和continue还有Return的区别
break是完全跳出循环,不再执行循环体的代码。
也可以用在switch语句中。
Continue是提前结束本次循环,进入下次循环。
Return是结束方法。
28.switch中break可以省略吗?
default可以省略吗?
break在最后一个可以省略,其他的不要省略。
Default可以省略。
29:
方法重载和方法重写的区别?
方法重载是在同一个类中出现同名方法,参数列表不同,与返回值类型无关。
方法重写是在子父类间,子类出现和父类声明完全相同的方法时,就成为方法重写。
重写要求返回值必须相同或者有子父类关系。
30.方法的注意事项:
要明确方法的返回值类型,明确方法的参数列表。
31.方法的调用?
有返回值时可以单独调用,但是没有意义;
也可以放在输出语句中;
可以赋值给变量。
无返回值直接调用即可。
32.数组的定义格式?
int[]arr=newint[5];
intarr[]=newint[5];
int[]arr=newint[]{1,5,6,7,…};
int[]arr={23,6,8,9…}
二维数组
String[][]arr=newString[3][];
Syso(arr[0])打印的结果是null。
33.数组的默认值?
答;
整形的默认值是0,引用数据类型是null;
boolean型的是false。
34.栈内存和堆内存?
栈内存用于存储局部变量和代码的执行,堆内存中都是new出来的。
35.数组和集合的区别:
(1)长度区别:
数组长度是固定的;
集合长度可变。
(2)存储内容:
一个数组只能存储同一种数据类型的元素;
集合可以存储不同数据类型的元素。
(3)数据类型:
数组能够存储基本数据类型,也能够存储引用数据类型;
集合只能存储引用数组类型。
36.数组和集合的转换?
数组转为集合:
Arrays.asList(数组),转为集合后不能添加、删除元素。
但是可以修改元素。
把基本类型的数组转为集合,把这个数组作为对象存入集合中。
集合转为数组:
list.toArray().
二、面向对象
37.在栈内存中。
存储位置不同,局部在栈,成员在堆
(4)初始化值不同:
成员变量是有默认的初始化的值的;
局部变量不赋值不能用。
(5)生命周期不同:
成员变量随着对象的存在而存在,随着对象的消失而消失;
局部变量随着方法的调用而存在,方法调用完毕而消失。
38.变量的使用顺序?
就近原则。
先在局部找,局部找不到在本类中找,本类找不到就去父类找,找不到就编译失败。
39.类和对象的关系?
类是具有相同或相似一类事物的抽象;
对象是类的实例化。
40.java描述事物最基本的单位?
类
41.什么叫面向对象?
面向对象是一种思想,它是基于面向过程的,强调的是具备功能的对象,让对象调用方法解决问题。
在开发中,要完成特定的功能就去寻找相应的对象,如果找不到就创建对象,使用对象,维护完善对象。
自己举例说明:
厨师做饭,女朋友洗衣服。
。
思想特点:
1.让复杂的事情简单化;
2,更符合人类的思维需求;
3.角色从执行者到指挥者。
三大特征:
封装,继承,多态。
42.什么是封装?
封装的原则?
好处?
封装就是把不需要对外暴露的状态信息隐藏在对象内部,不允许外部程序直接访问对象的信息,而是通过该类对外提供公共的访问方式对其访问和操作。
原则:
(1)将不需要对外暴露的信息隐藏;
(2)对外提供公共的访问方式。
好处:
将变化隔离;
提高了安全性;
便于使用,提高了重用性。
43.封装就是私有,对吗?
为什么?
private是封装的一种体现形式。
方法也是封装。
44.Java中参数传递的问题:
如果是基本数据类型,传递的参数要和形参的类型一致;
如果是引用数据类型,那么传递的参数类型和形参的一致,或者是他的子类。
45.构造方法,set方法都可以给成员变量赋值,这两种赋值方式有什么区别?
构造方法主要作用是用来给对象初始化,赋值只是他的兼职工作,也可以不用赋值。
Set方法只能用来赋值,在原有对象的基础上赋值。
46.static关键字的特点?
注意事项是什么?
有什么好处和弊端?
(1)被static修饰的变量和方法随着类的加载而加载
(2)优于对象存在(3)能够被类名直接调用(4)资源共享。
注意事项:
静态方法中不可以定义this、super关键字,因为静态优先于对象存在,静态只能覆盖静态。
static能够被类名直接调用,定义的是对象的共性内容,不用每个对象单独定义,节省空间。
弊端:
生命周期过长。
47.类变量和实例变量的区别?
(1)所属不同:
类变量属于类,是对象的共性内容;
实例变量属于对象,是特性内容。
(2)存储位置不同:
类变量随着类的加载存储于方法区;
实例变量随着对象的创建存储于堆内存中。
(3)生命周期不同:
类变量随着类的加载而存在,随着类的消失而消失;
实例变量随着对象的存在而存在,随着对象的消失而消失。
(4)调用方式不同:
类变量能够被类名直接调用,有对象的时候也能被对象调用;
实例变量只能被对象调用。
48.构造方法能不能重载?
可以,在同一个类中,参数列表不同,与返回值无关。
49.静态代码块和构造代码块的区别?
(1)静态代码块属于类,给类进行初始化,类一加载就会执行,只执行一次,经常用于加载驱动。
(2)构造代码块给对象进行统一初始化,每创建一次就会执行一次。
50.什么是继承?
当多个类中有很多共性的内容时,我们可以把这些共性内容抽取出来封装成一个类,让这些类与这个封装的类产生关系。
这种关系就是继承。
51.继承的的特点和好处,弊端?
特点:
java只支持单继承,但是能够多层次继承;
接口能够单继承,也能够多继承。
(1)提高了代码的复用性
(2)提高了代码的维护性(3)提高了代码的扩展性。
(4)让类与类产生了关系,是多态的前提。
增强了类与类的耦合性。
52.this和super的区别?
this代表对象的引用,super代表当前对象父类的引用。
53.Super()和this()在构造方法能同时使用吗?
答:
不能,super调用的是父类的构造,要放在构造函数的第一行;
this调用的是本类的构造,也要放在第一行。
Super关键字和this关键字能否在构造函数中共存?
能。
54.为什么每个构造函数中第一行都有默认的super()?
用于子类对象访问父类前,对父类数据进行初始化。
55.为什么默认的super()都是空参的呢?
因为Object类是所有类的父类,Object中只有一个空参构造。
56.构造方法的特点?
(1)方法名和类名相同
(2)没有返回值,连viod都没有。
(3)不用写return,可以有ret