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