1、JAVA视频教程尚学堂 -手把手教程 http:/Email:Call:86-10-58052712 主讲教师 马士兵 SCM系统-Java+VC 跨平台(电信宽带运营平台-Java+WEB(J2EE)跨平台远程教学平台-Java+WEB(tomcat)VOD视频监控-VCERP视频会议-VC新闻发布系统-Java+XML(模板)网上商城第 0章教程简介 01课堂内容、教学方法、学习方法、预备知识、教学资源JAVA基础 贯穿数据结构的知识(时间复杂度、链表)-非常重要语法基础【变量、循环、分支】 最核心的东西原理-学好OO【面向对象 是最重要的】 有新东西学是好事-个人价值Exception
2、从 Java Web开始,框架巨多无比Array【数组】基础类、常用类I/O StreamCollection/Generic【集合类】Thread【线程】TCP/UDP【网络底层】GUI【Graphic User Interface 图形化用户接口 窗口】Meta Data【以后讲,与 EDP3.0紧密相关】Regular Expression【正规表达式】JDK初步Java Web编程 【主攻一个框架-讲原理,略讲其他框架】针对 Web程序J2EE【一套标准,包含 Java Web 、JDPC、JSP、SP、JB/开源框架 EDP3.0就分步式来说,目前(2005)无东西与之抗衡】 (比较
3、 EDP3.0,2.0,1.0)企业级应用J2ME 移动设备移动增值SP运营商3G,2.5G,要火爆起来【网络先铺起来,应用才能上来;3G 的网络还没有铺开、火爆起来,讲 3G的应用超前了】巨无霸式的教学理论举例理论回顾练习讲解【三片面包加两片肉】注重结合工程实践【完全结合】注重传授自学能力【自学的东西相当重要,授人以鱼,不如授人以渔;慢慢学会掌握一定基础后才有,灌输、背,融成血液里的一部分,心中无剑,手中有剑前提心中有剑手中也有剑;时间短,强度大,该背就背】个人能力分三个层次知识学习前人的知识-学习能力的一个表现,被动地接受接受能力自己学习了知识后考虑如何去应用,去-学习解决问题的方法【类似
4、问题遇到过】灵活运用学到的知识【碰到什么问题采用什么方法】解决问题的思路【最高层次】创造解决问题的方法【思路掌握了,遇到新问题,自己拓展一条思路,解决问题,不可能一口吃成一个胖子,沿着这三个层次一点一点往上升首先打造自己学习知识的能力, 先把该掌握的知识掌握了,再谈如何应用 -如何教-教大家写项目- 项目教学 ,每一个知识教太深 给项目留得时间特别短-不合适; 自学一些东西,慢慢去培养解决问题的思路,试着朝这个方向去培养,工作后慢慢遇到新问题使劲去思考了积累起来逐渐会有这个能力,灵活一点、再灵活一点!基础知识要背灵活应用的东西不能背,无一定之规,在实践中慢慢锻炼 实践的越多 敲的代码越多(掌握
5、思路后自主敲代码, 哪怕敲不出来再看别人的思路 收获远远不一样, 学习要自主一点,多思考思路才能开阔无捷径,努力锻炼自己的就业能力。 )美国一项调查全世界的百万富翁中 99的人的成功之路走得都是比较正统的一条路大学毕业-找一份差不多的工作-进入这个行业-不断努力、积累-慢慢发展起来成为百万富翁不要老梦想着成为英雄人物 不要想着走捷径 你没有任何先天优势 把浮躁的心压下来 学习本讲义完成习题-作业,复习,做作业,每天运用自学的能力读-读别人的代码写-(读完后,最最重要,3 万行 2万行,多动手学程序的不二法门)查-能力背-【底子薄】-基础语法要求预备知识英语 -不懂金山词霸,看不懂看、背、学没人
6、天生会学出来的每天4、5 个,句型不多熟能生巧计算机基础操作逻辑能力教学资源-goole+电驴(点对点下载) 、BT、讯雷前程技术正规的路线【(刚进去)程序员 OrSoftWare开发人员-该高级 SoftWare工程师-Team Leader-System 分析 OrSystem 架构师(2、3 年锤炼)-项目经理技术部经理、产品经理CTO沟通、管理能力】软件认证-不听人忽悠- 用自己的脑子去认识世界、理智一点好的认证 e.g.OracleDBA好的 DBA(最好)具有一些开发经验比较不错(知道如何对数据库进行调优/网管与 DBA?) ;(硬件 Or网络领域)CCA、CCIE过硬的技术是最好
7、的认证软件 Or软件出身做咨询师 e.g.ERP前提做 ERP行业(Enterprise Resource Project 企业资源管理生产、销售、库存、财务、物流帮助企业实施电子化无纸化办公、网上办公、网上管库存)/专门领域-做一段时间-奔咨询师方向发展/ERP 老大德国的 SAP咨询师(ERP 企业) 、金蝶/路由?,积累,技术底子,沟通、管理、协调能力比较偏的路线喜欢做技术的人共享软件e.g.Flash get、netant、迅雷不收费收广告商的钱/国外 win.zip的作者身价 1000多万美金,周易?CD 格式转为 mp3格式(30 美金,每月 1800多套)-对技术要求特别特别高/
8、目前(2005)国内也有,Java 这方面也有e.g.conplent?给别人开发组件、类库无论怎样-勤奋、努力(技术解决方案、市场分析,努力思考了才能想到,随时留意细节用心勤奋!记住)程序员的乐趣/缺陷-一段段枯燥的代码累成小软件,用起来特舒服还能卖钱成就感;内向多沟通企业与学校之间的区别时限【大学学习,一星期去消化/立马消化】实用为主【大学学习,理论偏多】浩瀚知识的分类-有限精力用到刀刃上-哪些知识立马用得上、找工作工作中立马用得上能赚钱要点-管理好自己的精力-乐观的努力、眼观要高远(自己把握) 、脚步要踏实(最重要目标找一份不错的起点的工作可持续发展的工作、踏踏实实一步一步来)实际开发中
9、常使用的(牢牢掌握,while/for 循环、变量、分支,基础知识 e.g.算法、语法 10-20)不常使用用时能查到(了解,e.g.某些类、方法不常用-API 文档里去查,70-80)八辈子用不着一回(用自己的能力去查,现学,e.g.Unicode 算法)错误做法老师讲得多/深、练得少/浅-讲得中等偏深,练得比较深(项目、模块)只灌输知识点,没有串联不培养自学能力-手把手教【怎样从网上查出来、怎样纠出不合适的地方、怎样动手做试验把它弄出来】给答案不给思路项目太简单【企业项目尤其是 Java项目越做越复杂,不经过实习,上不了手】e.g.需求分析自己去做,给一份标准答案,自己对去-初学者做一个完
10、整的项目做多深很难把握,做的往往比较浅,花很多时间做出的东西还不如老师带着你一点一点做出的东西深项目太复杂【非完全实际中的真实项目,实际中 7、8 个人花 2、3 个月做出的都是小项目,抽出项目中最核心的模块,兼顾技术上各个知识点】-学核心东西、思想项目太少【简历不丰富,接触的类型少、知识面窄,?程序员掌握技术(基本) 、业务逻辑(不同行业的行业领域知识 e.g. 财务软件-掌握财务方面的知识-借、贷、记账、对账;金融银行;电信-电信;企业的信息系统-进、销存,企业?管理;ERPERP 的知识(库存、销售)注重授课技巧,不注重基本功【有些技术性的东西是死的,该记就记,无投机取巧之处】- 技术是
11、最最重要的重管理技巧看,轻开发技巧知识陈旧错误做法-学生只看不练 练是最最最最重要的只听不练钻到细节中拔不出来(初学者)-非搞研究-弄清自己的角色-个人目标定义好自己的成功/学最实用的东西管理系统、技术上的技能更好的企业去用你、自主创业修正明确目标,心无旁骛学校集中所有精力,教授实用知识对计算机心存敬畏-大胆去动、去尝试不敢动(装卸软件、安装系统)不敢调试 bug-胆大心细bug 那么多就高兴调试-开始正规的那条路Windows NetMeeting?/调试时常用重启-重启服务器e.g.PhoneCard 不合适安装到有空格的路径,将来某个软件需使用 JDK工作工作就可能不正常C:/JDK5.
12、0JDK-开发环境,内部自带运行时环境JRE-运行环境,e.g.客户,不做 Java开发,只是运行 Java程序,不需安装JDK,单安装 JRE-(然后)修改注册表告诉其他程序,要用我Java程序,注册表有直接找/其他用 Java软件,不需指定 JRE在什么目录,直接找得到验证安装成功-命令提示符,输入 javac,出现一系列提示系列课程第一部分-Java的基础-J2SE 之 JAVA概述想学 J2ME JSP.Servelet J2EE吗?请打好基础-J2SE(Java2 Standard Edition)J2SE的课程内容-知识点慢慢贯穿java 的语法是什么原代码如何写JAVA概述JAV
13、A语言基础【变量定义、循环、分支、方法最常用的东西】面向对象编程【最重要】JAVA异常处理机制数组JAVA常用类JAVA容器类JAVA流技术JAVA多线程机制JAVA网络编程GUI编程第 1章 内容1.1 计算机语言的历史以及 Java语言的历史地位1.2 Java自身的发展史1.3 Java体系1.4 Java的运行机制1.5 Java运行环境的安装与配置最重要1.6 第 1个程序 HelloWorld1.1 计算机语言的历史以及 Java语言的历史地位- 了解即可,最关注技术-朝人容易理解的方向发展第 1代语言-打孔机-计算机底层只认 0、1,高电平、低电平-纯机器语言-无法调试第 2代语
14、言-汇编-要了解机器底层的东西、构造第 3代语言-告诉他怎么去做才能成事C、Pascal、Fortran 面向对象的语言C+、面向过程/面向对象(3 代半)Java跨平台的纯面向对象的语言.NET跨语言平台第 4(e.g. Ckle 语言直接告诉他要做什么事 if怎么样、while 怎么样、for 怎么样、else 怎么样不必管他如何实现如找数据、搜索、循环、排序帮助拿出来) 、5(自然语言e.g. 告诉它做一个 ERP系统,gdgd 就做出来-某个领域大概可实现)代语言!1.2/3 Java发展史与 java体系95年,Sun 发布 JDK1.098年,JDK1.2,更名 Java2后续 J
15、DK1.3、1.4- 旧语法也要认识 -以读懂别人的代码目前(2005)JDK1.5,更名为 Java5.0(最新为 1.6Bete版,非最终稳定版本)我们使用 5.0 j2seJava webJ2ee(重点) 移动增值 j2meJava语言的特点一种面向对象的语言一种与平台无关的语言,提供程序运行的解释环境-JAVA 成功的关键性因素一种健壮的语言,吸收了 C/C+语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)-但 JAVA只是在语法上无指针,实际上到处都是指针-了解内存学习 J2SE的重点-分析内存中程序的执行过程-分析清楚了内存就掌握了一切(还学会了其它语言)
16、-所有语言无非是经过编译器编译运行后在内存中挪(Copy)来挪(Copy)去Thinking in JAVA-找来看1.4 Java程序运行机制及运行过程Java-核心机制比较多(用的过程中自然懂)、构成其特点的、最重要的-两种核心机制:Java虚拟机(Java Virtual Machine)-帮助实现平台无关垃圾收集机制(Garbage collection)-消除 C+中影响程序健壮性即容易出错的地方不用指针申请内存后不用老记得还回去要了解(上述 2种)核心机制-了解整个 Java程序的运行过程JAVA编程语言对计算机说的话-与计算机沟通计算机能懂的语言非常底层 Or经过一系列翻译 e.
17、g.汇编、第 3代语言源程序(源代码写语法,自己可认知)(*.java 文件)Java编译器【只有翻译成 0、1 计算机才认识编译并不能直接翻译成 0、1除非 OS是 java(只认 java程序)但大多为 Windows(可执行文件exe-OS可直接翻译成 0、1 程序就可执行/C、 C+直接编译操作系统的底层才可执行) 】编译型语言-e.g. C、 C+ 直接编译成操作系统可认识的可执行格式,不经过第二次解释型语言-java 第一次编译成自己的可执行文件格式.class-执行过程中需要 java里面的虚拟机拿出 class文件中的代码一行一行解释-拿一行翻译成各个操作系统平台可直接认识的可
18、执行文件格式-拿一行立马就解释-真正的执行过程 java是一行一行解释执行 字节码(*.class 文件-java 自己的可执行文件) 类装载器(不用管、针对 java的编译执行环境)字节码校验器(不用管、针对 java的编译执行环境)解释(?)器 (不用管、针对 java的编译执行环境)交给- 操作系统平台翻译成机器可认知的部分程序可执行核心机制之 Java虚拟机Java虚拟机可以理解成一个以字节码为指令的 CPU任意地编写一个java文件编译成.class 文件要执行e.g.放在 UNIX上,到 UNIX上的 JVM上执行对于不同的运行平台,有不同的虚拟机对人来说接口统一了,但对虚拟机和
19、OS系统之间的接口每个 OS有每个 OS自己的东西-但此接口由如 SUN给我们提供了 e.g.UNIX上的 JVM真正实现跨平台Java虚拟机制屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”对着虚拟机编程-体现分层的思想把底层的东西屏蔽掉,直接对上层接口编程JAVA看不见 OS的底层只在自己虚拟的环境中执行 整个虚拟环境对 class接口是一样的 -“一次编译,随处运行 ”JVM for UNIX编译(?) 执行*.Java *.class JVM for WindowsJVM for Other Platform核心机制之垃圾收集-提供程序的健壮性,直接申请内存,不用负责回收不再使用
20、的内存空间应回收-垃圾收集在 C/C+等语言中,由程序回收无用内存Java语言消除了程序员回收无用内存空间的责任,它提供一种系统级线程跟踪存储空间的分配情况。并在 JVM空闲时,检查并释放可被释放的存储空间垃圾收集器在 Java程序运行过程中每过一段时间统一-自动进行,程序员无法精确控制和干预解释名词J2SDK or JDK & JRE java Compeller(编译器)java Debugger(调试器) javadoc(专门生成 java文档)JPDA(调试框架)SoftwareDevelopment Kit (软件开发包帮助做软件开发,一系列包、程序)JSDK(JDK) Java R
21、untime JREEnvironment(Java运行环境)开发需要(一个环境)JDK(开发完后在 jre里运行)用户(只需直接运行 java程序)JRE(把开发的程序.class解释成底层平台可直接认知的运行格式Java开发环境的下载 安装 配置配置 Java开发环境步骤下载安装最新版本的 J2SDK设置 Windows环境变量选择合适的文本编辑器 Or使用集成开发环境下载-http:安装配置 path & classpathPath: windows系统执行命令时要搜寻的路径Classpath: java在编译和运行时要找的 class所在路径验证 HelloWorld.javaJava
22、 运行 java程序Javac编译 java程序/javac 执行 Windows底下的一个文件读书?别抠字眼-特别是计算机方面的书-看个大概直接用用时回头再查Javac-执行 Windows底下的一个文件环境变量-path 的环境变量-(我的电脑属性-高级?)Windows 系统执行命令时所需的路径Windows支持多用户-上面是用户自己的变量,下面是系统变量(所有用户都可用)右键新建文本文件-程序员windows 底下的环境配置文件以详细信息存(不用大图标)-工具文件夹选项查看应用到所有文件夹-工具文件夹选项-查看显示所有文件及文件夹去掉隐藏已知文件类型的扩展名在地址栏显示完整路径.jav
23、a就是一个文本文件-写时要遵守特定的语法规则Include包含的文件、sample例子程序、demo 演示程序、binbinary 二进制,包含所有编译好的程序、lib库文件、soure.zip java 源代码敲 java -version告诉所使用的版本Java程序执行时-先敲一个 java文件编译class 文件很多个 class文件合在一起才能把整个大程序运行起来一个 class文件很可能要用另一个 class文件Java Application(应用程序)-解释文件内部的问题(程序)-最简单的一些规则Java源文件以“java”为扩展名。源程序的基本组成部分是类(class) ,如本
24、例中的 HolleWorld(类名,自取,与文件名一致)类体开头类体-结尾, ()-方法左边-方法名,方法体一个源文件最多有一个 public类。其他类不限,如果源文件文件包含一个一个 public类,它必须按该类名命名文件名与 public类的类名一致。Java应用程序的执行入口是 main()方法。它有固定的书写格式:public static void main(String args)但其中args表变量名,随便取;位置可在中间、后面java语言中严格区分大小写java方法由一条一条语句构成,每个语句以;结束java语言有 3种注释方式:/用于单行注释 /* /*用于多行注释 *用于多
25、行注释且可被 doc*/ */工具解析,每行皆有一个*总结第 1个程序构建程序员自己的环境-把文件做成列表的形式,显示所有文件名,不让他隐藏文件,在地址栏显示全路径-方便-运用 copy-设置(在企业,能 copy的一般不自己敲,学校多敲多锻炼,但对于路径直接 copy)掌握 pass和 classpath概念熟悉常见错误e.g.NoClassDefFindError、找不到文件-遇到一个记下一个及其原因及其解决方案-个人知识管理-积累财富(每个企业有自己的知识管理)熟悉 java程序简单规则一个文件里只能有一个 public class,其他类不限,public class的名字和文件名一致
26、;java 区分大小写;程序入口点在 main方法里;程序以分号结束熟悉 java程序的编译和运行 javac java java -version(版本)cd/ 回车 -由 切换到当前工作目录下( C:/ c盘根目录) d: 回车-由 切换到 d盘 java根目录下 D:/cd MyJava 回车切换到 D盘 java目录下作为一个程序员,Windows 底下的环境变量应配置成什么样:遇到错误-我所应采取的态度-正确对待-java 的错误提示在名字里给了很多提示 e.g.NoClassDefFindError(无类定义)保存-用键盘上的 ctrl+S键如何配置 classpath环境变量:属
27、性高级环境变量系统变量 classpath变量名选 classpath变量值D:java.(点)代表当前路径-e.g.如果工作在 D盘下面D 盘下面所有文件都能找到-配好后重新启动命令提示符才能起作用最常见的 java开发环境:编辑器(Edit Plus /Notepad/Ultra Edit用来编写java源文件小程序但不能运行、集成开发环境 IDE(Integrative Development Environment)e.g. Eclipse编写、编译、运行、调试-程序-全在一个程序下去执行-逐渐改称开发平台各个区别非常小学最流行的培养手写代码的习惯,敲足够多的代码 培养敲代码的感觉课堂练习编译并运行 HelloWorld应用程序,验证安装环境是否正确总结历史、特点;掌握 2个机制JVM-帮助实现一次编译、随处运行-垃圾收集机制提高程序健壮性掌握最基础的运行环境-怎样下载、安装、配置掌握最基础的小程序 HelloWorld.java及过程中常见问题