zoukankan      html  css  js  c++  java
  • JAVA学习大纲

    1、第一节 JAVA概念与JDK的安装

    1JDK的安装和环境变量的设置;

    2)相关基本概念:JDKSDKJREJVMJ2SEJ2EEJ2MEjava APIJAVA语言特点;

    3)一个简单的Hello World简单示例;

    4javac.exejava.exeappletviewer.exe的作用、使用;

    5)基本输入输出应用

      • import java.util.Scanner;

    Scanner s=new Scanner(System.in);

           float x=s.nextFloat();//s.nextLong();

           System.out.print("x="+x);

    2、第二节 基本类型与复合类型概念、数组

    1JAVA的八种基本类型:booleancharbyteshortintlongfloatdouble

    基本型

    boolean

    byte

    char

    short

    int

    long

    float

    double

    包装类

    Boolean

    Byte

    Character

    Short

    Integer

    Long

    Float

    Double

           注:包装类介绍在5.8.1节(P143

    • 整型常量默认为:int;   浮点常量默认为:double;

           int   x=123()      float  x=123.4(Χ )

           long  x=123()     double x=123.4()

    2)基本类型与复合类型的区别;基本类型变量与引用类型变量的区别;(举例说明)

    3)数组的声明、创建、初始化

         • 例:int[] x;         //声明       //声明时一定不能在[]中写入数字

               x=new int[10];  //创建   

               x[0]=1;        //初始化

         • 通过初始化创建数组:

    String[]  names=new String[]{kack,wang,zhang};

    String[]  names={kack,wang,zhang};

    • 二维数组

          int[][] x;         //声明

          x=new int[3][];   //创建

          x[0]=new int[4];  //初始化

    4)数组是类对象,其数组长度在创建时确定,可通过[数组名.length]获取到数组的长度

    3、第三节 类特征、定义、构造方法、实例化

    1)面向对象的三大特征:封装、继承、多态

    • 封装:解决了数据的安全性问题

    • 继承:解决了代码的重用问题

    • 多态:解决了程序的扩展问题(编译时多态-重载;运行时多态)

    2)类与对象的概念

    3)类的结构(成员变量、成员方法)和类的定义

         class 类名

         { }  

    4)什么是构造方法及作用

         • 方法名和类名相同

    • 只能通过new调用,用来创建类对象

         • 构造方法不能有返回值,不写void

    4、第四节 包、访问权限、继承

    1)包的定义与使用

         • 定义:package  包名;

    • 使用:import包名.类名;  import包名.*

    2)四种访问权限privatedefaultprotectedpublic

     

    同一个类

    同一个包

    子类

    全局

    private

     

     

     

    default

     

     

    protected

     

    public

         说明:类仅可以用publicdefault修饰;成员可以全部用来修饰;

    3)类的继承:class A extends B {  }

    • 只单继承,不能多重继承

         • 省略extends B时,默认继承于Object

         • 父类的构造方法、private修饰的成员都不能被子类继承

         • 实例化子类对象时,先要执行父类的构造方法,然后再执行子类的构造方法。因此,当父类具有带参数的构造方法是,一定注意保留其不带参数的构造方法。

    5、第五节 this、super的含义,重载与重写

    1thissuper的使用

         this:代表当前类;  super代表父类/父类构造方法;

    2)方法的重载

         • 类中多个方法:名相同,参数不同(个数、类型、顺序)

         • 实现了JAVA的编译时多态(多态的两种方式之一)

    3)方法重写(overriding

         • 指子类重写父类的成员方法;其方法名、返回值、参数列表必须完全一致。

         • 注意和方法重载的区别

    4)运行时多态

         • 上溯造型:将子类类型转换为父类类型(安全)

            例: 动物:猫、狗、猪,都为动物,但叫声不同

         • 下溯造型:将父类类型强制转换为子类类型(不安全)

    5)类型测试运算符:instanceof

         用法:if(A对象  instanceof B){ }

    6Object.equals(Object b)==的区别

         •  equals比较的是对象的内容(StringDateFileIntergerLong

         • Object最早是用来比较是否指向同一个对象,只是后来被他们重写了,比较两个对象是否指向同一个地址

    6、第六节 static、final的使用,抽象类与接口

    1static(静态)

    • static修饰的变量或方法称为类变量类方法,即静态变量和静态方法;

    • 一个类的所有对象共享同一个类变量类方法,即静态变量和静态方法;

    • 静态成员(即静态变量和静态方法),不用实例化就可以使用(类名静态成员);

    • 静态方法中不能引用非静态的变量或方法,因此静态方法中不能出现this

    • 子类不能重写父类的静态方法,但可以去掉static重写(不是真正的重写),可以将父类的静态方法隐藏

    2final(最终)

        • 用来修饰类:类不能被继承;

    • 用来修饰方法:方法不能被重写;

    • 用来修饰变量:变量只读;定义时赋初值,或在构造方法中附初值;

    3)抽象类

    • 抽象类:用关键词abstract修饰的类为抽象类;

    • 抽象方法即:由abstract修饰,只提供方法声明而不提供方法实现;

    • 抽象类中可以有抽象方法也可以没有抽象方法;

    abstract class C

      {

         abstract void aaa(); //抽象方法

         void bbb(){ } //非抽象方法

       }

    • 抽象类不能创建实例;必须通过子类继承并实现其全部抽象方法后方可创建实例;

    4)接口

    • 并非类,可以多重继承,可包含常量定义和方法定义两部分,其所有方法不能有方法体;

    • 口声明:[public] interface 接口名 [extends superinterface1, superinterface1…]

    public interface Flyer

     {

       int NO=1001;

    public void takeoff();

       public void land();

       public void fly();

    }

    //其中常量默认具有publicfinalstatic属性;方法默认具有publicabstract属性

    • 接口实现:即在类中写出接口的所有方法的实现;

    public class AirPlane implements Flyer

          {

         public void takeoff() {实现代码}

         public void land() {实现代码}

         public void fly() {实现代码}

    }

    7、第七节 图形界面及事件

    1)概念:GUIAWTSwing

    • GUIAWT的含义;

    • AWTSwing的区别;

    • 什么是组件(LabelButtonTextAreaPanelFrame…);

    • 什么是容器(PanelFrame…);

    • 如何创建一个基本的WindowsGUI)应用程序;

    2)布局管理器

    每个容器都可以设置为以下的任一种布局管理

    • FlowLayout:流式布局

    • BorderLayout:边界布局

    • GridLayout:网格布局

    • CardLayout:卡片布局

    • GridBagLayou:网格包布局

    3)事件处理

    • 什么是事件、事件源、事件处理器

    • 实现思路:定义事件类-->注册事件到组件上

    • 常见事件处理接口及其方法

    事件类

    说明

    事件源

    接口名

    方法

    ActionEvent

    通常按下按钮,双击列表项或选中一个菜单项时,就会生成此事件。

    Buttot

    List

    MenuItem

    TextField

    ActionListener

     

    actionPerformed

    AdjustmentEvent

    操纵滚动条时会生成此事件。

    Scrollbar

    AdjustmentListener

    adjustmentValueChanged

    KeyEvent

    接收到键盘输入时会生成此事件。

    Component

    KeyListener

    keyPressed

    keyReleased

    keyTyped 

    MouseEvent

    拖动、移动、单击、按下或释放鼠标或在鼠标进入或退出一个组件时,会生成此事件。

    Component

    MouseListener

    mouseClicked

    mouseEntered

    mouseExited

    mousePressed

    mouseReleased

    WindowEvent

    当一个窗口激活、关闭、失效、恢复、最小化、打开或退出时会生成此事件。

    Window

    WindowListener

    windowActivated

    windowDeactivated

    windowClosed

    windowClosing

    windowIconified

    windowDeiconified

    windowOpened 

    8、第八节 Applet

    1)什么是Applet

    • 是嵌入到网页中通过浏览器执行的JAVA小程序,没有main方法,是基于图形界面的;

    • 可以使用JDKappletviewer来运行网页文件;

    2Applet的定义和使用

     类的定义

    import java.applet.*;

     public class hellow extends Applet {

            //主要是对父类方法的重写

    }

     网页中的调用

     <body bgcolor="000000">

      <applet

    code = "mypack.hellow.class"

    width = "500"

    height = "300"

    >

      </applet>

      </body>

    3Applet生命期四个阶段的主要事件

    • void init()  void start()  void stop()  void destroy()

     

    4)两个重要方法

    • paint(Graphics g):在Applet中显示文字图形等信息,在其生命其中可被多次调用

    • repaint():首先清除Applet界面,然后调用paint(Graphics g) 重新绘图界面

    5Applet的多媒体应用(示例:图形、音乐)

    9、第九节 异常

    1)异常的概念:程序在运行时出现的任何不正常现象或错误被称为异常。(例如:文件不存在、除零、数组越界、网络中断等)

    2)异常的处理:try-catch-[finally]

         try {

             //可能出现异常的语句;

         }

    catchException  e

    { //可有多个catch块,当异常类型与之匹配,则执行之

             //异常产生后的处理代码

             //e.getMessage();

             //e.printStackTrace();

    }

    finally {

            //有无异常均执行,用于异常后的清理工作

    }     

    说明:

    • String getMessage() 获取异常相关的描述信息。

    • void printStackTrace() 显示异常相关信息,含异常的原因,及产生异常的代码行。

    3throwsthrow

         • throws:用于将函数内部产生的异常抛给主调函数;如果某个函数中的代码有可能引发异常,可以使用try/catch块进行处理,这种处理方式成为“内部处理”;如果不方便在函数内部进行处理,也可以将异常往函数外部传递,这就要使用到关键字throws

    返回值类型 函数名(参数列表) throws 异常类型

       {

       }

         • throw:在方法体内手工抛出异常(可以抛出系统定义异常,主要是用户自定义异常)

    if (age < 0 || age > 100)

          {

             //创建一个异常实例,并将其手工抛出

             throw (new Exception("您输入的年龄无效。"));

          }

    10、第十节 多线程

    1)线程与进程的概念;

         • 一个进程在其执行过程中,可以产生多个线程,形成多个程序的执行流。

    2)创建线程的两种方法:继承Thread类 实现Runnable接口;

    • 其共同点就是重写或实现run()方法,因为所有线程都是从run()开始运行;

            • class thread1 extends Thread

             {

                public void run()

                { … }

             }

             创建线程实例:thread1 t=new thread1();

             启动线程:t.start();

             • class thread1 extends superclass implements Runnable

             {

    public void run()

                { … }

    }

    创建线程实例:Thread t=new Thread( new thread1() );

    启动线程:t.start();

       3)线程的基本控制方法

            • start():启动线程

            • stop():终止线程

            • sleep(int s):在线程内部调用使线程休眠一段时间后继续运行

            • isAlive:判断线程是否激活

            • interrupt():唤醒一个正在sleep()join()wait()的线程

            • suspend():暂停一个线程

            • resume():恢复一个线程

            • Thread.currentThread():获取当前线程实例

    11、第十一节 文件操作

    1)文件使用包:java.io.*,包含一系列对文件和目录的属性进行操作,对文件进行读写操作的类;

    2)三个重要类:File、FileInputStream、FileOutputStream;注意捕捉异常;

    3File 类:

    一个File类对象可以代表一个文件或目录;利用它来对文件或目录的属性进行操作,如:文件名、最后修改日期、文件大小等等;需要注意的是,File对象并不能直接对文件进行读/写操作,只能查看文件的属性;

    ①构造方法:File(String pathname);共有4种,此方法常用;

    ②常用方法:

    • boolean exists() 判断文件是否存在,存在返回true,否则返回false

    • boolean isFile() 判断是否为文件,是文件返回true,否则返回false

    • boolean isDirectory() 判断是否为目录,是目录返回true,否则返回false

    • String getName() 获得文件的名称

    • String getAbsolutePath() 获得文件的绝对路径

    • long length() 获得文件的长度(字节数)

    4FileInputStream类:文件输入流,继承于InputStream类,是进行文件读操作的最基本类;

    ①构造方法:

    • FileInputStream(File file) 

    • FileInputStream(String name)

    ②常用方法:

    • int read() 一次读取一个字节,返回值为数据,读到文件尾返回-1

    • int read(byte[] b) 读数据到byte数组中,并返回读取数量,未读到数据返回-1

    • void close() 关闭流对象;

    5FileOutputStream类:文件输出流,继承于OutputStream类,是进行文件写操作的最基本类;

    ①构造方法:

    • FileOutputStream(File file) 

    • FileOutputStream(File file, boolean append) 

    • FileOutputStream(String name) 

    • FileOutputStream(String name, boolean append);

    ②常用方法:

    • void write(int b) 一次写一个字节;

    • void write(byte[] b) byte数组中的数据全部写入到文件中;

    • void close() 关闭流对象;

    6)文件读写举例

    12、第十二节 数据库技术

    1)JDBC的概念:(Java Data Base Connectivity)是JAVA程序访问数据库的标准API

    2)了解:ODBC与JDBC的区别与关系;JDBC的四种驱动类型;SQL数据库语言

    3)数据库操作主要涉及到的包及类

         • 数据库操作包:java.sql.*

    Driver

    用于创建连接(Connection)对象

    Connection

    连接对象,用于与数据库取得连接

    Statement

    语句对象,用于执行SQL语句,并将数据检索到结果集(ResultSet)对象中

    PreparedStatement

    预编译语句对象,用于执行预编译的SQL语句,执行效率比Statement高

    CallableStatement

    存储过程语句对象,用于调用执行存储过程

    ResultSet

    结果集对象,包含执行SQL语句后返回的数据的集合

    4)JDBC开发数据库应用的一般步骤

         ①建立与数据库的连接

           • Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//access加载驱动程序

           • Connection con = DriverManager.getConnection(url,user,password);//创建连接

         ②执行SQL语句

    • Statement stm=con.createStatement();

           • ResultSet s=stm.executeQuery("select * from table");//execute、executeUpdaye

    ③处理结果集

    while(s.next())

           {

              String s2=s.getString("name");

              String s4=s.getString("content");

              java.sql.Date s5=s.getDate("date");

        }

    ④关闭数据库连接

    s.close();

           stm.close();

           con.close();

    4)数据库应用举例

     建立连接

       import java.sql.*;

       Connection con;

       String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=d:\db.mdb";//access

    String url ="jdbc:microsoft:sqlserver://127.0.0.1:1433;databasename=pubs";//sqlserver2000

    String url ="jdbc:oracle:thin:@127.0.0.1:1521:orcl";// oracle

       String user="";

       String password="";

       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//access加载驱动程序

    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//sqlserver2000

    Class.forName("oracle.jdbc.driver.OracleDriver");// oracle

       con = DriverManager.getConnection(url,user,password);//创建连接

     读数据

         Statement stm=con.createStatement();

         ResultSet s=stm.executeQuery("select * from table");

         while(s.next())

         {

            String s1=s.getString("title");

            String s2=s.getString("name");

            String s3=s.getString("email");

            String s4=s.getString("content");

            java.sql.Date s5=s.getDate("date");

       }

         s.close();

         stm.close();

         con.close();

     写数据

          PreparedStatement stm=con.prepareStatement("insert into message values(?,?,?,?,?)");

          stm.setString(1, "aaa");

          stm.setString(2, "bbb");

          stm.setString(3, "ccc");

          stm.setString(4, "ddd");

          stm.setDate(5, new java.sql.Date(new java.util.Date().getTime()));

          stm.execute();

          stm.close();

          con.close();

    13、第十三节 常用包

    java.langjava.awtjavax.swingjava.appletjava.awt.eventjava.utiljava.iojava.sql

    14、第十四节 JAVA语言在Web开发的应用(JSP、Web服务器)

    (1) 动态Hello Word输出;

    (2) 简单计算器应用;

    (3) 数据库访问;

    (4) 用户注册登录;

  • 相关阅读:
    GCD and LCM HDU 4497 数论
    c++ const 修饰变量位置含义
    洛谷 P1017 进制转换
    洛谷 P1029 最大公约数和最小公倍数问题
    Buses and People CodeForces 160E 三维偏序+线段树
    Python学习-第三天-面向对象编程基础
    Python学习-第二天-字符串和常用数据结构
    关于Python学习的一点说明
    Python学习-第一天-函数和模块的使用
    Super Mario HDU 4417 主席树区间查询
  • 原文地址:https://www.cnblogs.com/shiyunfront/p/7337662.html
Copyright © 2011-2022 走看看