2023年JAVA面试知识点总结.doc
《2023年JAVA面试知识点总结.doc》由会员分享,可在线阅读,更多相关《2023年JAVA面试知识点总结.doc(29页珍藏版)》请在咨信网上搜索。
1、 L 课程知识点调查表(填表说明:在各知识点后的掌握限度栏内画“”即可,掌握限度分为A、B、C三类,其中A为:可以依据相关知识点完毕笔试中的填空、判断、代码补全及概念简答等;B为:可以根据程序需求运用相关知识点编写完整的程序代码;C为:可以用语言准确、完整的表述相关知识点及该知识点的典型应用实例。每个知识点的A、B、C三项均可选。)编号知识点名称01classpath的设立及作用类文献搜索途径。可以设立为目录,也可以设立为.(即当前目录)作用:告诉java虚拟机到哪去寻找用户定义的类和第三方提供的类。当设立了classpath变量之后,JVM会沿着classpath变量中指定的目录去查找要执行
2、的类文献。classpath变量的值可以有多个,值与值之间必须用“;”隔开如何理解GC:垃圾回收机制(garbage collection)回收失去引用的内存,程序员不能强制的执行垃圾清理,但是可以建议其回收机制,一般情况下都会按照建议进行。由于程序语句不负责建立和释放内存,jvm自动完毕。涉及到一个方法Finallize();来进行垃圾整理,在清理垃圾是整理内存,不需要我们手动完毕。GC之前执行内存整理的工作的。(一般假如cpu已经占用很多,那么不会去启动释放程序;假如跟建议的垃圾很一致,但是占用内存却很少,垃圾回收机制)02path的设立及作用内部文献搜索途径设立为javac.exe应用程
3、序所在目录,即.javajdkbin目录作用:当在命令行窗口中之机运营javac.exe应用程序时,系统一方面会在当前目录(即c:Documents and Settingadmin)下查找这个程序,然后会沿着path变量中设立的途径继续查找。假如path没有设立,会出现“javac不是内部或外部命令,也不是可运营的程序或批解决文献”错误03JAVA数据类型( 涉及基本类型和引用类型)8种基本数据类型:byte,short,int,long,float,double,char,boolean(分别相应8种基本数据类型包装类,finally,不可被继承。此外String和StringBuffer
4、类也是finally的。)3种引用数据类型:类,接口,数组04JAVA基本运算符号1、算术运算符:+,-,*,/,%,+,-2、关系运算符:,=,&,|,!5、赋值运算符:=,+=,-=,*=,/=,%=6、字符串连接:=7、条件运算符:? ab?x:y(也可按照单目、双目、三目分类)05JAVA程序基本控制语句(ifelse、switchcase、while、for)Java程序设计语言的程序流程控制与C/C+基本相同,总共有三种执行方式:顺序结构、选择结构和循环结构。选择语句即条件语句有两种:ifelse,switchcase循环语句:while,dowhile,for(注意while和d
5、owhile区别,for的三个条件)swtich里支持的数据类型有那四种? byte short char int 以及JDK5.0中的枚举类型06数组的概念及使用数组类型属于复合数据类型,它是由类型相同的元素组成的有序数据集合。因此数组的最重要的特点:元素类型相同;元素有序;所有元素公用一个名称。根据组织数据的结构不同,数组可以分为一维数组、二维数组、。一维数组声明:arraytype arrayName;或arraytype arrayName;初始化分为:1、静态初始化。如:String str = “aaa”,”bbb”,”ccc”; String str1 = “111”,”222”
6、,”333”; 2、动态初始化。如:char charName = new char5; 注意:动态初始化必须给出长度,否则报错:缺少数组维数。二维数组声明:arraytype arrayName;或arraytype arrayName;初始化:1、静态初始化。2、动态初始化:可以只指定第一位的长度而不指定第二维的。此外,数组具有length属性。当数组是引用数据类型是,必须为每个元素实例化,否则会出现空指针异常。07方法的声明及使用声明:修饰符 返回值类型 方法名 (参数列表)方法体;在非静态方法中可以直接调用非静态方法在非静态方法中可以直接调用静态方法在静态方法中可以直接调用静态方法在静
7、态方法中调用非静态方法,则需要通过对象调用。08方法的重载方法的重载是多态的实现手段之一,解决了命名空间问题(在类中实现相同功能的方法)满足条件:1、方法名相同 2、方法的参数类型不同或参数个数不同或参数类型顺序不同 3、返回值类型可以相同也可以不同09类的定义定义:修饰符 class 类名 成员变量;方法10对象的产生与使用Java语言中使用关键字new调用构造方法来创建新对象。类名 对象名 = new 类名();通过对象调用方法或修改属性值。11匿名对象不定义对象的引用名称,而直接调用方法。只能一次性使用。好处:节省空间(GC)假如对一个对象需要进行一次调用,可以使用匿名对象。常用匿名对象
8、作为一个实参传给方法调用,用完之后抛弃。12实现类的封装性面向对象的特性之一(封装、继承、多态、抽象是面向对象的四大特性)封装是一种信息隐蔽技术:1、采用接口隐藏类的实现细节2、在类中对属性封装。由于Java中对属性的操作很弱(例如年龄的问题,可以在set方法中控制),实现程序健壮性。成员变量使用private关键字修饰,提供setter和getter方法进行设立和返回属性值。13构造方法的定义与使用1、 构造方法定义:方法名与类名相同;无返回值类型;方法中不能使用return返回一个值。2、 构造方法在实例化对象时自动调用,重要用来为类中属性赋值。3、 假如一个类的构造方法用private修
9、饰,那么它不能有子类4、 当使用new关键字创建对象时,会调用构造方法。14对象的比较(“=”、“equals()”)“=”是运算符。比较的是值(基本数据类型)和引用的地址(引用数据类型)Equals()是 Object中的方法、没有复写情况下和= 同样(用来比较两个对象的hashCode码(散列码)即地址)、String类复写了object类的equals方法,比较的是两个对象的内容String类覆写equals,一方面比较内存地址(引用),假如相同,返回真;假如不同,继续比较,比较字符串的每个字符,相等返回真,不相等返回假15在类内部调用本类方法静态方法中可以直接调用静态方法,但不能直接调
10、用非静态方法,需要通过对象调用。非静态方法中可以直接调用,或使用this关键字调用。16this关键字的使用用于区别成员变量和局部变量;1、 调用本类中的方法:a、一般方法 this.方法名(实参列表)b、构造方法 this(实参列表),位于构造方法首行2、 调用本类重的属性(this.属性名)3、 可以用来表达当前对象4、 不能与super关键字同时出现在构造方法中5、 不能用在static修饰的方法或代码块中17构造方法的重载规则与一般方法重载一致。(参见08题)当采用new关键字创建对象时,会自动调用构造方法,重要用来为类中的属性初始化。每个类中都有一个默认的无参构造器,当在类中添加一个
11、有参数的构造方法,则默认的构造方法遗失。18对象的引用传递在Java中,参数传递分为基本类型参数传递与对象类型(即引用类型)参数传递。基本类型参数传递意味着当将一个实参值传递给一个方法时,假如方法修改了该参数,改变的形参,而原始的实参的值保持不变。引用类型变量传递将一个参数传递给一个方法后,方法接受的是一个引用变量的值,这个值为某个对象的内存地址值。引用变量的参数传递仍然是值传递。19static的使用(方法、属性)可声明成静态变量(全局变量,相对于这个类中的所有实例化对象,只要一个对象改变了它的值,其他对象的所值都改变)静态方法(不能直接调用非静态方法,要用对象.方法来调用;在非静态方法中能
12、直接调用静态方法,用类名.方法调用)静态代码块(对静态成员进行初始化),同一个类中优先于主函数和构造方法执行。(三者的关系是:静态成员声明静态代码块构造方法 )静态方法的好处:便于调用,对于Java虚拟机性能更好哪些类中全是静态方法:Math,Collections, ArraysCollection和Collections区别:Collection是一个接口,不通过键值对来存放对象,是一一存入的,其下有很对子接口来继承,常用的有set,list. set不能存放反复对象,list可以;set决定存放位置,list可以手动。存放的方法是用ADD();取值用iterator取(同一对象的hash
13、code相同。不同对象的hashcode也会相同,反例就是:String s=”abc” String s1=new String(“abc”); s与s1的hashcode同样)collections是一个类,内部全是静态方法。用来解决集合对象,可以将解决好的对象存放到另一个类中20对象数组的使用(静态初始化、动态初始化)1、 声明及静态初始化:Person ps = Person p1,p2,p3 ; /p1,p2,p3分别为Person的对象2、声明及动态初始化Person p;/对象数组声明p=new 类名3;/动态初始化ps0=new Person();/分别对每个元素初始化ps0.
14、name=”zhangsan”;ps0.age=13;21类的继承通过继承可以简化类的定义,扩展类的功能。extends java只支持单继承。继承是“is a”的关系。子类继承父类中非private属性和方法。子类对象实例化时默认调用父类无参构造方法(子类构造方法首行)。22子类对象的实例化过程当采用new关键字实例化子类对象时,一方面会默认调用父类无参构造方法,接着调用子类构造方法。23方法的覆写作用:扩展父类方法的功能。1、 只有发生在子类和父类之间2、 子类方法和父类的方法名、参数、返回值类型都必须一致。3、 规定子类方法的访问权限不能小于父类的访问权限。4、 子类实例化父类对象,子类
15、调用父类的方法时,会默认调用子类中覆写父类的那个方法5、 子类继承父类的方法,访问权限只能扩大不能缩小,可用public,protected,或default,其中protected和default的区别就是后者必须在同一个包里。private的使用的好处,代码隐藏,安全;对赋值的限制。假如只是在本类中使用,不想外界得到,只要写SET方法就可以,不写GET方法(对赋值限制的体现)。public,protected,default,private的区别(1)public:是公用的,不同包也可访问(2)protected;doGet()和doPost()就是protected的,是在不同包内的,但
16、继承了不是同一个包的方法,子类是能访问的(3)default(默认的);只是在同一个包内才可以被访问。(4 private;只有在本内中才可访问24super的使用super调用父类的属性:super.属性名;super调用父类的方法:super.方法名(实参列表);调用父类中特定构造方法:super(实参列表);调用父类中构造方法时,super()必须放在子类构造方法的首行。this和super不能同时调用构造方法。用super调用父类中的方法时,会调用子类中被覆写了的方法。假如子类中没有覆写父类中的方法,仍能用super调用父类中的方法Ps:一个类的构造方法假如用private修饰,那么它
17、不能有子类。25this与super的区别this用于调用本类的属性和方法,或代表当前对象。super用于调用父类的属性和方法。两者不能同时调用构造方法。26final关键字修饰符。可以修饰变量、方法、类。final修饰的变量为常量,只能被赋值一次final修饰的方法不能被复写final修饰的类不能被继承(构造方法不能被复写)String,Maths都是用final修饰的类。27抽象类的使用抽象类用abstract关键字修饰。抽象类仅提够一个类的部分实现。抽象类可以有实例变量,可以同时有抽象方法和具体方法,它提供一个继承的出发点,不能呢个被实例化。因此,抽象类只能用来继承。不能被直接实例化抽象
18、类的子类,要么是抽象类,要么实现抽象父类的所有抽象方法(复写)抽象类可以有构造方法。28接口的使用接口是常量和抽象方法的集合。接口中不能有普通方法和变量。常量必须被赋值。接口可以实现多继承(即接口可以继承一个到多个接口,但不能继承类)一个类可以实现多个接口接口不能有构造方法extends和implements同时出现,extends写在implements前面抽象类可以实现接口,并且不必实现接口中的所有抽象方法。Ps:抽象类和接口的区别抽象类和接口是Java面向对象体系当中非常重要的两个元素,在语法和使用方面都有很多的区别,下面我就从这两个方面来回答这个问题:第一, 接口和抽象类在语法上的区别
19、重要体现在以下的几个方面:a) 一个类可以实现多个接口,而除了Object之外,一个类只能继承一个父类;b) 接口当中所有的方法都是抽象方法,并且默认为public权限,而抽象类当中可以有抽象方法,也可以没有抽象方法c) 接口当中的变量所有为全局常量,而抽象类当中可以定义任何类型的变量;d) 抽象类当中有构造函数,而接口没有;第二, 在使用方面,接口使用的会更多一些,由于接口可以更好的隐藏实现的细节,减少系统的耦合度,从而提高可扩展性,下面就谈一下我在开发中所理解的抽象类和接口的区别:a) 在我经常使用的设计模式当中,如工厂模式,依赖诸如模式,DAO模式等,重要使用的是接口,而抽象类只在模板模
20、式当中有一些比较局限的应用;b) 在我经常使用的Spring和Hibernate当中,接口的使用也占了很大的比例,特别是在Spring当中,模板模式也被改导致使用接口实现;所以说在平常的开发当中,接口的使用更加的频繁,由于它可以更好的解除耦合,现在的面向对象也提倡少用继承,使用面向接口的编程方法会更好。29对象的多态性,向上转型及向下转型的概念对象的多态性表现为转型(即向上转型和向下转型)及方法的重载和复写。1、转型:规定两个转型的对象有继承或实现关系。向上转型:子类对象转换成父类对象,自动转换。 父类对象用子类实例化。 转型后的对象不能调用子类对象特有的方法。但调用的方法为子类自身的方法。向
21、下转型:父类对象转换成子类对象,需要强制转换。 只有发生过向上转型,才干发生向下转型。使用什么方法时,需要使用向下转型:getAttribute();arraylist 和 hashmap等任何connection对象里的get()方法;过滤器里的方法2、方法的重载是多态的实现手段之一,解决了命名空间问题(在类中实现相同功能的方法)满足条件:A、方法名相同 B、方法的参数类型不同或参数个数不同或参数类型顺序不同 C、返回值类型可以相同也可以不同3、方法的覆写,作用:扩展父类方法的功能A、只有发生在子类和父类之间B、子类方法和父类的名称、参数、返回值类型都必须一致。C、规定子类方法的访问权限不能
22、小于父类的访问权限。转型时,会容易发生classCastException错误。为什么要设计向上转型:ArrayList是一个类,可以方其他的很多类型的对象,如称arr,但在开发时只放一个单一的类型,相称于重新分派空间。否则取的时候很麻烦。存放时的用add()方法,放的是Object类型的对象,即只要属于引用对象就能放入。如放入一个字符串,在放入arr.add()那一刻,发生了向上转型,好处是实现更多类型的兼容,对象的具体特性丢失,即精度丢失。要从多种类型中取出具体的对象类型,即找回精度,就要发生向下转型。30对象多态性在抽象类及接口上的应用面向接口编程的优点:1、调用者不用知道其使用对象的具
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 JAVA 面试 知识点 总结
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。