JavaSE
Java语言是面向对象的程序设计语言之一;
面向对象的程序设计方法将数据及对数据的操作方法封装在一起,作为一个相互依存不可分离的整体——对象;
对同类型的对象抽象出其共性形成类。
第一章 Java语言基础知识
1、机器语言、汇编语言、高级语言(面向过程(程序=数据结构+算法)面向对象(对象=静态属性+动态行为/程序=对象+对象+……))
2、开发一个软件是为了解决某些问题,这些问题所涉及的业务范围称为该软件的问题域。
3、面向对象的特征:封装(代码隐藏)/继承(代码重用)/多态(代码多用)
4、Java语言的特点:面向对象/平台无关/简单/安全/多线程/垃圾回收
5、JavaAPI(Application Programming Interface)
6、J2SE开发环境:JDK path:bin/CLASSPATH:lib/dt.jar和lib/tools.jar Eclipse/MyEclipse IDE:集成开发环境
7、Application:public class Welcome {public static void main(String[] args){System.out.println("Welcome");}}
8、Applet:import java.awt.*;import java.applet.*;public class Test extends Applet {public void paint(Graphics g){g.drawString("Welcome");}}
<applet code="Test.class" width="" height=""></applet>
9、接口:Servlet-GenericServlet-HttpServlet/javax.servlet+javax.servlet.http/PrintWriter out = new HttpServletResponse().getWriter();out.print("<html></html>");
10、JSP:Java Server Pages
JavaBean javax.servlet.jsp/javax.servlet.jsp.tagext
11、标志符:字母数字下划线和美元符号
常量:final type varName[ = 初值];
变量:type varName[ = 初值];
12、数据类型:
基本类型:byte/short/int/long/float/double/char/boolean
引用类型:数组/class/interface
13、运算符:单目、双目、三目/算术、赋值、关系、逻辑、位、条件
14、类型转换:强制(显示)、自动(隐式)
15、数组:声明(type[] arrayName;/type arrayName[];)、创建(type[] arrayName = new type[NUMBER];/type[] arrayName;arrayName = new type[NUMBER])、初始化(type[] arrayName = {element[,element]};)
第二章 类与对象的基本概念
1、抽象、封装、继承、多态
2、类的声明:[public][abstract][final] class 类名 [extends 父类名] [implements 接口列表]{数据成员;成员函数;}
3、类的一个对象就称为类的一个实例。Student student = new Student();Student student = null;student = new Student();
4、数据成员:[public|protected|private][static][final][transient][volatile] 变量数据类型 变量名[ = 初值];
5、成员函数:[public|protected|private][static][final][abstract][native][synchronized] 返回类型 方法名(参数列表)[throws exceptionList]{方法体;}
6、类的组织:package/import/*
7、get/set方法 this/super
8、System.gc()/toString():public String toString(){无System.out;return "";}/protected void finalize()throws Throwable
9、UML(统一建模语言)(unified model language):视图、图、模型元素、通用机制
10、类图:类名|属性名|方法名
对象图(有下划线):对象名:类名/:类名/对象名
第三章 类的方法
1、流程控制:顺序、选择(if/switch)、循环(for/while/do-while)
2、return/break/continue/goto
3、异常处理:
Object-Throwable-(Error/Exception-(RuntimeException/非RuntimeException))
try/catch/finally/throw/throws
4、方法重载:参数必须不同(个数/类型)、返回类型可以相同也可以不同
第四章 类的重用
1、继承:父类(基类)子类(派生类)is a
extends SuperClassName implements InterfaceName
2、属性隐藏和方法覆盖
3、构造方法(初始化):类同名、无返回、不继承、用super()、一般public
4、Object类:getClass()/toString()/equals(Object obj)/clone()/hashCode()/finalize()
5、final:终结类、终结方法
abstract:抽象类、抽象方法
组合:保持其它类的引用
6、包:java.lang/java.util/java.io/java.net/java.awt/java.applet/java.text
package/import/JAR文件
第五章 接口与多态
1、[接口修饰符] interface 接口名称 [extends 父类名] {}/默认为static和final
2、多重继承:[类修饰符] class 类名 implements 接口1, 接口2, …… {}
接口的扩展:[接口修饰符] interface 接口名称 extends 父接口1, 父接口2, …… {}
3、类型转换:隐式(自动)/显式(强制)也称塑型
对象塑型:父类、接口、本类
4、方法的查找:向上查找 多态 绑定:早期绑定、后期绑定
5、匿名内部类
第六章 输入输出流
1、I/O流:
面向字符的流:Reader/Writer-InputStreamReader/OutputStreamWriter/BufferedReader/BufferedWriter-FileReader/FileWriter
面向字节的流:InputStream/OutputStream-FileInputStream/FileOutputStream-BufferedInputStream/BufferedOutputStream
2、标准输入输出:System.in/System.out/System.err
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));in.readLine();
System.out.print("");System.out.println("");
3、文本文件读写:
FileWriter writer = new FileWriter("路径"[, ture]);writer.write("");writer.close();
BufferedWriter out = new BufferedWriter(new FileWriter("路径"));out.write("");out.newLine();out.close();
BufferedReader in = new BufferedReader(new FileReader("路径"));in.readLine();in.close();
4、二进制文件读写:
DataOutputStream+FileOutputStream
DataInputStream+FileInputStream
5、File类/对象序列化:ObjectOutputStream/ObjectInputStream/随机读写:RandomAccessFile
第七章 对象群体的组织
1、根接口:Collection/Map
2、Collection-Set(无重复)(SortedSet)/List(有序) Map-SortedMap
实现:HashSet/ArrayList/HashMap SortedSet-TreeSet SortedMap-TreeMap
3、Enumeration/Iterator
哈希表用的两个类:HashTable/HashMap
第八章 多线程
1、进程:运行着的程序。
2、线程:extends Thread/implements Runnable/public void run()/synchronized
3、执行命令:Process process = Runtime.getRuntime().exec("cmd /c " + s);process.waitFor();
第九章 图形用户界面
1、GUI(Graphical User Interface)图形用户界面
2、Applet:init()/start()/paint()/repaint()/stop()/destroy()
3、绘图:Font/Color/Graphics/Graphics2D
4、awt/swing
5、布局管理:BorderLayout/CardLayout/FlowLayout/GridLayout
第十章 JDBC与数据库访问
1、JDBC(Java Database Connectivity)
2、步骤:
引入包:import java.sql.*;
加载驱动:Class.forName("");
建立连接:Connection con = DriverManager.getConnection("", "", "");
生成语句:Statement stmt = con.createStatement();//增删查 PreparedStatement pstmt = con.prepareStatement("");//改
处理结果:ResultSet rs = stmt.executeQuery("");
关闭连接:stmt.close();pstmt.close();rs.close();con.close();
第十一章 Servlet程序设计
1、协议:IP/TCP/UDP/HTTP(GET/POST)
2、URI(URL)
3、TCP
服务器端:
ServerSocket server = new ServerSocket(int port, int backlog);
Socket socket = server.accept();
socket.getInputStream();
socket.getOutputStream();
socket.close();
server.close();
客户端:
Socket socket = new Socket(InetAddress address, int port);
socket.getInputStream();
socket.getOutputStream();
socket.close();
4、UDP
DatagramSocket socket = new DatagramSocket(int port);
DatagramPacket pack = new DatagramPacket(byte[] bufferedArray, int length, InetAddress address, int port);
socket.send(pack);
DatagramPacket pack = new DatagramPacket(byte[] bufferedArray, int length);
socket.receive();
socket.close();
5、Servlet:是有Java语言实现的CGI(Common Gateway Interface)。
6、Servlet容器(Servlet)<-->Web服务器(Apache Tomcat)|应用服务器
7、Web应用程序:webapps-WEB-INF-(web.xml/classes/lib)
Servlet API(javax.servlet/javax.servlet.http)
Servlet-GenericServlet-HttpServlet
Servlet:init()/service()-(doGet()/doPost())/destroy()/getServletInfo()/getServletConfig()
注意:server.xml/HttpServletRequest/HttpServletResponse
8、Servlet生命周期(仅一个Servlet实例):服务器装载init()/处理客户端请求service()/服务器卸载destroy()
9、Cookie login = new Cookie("name", "liwei");
login.setMaxAge(60*60*60);
res.addCookie(login);//HttpServletResponse
Cookie[] cookies = req.getCookies();//HttpServletRequest
10、HttpSession session = request.getSession(true);
session.getAttribute();
session.setAttribute();
session.putAttribute();
session.removeAttribute();
session.invalidate();
第十二章 JSP程序设计
1、JSP(Java Server Pages):是嵌入了Java代码的HTML。
ASP/ASP.NET/PHP
注:JSP首先转化为Servlet
2、JSP语法:
表达式:<%= expression %>
程序片:<% code %>
声明语句:<%! declaration %>
指令标签:<%@ page|include|taglib key="value" %>
动作标签:<jsp:include|forward|plugin attribute1="value1",attribute2="value2" />
3、JavaBean:
无public属性、有无参构造、有getter/setter
<jsp:useBean id="" class="" scope="page|request|session|application" />
<jsp:getProperty name="" property="" />
<jsp:setProperty name="" property="" value="" />
4、JSP内置对象:out/request/response/session/application
5、<%@ include file="fileName" %>
<jsp:include page="someFile.html" />
6、JSP标签库:
一、标签处理类
javax.servlet.jsp.tagext.Tag/javax.servlet.jsp.tagext.TagSupport/javax.servlet.jsp.tagext.BodyTagSupport
doStartTag()/<prefix:tagName />
注:JspWriter out = pageContext.getOut();out.print("");
二、标签描述文件(tld)
XML版本声明、DOCTYPE声明、taglib容器元素(tag)
tag(name/tag-class/body-content/description)
三、使用标签
<%@ taglib uri="example.tld" prefix="testTag" %>
<testTag:example />
7、自定义标签库
标签处理类中增加:protected int range = 100;setRange(int range)
标签描述文件中增加:<attribute><name>range</name><required>false</required></attribute>
JSP中使用:<testTag:example range="1000" />
8、MVC(model view controller)显示层、逻辑层、控制层
补充
1、SAX接口解析XML
DOM接口解析XML
2、1991/SunMicrosystems/JameCosling 编译解释 JVM/GC/CS
3、注释:// /*……*/ /**……*/
4、String/StringBuffer/Date
5、GUI(Graphics User Interface)
AWT(Abstract Window Tookit) java.awt
Object-Component-Container-(Panel(Applet)/Window(Frame/Dialog))
设计组件/指定布局/添加事件
FlowLayout/BorderLayout/GridLayout/CardLayout
MenuBar-Menu-MenuItem
javax.swing
JFrame 坐标系统:左上(0,0)
Font/Color/Graphics Paint/Update/Repaint
SAX接口解析:
File file = new File("c:\\java\\Person.xml");//加载文件
FileReader reader = new FileReader(file);//生成FileReader
SAXParserFactory spf = SAXParserFactory.newInstance();//创建解析工厂
SAXParser sp = spf.newSAXParser();//创建解析器
SAXHandler handler = new SAXHandler();//创建处理类
sp.parse(new InputSource(reader), handler);//解析
Hashtable table = handler.getHashtable();//得到数据
System.out.println("姓名:" + table.get("name"));//输出数据
//重写处理类
import java.util.Hashtable;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class SAXHandler extends DefaultHandler {
private String currentElement = null;
private String currentValue = null;
private Hashtable table = new Hashtable();
@Override
public void characters(char[] arg0, int arg1, int arg2) throws SAXException {
// TODO Auto-generated method stub
currentValue = new String(arg0, arg1, arg2);
}
@Override
public void endElement(String arg0, String arg1, String arg2)
throws SAXException {
// TODO Auto-generated method stub
if (currentElement.equals(arg2)) {
table.put(currentElement, currentValue);
}
}
@Override
public void startElement(String arg0, String arg1, String arg2,
Attributes arg3) throws SAXException {
// TODO Auto-generated method stub
currentElement = arg2;
}
public Hashtable getHashtable() {
return table;
}
}
参考:《Java语言程序设计》 郑莉 王行言 马素霞 清华大学出版社