-- 作者:luodis
-- 发布时间:1/14/2011 8:56:00 AM
-- Java 私塾第一、二章笔记整理[分享]
Java 私塾第一、二章笔记整理 第一章 java入门 一.Java是什么? 一种计算机编程语言 一种软件开发平台 一种软件运行平台(JRE :java runtime environment) 一种软件部署环境 二.Java版本: Java 标准版:JSE(java standard edition) Java缩微版:JME(java micro edition) Java企业版:JEE(java Enterprise edition) 【此处有三者关系图片,可以到java 私塾官网下载完整的笔记,www.javass.cn】 三.Java特点: 简单的说java具有如下特点:简单的,面向对象的,与平台无关的,多线程,分布式,安全,高性能,可靠的,解释型,自动垃圾回收等特点。 与平台无关:一次编写到处运行:Write Once, Run Anywhere. 四.Java工作原理: 【此处有java工作原理图片,可以到java 私塾官网下载完整的笔记,www.javass.cn】 编写代码——> 编译——>类装载(ClassLoader) ——>字节码(byte-code) ——>校验——>解释(interpreter)运行 五.Java技术三大特性: 1. Java 虚拟机(JVM :Java Virtual Machine) (1) 通过ClassLoader 寻找和装载class文件 (2) 解释字节码成为指令并执行,提供class文件的运行环境 (3) 进行运行期间垃圾回收 (4) 提供与硬件交互的平台 【此处有图片,可以到java 私塾官网下载完整的笔记,www.javass.cn】 2. 垃圾回收 检查和释放不再需要的已分配的内存 3. 代码安全 (1) 代码首先会被编译成class文件,若代码有问题,则提示编译有错误,无法通过编译。 (2) 通过编译后,类装载的时候,还会进行类装载检查。 (3) 类装载后,运行之前,还会进行字节码校验。 (4) 如果程序在网上运行,还有“沙箱”保护。 六.构建JEE开发环境 安装目录: D:\Java\jdk1.6 D:\Java\jre1.6环境变量配置:Path: D:\Java\jdk1.6\bin; 或者 Path: %JAVA_HOME%\bin; 提供给操作系统寻找到Java命令工具的路径。 JAVA_HOME: D:\Java\jdk1.6 提供给基于JAVA的程序使用,让他们能够找到JDK的位置。 CLASSPATH: .; 提供程序在运行期寻找所需资源的路径。 JDK文件夹: bin: binary的简写,下面存放的是各种java的执行文件。 include: 需要引入的一些头文件,主要是C和C++的,JDK本身是通过C和C++实现的。 jre: java运行环境 lib: library的简写,JDK所需的一些资源文件和资源包。 第二章 基础语法 一. 关键字 goto 和 const 不是java 关键字,是java的保留字。true和false是不是关键字。 二. 标识符 命名规则: (1) 首字母只能以字母,下划线,$开头,其后可以跟字母,下划线,$和数字。 (2) 标识符区分大小写。 (3) 标识符不能使关键字。 (4) 标识符长度没有限制。 命名建议: (1) 驼峰标识:若由多个单词组成,则第二个单词开始每个单词首字母大写。 (2) 尽量做到见名知意。 (3) 尽量少用带$符号的标识符。 (4) 标识符不应该使用中文,虽然可以编译和运行成功,但不建议这么做。 三.数据类型 数据类型分类:基本数据类型和引用数据类型。 基本数据类型:四类八种: (1) 整数型:byte, short, int, long (2) 浮点型:float, double (3) 字符型:char (4) 逻辑性:boolean 整数型:byte:字节型 short:短整型 int:整型 long:长整型 明确表示是long型,可在后边直接加L(l)。 整数型的值,没有特别指明,默认是int型。 取值范围和默认值 名称 长度 范围 默认值 byte 8位 -2^7~2^7-1 0 short 16位 -2^15~2^15-1 0 int 32位 -2^31~2^31-1 0 long 64位 -2^63~2^63-1 0 浮点型:float ,double 提示: (1) 浮点型的值,如果没有特别指明,默认是double型的。 (2) 定义float型时,一定要指明是float型,可通过在数字后边加F(f)。 (3) 定义double类型时,可以不用指明,默认的就是double型,也可通过在数字后边添加D(d)来表示。 取值范围和默认值 名称 长度 默认值 float 32位 0f double 64位 0 字符型:char 用来标识单个字符,一个char代表一个16-bit的无符号的unicode字符,一个char字符必须包含在单引号内。 取值范围和默认值 名称 长度 范围 默认值 char 16位 Unicode2^16-1 Unicode 0 转义字符:\n 回车 \t 水平制表符 \b 退格 \r 换行 \f 换页 \’ 单引号 \” 双引号 \\ 反斜杠 逻辑型:boolean 只有两个文字值:即true和false。 Boolean默认值是false。 Java中不可以将整数类型和逻辑类型相转换。 字符串类型:String 标识方式是用双引号将要表示的字符串引起来。 注意: (1) String 不是原始数据类型,而是一个类(class) (2) String包含的字符数量是任意多个,而字符类型只能是一个 (3) String默认值是null 四. 常量和变量 常量:值不可以改变的标识符 定义规则:尽量全部大写,并且用下划线将词分隔。 变量:值可以改变的标识符,用来引用一个存储单元,用标识符来表示,可以通过操作变量来操作变量所对应的内存区域或值块的值。 五. Java代码的基本知识 注释:(1) //:注释单行语句 (2)/* */: 多行注释 (3)/** */:文档注释 常常在javadoc注视中加入一个“@”开头的标记,结合javadoc指令的参数,可以在生成的api文档中产生特定的标记。 常用的标记:@author:作者 @version:版本 @deprecated:不推荐使用的方法 @param:方法的参数类型 @return:方法的返回类型 @see:”参见” @exception:抛出的异常 @throws:抛出的异常和exception同意 应用范围: 类和接口文档中的注释的标记:@author @version @see @deprecated 方法和构造方法的注释中的标记:@deprecated @param @return @see @exception @throws: 属性文档注释中的标记:@see @deprecated 六. 运算符 移位运算 负数等于正数取反加一 1357=0000 0000 0000 0000 0000 0101 0100 1101 -1357=1111 1111 1111 1111 1111 1010 1001 1011 >>n 右移n位,高位用符号位填充, 1357>>5=0000 0000 0000 0000 0000 0000 0010 1010 -1357>>5=1111 1111 1111 1111 1111 1111 1101 0101 无符号右移 >>>n 右移n位,高位用0填充, 1357>>>5=0000 0000 0000 0000 0000 0000 0010 1010 -1357>>>5=0000 0111 1111 1111 1111 1111 1101 0101 <<n,左移n位,低位用0填充, 1357<<5=0000 0000 0000 0000 1010 1001 1010 0000 -1357<<5=1111 1111 1111 1111 0101 0011 0110 0000 七. 控制语句 if…else 语句 switch语句: switch (expr1){ case expr2: statements; break; case expr3: statements; break; default: statements; break; } (1) expr1只能是整数型的值或enum枚举类型的常量值,包含byte,short,int,char,不能是字符串或对象,也不能是long型的值。 (2) 变量或表达式不与任何case值相匹配时,则执行缺省符中的程序代码。(与default位置无关) (3) 若没break语句作为结束句,则程序继续执行到下一个CASE,而不检查case表达式的值。 for 循环 for(int I; i<10; i++) for 语句中的三个部分都可以省略,但不建议这么做 while 循环 do 循环 do { 语句或块; }while (布尔测试); do循环与while循环的不同之处在于,前者至少执行一次,后者可能一次都不执行。 特殊循环流程控制: break:用来从switch语句,循环语句,和预先给定了label的块中退出,跳出离break最近的循环。 continue:用来略过并跳到循环体的结尾,终止本次循环,继续下一次循环。 label:标识需要转换到的任何有效语句,被用来标识循环构造的复合语句。 八.什么是按值传递?什么是按引用传递?哪些是按值传递?哪些是按引用传递? 按值传递传递的是值的副本,如果方法修改了该参数,仅改变副本,而原始值保持不变。 按引用传递指的是在方法调用时,传递的参数是按引用进行传递,其实传递的是引用的地址,也就是变量所对应的内存空间的地址。因此,如果方法修改了该参数,调用代码中的原始值也随之改变。 例:public class PassTest { float ptValue; public void changeInt (int value) { value = 55; } public void changeStr (String value) { value = new String ("different"); } public void changeObjValue (PassTest ref) { ref.ptValue = 99f; } public static void main (String args[]) { String str; Int val; PassTest pt = new PassTest (); val = 11; pt.changeInt (val); System.out.println ("Int value is: " + val); str = new String ("Hello"); pt.changeStr (str); System.out.println ("Str value is: " + str); pt.ptValue = 101f; pt.changeObjValue (pt); System.out.println ("Current ptValue is: " + pt.ptValue); } } 这个程序最后输出的结果将是: 11 Hello 99f
|