Java 复习提纲.docx
- 文档编号:27213321
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:21
- 大小:185.38KB
Java 复习提纲.docx
《Java 复习提纲.docx》由会员分享,可在线阅读,更多相关《Java 复习提纲.docx(21页珍藏版)》请在冰豆网上搜索。
Java复习提纲
Java复习提纲
1、Java基础
1.1Java语言概述
1.1.1特点(跨平台、面向对象、多线程、安全、简单。
。
。
)
1.1.2JVM(编译与运行期、JVM实例、垃圾回收)Runtimecompiler
1.2标识符、关键字
1.2.1标识符:
$_[a-z,A-Z](包括中文)开头
1.2.2关键字:
goto、const…volatilestrictfp
1.2.3Package、import、staticimport
1.2.4命名规则
1.3变量
1.3.1局部变量(栈变量)、执行栈
1.3.2全局变量(堆变量)、堆回收
1.3.3作用域({语句块})
1.4控制语句
1.4.1分支(if(i=5)、switch(break)case[常量表达式]:
)
1.4.2循环(for(;;)、while(*)、do..while(+))、(:
label、break、continue)
1.5基本数据类型
1.5.1boolean
1.5.2char(16)0~216-1
1.5.3byte(8)->short(16)->int(32)->long(64)(-2n-1—2n-1-1)
1.5.4float(32)1038->double(64)10308IEEE754
1.5.5转型:
shorts=6;s=(shot)(s+s2);5/2=2;5.0/2=2.5
1.6引用数据类型
1.6.1Strings=”123456”;(s(0x000ff)->”123456”);;inti=5(i(5))
1.6.2==与equals的区别hashcode
1.7字符串
1.7.1字符串不可改变;s=s1+s2;s1=“111”;s2=“111”;s1==s2
1.7.2String与StringBuffer与StringBuilder
1.8数组
1.8.1int[]args=newint[5];intargs[]={1,2,3,4,5,6};args=newint[]{1,2,3,456,6,7};
1.8.2数组的长度不可改变;数组是对象;Object[]os=newString[]{};//协变
1.8.3多维数组(数组的数组);String[]args[]=newString[][5];\\X;
String[][]args={{“123”,”abc”},{“test”,”Admin”},{“fffff”,”kkkkkk”,”wwww”}};
1.8.4工具类:
Arrays.sort()fill()
1.8.5数组的长度不可改变
publicclassDynArray{
privateObject[]args=newObject[10];
//Add
publicvoidadd(Objectvalue){
Object[]temp=newObject[args.length+1];
System.arraycopy(args,0,temp,0,args.length);
args=temp;
args[args.length-1]=value
}
publicObjectget(intindex){…}
publicObjectremove(intindex){…}
publicintlength(){…}
…..
}
DynArrayda=newDynArray();
da.add(5);//1.4N;1.5Y;自动装箱
da.add(“123”);
for(inti=0;i intvalue=(Integer)da.get(i);//(i=0)自动撤箱//X(i=1);ClassCastException System.out.println(value); } 1.9类与对象基础 1.9.1类是一个概念 1.9.2对象是具体的事物 1.9.3构造对象的方式: newClass.newInstance()ObjectInputStream.readObject()Object.clone() 1.9.4构造对象的过程: classA{inta=5;A(){};privatevoida(){}} classBextendsA{inta=8;B(){};privatevoida(){}} Aa=newB();//A.a=0=>A.a=5=>A()=>B.a=0=>B.a=8=>B() a.a==? ;//5 Bb2=(B)a; b2.a==? ;//8 a.a(); 2、面向对象编程 2.1面向对象基础 2.1.1什么是面向对象(OOA-OOD-OOP) 2.1.2为什么需要面向对象(更加符合现实) 2.1.3面向对象的特点: 抽象,封装,继承,多态 (overrite[non-static,可访问,名称,参数列表,返回类型,异常],//运行时 overload[方法名,参数列表])//编译时 2.1.4修饰符: public,protected,default,private 2.2类与对象进阶 2.2.1Static(属性,块,方法,内部类(newO.I()))类成员 2.2.2Final(类,方法,属性,局部变量)(final,finally,finalize) 2.2.3InnerClass(封装,内部类访问外部类的成员)内部类一般只在外部类中使用 2.3接口与抽象类 2.3.1区别: 规范,模板 2.4单例与工厂 2.4.1单例(节约时间和空间) 2.4.2工厂方法(解耦合) 2.4.3单例工厂 3、基础API 3.1异常处理 3.1.1异常体系(Throwable,Error,Exception,RuntimeException) 3.1.2Trycatchfinally(System.exit(0)) //1 try{ //试着执行的代码 //2 }catch(IOExceptione){ //异常处理代码 //3 }catch(Exceptione){ //异常处理代码 //4 }finally{ //总会执行的代码 //5 } //6 3.2JDBC 3.2.1JDBC的四种连接方式(Jdbc-odbc,NativeAPI,Netware,纯JavaAPI) 3.2.2JDBC中常用的接口 (Connection,Statement,ResultSet,ResultSetMetaData,PreparedStatement(SQL注入),CallableStatement(存储过程)) select*fromhib_Userwhereusername=''or1=1or''=''andpassword='1111' 3.2.3经典JDBC代码(ConnectionFactory) 3.2.4DataSource(连接池)与DriverManager 3.2.5可滚动和可更新结果集 Statementstmt=con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE,//可滚动 ResultSet.CONCUR_UPDATABLE);//可更新 ResultSetrs=stmt.executeQuery("SELECTa,bFROMTABLE2"); 3.2.6DAO中的使用 3.3集合 3.3.1集合中的接口 (Iterator,Iterable), (Comparable,Comparator), Collection(List,Set(SortedSet),Queue), Map(SortedMap) 3.3.2List(ArrayList,ListedList) 3.3.3Set(HashSet,LinkedHashSet,TreeSet) 3.3.4Map(HashMap,ListedHashMap,TreeMap) 3.3.5Queue(LinkedList,PriorityQueue) 3.3.6JDK1.0: Vector,HashTable,Stack,Enumeration 3.3.7工具类: Collections(sort,fill,…),Arrays(asList()) 3.3.8迭代器(Iterator) Iterator while(it.hasNext()){ Strings=it.next(); } for(Iterator Strings=it.next(); } for(Strings: list){ System.out.println(s); } Map迭代 ======================== Map Set Iterator while(it.hasNext()){ Integerk=it.next(); Stringvalue=map.get(k); } 3.3.9线程安全集合: map=Collections.synchronizedMap(map); 3.4IO 3.4.1IO的分类: Input/Output;节点流/处理流;字节流/字符流 3.4.2IO的根: InputStream,OutputStream,Reader,Writer 3.4.3常见的节点流: FileInputStream,FileReader,ByteArrayStream,StringReader 3.4.4常见的处理流: PrintWriter,BufferedInputStream, DataInputStream,LineNumberInputStream BufferedReader,InputStreamReader ObjectOutputStream 3.4.5油漆工(decorator) 3.4.6对象的序列化: ObjectInputStream,ObjectOutputStream; java.io.Serializable serialVersionUID static,transient不可被序列化 (存储,传输)RMI 3.4.7经典代码: InputStreamin= newBufferedInputStream(newFileInputStream(“c: /test.txt”)); OutputStreamout= newBufferedOutputStream(newByteArrayOutputStream()); inti=0; byte[]buffer=newbyte[1024]; while((i=in.read(buffer))! =-1){ out.write(buffer,0,i); } out.flush(); in.close();out.close() 3.5多线程 3.5.1为什需要多线程: 1、可以提高效率 2、并发操作 3、异步通信 3.5.2创建一个多线程类的方式: Thread,Runnable 3.5.3启动/停止一个线程的方式: start(),stop()[booleanflag] 3.5.4同步(synchronized): 为了对共享数据的保护 3.5.5Lock(tryLock,lock,unlock,newCondition),Condition(await,signal) 3.5.6死锁: 多个线程相互持有对方的释放锁的条件 3.5.7Object: notify(),notifyAll(),wait() 3.5.8Thread: yalid(),sleep(),join(),start() 3.5.9线程状态图 3.6网络编程 3.6.1什么是Socket编程 3.6.2TCP/IP协议 3.6.3TCP: 面向连接,安全性高,文件传输等 Sever: ServerSocketss=newServerSocket(2000); while(true){ Sockets=ss.accept(); newHandleThread(s).start() } Client: Sockets=newSocket(ip,serverPort); 3.6.4UDP: 传输效率高,传输图像等 Receiver: DatagramSocketds=newDatagramSocket(2000); DatagramPackagedp= newDatagramPackage(newbyte[1024],length); ds.receive(dp) Sender: DatagramSocketds=newDatagramSocket(); byte[]buffer=message.getBytes(); DatagramPackagedp= newDatagramPackage(buffer,buffer.length,InetAddress.getByName(ip),port); ds.send(dp); 4、GUI(Swing)AWTSWT 4.1组件: JButton,JTextField,JList,JTable 4.2布局: FlowLayout,GridLayout,GridBagLayout,BorderLayout,BoxLayout 4.3容器: 顶级容器JFrame、JDailog、JWindow、JApplet;中间容器JPanel、JScollPane、。 。 4.4事件处理机制(观察者(Observer)) JFrameframe=newJFrame(); frame.setSize(400,300); forme.setTitle(“TestWindow”); JButtonjb=newJButton(“OK”); jb.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ //ClickHandle } }); frame.add(jb); forme.setVisiable(true); 4.5MVC SmailTalk 5、Web编程 5.1BS与CS的区别 不同: 客户端的不同,传输协议的不同(HTTP,RMI-IIOP,SOAP,CORBA),运行的方式的不同… 优点: 安全,部署,移植 缺点: 服务器的压力比较大,安全性,交互性 相同: TCP/IP… 5.2HTTP协议 5.2.1特点: 基于TCP/IP协议,请求与响应,无状态 5.2.2Request: GET/index.jspHTTP/1.1 5.2.3Response: HTTP/1.1200OK Content-Length: 81 …… 5.3Web服务器: Apach(php),IIS(asp),(WebServer) Tocmat,Jetty(jsp+servlet),(Servlet容器) GlassFash,Jboss,WebLogic,WebSpare(jsp+servlet,EJB,…)(JEEServer) 5.4Tomcat中Web应用程序结构: [tomcat]//地址如: 端口: 8080 ├─bin │└─startup.bat//启动文件,可以改服务器端口 ├─conf │└─server.xml//配置文件 ├─webapps │├─MyApp//你的Web应用程序 ││├─WEB-INF │││├─tags//*.tag标签文件 │││├─classes ││││├─*.class//类文件 │││├─lib ││││├─*.jar//库文件 │││├─web.xml//应用程序配置文件 │││├─*.tld//标签库描述文件 ││├─images//图片目录 ││├─*.html//网页 ││├─*.jsp//jsp页面 │├─OtherApp//其他Web应用程序 //注意: 访问URL: http: //: 8080/MyApp/... 5.5Servlet 5.5.1什么是Servlet: ? 5.5.2HttpServletRequest: getContextPath(),getParameter(Stringname),MapgetParameterMap() EnumerationgetParameterNames(),String[]getParameterValues(String name) voidsetCharacterEncoding(String env), 5.5.3HttpServletResponse: sendRedirect(Stringlocale),sendError(intstate,Stringmessage), getOutputStream(),getWriter(),voidsetCharacterEncoding(String env) 5.5.4生命周期 init() service() destroy() 5.5.5Servlet的特性: 默认是单例多线程(线程池);有线程安全问题; 1、尽量不要使用全局变量(属性); 2、使用同步(synchronized); 3、实现SingleThreadModel接口(多例多线程) 4、可以使用ThreadLocale 5.5.6HttpServlet处理流程 典型流程: service(Servlet…)->service(HttpServlet…)->doXXX(HttpServlet…) 5.5.7信息的传递 PageContext,Request,Session(Cookie,URL重写),ServletContext 5.5.8转向: 客户端: response.sendRedirect(“ return; 服务器: RequestDispatcherrd=request.getRequestDispatcher(“/login.html”); rd.forward(request,response); return; 5.5.9包含 5.5.10过滤器 Javax.servlet.Filter chain.doFilter(request,response); /*;*.jsp;/user/* 5.5.11监听器 5.6JSP 5.6.1组成元素 静态内容, 指令<%@page%><%@taglib%><%@include%><%@tag%><%@attribute%>, 动作 useBean/> setProperty/> getProperty> forward/> include/>, 表达式<%=i%><%out.print(i)%>, 注释<%--jsp--%> --html-->, 声明<%! publicvoidtest(){}%>, 脚本<%%> _jspService() 5.6.2生命周期: 转译----->编译---->加载------>初始化------->服务------->注销 5.6.3内置对象: session,request,application,page,pageContext,exception,config,out,response 5.6.4动作(Action) useBean/> setProperty/> getProperty> forward/> include/> 5.6.5自定义标签 标签类: TagClassextendsSimpleTagSupport; /WEB-INF/tlds/tag.tld; <%@taglibprefix=”c”uri=”/WEB-INF/tlds/tag.tld”%> 标签文件: /WEN-INF/tags/my/XXX.tag <%@tagbody-content="scriptless"pageEncoding="UTF-8"%> <%@taglibprefix="f"tagdir="/WEB-INF/tags/my"%> XXX/> 5.6.6JSTL 5.6.6.1Coreformatsqlxml 5.6.6.2 foreachvar=”u”itmes=”${list}”/> out/> set/> iftest=”${i==1}”/> url/> choose> whentest=""/> choose> 5.6.7EL ${list}${user.name}${user[‘name’]} ${sessionScope.list}${pageContext.request.contextPath}${param.id}${head[‘..’]} ${fn: toLowerCase(sessionScope.list)} 5.7MVC(jsp+Servlet+javaBean+jdbc) 5.8在容器中配置数据源: 5.9Html 5.9.1Html标签 5.9.2Form标签: 5.10CSS 5.10.1CSS语法由三部分构成: 选择器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 复习提纲 复习 提纲