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

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

(2)相关基本概念:JDK、SDK、JRE、JVM、J2SE、J2EE、J2ME、java API、JAVA语言特点;

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

(4)javac.exe、java.exe、appletviewer.exe的作用、使用;

(5)基本输入输出应用

• import java.util.Scanner;

Scanner s=new Scanner(System.in);

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

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

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

(1)JAVA的八种基本类型:boolean、char、byte、short、int、long、float、double

基本型

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)四种访问权限private、default、protected、public

同一个类

同一个包

子类

全局

private

default

protected

public

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

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

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

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

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

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

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

(1)this与super的使用

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

(2)方法的重载

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

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

(3)方法重写(overriding)

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

• 注意和方法重载的区别

(4)运行时多态

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

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

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

(5)类型测试运算符:instanceof

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

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

•  equals比较的是对象的内容(String、Date、File、Interger、Long)

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

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

(1)static(静态)

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

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

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

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

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

(2)final(最终)

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

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

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

(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();

}

//其中常量默认具有public、final、static属性;方法默认具有public、abstract属性

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

public class AirPlane implements Flyer

{

public void takeoff() {实现代码}

public void land() {实现代码}

public void fly() {实现代码}

}

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

(1)概念:GUI、AWT、Swing

• GUI与AWT的含义;

• AWT与Swing的区别;

• 什么是组件(Label、Button、TextArea、Panel、Frame…);

• 什么是容器(Panel、Frame…);

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

(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方法,是基于图形界面的;

• 可以使用JDK的appletviewer来运行网页文件;

(2)Applet的定义和使用

 类的定义

import java.applet.*;

public class hellow extends Applet {

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

}

 网页中的调用

<body bgcolor="000000">

<applet

code = "mypack.hellow.class"

width = "500"

height = "300"

>

</applet>

</body>

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

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

(4)两个重要方法

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

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

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

9、第九节 异常

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

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

try {

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

}

catch(Exception  e)

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

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

//e.getMessage();

//e.printStackTrace();

}

finally {

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

}

说明:

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

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

(3)throws与throw

• 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;注意捕捉异常;

(3)File 类:

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

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

②常用方法:

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

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

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

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

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

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

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

①构造方法:

• FileInputStream(File file)

• FileInputStream(String name)

②常用方法:

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

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

• void close() 关闭流对象;

(5)FileOutputStream类:文件输出流,继承于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.lang、java.awt、javax.swing、java.applet、java.awt.event、java.util、java.io、java.sql;

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

(1) 动态Hello Word输出;

(2) 简单计算器应用;

(3) 数据库访问;

(4) 用户注册登录;

JAVA学习大纲的更多相关文章

  1. Java学习大纲-0412更新

    非科班报培训班学习Java,从博客园,知乎,CNDS上搜了一圈,暂时按以下计划执行,有问题随时更新--0412 1.培训班的课程按时按点学习完成(毕竟掏钱在学的是不,不好好听亏不亏...) keys: ...

  2. Java 学习大纲

    1.java基础 1.1 Collection和Map     (1)掌握Collection和Map的继承体系     (2)掌握ArrayList,LinkedList,Vector,Stack, ...

  3. 《Java开发学习大纲文档》V7.0

    <Java开发学习大纲文档>V7.0简介: 本文档是根据企业开发所需要掌握的知识点大纲进行总结汇编,是Java开发工程师必备知识体系,系统化学习针对性非常强,逻辑分析能力非常清晰;技术方面 ...

  4. 《Java开发学习大纲文档》V6.0(已经不公布了,请查看第七版)

    <Java开发大纲学习文档第六版>简介: 有需要的私聊作者QQ:253173641.

  5. Java并发编程(一)学习大纲

    (一)学习大纲 (二)线程与并发编程的概念 (三)线程安全.原子操作.复合操作.竞态条件.加锁机制(内置锁.重入) (四)对象的共享:可见性.失效数据.非原子的64位操作,加锁与可见性,volatil ...

  6. Java学习知识体系大纲梳理

    感悟 很奇怪,我怎么会想着写这么一篇博客——Java语言的学习体系,这不是大学就已经学过的课程嘛.博主系计算机科班毕业,大学的时候没少捧着Java教程来学习,不管是为了学习编程还是为了期末考个高分,都 ...

  7. (转)2019年给Java编程初学者的建议(附学习大纲)

    本文链接:https://blog.csdn.net/javajlb/article/details/85920904 1. 引言这是一篇初学者干货,请耐心看完,希望对你有帮助 作为初学者的你,命中了 ...

  8. 【有钱的大佬看过来】Java开发学习大纲

    Java开发学习大纲文档V7.0 有钱的大佬可以买下这个版权,全网最完整最详细了,没钱的大佬可以按照自己的方式去整理.有需要的私聊作者QQ:253173641 来源于-幸福的沉淀:https://ww ...

  9. 《Java开发学习大纲文档》V8.0

    <Java开发学习大纲文档>V8.0 第八版是以实战作为核心,同时也包含前面所有版本的精华部分,第八版加入的部分有云开发(阿里云OSS存储.(github)gitlab+docker网站自 ...

随机推荐

  1. Python 学习笔记:Python 操作 SQL Server 数据库

    最近要将数据写到数据库里,学习了一下如何用 Python 来操作 SQL Server 数据库. 一.连接数据库: 首先,我们要连接 SQL Server 数据库,需要安装 pymssql 这个第三方 ...

  2. Proe5.0导出PDF至配置文件的相关方法,VC++

    定义文件bcsMessage.txt PLM PLM PLM # login login 测试 # Active messagebox menu Active messagebox menu 激活菜单 ...

  3. JavaEE基础(01):Servlet实现方式,生命周期执行...

    一.Servlet简介Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容.使用Servlet,可以收集来自网页表单的用户输入,呈现来自数据库 ...

  4. debian8.8更新源

    ##163源 deb http://mirrors.163.com/debian/ jessie main non-free contribdeb http://mirrors.163.com/deb ...

  5. RDD(九)——序列化问题

    在实际开发中我们往往需要自己定义一些对于RDD的操作,那么此时需要考虑的主要问题是,初始化工作是在Driver端进行的,而实际运行程序是在Executor端进行的,这就涉及到了跨进程通信,是需要序列化 ...

  6. 2020 CCPC Wannafly Winter Camp Day1-F-乘法

    题目传送门 sol:二分答案$K$,算大于$K$的乘积有多少个.关键在于怎么算这个个数,官方题解上给出的复杂度是$O(nlogn)$,那么计算个数的复杂度是$O(n)$的.感觉写着有点困难,自己写了一 ...

  7. Java线程池面试

    New Thread的弊端 每次new Thread会新建对象,性能差 线程缺乏统一管理,可能无限制的新建线程,相互竞争,有可能占用过多系统资源导致死机或OOM 缺少更多功能,如更多执行.定期执行.线 ...

  8. Redis哨兵模式高可用部署和配置

    一.Redis 安装配置 1.下载redis安装包 wget http://download.redis.io/releases/redis-4.0.9.tar.gz 2.解压安装包 tar -zxv ...

  9. 学习4412开发板gdb和gdbserver的调试

    因为有很多的小伙伴是从单片机转过来的,用惯了单片机上的JLINK调试程序,换到Linux上非常的不习惯.确实,如果能设置断点,单步调试,查看变量,那确实是太爽了,那么在我们的Linux可以做到吗,答案 ...

  10. 3)PHP的http 并发

    详解浏览器最大并发连接数:http://www.iefans.net/liulanqi-zuida-bingfa-lianjieshu/ 并发连接数对浏览器加载速度的测试:http://www.ief ...