J2SE笔记

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语言程序设计》 郑莉 王行言 马素霞 清华大学出版社

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柠檬李先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值