您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > JAVA面试知识点(总结)
L课程知识点调查表(填表说明:在各知识点后的掌握程度栏内画“√”即可,掌握程度分为A、B、C三类,其中A为:能够依据相关知识点完成笔试中的填空、判断、代码补全及概念简答等;B为:能够根据程序需求运用相关知识点编写完整的程序代码;C为:能够用语言准确、完整的表述相关知识点及该知识点的典型应用实例。每个知识点的A、B、C三项均可选。)编号知识点名称01classpath的设置及作用类文件搜索路径。可以设置为目录,也可以设置为.(即当前目录)作用:告诉java虚拟机到哪去寻找用户定义的类和第三方提供的类。当设置了classpath变量之后,JVM会沿着classpath变量中指定的目录去查找要执行的类文件。classpath变量的值可以有多个,值与值之间必须用“;”隔开如何理解GC:垃圾回收机制(garbagecollection)回收失去引用的内存,程序员不能强制的执行垃圾清理,但是可以建议其回收机制,一般情况下都会按照建议进行。因为程序语句不负责建立和释放内存,jvm自动完成。涉及到一个方法Finallize();来进行垃圾整理,在清理垃圾是整理内存,不需要我们手动完成。GC之前执行内存整理的工作的。(一般如果cpu已经占用很多,那么不会去启动释放程序;如果跟建议的垃圾很一致,但是占用内存却很少,垃圾回收机制)02path的设置及作用内部文件搜索路径设置为javac.exe应用程序所在目录,即..\java\jdk\bin目录作用:当在命令行窗口中之机运行javac.exe应用程序时,系统首先会在当前目录(即c:\DocumentsandSetting\admin)下查找这个程序,然后会沿着path变量中设置的路径继续查找。如果path没有设置,会出现“’javac’不是内部或外部命令,也不是可运行的程序或批处理文件”错误03JAVA数据类型(包括基本类型和引用类型)8种基本数据类型:byte,short,int,long,float,double,char,boolean(分别对应8种基本数据类型包装类,finally,不可被继承。此外String和StringBuffer类也是finally的。)3种引用数据类型:类,接口,数组04JAVA基本运算符号1、算术运算符:+,-,*,/,%,++,--2、关系运算符:,,=,=,==,!=3、逻辑运算符:&,|,&&,||4、位运算符:,,,~,^,&,|,!5、赋值运算符:=,+=,-=,*=,/=,%=6、字符串连接:=7、条件运算符:?ab?x:y(也可按照单目、双目、三目分类)05JAVA程序基本控制语句(if……else、switch……case、while、for)Java程序设计语言的程序流程控制与C/C++基本相同,总共有三种执行方式:顺序结构、选择结构和循环结构。选择语句即条件语句有两种:if…else,switch…case编号知识点名称循环语句:while,do…while,for(注意while和do…while区别,for的三个条件)swtich里支持的数据类型有那四种?byteshortcharint以及JDK5.0中的枚举类型06数组的概念及使用数组类型属于复合数据类型,它是由类型相同的元素组成的有序数据集合。因此数组的最主要的特点:元素类型相同;元素有序;所有元素公用一个名称。根据组织数据的结构不同,数组可以分为一维数组、二维数组、……。一维数组声明:arraytypearrayName[];或arraytype[]arrayName;初始化分为:1、静态初始化。如:Stringstr[]={“aaa”,”bbb”,”ccc”};String[]str1={“111”,”222”,”333”};2、动态初始化。如:char[]charName=newchar[5];注意:动态初始化必须给出长度,否则报错:缺少数组维数。二维数组声明:arraytypearrayName[][];或arraytype[][]arrayName;初始化:1、静态初始化。2、动态初始化:可以只指定第一位的长度而不指定第二维的。另外,数组具有length属性。当数组是引用数据类型是,必须为每个元素实例化,否则会出现空指针异常。07方法的声明及使用声明:修饰符返回值类型方法名(参数列表){方法体};在非静态方法中可以直接调用非静态方法在非静态方法中可以直接调用静态方法在静态方法中可以直接调用静态方法在静态方法中调用非静态方法,则需要通过对象调用。08方法的重载方法的重载是多态的实现手段之一,解决了命名空间问题(在类中实现相同功能的方法)满足条件:1、方法名相同2、方法的参数类型不同或参数个数不同或参数类型顺序不同3、返回值类型可以相同也可以不同09类的定义定义:修饰符class类名{成员变量;方法}10对象的产生与使用Java语言中使用关键字new调用构造方法来创建新对象。类名对象名=new类名();通过对象调用方法或修改属性值。11匿名对象不定义对象的引用名称,而直接调用方法。只能一次性使用。好处:节省空间(GC)如果对一个对象需要进行一次调用,可以使用匿名对象。常用匿名对象作为一个实参传给方法调用,用完之后抛弃。12实现类的封装性面向对象的特征之一(封装、继承、多态、抽象是面向对象的四大特征)封装是一种信息隐蔽技术:1、采用接口隐藏类的实现细节编号知识点名称2、在类中对属性封装。因为Java中对属性的操作很弱(例如年龄的问题,可以在set方法中控制),实现程序健壮性。成员变量使用private关键字修饰,提供setter和getter方法进行设置和返回属性值。13构造方法的定义与使用1、构造方法定义:方法名与类名相同;无返回值类型;方法中不能使用return返回一个值。2、构造方法在实例化对象时自动调用,主要用来为类中属性赋值。3、如果一个类的构造方法用private修饰,那么它不能有子类4、当使用new关键字创建对象时,会调用构造方法。14对象的比较(“==”、“equals()”)“==”是运算符。比较的是值(基本数据类型)和引用的地址(引用数据类型)Equals()是Object中的方法、没有复写情况下和==一样(用来比较两个对象的hashCode码(散列码)即地址)、String类复写了object类的equals方法,比较的是两个对象的内容String类覆写equals,首先比较内存地址(引用),如果相同,返回真;如果不同,继续比较,比较字符串的每个字符,相等返回真,不相等返回假15在类内部调用本类方法静态方法中可以直接调用静态方法,但不能直接调用非静态方法,需要通过对象调用。非静态方法中可以直接调用,或使用this关键字调用。16this关键字的使用用于区别成员变量和局部变量;1、调用本类中的方法:a、一般方法this.方法名(实参列表)b、构造方法this(实参列表),位于构造方法首行2、调用本类重的属性(this.属性名)3、可以用来表示当前对象4、不能与super关键字同时出现在构造方法中5、不能用在static修饰的方法或代码块中17构造方法的重载规则与一般方法重载一致。(参见08题)当采用new关键字创建对象时,会自动调用构造方法,主要用来为类中的属性初始化。每个类中都有一个默认的无参构造器,当在类中添加一个有参数的构造方法,则默认的构造方法遗失。18对象的引用传递在Java中,参数传递分为基本类型参数传递与对象类型(即引用类型)参数传递。基本类型参数传递意味着当将一个实参值传递给一个方法时,如果方法修改了该参数,改变的形参,而原始的实参的值保持不变。引用类型变量传递将一个参数传递给一个方法后,方法接收的是一个引用变量的值,这个值为某个对象的内存地址值。引用变量的参数传递仍然是值传递。19static的使用(方法、属性)可声明成静态变量(全局变量,相对于这个类中的所有实例化对象,只要一个对象改变了它的值,其他对象的所值都改变)静态方法(不能直接调用非静态方法,要用对象.方法来调用;在非静态方法中能直接调用静态方法,用类名.方法调用)静态代码块(对静态成员进行初始化),同一个类中优先于主函数和构造方法执行。(三者的关系是:静态成员声明静态代码块构造方法)编号知识点名称静态方法的好处:便于调用,对于Java虚拟机性能更好哪些类中全是静态方法:Math,Collections,ArraysCollection和Collections区别:Collection是一个接口,不通过键值对来存放对象,是一一存入的,其下有很对子接口来继承,常用的有set,list.set不能存放重复对象,list可以;set决定存放位置,list可以手动。存放的方法是用ADD();取值用iterator取(同一对象的hashcode相同。不同对象的hashcode也会相同,反例就是:Strings=”abc”Strings1=newString(“abc”);s与s1的hashcode一样)collections是一个类,内部全是静态方法。用来处理集合对象,可以将处理好的对象存放到另一个类中20对象数组的使用(静态初始化、动态初始化)1、声明及静态初始化:Person[]ps=Person{p1,p2,p3};//p1,p2,p3分别为Person的对象2、声明及动态初始化Person[]p;//对象数组声明p=new类名[3];//动态初始化ps[0]=newPerson();//分别对每个元素初始化ps[0].name=”zhangsan”;ps[0].age=13;……21类的继承通过继承可以简化类的定义,扩展类的功能。extendsjava只支持单继承。继承是“isa”的关系。子类继承父类中非private属性和方法。子类对象实例化时默认调用父类无参构造方法(子类构造方法首行)。22子类对象的实例化过程当采用new关键字实例化子类对象时,首先会默认调用父类无参构造方法,接着调用子类构造方法。23方法的覆写作用:扩展父类方法的功能。1、只有发生在子类和父类之间2、子类方法和父类的方法名、参数、返回值类型都必须一致。3、要求子类方法的访问权限不能小于父类的访问权限。4、子类实例化父类对象,子类调用父类的方法时,会默认调用子类中覆写父类的那个方法5、子类继承父类的方法,访问权限只能扩大不能缩小,可用public,protected,或default,其中protected和default的区别就是后者必须在同一个包里。private的使用的好处,代码隐藏,安全;对赋值的限制。如果只是在本类中使用,不想外界得到,只要写SET方法就可以,不写GET方法(对赋值限制的体现)。public,protected,default,private的区别(1)public:是公用的,不同包也可访问(2)protected;doGet()和doPost()就是protected的,是在不同包内的,但继承了不是同一个包的方法,子类是能访问的编号知识点名称(3)default(默认的);只是在同一个包内才可以被访问。(4private;只有在本内中才可访问24super的使用super调用父类的属性:super.属性名;super调用父类的方法:super.方法名(实参列表);调用父类中特定构造方法:super(实参列表);调用父类中构造方法时,super()必须放在子类构造方法的首行。this和super不能同时调用构造方法。用super调用父类中的方法时,会调用子类中被覆写了的方法。如果子类中没有覆写父类中的方法,仍能用super调用父类中的方法Ps:一个类的构造方法如果用private修饰,那么它不能有子类。25this与super的区别this用于调用本类的属性和方法,或代表当前对象。super用于调用父类的属性和方法。两者不能同时调用构造方法。26final关键字修饰符。可以修饰变量、方法、类。final修饰的变量为常量,只能被赋值一次final
本文标题:JAVA面试知识点(总结)
链接地址:https://www.777doc.com/doc-1036442 .html