读书人

Java 学习札记整理 【 前 7 】

发布时间: 2012-12-31 11:57:51 作者: rapoo

Java 学习笔记整理 【 前 7 】

--------------------------------Java 主讲教师 : 马士兵课程内容* Java 基础* 语法基础* OO* Exception* Array* 基础类 - 常用类* I / O Stream* Collection / Generic* Thread* TCP / UDP* GUI* Meta Data* Regular ExpressionJava 体系* JDK初步* 其他方向的基础* Java Web编程* 针对Web程序* J2EE* 企业级应用* J2ME* 移动设备* 移动增值* SP运营商教学方法* 巨无霸式的教学* 理论* 举例* 理论回顾* 练习* 讲解  * 注重结合工程实践  * 注重传授自学能力  能力的三个层次 {* 知识* 学习前人的知识* 解决问题的方法* 灵活运用学到的知识* 解决问题的思路* 创造解决问题的方法}学习方法 {* 学习本讲义* 完成习题* 运用自学的能力* 读* 写* 查* 背}预备知识 {* 英语* 计算机基本操作}其他* 企业与学校之间的区别* 时限* 实用为主* 浩瀚知识的分类* 实际开发中经常使用的(牢牢掌握)* 不经常使用用时就能查得到的(了解)* 八辈子用不着一回的(运用自己的能力去查)总结* 乐观的努力* 眼光要高远* 脚步要踏实错误的做法(教师)* 讲得多,练得少* 只灌输知识点,没有串联* 不培养自学能力* 给答案不给思路* 项目太简单* 项目太复杂* 项目太少* 注重授课技巧,不注重基本功* 重管理技巧,轻开发技巧* 知识太陈旧错误的做法 (学生)* 只看不练* 只听不练* 钻到细节中拔不出来(初学者)* 修正 : 明确目标,心无旁骛  学校 : 集中所有精力,教授实用知识* 对计算机心存敬畏* 不敢动(装卸软件, 安装系统)* 不敢调试bug尚学堂 手把手教程--------------------------------J2SE 之 JAVA概述想学习J2ME, JSP / Servlet, J2EE 吗?* 请打好基础 - J2SE* 内容* 计算机语言的历史以及Java语言的历史地位* Java 自身的发展史* Java体系* Java的特点* Java的运行机制* Java运行环境的安装与配置* 第一个程序HelloWorld* 内容* JAVA概述* JAVA语言基础* 面向对象编程* JAVA异常处理机制* 数组* JAVA常用类* JAVA容器类* JAVA流技术* JAVA多线程机制* JAVA网络编程* GUI编程* 计算机语言发展史及Java的历史地位* 第一代语言* 打孔机 -- 纯机器语言* 第二代语言* 汇编* 第三代语言* C, Pascal, Fortran 面向过程的语言* C++面向过程/面向对象* Java跨平台的纯面向对象的语言* .NET跨平台的语言计算机语言朝着人类易于理解的方向发展* Java发展史与java体系* 95年, Sun发布JDK1.0* 98年,JDL1.2, 更名为Java2* 后续JDK 1.3, 1.4* 目前JDK 1.5, 更名为Java5.0* 我们使用5.0, 1.6, 1.7j2se --> {1, java web {* j2ee  95% 以上* 移动增值}2, j2me}* Java语言的特点* 一种面向对象的语言* 一种平台无关的语言, 提供程序运行的解释环境* 一种健壮的语言, 吸收了C/C++语言的优点, 但去掉了其影响程序健壮性的部  分(如: 指针, 内存的申请与释放等)。* Java程序运行机制及运行过程* Java两种核心机制:* Java 虚拟机 (JVM)* 垃圾收集机制(Garbage collection) * 核心机制之Java虚拟机 { * java虚拟机可以理解成一个以字节码为机器指令的CPU * 对于不同的运行平台, 有不同的虚拟机 * Java虚拟机机制屏蔽了底层运行平台的差别, 实现了"一次编译, 随处运行"。                                     -- Jvm for Unix *.java -编译-> *.class -执行-> JVM- -- Jvm for Windos                                     -- Jvm for otherPlatform   Java  --   解释性的语言   C/C++ --   编译型的语言 } * 核心机制之垃圾收集 { * 不再使用的内存空间应回收 - 垃圾回收 * 在 C/C++ 等语言中, 由程序员负责回收无用内存 * Java语言消除了程序员回收无用内存空间的责任; 它提供一种系统级线程跟踪存   储空间的分配情况。并在JVM的空闲时, 检查并释放那些可被释放的存储器空间。 * 垃圾收集在Java程序运行过程中自动进行, 程序员无法精确控制和干预。 * J2SDK & JRE      -  Software Development Kit (软件开发包)      -  Java Runtime Environment      开发需要 JDK      用户只需 JRE * Java开发环境的下载 安装 配置 * 配置 Java开发环境步骤 (WindowsXP) * 下载 并安装最新版本的J2SDK * 设置 Windows环境变量。 * 选择 合适的文本编辑器或使用集成开发环境 ------------------------------- * 下载 http://java.sun.com * 安装 * 配置 path & classpath * path : windows系统执行命令时要搜寻的路径 * classpath : java在编译和运行时要找的class所在的路径 * 验证                       HelloWorld.java * java  运行 java 程序 * javac 编译 java 程序    . 代表当前路径 * Java Application初步 * Java源文件以“java”为扩展名。源文件的基本组成部分是类 (class), 如本例中的 HelloWorld 类 * 一个源文件中最多只能有一个public类. 其它类的个数不限,如果源文件 文件包含一个public类, 它必需按该类名命名  * Java 应用程序的入口是 main() 方法  * Java语言严格区分大小写  * Java方法有一条条语句构成, 每个语句以分号结束  * Java语言有三种注释方式: { // 单行注释, /* 多行注释 */                             /**                            * 用于多行注释,并且可以被doc工具解析                            */   } * 总结第一个程序 { * 构建程序自己的环境 * 运用copy * 掌握 path 和 classpath * 熟悉常见的错误 * 熟悉java程序简单规则 * 熟悉java程序的编译与运行 } * UltraEdit遗留问题 补充 { * 先谈学习方法  * 你怎么去了解一台发动机? * 你怎么去了解一座高山? 怎么去了解你的校园? * 你怎么去画一树寒梅  * 先学脉络,再学细节,这是规律,请务必尊重学习规律。  * 养成自动学习的习惯 * 学技术 google 谷老师非常好,不姓 百 * 建议你的 JDK 装在不带空格的目录里面!  path * 操作系统用 path 的路径来找执行程序 * javac/java 找不到路径的解决方式 * 用户变量 / 系统变量  * FAQ: * 系统装了多个版本的JDK * ping 找不到路径 * 命令收集 : { cd \ notepad echo %path% set path=d:\java\java-app\jdk1.5\bin;%path% java -verbose HelloWorld } * 做任何事情 { 听别人意见的时候, 先做自己的努力 * classpath { * javac/java 用来查找类 * “.” 代表当前路径 * jar文件 = 路径(文件夹)   * FAQ: * 2 projects, 用同一个类的不同版本  * 总结 * 抓住脉络,要事为先 * 主动学习, 培养能力 * 动手动手,动手动手 * Next: * OO 思维 * 要求: * 了解面向对象的概念 * 类,对象,属性,方法 * 预习第三章 * 下载eclipse * 时间: * http://www.bjsxt.com  * 常见Java 开发环境 * 编辑器 * UltraEdit * EditPlus * 集成开发环境 (IDE): * JBuilder (http://www.borland.com) * Eclipse  (http://www.eclipse.org) * Sun One Studio (http://java.sun.com) * WSAD (http://www.ibm.com) * 内容 * 标识符 * 关键字 * Java 基本数据类型 * 运算符 * 表达式和语句 * 分支 * 循环 * 方法 * 变量的作用域 * 递归调用  变量名称   * 在方法体内 声明的变量 叫做 局部变量  * 在方法体外, 类体内声明的变量叫做 成员变量   * 成员变量 {  * 成员变量可以是Java语言中任何一种数据类型(包括基本类型和引用类型)  * 在定义成员变量时可以对其初始化,如果不对其初始化                                                        * 成员变量的作用范围为整个类体 }    Java数据类型的划分 {                                        -- 整数类型 (byte, short, int, long)                            -- 数值型 --                              |            -- 浮点类型 (float, double)             --基本数据类型 -- 字符型 (char)            |              |            |               -- 布尔型 (boolean)  数据类型 --                                     |               -- 类 (class)            |              |             --引用数据类型 -- 接口 (interface)                           |                            -- 数组 (array)                                Java 中定义了4类8种基本数据类型    boolean 类型只允许取值 true / false , 不可以用 0 或 非0 替代。    char    java 字符采用 Unicode 编码 (全球语言统一编码), 每个字符占两个字节  }    J2SE 之 面向对象编程    * 编程语言的发展  * 面向过程的设计思想  * 面向对象的设计思想  * 对象和类的概念  * 类之间的关系  * 对象和引用  * Java 类的定义  * 构造函数  * 对象的创建和使用  * this 关键字  * static 关键字  * package 和 import 语句  * 访问控制  * 类的继承  * 方法的重写  * final 关键字  * Object类  * 对象转型  * 多态  * 抽象类  * 接口    ---------  类 (对象) 之间的关系 {  1, 关联关系  -- 学院 - 研究生 - 教授  2, 继承关系  -- 运动员 { 游泳运动员,球类运动员, 射击运动员 }  3, 聚合关系  -- 聚集 - 球队{队长,队员}  组合 - 人-{ 头, 身体, 四肢 }  4, 实现关系  --   }  * 对象是Java程序的核心, 在Java中万事万物皆 “对象”    * 对象可以看成是静态属性 (成员变量) 和 动态属性(方法) 的封装体    * 类是用来创建同一类型的对象的 “模板”, 在一个类中定义了该类对象所应具有的成员变量以及方法    ----------------------  我们的语言    ->   成员变量 = 属性   方法 = 函数  ----------------------  为什么用对象?  * 面向对象的编程 -- 一组对象互相配合通过沟通完成特定功能  * 汇编是对机器语言的抽象  * 面向过程的语言是对汇编的抽象  * 对象更加符合对于现实问题的抽象  * 对象都有对外服务的接口  * 通过继承可以复用  * 对象隐藏内部服务的实现  * 通过聚合可以复用  * 面向对象更加容易使我们达到这些年苦苦追求的境界  * Reusable, Extensibility  * 组件 -- 比对象更高层次上的抽象 (二进制级别)  * EJB, Web Service, CORBA, COM ...  * 命名规则 {  * 类名首字母大写  * 变量名和方法名的首字母小写  * 运用驼峰标识  }  * 对象的创建和使用 {  * 必须使用 new 关键字创建对象  * 使用对象引用  * 同一类的每个对象共享该类的方法  * 非静态方法是针对每个对象进行调用  }  * this 关键字 {  * 在类的方法定义中使用的 this 关键字代表使用该方法的对象的引用  * 在必须指出当前使用方法的对象是谁时要使用this  * 有时使用this可以处理方法中成员变量和参数重名的情况。  * this可以看作是一个变量,它的值是当前对象的引用  }  * static 关键字 {  * 在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化。  * 用 static 声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static方法  中不可访问非static成员。  * 静态方法不再是针对于某个对象调用, 所以不能访问非静态成员。  * 可以通过对象引用或类名访问静态成员。  }  * package / import  * J2SDK 中主要的包介绍  * java.lang - 包含一些 java 语言的核心类  * java,awt  - 包含了构成抽象窗口工具集 (abstract window tookit) 的多个类  * java.applet-包含applet运行所需的一些类  * java.net  - 包含执行与网络相关的操作的类  * java.io   - 包含能提供多种输入/输出功能的类  * java.util - 包含一些实用工具类.  * 类的继承与权限控制  * 方法的重写  * super 关键字  * Object类  * Object类是所有Java类的根基类  * toString方法  * Object类中定义有 public String toString() 方法,其返回值是 String 类型, 描述当前对象的有关信息  * 在进行 String 与其他类型数据的连接操作时 (如:  System.out.println("info" + person), 将自动调用该对象类的 tiString() 方法  * 可以根据需要在用户自定义类型中重写 toString() 方法    * equals 方法  * Object 类中定义有:  * public boolean equals(Object obj) 方法  * 提供对象是否 “相等” 的逻辑  * Object的 equals 方法定义为:x.equals(y) 当 x 和 y 是同一对象的应用  时返回 true 否则返回  false  * J2SDk 提供的一些类,如 String, Date等,重写了 Object 的 equals 方法,调用  这些类的 equals 方法, x.equals(y), 当 x 和 y 所引用的对象是同一类对象且  属性内容相等时 (并不一定是相同对象), 返回 true 否则返回 false.  * 可以根据需要在用户自定义类型中重写 equals 方法。    * 对象转型  * 动态绑定 和 多态  * 抽象类  * Final 关键字  * 接口 - 特殊的抽象类 {  只包含常量和方法的定义  }  * 第三章总结 {  * 内存分析贯穿始终  * 对象和类的概念  * 类 (对类) 之间的关系  * 面向对象设计思想  * class  * new  * 引用的概念  * 构造方法的概念  * 方法重载  * 构造方法重载  * this  * static  * package & import  * private default protected public  * extends  * overwrite  * final  * Object  * toString  * equals  * upcasting downcasting  * polymophysm / dynamic binding / late  * abstract class  * interface  * implements  } * 第四章 异常处理 * 第四章总结 { * 一个图 * 五个关键字 * 先逮小的,再逮大的 * 异常和重写的关系 } * 第五章 数组  * 第六章 常用类 { * 字符串相关类 (String, StringBuffer) * 基本数据类型包装类 * Math类 * File类 * 枚举类  * String 类 * java.lang.String 类代表 不可变 的字符序列 * StringBuffer 类 * java.lang.StringBuffer 代表可变的字符序列 * 基本数据类型包装类 * 包装类(如:Integer, Double) * java.lang.Integer * Math 类 java.lang.Math * File 类 java.lang.File * 补充 java.lang.Enum  总结 * String  * 正则表达式 * 包装类 * Math, File, 枚举  ile类 * 枚举类  * String 类 * java.lang.String 类代表 不可变 的字符序列 * StringBuffer 类 * java.lang.StringBuffer 代表可变的字符序列 * 基本数据类型包装类 * 包装类(如:Integer, Double) * java.lang.Integer * Math 类 java.lang.Math * File 类 java.lang.File * 补充 java.lang.Enum  总结 * String  * 正则表达式 * 包装类 * Math, File, 枚举 } 第七章 容器 { * 容器的概念 * 容器API * Collection 接口 * Iterator 接口 * 增强的 for 循环 * Set 接口 * List接口 和 Comparable接口 * Collections 类 * Map 接口 * 自动打包 / 解包 * 泛型 (JDK1.5新增) ----- * J2SDk 所提供的容器位于 java.util 包内。 * 容器API的类图如下图所示:     <<interface>>     Collection                                       <<interface>> <<interface>>      <<interface>>                 ^      Set                List                     |       ^                  ^                       |       |           _______|______                 |  HashSet   LinkedList    ArrayList          HashMap   * Collection 接口 -- 定义了存取一组对象的方法, 其子接口 Set 和 List 分别定 义了存储方式。  * Set 中的数据对象没有顺序且不可以重复。 * List中的数据对象有顺序且可以重复  * Map 接口定义了存储 “键 (key) -- 值 (value) 映射"对"的方法。  Collection 方法举例 * 容器类对象在调用 remove, contains 等方法时需要比较对象是否相等 这会涉及到对象类型的 equals 方法和 hashCode 方法,对于自定义的 类型,需要要重写 equals 和 hashCode 方法以实现自定义的对象相等 规则。 * 注意 : 相等的对象应该具有相等的 hashcodes * --- 

读书人网 >编程

热点推荐