找回密码
 快速注册

QQ登录

只需一步,快速开始

查看: 1160|回复: 0

Java 私塾第一、二章笔记整理

[复制链接]
solimh 发表于 2011-1-14 11:31:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?快速注册

×
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型。
         取值范围和默认值
名称长度范围默认值
byte8位-2^7~2^7-10
short16位-2^15~2^15-10
int32位-2^31~2^31-10
long64位-2^63~2^63-10

    浮点型:float ,double
        提示:
        (1) 浮点型的值,如果没有特别指明,默认是double型的。
        (2) 定义float型时,一定要指明是float型,可通过在数字后边加F(f)。
        (3) 定义double类型时,可以不用指明,默认的就是double型,也可通过在数字后边添加D(d)来表示。
        取值范围和默认值
名称长度默认值
float32位0f
double64位0

   字符型:char 用来标识单个字符,一个char代表一个16-bit的无符号的unicode字符,一个char字符必须包含在单引号内。
        取值范围和默认值
名称长度范围默认值
char16位Unicode2^16-1Unicode 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
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

快速回复 返回顶部 返回列表