当前位置:文档之家› JAVA 笔记(根据马士兵的java视频整理)

JAVA 笔记(根据马士兵的java视频整理)

JAVA视频教程

尚学堂---手把手教程https://www.doczj.com/doc/598821134.html,

Email:training@https://www.doczj.com/doc/598821134.html,

Call:86-10-58052712 主讲教师马士兵mashibing2004@https://www.doczj.com/doc/598821134.html,

SCM系统--------Java+VC跨平台(

电信宽带运营平台-------Java+WEB(J2EE)跨平台

远程教学平台----Java+WEB(tomcat)

VOD视频监控-----VC

ERP

视频会议---------VC

新闻发布系统-----Java+XML(模板)

网上商城

课堂内容、教学方法、学习方法、预备知识、教学资源

JAVA基础贯穿数据结构的知识(时间复杂度、链表)---非常重要

语法基础【变量、循环、分支】最核心的东西—原理--学好

OO【面向对象是最重要的】有新东西学是好事----个人价值Exception 从Java Web开始,框架巨多无比Array【数组】

基础类、常用类

I/O Stream

Collection/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)无东西与之抗衡】(比较EDP3.0,2.0,1.0)企业级应用

J2ME

移动设备

移动增值

SP运营商

3G,2.5G,要火爆起来【网络先铺起来,应用才能上来;3G的网络还没有铺开、火爆起来,讲3G的应用超前了】

巨无霸式的教学

理论

举例

理论回顾

练习

讲解【三片面包加两片肉】

注重结合工程实践【完全结合】

注重传授自学能力【自学的东西相当重要,授人以鱼,不如授人以渔;慢慢学会掌握一定基础后才有,灌输、背,融成血液里的一部分,心中无剑,手

中有剑—前提—心中有剑手中也有剑;时间短,强度大,该背就背】个人能力分三个层次

知识

学习前人的知识---学习能力的一个表现,被动地接受—接受能力

{自己学习了知识后考虑如何去应用,去---学习

解决问题的方法【类似问题遇到过】

灵活运用学到的知识【碰到什么问题采用什么方法】

解决问题的思路【最高层次】

创造解决问题的方法【思路掌握了,遇到新问题,自己拓展一条思路,解决问题,不可能一口吃成一个胖子,沿着这三个层次一点一点往上升首先打造自己学习知识的能力,先把该掌握的知识掌握了,再谈如何应用

---如何教---教大家写项目每一个知识教太深—给项目留得

时间特别短---不合适;自学一些东西,慢慢去培养解决问题的思路,试

着朝这个方向去培养,工作后慢慢遇到新问题使劲去思考了积累起来逐

渐会有这个能力,灵活一点、再灵活一点!基础知识要背—灵活应用的

东西不能背,无一定之规,在实践中慢慢锻炼—实践的越多—敲的代码

越多(掌握思路后自主敲代码,哪怕敲不出来再看别人的思路—收获远

远不一样,学习要自主一点,多思考思路才能开阔—无捷径,努力锻炼

自己的就业能力。){美国一项调查—全世界的百万富翁中99%的人的

成功之路走得都是比较正统的一条路——大学毕业-找一份差不多的工

作-进入这个行业-不断努力、积累-慢慢发展起来成为百万富翁}

{

学习本讲义

完成习题-------作业,复习,做作业,每天

运用自学的能力

读---读别人的代码

写---(读完后,最最重要,3万行2万行,多动手—学程序的不二法门)查---能力

预备知识

英语---不懂—金山词霸,看不懂—看、背、学—没人天生会—学出来的—每天4、5个,句型不多—熟能生巧

计算机基础操作

逻辑能力

教学资源---goole+电驴(点对点下载)、BT、讯雷

前程

技术正规的路线【(刚进去)程序员OrSoftWare开发人员---该高级SoftWare工程师---Team Leader---System 分析OrSystem 架构师(2、3年锤炼)

--项目经理—技术部经理、产品经理—CTO—沟通、管理能力】

{软件认证---不听人忽悠----用自己的脑子去认识世界、理智一点

好的认证e.g.OracleDBA[好的DBA—(最好)具有一些开发经验—比较

不错(知道如何对数据库进行调优/网管与DBA?);(硬件Or网络领

域)CCA、CCIE

过硬的技术是最好的认证

软件Or软件出身—做咨询师e.g.ERP—前提—做ERP行业(Enterprise

Resource Project 企业资源管理—生产、销售、库存、财务、物流—

帮助企业实施电子化—无纸化办公、网上办公、网上管库存)/专门领域

-做一段时间-奔咨询师方向发展/ERP老大—德国的SAP咨询师(ERP

企业)、金蝶/路由?,积累,技术底子,沟通、管理、协调能力

比较偏的路线—喜欢做技术的人—共享软件—e.g.Flash get、netant、迅雷—不收费—收广告商的钱/国外win.zip的作者身价1000多万美金,周易?CD

格式转为mp3格式(30美金,每月1800多套)------对技术要求特别

特别高/目前(2005)国内也有,Java这方面也有e.g.conplent?给别

人开发组件、类库

无论怎样----勤奋、努力(技术解决方案、市场分析,努力思考了才能想到,随时留意细节—用心—勤奋!记住)

程序员的乐趣/缺陷-----一段段枯燥的代码累成小软件,用起来特舒服还能卖钱—成就感;内向—多沟通

企业与学校之间的区别

时限【大学学习,一星期去消化/立马消化】

实用为主【大学学习,理论偏多】

浩瀚知识的分类----有限精力用到刀刃上---哪些知识立马用得上、找工作工作中立马用得上能赚钱—要点--管理好自己的精力----乐观的努力、眼观要高

远(自己把握)、脚步要踏实(最重要目标—找一份不错的起点的工作

—可持续发展的工作、踏踏实实一步一步来)

%)

不常使用用时能查到(了解,e.g.某些类、方法不常用--API文档里去查,70-80%)

八辈子用不着一回(用自己的能力去查,现学,e.g.Unicode算法)

错误做法—老师

讲得多/深、练得少/浅----讲得中等偏深,练得比较深(项目、模块)

只灌输知识点,没有串联

不培养自学能力----手把手教【怎样从网上查出来、怎样纠出不合适的地方、怎样动手做试验把它弄出来】

给答案不给思路

项目太简单【企业项目尤其是Java项目越做越复杂,不经过实习,上不了手】e.g.需求分析自己去做,给一份标准答案,自己对去---初学者做

一个完整的项目做多深很难把握,做的往往比较浅,花很多时间做出的

东西还不如老师带着你一点一点做出的东西深

项目太复杂【非完全实际中的真实项目,实际中7、8个人花2、3个月做出的都是小项目,抽出项目中最核心的模块,兼顾技术上各个知识点】

-----学核心东西、思想

项目太少【简历不丰富,接触的类型少、知识面窄,?程序员—掌握技术(基本)、业务逻辑(不同行业的行业领域知识e.g. 财务软件-掌握财

务方面的知识-借、贷、记账、对账;金融—银行;电信-电信;企业的

信息系统---进、销存,企业?管理;ERP—ERP的知识(库存、销售)注重授课技巧,不注重基本功【有些技术性的东西是死的,该记就记,无投机取巧之处】----技术是最最重要的

重管理技巧看,轻开发技巧

知识陈旧

错误做法---学生

只看不练

只听不练

钻到细节中拔不出来(初学者)----非搞研究----弄清自己的角色—---个人目标—定义好自己的成功/学最实用的东西—管理系统、技术上的技能—

更好的企业去用你、自主创业

修正—明确目标,心无旁骛

学校—集中所有精力,教授实用知识

对计算机心存敬畏-----大胆去动、去尝试

不敢动(装卸软件、安装系统)

不敢调试bug-----胆大心细—bug那么多就高兴—调试---开始正规的那条路

Windows NetMeeting?/调试时常用重启---重启服务器—e.g.PhoneCard不合适安装到有空格的路径,将来某个软件需使用JDK工作工作就可能不正常

C:/JDK5.0

JDK----开发环境,内部自带运行时环境

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概述

JAVA语言基础【变量定义、循环、分支、方法··最常用的东西】

面向对象编程【最重要】

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个程序HelloWorld

1.1 计算机语言的历史以及Java语言的历史地位----了解即可,最关注技术

-----朝人容易理解的方向发展

第1代语言----打孔机----计算机底层只认0、1,高电平、低电平---纯机器

语言----无法调试

第2代语言----汇编----要了解机器底层的东西、构造

第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.0

98年,JDK1.2,更名Java2

后续JDK1.3、1.4---旧语法也要认识----以读懂别人的代码

目前(2005)JDK1.5,更名为Java5.0(最新为1.6Bete版,非最终稳定版

本)

我们使用5.0 j2se

Java web

J2ee(重点)移动增值j2me Java语言的特点

一种面向对象的语言

一种与平台无关的语言,提供程序运行的解释环境---JAVA成功的关键性因素一种健壮的语言,吸收了C/C++语言的优点,但去掉了其影响程序健壮

性的部分(如:指针、内存的申请与释放等)---但JAVA只是在语法上

无指针,实际上到处都是指针----了解内存

《Thinking in JAVA》----找来看

1.4 Java程序运行机制及运行过程

Java---核心机制比较多(用的过程中自然懂)、构成其特点的、最重要的---

两种核心机制:

Java虚拟机(Java Virtual Machine)--帮助实现平台无关

垃圾收集机制(Garbage collection)---消除C++中影响程序健壮性即容易出错的地方—不用指针—申请内存后不用老记得还回去

要了解(上述2种)核心机制---了解整个Java程序的运行过程

JAVA—编程语言—对计算机说的话--与计算机沟通—计算机能懂的语言—非常底层Or经过一系列翻译e.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文件中的代码一行一行解释---拿一行

翻译成各个操作系统平台可直接认识的可执行文件格式---拿一行立马

就解释------真正的执行过程java是一行一行解释执行

字节码

(*.class文件---java自己的可执行文件)

类装载器(不用管、针对java的编译执行环境)

字节码校验器(不用管、针对java的编译执行环境)

解释(?)器(不用管、针对java的编译执行环境)

交给---操作系统平台—翻译成机器可认知的部分—程序可执行

核心机制之Java虚拟机

Java虚拟机可以理解成一个以字节码为指令的CPU—任意地编写一个java文件—编译成.class文件—要执行—e.g.放在UNIX上,到UNIX

上的JVM上执行

对于不同的运行平台,有不同的虚拟机—对人来说接口统一了,但对虚拟机和OS系统之间的接口—每个OS有每个OS自己的东西---但此接口由

如SUN给我们提供了e.g.UNIX上的JVM—真正实现跨平台Java虚拟机制屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”

对着虚拟机编程--体现分层的思想—把底层的东西屏蔽掉,直接对上层

接口编程

JAVA看不见OS的底层只在自己虚拟的环境中执行—整个虚拟环境对class接口是一样的--“一次编译,随处运行”

JVM for UNIX

编译(?)执行

*.Java *.class JVM for Windows

JVM for Other Platform

核心机制之垃圾收集---提供程序的健壮性,直接申请内存,不用负责回收不再使用的内存空间应回收----垃圾收集

在C/C++等语言中,由程序回收无用内存

Java语言消除了程序员回收无用内存空间的责任,它提供一种系统级线

程跟踪存储空间的分配情况。并在JVM空闲时,检查并释放可被释放

的存储空间

垃圾收集器在Java程序运行过程中—每过一段时间统一--自动进行,程

序员无法精确控制和干预

解释名词

J2SDK or JDK & JRE java Compeller(编译器)java

Debugger(调试器) javadoc(专门生成java文档)

JPDA(调试框架)

Software

Development Kit

(软件开发包—帮助做

软件开发,一系列包、

程序)

JSDK(JDK)

Java Runtime JRE

Environment

(Java运行环境)

开发需要(一个环境)JDK(开发完后在jre里运行)

用户(只需直接运行java程序)JRE(把开发的程序.class 解释成底层平台可直接认知的运行格式

Java开发环境的下载安装配置

配置Java开发环境步骤

下载安装最新版本的J2SDK

设置Windows环境变量

选择合适的文本编辑器Or使用集成开发环境下载------http:https://www.doczj.com/doc/598821134.html,

安装

配置path & classpath

Path: windows系统执行命令时要搜寻的路径

Classpath: java在编译和运行时要找的class所在路径验证HelloWorld.java Java 运行java程序

Javac编译java程序/javac执行Windows底下的一个文件

读书?

别抠字眼---特别是计算机方面的书---看个大概—直接用—用时回头再查

Javac----执行Windows底下的一个文件—

环境变量---path的环境变量---(我的电脑—属性-高级?)Windows系统执行命令时所需的路径

Windows支持多用户---上面是用户自己的变量,下面是系统变量(所有用户都可用)

右键—新建文本文件--

程序员—windows底下的环境配置—文件以详细信息存(不用大图标)---工具—文件夹选项—查看—应用到所有文件夹

-工具—文件夹选项-查看—显示所有文件及文件夹—去掉隐藏已知文件类型的扩展名—在地址栏显示完整路径

.java就是一个文本文件---写时要遵守特定的语法规则

Include—包含的文件、sample—例子程序、demo演示程序、bin—binary二进制,包含所有编译好的程序、lib—库文件、soure.zip java源代码

敲java -version告诉所使用的版本

Java程序执行时---先敲一个java文件—编译—class文件

很多个class文件合在一起—才能把整个大程序运行起来—一个class文件很可能要用另一个class文件

Java Application(应用程序)---解释文件内部的问题(程序)

---最简单的一些规则

Java源文件以“java”为扩展名。源程序的基本组成部分是类(class),如本例中的HolleWorld(类名,自取,与文件名一致)

类体—{开头—类体--结尾},()--方法—左边-方法名,方法体一个源文件最多有一个public类。其他类不限,如果源文件文件包含一个一个public类,它必须按该类名命名—文件名与public类的类名一致。

Java应用程序的执行入口是main()方法。它有固定的书写格式:public static void main(String args[]){…}—但其中args表变量名,随便取;[]位置可在中间、后面

java语言中严格区分大小写

java方法由一条一条语句构成,每个语句以;结束

java语言有3种注释方式:

//用于单行注释/* /**

用于多行注释*用于多行注释且可被doc

*/ */工具解析,每行皆有一个*

总结第1个程序

构建程序员自己的环境---把文件做成列表的形式,显示所有文件名,不让他隐藏文件,在地址栏显示全路径---方便--

运用copy----设置(在企业,能copy的一般不自己敲,学校多敲多锻

炼,但对于路径—直接copy)

掌握pass和classpath概念

熟悉常见错误—e.g.NoClassDefFindError、找不到文件--遇到一个记下

一个及其原因及其解决方案---个人知识管理---积累财富(每个企业有自

己的知识管理)

熟悉java程序简单规则—一个文件里只能有一个public class,其他类

不限,public class的名字和文件名一致;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环境变量:属性—高级—环境变量—系统变量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及过程中常见问题

相关主题
文本预览
相关文档 最新文档