南京工程学院 Java 复习 整理
- 格式:doc
- 大小:52.93 MB
- 文档页数:24
Java总复习第1章Java入门1.2 Java的特点: 简单.面向对象.与平台无关.多线程.安全.动态1.3 安装Sun公司的SDK :J2SE J2EE(java ee5): J2ME path classpath设置1.4 一个Java程序的开发过程:java javac1.5 一个简单的Java应用程序的开发过程:源文件命名:源文件中有多个类,那么只能有一个类是public类。
如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同,扩展名是.java。
如果源文件没有public类,那么源文件的名字只要和某个类的名字相同,并且扩展名是.java就可以了1.6 一个简单的Java小应用程序public class Boy extends Applet<applet code=Boy.class height=100 width=300></applet>第2章标识符、关键字和数据类型2.1 标识符和关键字:标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字字符。
2.2 Java的基本数据类型:boolean、byte 、short、int、long、float、double、char及类型转换2.3 Java的数组: 引用类型int a[]={100,200,300};int a[]=new int [10] 对象数组第3章运算符、表达式和语句3.1 运算符与表达式1/2 , &&, ||3.2 语句概述3.3 控制语句Switch(整形表达式){ case 整形常量1: break;Default :}3.4 循环语句3.5 break和continue语句: 后面可以带标号第4章类、对象和接口4.1 编程语言的几个发展阶段4.1.1 机器语言4.1.2 过程语言4.1.3 面向对象编程=对象+类+继承+消息传递:特点:抽象封装继承多态4.2 类命名规则:包、类、变量、方法等命名:要体现各自的含义。
JAVA知识点复习大全JAVA知识点复习大全int 和Integer 有什么区别Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。
Int是java的原始数据类型,Integer是java为int提供的封装类。
Java为每个原始类型提供了封装类。
原始类型封装类boolean Booleanchar Characterbyte Byteshort Shortint Integerlong Longfloat Floatdouble Double引用类型和原始类型的行为完全不同,并且它们具有不同的语义。
引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。
对象引用实例变量的缺省值为null,而原始类型实例变量的缺省值与它们的类型有关。
String 和StringBuffer的区别JA V A平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。
这个String类提供了数值不可改变的字符串。
而这个StringBuffer类提供的字符串进行修改。
当你知道字符数据要改变的时候你就可以使用StringBuffer。
典型地,你可以使用StringBuffers来动态构造字符数据。
运行时异常与一般异常有何异同?异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。
java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
说出Servlet的生命周期,并说出Servlet和CGI的区别。
Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
Java复习资料一、知识点(1)Java支持分布式计算(2)Java是跨平台的编程语言(3)Java支持多线程(4)内存回收程序负责释放无用内存(5)main()方法的返回类型是void(6)子类能继承父类的所有方法和状态(7)若需要定义一个类域或类方法,应使用的修饰符是static(8)如要抛出异常,应使用的子句是throw(9)流使用结束后,关闭流并释放资源,使用close()方法。
(10)Java语言的各种数据类型之间提供两种转换:自动转换和强制转换。
(11)Java语言中,调用方法时,参数传递是值调用,而不是地址调用。
(12)面向对象的语言将客观世界都看成由各种对象组成,共同特征和行为的对象组成类,类是变量和方法的集合体。
(13)在Java程序中,要实现多重继承需要使用接口。
(14)在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2字节内存空间。
(15)计算机中的流是流动的数据缓冲区(16)RandomaccessFile是java.io包中的一个兼有输入输出功能的类。
(17)开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释执行字节码。
(18)如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是Applet类的子类。
(19)抽象方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。
Final方法是不能被当前类的子类重新定义的方法。
(20)在Java语言中,package语句必须出现在程序文件的首行。
(21)在Java语言中,位异或的运算符为^。
(22)Java语言提供两个用于处理字符串的类:String类用于处理不可改变的字符串,而StringBuffer类用户处理可改变的字符串。
(23)Date类位于Java语言的java.util包中。
Java复习提纲Java 复习提纲⼀.复习注意点结合课本(包括课后题)、课件、上机作业题和历届试题,不仅掌握基础的理论知识,⽽且需要强化编程能⼒。
前六章的知识点⽐较杂,考核题型为客观题和简答题。
后⾯⼏章的(IO流、多线程、集合、⽹络)考核题型为程序填空和编程题。
考试占成绩70%,平时作业占30%。
5⽉24⽇是实习最后提交时间,以后不再延期。
题⽬难度适中,祝同学们取得好成绩,友情提⽰:题⽬不要空着,加油。
⼆.考试题型⼀、单选题⼆、填空题三、简答题四、程序填空题五、编程题(复习要点简介)按照章节组织顺序,列出以下复习要点:第⼀章Java语⾔概述1.2 节1、Java的六个特点2、Java的平台⽆关性原理,为什么可以“⼀次编写,到处运⾏”?3、理解JDK、JRE的概念和作⽤1.4节1、Java程序的开发步骤2、编译器javac.exe和解释器java.exe的作⽤3、源⽂件和字节码⽂件的后缀名1.5节1、区分主类和public类,同⼀个源⽂件中的public类命名规则?(1.5.1)2、掌握在当前⽬录下编译、运⾏例1.1的过程(1.5.2,1.5.3)第⼆章基本类型2.1节1、标识符的概念,能区分合法的标识符2.2节1、4⼤基本数据类型及具体分组(8种)2、逻辑类型常量有哪些?3、4种整数类型各⾃所占字节个数,及它们的取值范围4、字符类型常量的声明,常见转义字符及其如何使⽤在字符串中,字符类型的表⽰范围及其与int类型的显⽰转换(例2.1)5、浮点类型(float和double)常量与变量的声明规则,注意后缀“f/F”、“d/D/缺省”的使⽤6、基本数据类型中⾼精度向低精度的强制转换,原因与实现?2.4节1、数组是第⼀个介绍的引⽤类型数据,需要通过new语句完成数组的创建。
所谓的“引⽤”指的就是栈内存中变量被赋值的地址,该地址是数组或对象在堆内存中的地址。
结合以下代码理解数组的内存模型:int [] a = {1,2,3,4,5}; // ⼀维数组的直接初始化int [] c = new int[3]; // ⼀维数组的默认初始化,每个元素(int)的默认值是0// ⼆维数组的内存分配机制,上课的时候讲的有点错误,在此向同学们道歉。
JA V A 复习复习第一讲第一讲 Java 概述概述一、Java 虚拟机虚拟机 (1) Java 字节码解释程序称为Java 虚拟机(Java V irtual Machine ,JVM)。
在其标准形式下,JVM 就是一个字节码解释器。
就是一个字节码解释器。
(2) 只要在一个操作系统上有相应的Java 字节码解释程序,Java 字节码文件就能在这个操作系统上被解释执行。
(Java 跨平台的根本原因)跨平台的根本原因)二、Java 的编译和运行环境的编译和运行环境javac.exe 将java 源程序编译成java 字节码文件的java 编译工具。
编译工具。
java.exe 用于在windows 操作系统上对java 字节码文件进行解释执行的程序,也就是java 虚拟机(JVM)。
第三讲和第五讲第三讲和第五讲 面向对象程序设计思想面向对象程序设计思想一、类的声明形式:一、类的声明形式:[特征修饰符] [访问控制修饰符] class 类名称[extends 基类] { [属性] [方法] } 二、对象(实例):类的实例化:类的实例化对象在建立时分配了内存,创建对象实际上作了两个方面的工作:对象在建立时分配了内存,创建对象实际上作了两个方面的工作:(1)使用new 关键字分配内存;关键字分配内存;(2)使用构造方法初始化数据(构造方法是与类名同名的方法)。
三、JA V A 将类中的属性和方法分为两类将类中的属性和方法分为两类实例成员实例成员 为每个对象独自存储,互不干扰的属性和方法。
为每个对象独自存储,互不干扰的属性和方法。
静态成员静态成员 为该类所有对象所共享,包括静态属性和静态方法。
为该类所有对象所共享,包括静态属性和静态方法。
在实例方法中,在实例方法中,既可以访问实例成员,既可以访问实例成员,既可以访问实例成员,也可以访问静态成员;也可以访问静态成员;也可以访问静态成员;在静态方法中只能访问静在静态方法中只能访问静态成员,而不能访问实例成员。
JAVA知识点复习JAVA知识点复习int 和 Integer 有什么区别Java 提供两种不同的类型:引⽤类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer 是java为int提供的封装类。Java为每个原始类型提供了封装类。
原始类型封装类boolean Booleanchar Characterbyte Byteshort Shortint Integerlong Longfloat Floatdouble Double引⽤类型和原始类型的⾏为完全不同,并且它们具有不同的语义。引⽤类型和原始类型具有不同的特征和⽤法,它们包括:⼤⼩和速度问题,这种类型以哪种类型的数据结构存储,当引⽤类型和原始类型⽤作某个类的实例数据时所指定的缺省值。对象引⽤实例变量的缺省值为 null,⽽原始类型实例变量的缺省值与它们的类型有关。
String 和StringBuffer的区别JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。⽽这个StringBuffer 类提供的字符串进⾏修改。当你知道字符数据要改变的时候你就可以使⽤StringBuffer。典型地,你可以使⽤StringBuffers来动态构造字符数据。
运⾏时异常与⼀般异常有何异同?异常表⽰程序运⾏过程中可能出现的⾮正常状态,运⾏时异常表⽰虚拟机的通常操作中可能遇到的异常,是⼀种常见运⾏错误。
java编译器要求⽅法必须声明抛出可能发⽣的⾮运⾏时异常,但是并不要求必须声明抛出未被捕获的运⾏时异常。说出Servlet的⽣命周期,并说出Servlet和CGI的区别。Servlet被服务器实例化后,容器运⾏其init⽅法,请求到达时运⾏其service⽅法,service⽅法⾃动派遣运⾏与请求对应的doXXX⽅法(doGet,doPost)等,当服务器决定将实例销毁的时候调⽤其destroy⽅法。
Java面试重要知识点复习大纲Java面试重要知识点复习大纲一、Java基础部分(搞定所有技术之后才考虑复习的技术点)1.数组中的排序问题(笔试或者机试,前者可能性更大)2.面向对象的理解3.集合相关体系结构的问题,比如hashmap跟hashtable的区别。
搞清楚每个集合对象的特性就欧了。
4.多线程启动方式,以及产生死锁的原因和解决办法【多线程问题不是很常问,有精力就复习这块内容】,网上查java生产者和消费者技术点。
5.IO流,了解常见的几个流对象以及基本的流操作即可,被机试的可能性比较小。
二、Web基础1.http协议(定义、常见的请求头以及响应头<功能>、状态码)2.tomcat(目录结构<存放的内容以及配置文件里面能做哪些工作>、常见配置;有能力者可以了解一下tomcat的原理<启动加载问题>)3.jdbc(编程步骤、与hibernate以及mybatis的区别)4.servlet(概念的理解;生命周期、线程安全问题、接口相关类型、体系结构<区别>、request以及response的用途、servletContext 对象的功能、编码以及路径问题)5.filter(生命周期、常见应用、dofilter里面的参数、应用场景)6.jsp(隐式对象、常见标签<指令、动作>、EL以及JSTL)7.cookie/session(概念的理解;生命周期,session创建的时期,相关方法的使用)三、五大框架1.struts2(action相关的问题<书写方式[区别]、接受请求参数的方式、相关配置、访问servletAPI的方式>;值栈相关问题<定义、内部结构、如何获取值栈对象、EL为什么能访问值栈中的数据>;struts2与springMVC的区别;拦截器与过滤器的区别;struts2工作原理<执行流程>)2.hibernate(核心思想要了解;开发流程<加载文件的过程>;查询方式;如何优化;sql与hql的区别;update与saveOrUpdate的区别;get和load 的区别;Java对象三种状态的特征以及转换、核心API、一级缓存和二级缓存、延迟加载)3.spring(springIOC和DI;生命周期;Bean注入属性的方式;aop极其相关名词解释;核心类;applicationContext与beanFactory的区别;bean实例化有哪些方式)4.springMVC(工作流程;与struts2的区别;乱码问题如何处理;各组件的扩展类型)5.mybatis(与jdbc/hibernate的区别;)四、脚本(此项与第五项均是需要掌握的内容、笔试题居多)1.JavaScript核心对象2.浏览器BOM对象3.文档对象模型DOM4.常见事件5.Ajax编程(web交互2种方式的对比)6.传统Ajax编程的步骤以及从服务器端返回的数据格式(之间的差别)7.JSON数据格式的转换操作8.jQuery选择器9.jQuery的Ajax编程(常见方法)10.其余的问题都是一些笔试题,让你直接写javascript代码实现某一功能五、数据库数据库这一块几乎都是一些概念性的问答题(存储过程、函数、事务、索引、触发器、视图、游标以及一些优化操作),笔试100%会出现,一般考察的都是多表联合查询六、项目相关(重点讲解问题:商品管理、订单、购物车、单点登录等实现思路问题,其余问题参考文档即可)1.请介绍一下你最近做的这一个项目吧【思路:项目给谁做的、项目涉及的领域、系统的架构(功能&技术)、系统的用途、系统的部署、使用了哪些比较新颖的技术】2.谈谈你对电商行业的了解【思路:电商行业的发展、行业技术特点、行业的一些概念】3.你这个项目大概有哪些功能,你负责了哪些核心功能?【拥有的功能尽可能说多一点,建议10个左右,自己负责的3个大(如商品管理、订单、购物车),其余的都是其他组员开发的任务】4.谈谈xx(具体的,比如商品管理、订单、购物车)模块/功能的实现思路?实现的过程中涉及到了哪些技术,这些技术能介绍下吗?【可参考“02_电商项目面试问题”里面的答案】5.你们公司有多少人?有测试吗?有美工吗?整个项目组人员配置是怎么样的?项目开发的流程大概是什么样子的?【检验是否有工作经验的一个问题】6.这个项目使用了什么构建工具没有?有的话,多模块之间是如何划分的?为什么要这么划分?7.在这个项目中是如何设计商品规格的?8.这个系统中你是如何实现跨系统调用的?9.在这个项目中,CMS系统是如何设计的,简单的说一下设计思路10.在这个项目中,你们主要使用什么样的数据格式来进行数据的传输的?11.单点系统的设计思想你了解吗?他在系统架构中的作用是什么?位置如何?12.你们这个项目中订单ID是怎么生成的?我们公司最近打算做一个电商项目,如果让你设计这块,你会考虑哪些问题?13.各个服务器的时间不统一怎么办?14.你们线上部署时什么样的,能画一下吗?15.你们生产环境的服务器有多少台?16.你们使用什么做支付的?如果使用易宝做支付,请求超时了怎么处理?17.你刚才不是说付款成功后易宝会有数据返回吗?如果付款后易宝没有返回,或者返回超时了,但是钱又已经扣了,你怎么办?18.你们怎么做退款功能的,要多长时间才能把钱退回给用户?19.你购物车存cookie里边可以实现不登录就可以使用购物车,那么我现在没有登录把商品存购物车了,然后登录了,然后我换台电脑并且登录了还能不能看见我购物车的信息?如果看不到怎么做到cookie同步,就是在另外一台电脑上可以看到购物车信息20.如果用户一直向购物车添加商品怎么办?并且他添加一次你查询一次数据库?互联网上用户那么多,这样会对数据库造成很大压力你怎么办?21.购物车的设计细节问题七、其他技术问题(根据自己的精力和实际能力进行选取,主要是为了证明自己的技术能力强、经验足,提升薪资用的)1.权限控制(一般情况,在公司必须有一定工作经验的开发者才会被分配该功能模块的开发,这意味着学员在刚开始参加工作的那个项目里面绝对不能写的内容。
1. 三大平台P1①Java Platform Micro Edition Java平台微型版②Java Platform Enterprise Edition Java平台企业版③Java Platform Standard Edition Java 平台标准版2. 简述servlet的生命周期P35①将servlet 装载到容器后,生命周期开始②调用init()方法进行初始化③调用service()方法,根据不同请求调用不同的doXxx()方法处理客户请求④将处理结果封装到HttpServletResponse中返回客户端。
⑤当Servlet实例从容器中移除时调用destroy()方法关键字记忆:①装载②初始化③处理请求④返回处理结果⑤移除3. JSP指令、动作、内置对象、及各作用P37(好多啊好多。
简写)①JSP指令:Page指令、taglib指令、include指令Page指令用于设定JSP页面的相关属性taglib指令用于标签的使用include指令用于导入包含的静态文件②JSP动作:<jsp:param><jsp:include>向一个对象提出请求,并可将结果包含在JSP文件中<jsp:UseBean><jsp:setproperty><jsp:getproperty><jsp:forward>重定向文件<jsp:plugin>③内置对象:Request:对客户请求信息进行访问response:将服务器端数据发给客户端application:为多个应用程序保存信息session:为请求的用户创建Session对象page:代表页面本身config:存放Servlet初始化信息out:输出pagecontext:提供页面访问、转发request对象exception:处理执行时的错误和异常JSP指令用来提供整个JSP页面的相关信息和设定JSP页面的相关属性JSP动作利用XML语法格式标记来控制servlet引擎的行为。
复习指南:考试题型:1、选择题,30题共45分3、读程序4题共20分4、简答题2题10分3、编程题25分(2题)复习重点:前13章和22章选择题:出题思路:围绕吴老师理论课所讲内容出题,以基本概念、基本语法以及类库知识等等:这一部分大家要多看书,跟我之前考PASCAL有点像。
简答题复习重点:1、什么是多态,java中如何实现多态2、什么叫容器布局,布局都有哪些3、Java中有一种小应用程序片,Applet,简述如何工作的4、迭代器的作用及其优势5、内部类的作用6、类加载器的作用7、设计和实现图形用户界面的工作主要有哪几方面?编程题的复习重点:1)创建一个名为Amphibian的类。
由此继承产生一个称为Frog 的类。
在基类中设置适当的方法。
在main( )中,创建一个Frog并向上转型至Amphibian,然后说明所有方法都可以工作。
(P140-16 )2)编写一个名为Outer的类,它包含一个名为Inter的类。
在Outer中添加一个方法,它返回一个Inter类型的对象。
在main( )中,创建并初始化一个指向某个Inter对象的引用。
(p191-1)3)创建一个Cycle类,它具有子类Unicycle、Bicycle和Tricycle,实现每一个类型的实例都可以经由ride( )方法向上转型为Cycle。
4)编写一个类名为chap的应用程序,用于演示JButton按钮操作,当单击左边的按钮时,中间的按钮和左边的按钮将失效,当右边的按钮由失效变成有效.5)编写一个应用程序,它包括一个文本域和三个按钮,单击每个按钮时在文本区显示不同的文字。
6)、编写程序实现以下继承关系:动物类派生出鸟类、鱼类,鸟类派生出燕子类,鱼类派生出鲨鱼类。
要求:每个类包含域“类别”、方法“返回类别”请读懂以下程序并给出运行结果://程序1public class Guess {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubint a,b;for(a=14;a<=90;a++)for(b=11;b<50;b++){if(((a-10)==(b-10)*4)&&((a+10)%(b+10)==0))System.out.println("ag "+a+" daf"+b);}}}//程序2class OverrideDemo{void test(){System.out.println( "No parameters ");}void test(int a){ System.out.println("a: " + a);}void test(int a,int b){ System.out.println("a and b:" + a + " " + b);}void test(double a){ System.out.println("double a: " + a);}}class Override{public static void main(String args[]){OverrideDemo ob = new OverrideDemo();ob.test();ob.test(10);ob.test(10,20);ob.test(123.25);}}//程序3import java.awt.*;import java.awt.event.*;import java.applet.*;public class ButtonApplet extends Applet implements ActionListener{ int i1,i2;Button btn1,btn2;public void init(){i1=0;i2=0;btn1=new Button("确定");btn2=new Button("取消");add(btn1);add(btn2);btn1.addActionListener(this);btn2.addActionListener(this);}public void paint(Graphics g){g.setColor(Color.blue);g.drawString("你点击了确定"+ i1+"次",20,100);g.setColor(Color.red);g.drawString("你点击了确定"+ i2+"次",20,120); }public void actionPerformed(ActionEvent e){ if(e.getSource()==btn1){i1++;}if(e.getSource()==btn2){i2++;}repaint();}}//程序4interface Weapon{ String name = "weapon";void attack();}class Tank implements Weapon{ public void attack(){ System.out.println("Tank attack"); } }class Cannon implements Weapon{ public void attack(){ System.out.println("Cannon attack"); } }class testWeapon{ public static void main(String[] args) { Weapon wp;wp = new Tank();wp.attack();wp = new Cannon();wp.attack();}}//程序5public class Parcel2 {class Contents{p rivate int i=11;p ublic int value(){return i;}}class Destination{p rivate String lable;D estination(String whereTo){lable=whereTo;}S tring readLabel(){return lable;}}public Destination to(String s){r eturn new Destination(s);}public Contents contents(){r eturn new Contents();}public void ship(String dest){Contents c=contents();Destination d=to(dest);System.out.println(d.readLabel());}public static void main(String[] args) { Parcel2 p=new Parcel2();p.ship("Tasmania");Parcel2 q=new Parcel2();Parcel2.Contents c=q.contents();Parcel2.Destination d=q.to("Borneo");}}//程序6:import java.util.*;public class SimpleCollection {public static void main(String[] args) {int b=0;Collection<Integer> c=new ArrayList<Integer>();for(int i=0;i<10;i++)b=i+3;c.add(b);for(Integer i:c)System.out.print(i+" ");}}//程序7:class Window{Window(int marker){{System.out.print("Window("+marker+")");} }}class House{Window w1=new Window(1);House(){System.out.print("House()");w3=new Window(33);}Window w2=new Window(2);void f(){System.out.print("f()");}Window w3=new Window(3);}public class orderOfInitialization {public static void main(String[] args) {House h=new House();h.f();}}//程序8public class ko{public static void main(String args[]){int t, z=10;t=sum(z);System.out.println("sum="+t);}static int sum(int x){if(x==1)return(1);elsereturn(sum(x-1)+x);}}//程序9public class TextComponetEvent extends Appletimplements TextListener,ActionListener{TextField tf;TextArea ta;public void init(){tf=new TextField(45);ta=new TextArea(5,45);add(tf);add(ta);tf.addActionListener(this);tf.addTextListener(this);}public void textValueChanged(TextEvent e){if(e.getSource()==tf)ta.setText(((TextField)e.getSource()).getText()); }public void actionPerformed(ActionEvent e){if(e.getSource()==tf)ta.setText("");}}//程序10import java.io.*;class Tree{int height;Tree(){System.out.println("Planting a seedling");height=0;}Tree(int initialHeight){height=initialHeight;System.out.println("Creating new Tree that is"+height+"feet tall");}void info(){System.out.println("Tree is"+height+"feet tall");}void info(String s){System.out.println(s+":Tree is"+height+"feet tall");}}public class OverLoading {/*** @param args*/public static void main(String[] args) {for(int i=0;i<5;i++){Tree t=new Tree(i);();("overloaded method");}}}import java.io.*;public class Score {static int square(int x){return x*x;}static double square(double x){return x*x;}public static void main(String[] args) {try{BufferedReader buf=new BufferedReader(newInputStreamReader(System.in));String s=buf.readLine();int n=Integer.parseInt(s);int nn=square(n);BufferedReader buff=new BufferedReader(new InputStreamReader(System.in));String ss=buff.readLine();double m=Double.parseDouble(ss);double mm=square(m);System.out.print(nn+"\n"+mm);}catch(IOException e){};}}。
java面试复习计划
复习计划:
1. 了解Java基础知识:
- 数据类型、变量、运算符
- 控制语句(if、for、while)
- 数组和字符串
- 面向对象概念(类、对象、继承、封装、多态) - 异常处理
2. 学习常用的Java类和API:
- String、StringBuilder和StringBuffer
- ArrayList、LinkedList和HashMap
- 时间日期类:Date、Calendar和SimpleDateFormat
3. 掌握面向对象编程的相关概念和技术:
- 类的定义和使用
- 继承和多态的理解和应用
- 接口和抽象类的使用
- 内部类、匿名类的概念和用法
4. 熟悉Java的IO操作:
- 文件读写
- 输入输出流
- 序列化和反序列化
5. 复习常见的设计模式:
- 单例模式
- 工厂模式
- 观察者模式
- 策略模式
6. 研究Java并发编程:
- 线程的创建和管理
- 线程同步与互斥
- 锁和条件变量
- 线程池的使用
7. 实践Java编程:
- 编写小项目或练习题,巩固所学知识
- 阅读Java源码,深入理解语言特性和底层原理
- 参与开源项目,提高自己的编码能力
8. 准备面试技巧:
- 自我介绍和技术介绍的准备
- 刷题和解答常见面试问题
- 模拟面试,提高沟通表达和解决问题的能力
以上是一个Java面试复习的计划,根据自己实际情况进行调
整和安排时间,持续学习和练习,相信能够取得好的面试成绩。
Java复习1. Java中创建类的时候,不写类的修饰符默认是 default 权限,是可以在同包下相互访问的;如果是 public 类型,是允许跨包访问的;如果是 Private类型,仅允许在类内访问,连⼦类都访问不了protect: 介于public 和 private 之间的⼀种访问修饰符,⼀般称之为“保护形”。
被其修饰的类、属性以及⽅法只能被类本⾝的⽅法及⼦类访问,即使⼦类在不同的包中也可以访问2.同样,Java⽅法中默认的修饰符也是default ,默认什么都不加,就是default(不⽤把default写出来)。
意思就是只能由跟这个类在同⼀个包中的类来访问,⽐private限制更少,但⽐protected限制更多。
'3.记住静态⽅法和对象完全⽆关,所以静态⽅法不存在⽅法覆盖这么⼀说!!静态⽅法⼀般⽤类名来进⾏调⽤4.静态变量是属于类的,5.⾮静态⽅法既可以访问静态⽅法⼜可以访问⾮静态⽅法,⽽静态⽅法只能访问静态数据⽅法。
(这个要切记,在Java复习第⼀个笔记中就有这个记录,静态⽅法是不能访问⾮静态变量的,但是⾮静态变量是可以访问静态⽅法的)6.弄清⽅法覆盖和⽅法重载的区别⽅法覆盖必须发⽣在具有继承关系的⽗⼦关系中(重写后的⽅法必须的之前的⽅法具有相同的⽅法名,参数列表以及返回值!!)⽅法重载是在⼀个类中,⽅法名必须相同,但参数列表不⼀致7.弄清楚 super() 的作⽤,A类继承B类,B类有两个构造⽅法,⼀个有参,⼀个⽆参,A类在写构造⽅法的时候,第⼀⾏会默认加上 super() (你看不见。
),但是这个默认调⽤的是B类的⽆参构造,所以⽗类写构造⽅法的时候⼀定要注意8.Java⼀个类中只能有⼀个 public 类9.Java单引号表⽰字符,双引号才表⽰字符串10.final 修饰的类⽆法被继承,final 修饰的⽅法⽆法被重写11.注意,抽象类中的抽象⽅法是不可以写⽅法体的例如: public abstract void eat() ;12.抽象类中可以有抽象⽅法和⾮抽象⽅法⾮抽象类可以继承抽象⽅法,但是,但是,前提是必须实现(其实就是重写)抽象⽅法!!《别记混了》⾮静态⽅法既可以访问静态⽅法⼜可以访问⾮静态⽅法,⽽静态⽅法只能访问静态数据⽅法。
考试题型:填空题(30分),单选题(2*8),问答题(5*4),程序阅读,改错题(5*4),编程题(14) 第一章 P5 JAVA文件的命名方式 由一个或多个扩展名为“.java”的文件组成。
P8编译和运行java程序的流程
第二章 习题册P5-P8习题1.4-1.17;P9-10:1.22、1.23、1.24;P15:1.2、1.3 P24 标识符的命名规则 以字母开头的字母数字序列。 (1) 数字0~9,大小写英文字母,下划线,美元符($),也可以是Unicode字符集中的字符,如汉字等 (2) 字母、数字等任意组合,不能包含其他字符。例如:不能有+、-等。 (3) 区分字母大小写 (4) 不能使用关键字 (5) 长度不受限制 例如:abc、i、x1、x_2、sum都是标识符,1x、x+y、R[1]、k*不是,而VALUE、Value、value是不同的标识符。 Java语言约定,关键字、变量、对象、方法、包等名字通常全部字母小写;由多个单词构成的标识符,首字母小写,其后单词首字母大写,如toString;类名首字母大写;常量名全部字母大写。
P28变量的申明,各种类型数据的表示范围 变量声明格式:如:int i = 0 , j = 0; [修饰符] 数据类型 变量 [=表达式]{,变量[=表达式]} 声明一个变量,系统将为该变量分配内存单元,内存单元大小取决该变量的数据类型;可在声明时对变量进行初始化;同一作用域的标识符只能被声明一次,不能重复声明。
P29 运算符与表达式:习题1.4-1.17 P52数组的定义方法、引用模型(引用赋值)、维数表示(第一维、第二维的表示),不规则二维数组的表示(大) 定义方法: int a[]; 或 int[] a; 引用赋值:数组是引用数据类型, 例如: int a[]={1,2,3,4,5},b[]; b=a; //引用赋值,数组变量赋值,传递引用 b[1]=10; //a[1]==10 b=new int[4]; //b重新申请数组空间,a==b为false b=null; //释放数组占用的存储空间 二维数组: int mat[][] = new int [2][3]; //声明和申请存储空间 int mat[][] = {{1,2,3},{4,5,6}}; //声明时赋初值 不规则二维数组: int mat[][]; mat = new int [2][]; //申请第一维存储空间 mat[0] = new int [2]; //申请第二维存储空间 mat[1] = new int [3];
P62 string类型数据的定义形式,string类常用方法表2-9(charAt,substring) 第三章 习题册:P31-32:2.5、2.8、2.9,P34-35:1.3、1.4、1.7、1.8;P36:1.12、1.13、1.16、1.17、1.18 P73类的构造方法的定义的形式,main()方法的申明形式 构造方法用于创建类的一个实例并对实例的成员变量进行初始化。构造方法与类中成员方法不同之处是:构造方法与类同名;构造方法通过new运算符调用。 默认构造方法:当一个类没声明构造方法时,Java自动为该类提供一个无参数的默认构造方法,对各成员变量按其数据类型进行初始化。 一个类需要声明默认构造方法为成员赋默认值。
P74this功能,三大用途(大) (1) 指代对象本身。用于指代调用成员方法的当前对象自身。格式: this (2) 访问本类的成员变量和成员方法。引用当前对象的成员变量,调用当前对象的成员方法。 this.成员变量 this.成员方法([参数列表]) (3) 调用本类重载的构造方法。 this([参数列表])
P75 java类与成员的访问权限 2种访问控制权限:公有和缺省 (1) private声明私有成员,仅能被当前类的成员访问 (2) 没有修饰符表示缺省权限,说明该成员能被当前类以及当前包中的其他类访问,也称在当前包中可见。 (3) protected声明保护成员,该成员能被当前类及其子类、或当前包中的其他类访问,也称在子类中可见。 (4) public声明公有成员,可被所有类访问。 权限修饰符 当前类 当前包 其他包的子类 所有类 private(私有) √ 缺省 √ √ protected(保护) √ √ √ public(公有) √ √ √ √
P76 static的用途(可以修饰什么、不可修饰什么不能申明方法的局部变量为static) 静态成员属于类,即使没有创建实例,也可以通过类名直接访问静态成员变量和调用静态成员方法。 在类内部,可直接访问静态成员,省略类名,静态成员也可以通过对象引用。在静态成员方法体中,不能访问实例成员,不能使用this引用。在Java中,不能声明方法的局部变量为static。 在声明时,可对静态成员变量赋初值,也可使用static声明静态初始化块,对静态成员变量进行初始化,格式如下,其中只能访问类中的静态成员,且不能引发检测性异常,并在类加载时执行。 static //静态初始化块 { 静态成员变量初始化; }
P87 子类对父类成员的访问权限问题 (1) 不能访问父类的私有成员(private) (2) 能访问父类的公有成员(public)和保护成员(protected) (3) 子类对父类的缺省权限成员的访问控制,以包为界分为两种情况:可以访问当前包中父类的缺省权限成员,不能访问其他包中父类的缺省权限成员。
P87 super()的用途用法(大) 调用父类的构造方法。格式: super([参数列表]) 在以下两种情况下,Java默认执行super(),调用父类的构造方法。 (1) 当一个类没有声明构造方法时,Java为该类提供默认构造方法,调用super()执行父类无参数的构造方法。 (2) 如果子类的构造方法没有调用super()或this(),Java将默认执行super()
P93 父类对象引用子类实例问题 子类对象即是父类对象,表现为父类与子类之间具有赋值相容性,即父类对象能够引用子类实例,反之不行。例如: Person p = new Student(); //赋值相容,子类对象即是父类对象 Student s = new Person(); //语法错,赋值不相容,父类对象不是子类对象 再扩展到Object类,由于所有类都是Object的子类,所以一个Object对象能够引用任何类的实例。例如: Object obj = new Person(); //赋值相容,子类对象即是父类对象 即是性质也表现在方法调用的参数传递过程中。
P93-94 编译时多态和运行时多态(大) P94-95多态的equals()方法、equals方法的定义
声明如下,比较两个对象是否相等。 P98 abstract的用途 声明抽象类与抽象方法。抽象类用于描述抽象概念,其中声明的抽象方法为多个子类约定方法声明,每个子类根据自身的实际情况,给出抽象方法的具体实现,显然不同的子类可以有不同的方法实现。因此,一个抽象方法在多个子类中表现出多态性。抽象方法提供方法声明与方法实现的分离机制,使抽象类的多个子类能够实现出共同的行为能力。 P101 final的用途 声明最终类,最终方法。最终类不能被继承;最终方法不能被子类覆盖。 最终类中包含的都是最终方法,非最终类也可以包含最终方法。
第四章 习题册P45-46:1.1、1.2;P46:1.1、1.4、1.5
P106 接口的定义形式、接口的基本性质、继承规则 用关键字implements声明一个类将实现指定接口,格式: [修饰符] class 类 [extends 父类] [implements 接口列表] 一个类可以实现多个接口,实现接口的非抽象类必须实现(覆盖)所有指定接口中的所有抽象方法,方法的参数列表必须相同;否则,该类型必须声明为抽象类。 一个接口可以有多个父接口。
P115 java默认包、Object类为java中所有类的父类、且在lang包中
P116 Comparable接口的定义、功能,CompareTo()方法的功能(大) Comparable接口声明一个比较两个对象大小的compareTo()方法,声明如下: public interface Comparable { int compareTo(T obj) } MyDate类也可将compareTo(d)方法实现为返回两个日期相距的天数。 只要实现Comparable接口的类的两个对象才能比较大小。
P121 获得当前日期的年份、月份 thisYear = Calendar.getInstance().get(Calendar.YEAR); //获得当前日期对象中的年份值 第五章 习题册:P52:2.1、2.2、
P128 为何异常处理、如何异常处理,能解决哪些问题,不能解决哪些问题(大)
P132 try{}catch(){}finally{}语句的应用(大) 用来捕获和处理一个或多个异常。catch语句可以有多个,finally子句可省略。 try子句包括可能产生异常的语句序列;catch子句用于捕获并处理。两者都将执行finally子句。
第六章 P146 几种容器默认布局管理器 FlowLayout流布局管理器:从左至右排序、一行一行排列; BorderLayout边布局管理器:划分为5个区域(东南西北和中间); GridLayout网格布局管理器:从左到右、从上到下;如果组件数多于网格数,将自动增加网格。
P150 Windowlisrener的用途用法 注册和取消窗口事件:add / removeWindowListener
P165 JoptionPane的用途用法、确认对话框各按钮的返回值 定制多钟形式的标准对话框,如消息、确认和输入等。 “是”返回0,“否”返回1,“取消”返回2 。
P179 绘制图形用的方法:paint() paint()方法和普通方法不同,太是由系统自动执行。当创建一个组件对象时,系统自动执行该组件的paint()方法,绘制特定图形。因为,一个类如果需要在组件上绘图,则该类必须声明为继承某个Java组件类,并且覆盖paint()方法,否则系统不能自动执行paint()方法。
第七章 习题册:P67-68:1.1、1.2、1.7
P191 thread 和runnable的定义、用法,run()和start()方法的用途与含义