java,web程序设计要学些什么

Python08

java,web程序设计要学些什么,第1张

第一阶段:Java基础,包括java语法,面向对象特征,常见API,集合框架; (基础)

第二阶段:java界面编程,包括AWT,事件机制,SWING,(不常用)这个部分也可以跳过,用的时候再看都能来及;

第三阶段:java API:输入输出,多线程,网络编程,反射注解等,java的精华部分(重点);

第四阶段:数据库SQL基础,包括增删改查操作以及多表查询; Oracle Mysql

第五阶段:JDBC编程:包括JDBC原理,JDBC连接库,JDBC API,虽然现在Hibernate比JDBC要方便许多,但是JDBC技术仍然在使用,JDBC思想尤为重要;

第六阶段:JDBC深入理解高级特性:包括数据库连接池,存储过程,触发器,CRM思想(高级)这个比较不好懂,有时间的可以学习;

第七阶段:HTML语言学习,包括HTML标签,表单标签以及CSS,这是Web应用开发的基础;

第八阶段:JavaScript脚本语言,包括javaScript语法和对象,Ajax基础 ;就这两个方面的内容;

第九阶段:Servlet开发,从此开始踏入javaWeb开发的重要一步,包括XML,Tomcat服务器的安装使用操作,HTTP协议简单理解,Servlet API等,java web开发的基础。 (重要)

第十阶段:JSP开发:JSP语法和标签,自定义标签,EL,JSTL库了解以及MVC三层架构的设计模式理念;

第十一阶段:AJAX开发:AJAX原理,请求响应处理,AJAX开发库,Jquery;

第十二阶段:三大框架-struts、spring、hibernate,javaWeb的精华部分(重要)

第十三阶段:其他框架学习-springMVC、mybatis,目前比较主流的框架

第十四阶段:当学习完这些知识后,你就可以深层次的学习一些企业框架,Maven、redis、log4j等等

第十五阶段:一般现在的公司企业用的系统服务器都是linux,所以有兴趣的可以学习一下,linux的各种命令

语言程序设计是自考计算机专业开设的必修课程,目的是让学生了解、掌握近年来兴起的程序设计语言Java,并能用它编制面向对象和网络化的程序。本课程主要分四部分,第一部分介绍Java语言的基本构成(如数据类型、表达式、语句、程序结构等),类及其扩展,包以及面向对象程序设计原理第二部分讲述Java语言三个基本设施:异常、线程及字符串处理等第三部分介绍Java语言系统级类库,包括文件与流、类型编程、实用工具及系统程序设计第四部分介绍Java语言的一些应用级类库及其编程技术,包括Applet,图形及图形用户接口,网络等。

本课程的任务是:(1)培养学生用面向对象程序设计思想设计程序的能力(2)使学生掌握类的构造与设计方法(3)使学生掌握继承与派生类的方法(4)使学生了解多态的使用方法(5)掌握接口的定义与使用方法(6)使学生掌握用J2sdk开发程序的方法。通过学习本课程,力求使学生能够达到以下目标:(1)加深学生对课堂讲授内容的理解,从计算机语言的基本概念、面向对象程序设计的基本方法、语法规则等方面加深理解,打好面向对象程序设计、开发软件的良好基础。(2)在上机实验中,提高学生对Java语言各部分内容的综合使用能力,逐步掌握Java语言程序设计的规律与技巧。(3)在对Java程序的调试过程中,提高学生分析程序中出现的错误和排除这些错误的能力。(4)通过上机实践,加深学生对计算机软件运行环境,以及对操作系统与计算机语言支持系统相互关系的了解。伴随着互联网的发展,IT人才的短缺现象将会越来越严重。在我国,网络存储人才、电子商务人才、信息安全人才、游戏技术人才严重短缺,因此自考计算机及应用专业受到报考考生的青睐,越来越多考生选择报考自考计算机及应用专业,一方面可以掌握专业知识技能,一方面能拿到这所名牌高校的毕业证书。想要报考自考计算机及应用专业的考生可以通过网上报名或现场报名的形式进行报考。详情可咨询猎考网

在Java语言产生前 传统的程序设计语言的程序同一时刻只能单任务操作 效率非常低 例如程序往往在接收数据输入时发生阻塞 只有等到程序获得数据后才能继续运行 随着Internet的迅猛发展 这种状况越来越不能让人们忍受 如果网络接收数据阻塞 后台程序就处于等待状态而不继续任何操作 而这种阻塞是经常会碰到的 此时CPU资源被白白的闲置起来 如果在后台程序中能够同时处理多个任务 该多好啊!应Internet技术而生的Java语言解决了这个问题 多线程程序是Java语言的一个很重要的特点 在一个Java程序中 我们可以同时并行运行多个相对独立的线程 例如 我们如果创建一个线程来进行数据输入输出 而创建另一个线程在后台进行其它的数据处理 如果输入输出线程在接收数据时阻塞 而处理数据的线程仍然在运行 多线程程序设计大大提高了程序执行效率和处理能力

线程的创建

我们知道Java是面向对象的程序语言 用Java进行程序设计就是设计和使用类 Java为我们提供了线程类Thread来创建线程 创建线程与创建普通的类的对象的操作是一样的 而线程就是Thread类或其子类的实例对象 下面是一个创建启动一个线程的语句

Thread thread =new Thread()file://声明一个对象实例 即创建一个线程

Thread run()file://用Thread类中的run()方法启动线程

从这个例子 我们可以通过Thread()构造方法创建一个线程 并启动该线程 事实上 启动线程 也就是启动线程的run()方法 而Thread类中的run()方法没有任何操作语句 所以这个线程没有任何操作 要使线程实现预定功能 必须定义自己的run()方法 Java中通常有两种方式定义run()方法

通过定义一个Thread类的子类 在该子类中重写run()方法 Thread子类的实例对象就是一个线程 显然 该线程有我们自己设计的线程体run()方法 启动线程就启动了子类中重写的run()方法

通过Runnable接口 在该接口中定义run()方法的接口 所谓接口跟类非常类似 主要用来实现特殊功能 如复杂关系的多重继承功能 在此 我们定义一个实现Runnable() 接口的类 在该类中定义自己的run()方法 然后以该类的实例对象为参数调用Thread类的构造方法来创建一个线程

线程被实际创建后处于待命状态 激活(启动)线程就是启动线程的run()方法 这是通过调用线程的start()方法来实现的

下面一个例子实践了如何通过上述两种方法创建线程并启动它们

// 通过Thread类的子类创建的线程   class thread extends Thread { file://自定义线程的run()方法   public void run() {   System out println( Thread is running… )}   }   file://通过Runnable接口创建的另外一个线程 class thread implements Runnable   { file://自定义线程的run()方法 public void run() {   System out println( Thread is running… )}   }   file://程序的主类   class Multi_Thread file://声明主类 {   plubic static void mail(String args[]) file://声明主方法 {   thread threadone=new thread ()file://用Thread类的子类创建线程   Thread threado=new Thread(new thread ())file://用Runnable接口类的对象创建线程   threadone start()threado start()file://strat()方法启动线程 }   }

运行该程序就可以看出 线程threadone和threado交替占用CPU 处于并行运行状态 可以看出 启动线程的run()方法是通过调用线程的start()方法来实现的(见上例中主类) 调用start()方法启动线程的run()方法不同于一般的调用方法 调用一般方法时 必须等到一般方法执行完毕才能够返回start()方法 而启动线程的run()方法后 start()告诉系统该线程准备就绪可以启动run()方法后 就返回start()方法执行调用start()方法语句下面的语句 这时run()方法可能还在运行 这样 线程的启动和运行并行进行 实现了多任务操作

线程的优先级

对于多线程程序 每个线程的重要程度是不尽相同 如多个线程在等待获得CPU时间时 往往我们需要优先级高的线程优先抢占到CPU时间得以执行 又如多个线程交替执行时 优先级决定了级别高的线程得到CPU的次数多一些且时间多长一些 这样 高优先级的线程处理的任务效率就高一些

Java中线程的优先级从低到高以整数 ~ 表示 共分为 级 设置优先级是通过调用线程对象的setPriority()方法 如上例中 设置优先级的语句为

thread threadone=new thread ()file://用Thread类的子类创建线程

Thread threado=new Thread(new thread ())file://用Runnable接口类的对象创建线程

threadone setPriority( )file://设置threadone的优先级

threado setPriority( )file://设置threado的优先级

threadone start()threado start()file://strat()方法启动线程

这样 线程threadone将会优先于线程threado执行 并将占有更多的CPU时间 该例中 优先级设置放在线程启动前 也可以在启动后进行设置 以满足不同的优先级需求

线程的(同步)控制

一个Java程序的多线程之间可以共享数据 当线程以异步方式访问共享数据时 有时候是不安全的或者不和逻辑的 比如 同一时刻一个线程在读取数据 另外一个线程在处理数据 当处理数据的线程没有等到读取数据的线程读取完毕就去处理数据 必然得到错误的处理结果 这和我们前面提到的读取数据和处理数据并行多任务并不矛盾 这儿指的是处理数据的线程不能处理当前还没有读取结束的数据 但是可以处理其它的数据

如果我们采用多线程同步控制机制 等到第一个线程读取完数据 第二个线程才能处理该数据 就会避免错误 可见 线程同步是多线程编程的一个相当重要的技术

在讲线程的同步控制前我们需要交代如下概念

用Java关键字synchonized同步对共享数据操作的方法

在一个对象中 用synchonized声明的方法为同步方法 Java中有一个同步模型 监视器 负责管理线程对对象中的同步方法的访问 它的原理是 赋予该对象唯一一把 钥匙 当多个线程进入对象 只有取得该对象钥匙的线程才可以访问同步方法 其它线程在该对象中等待 直到该线程用wait()方法放弃这把钥匙 其它等待的线程抢占该钥匙 抢占到钥匙的线程后才可得以执行 而没有取得钥匙的线程仍被阻塞在该对象中等待

file://声明同步的一种方式 将方法声明同步

class store  {public synchonized void store_in(){… }public synchonized void store_out(){  … }}

  利用wait() notify()及notifyAll()方法发送消息实现线程间的相互联系

Java程序中多个线程通过消息来实现互动联系的 这几种方法实现了线程间的消息发送 例如定义一个对象的synchonized 方法 同一时刻只能够有一个线程访问该对象中的同步方法 其它线程被阻塞 通常可以用notify()或notifyAll()方法唤醒其它一个或所有线程 而使用wait()方法来使该线程处于阻塞状态 等待其它的线程用notify()唤醒

一个实际的例子就是生产和销售 生产单元将产品生产出来放在仓库中 销售单元则从仓库中提走产品 在这个过程中 销售单元必须在仓库中有产品时才能提货 如果仓库中没有产品 则销售单元必须等待

程序中 假如我们定义一个仓库类store 该类的实例对象就相当于仓库 在store类中定义两个成员方法 store_in() 用来模拟产品制造者往仓库中添加产品 strore_out()方法则用来模拟销售者从仓库中取走产品 然后定义两个线程类 customer类 其中的run()方法通过调用仓库类中的store_out()从仓库中取走产品 模拟销售者 另外一个线程类producer中的run()方法通过调用仓库类中的store_in()方法向仓库添加产品 模拟产品制造者 在主类中创建并启动线程 实现向仓库中添加产品或取走产品

如果仓库类中的store_in() 和store_out()方法不声明同步 这就是个一般的多线程 我们知道 一个程序中的多线程是交替执行的 运行也是无序的 这样 就可能存在这样的问题

仓库中没有产品了 销售者还在不断光顾 而且还不停的在 取 产品 这在现实中是不可思义的 在程序中就表现为负值 如果将仓库类中的stroe_in()和store_out()方法声明同步 如上例所示 就控制了同一时刻只能有一个线程访问仓库对象中的同步方法 即一个生产类线程访问被声明为同步的store_in()方法时 其它线程将不能够访问对象中的store_out()同步方法 当然也不能访问store_in()方法 必须等到该线程调用wait()方法放弃钥匙 其它线程才有机会访问同步方法

lishixinzhi/Article/program/Java/gj/201311/27301