第一章:开始
一)基础实验:
1. 在Linux下安装JDK,配置环境变量
安装JDK:
sudo chmod 777 /opt
cp jdk-6u24-linux-i586.bin /opt cd /opt
chmod a+x jdk-6u24-linux-i586.bin ./jdk-6u24-linux-i586.bin 配置环境变量:
cp ~/.bahsrc ~/.bashrc.bak vi ~/.bashrc
G==>到文件结尾 o==>下一行输入
JAVA_HOME=/opt/jdk1.6.0_24 PATH=JAVA_HOME$/bin:$PATH CLASSPATH=.
export JAVA_HOME PATH CLASSPATH :wq . ~/.bashrc javac
echo $JAVA_HOME
2. 编辑、编译、运行一个带有包名的Hello.java,输出Hello World!
vi Hello.java(example/chap01/src/Hello.java) javac –d bin src/Hello.java
java –cp bin com.briup.chap01.Hello
3. 编辑、编译、运行一个带有包名的MymathTest.java,完成整数的加减运算 vi MymathTest.java(example/chap01/src/MymathTest.java) javac –d bin src/ MymathTest.java
java –cp bin com.briup.chap01. MymathTest 二)扩展实验: 1. JVM组成
类装载器:将java字节码加载到内存 运行时数据区: 方法区:类型信息 堆区:对象 栈区:保存方法调用状态,如局部变量、参数、返回值 PC寄存器:指向下一条将要执行的指令 本地方法栈:保存本地方法调用状态 执行引擎:运行类方法中的指令 三)作业:
1. 什么是JDK,其包括哪些内容
Java Development Kit(Java开发工具包),JDK主要包括内容: a. Java虚拟机:负责解析和执行Java程序,Java虚拟机可运行在各种平台上;
b. JDK类库:提供最基础的Java类及各种实用类,java.lang、java.io、java.util,、javax.swing、java.sql等包中的类都位于JDK类库中。 c. 开发工具:这些开发工具都是可执行程序,主要包括:
javac编译工具; java运行工具;
javadoc生成JavaDoc文档的工具 jar打包工具
2. 和java相关的环境变量有那几个,它们有什么作用
JAVA_HOME:简化其它变量设置过程中的内容输入。可先行将JDK的安装路径定义为一变量,以后凡使用到JDK安装路径的地方均使用该变量进行替换。 PATH:指定执行外部命令时找寻对应可执行文件的路径范围。
CLASSPATH:代表Java类的根路径,java命令会从CLASSPATH中寻找所需的Java类;Java编译器编译Java类时,也会从CLASSPATH中寻找所需的Java类;classpath的默认值为当前路径。 3. java的优秀特性
跨平台:字节码跨平台,在任何平台上字节码都一样,但不同平台有不同平台的JVM
易编程:没有指针(垃圾回收器)、面向对象(符合人类思考方式) 代码安全:有字节码校验器,适合在网络传输 4. 字节码校验器验证哪些内容 代码和jvm规范一致
代码不能破坏系统的完整性 没有堆栈的上溢和下溢 参数类型是正确的 类型转换是正确的
5. java程序编辑、编译、运行过程 vi xxx.java?javac xxx.java?java xxx 6. java中包的作用
将有关联关系的类组织在一起,便于管理;解决命名冲突问题 7. 什么是API,如何查看API
Application Programming Interface
先查看package?class/interface?field/constructor/method
8. 修正Test1.java、Test2.java、Test3.java、Test4.java四个java源文件中的错误,使其能够编译和运行(exercise/chap01)
第二章:标识符、关键字、类型
1) 基础实验:
1. 单行、多行注释例子
example/chap02/src/CommentTest.java
2. 写一java程序添加文档注释,通过javadoc产生API文档(包含作者、版本等信息)
example/chap02/src/CommentTest2.java
javadoc -d ./doc -author -version src/CommentTest2.java 3. 数据类型测试例子
example/chap02/src/TypeTest.java
4. 类、对象测试例子
example/chap02/src/Teacher.java example/chap02/src/TeacherTest.java 二)扩展实验:
1. 找零问题:有2元,买东西花了1.1元,问找零多少? System.out.println(2.00-1.10);
注意:在需要精确答案的地方,要避免使用float或double;对于货币计算,要使用int、long或BigDecimal 2. 长整除问题: long micros_per_day = 24 * 60 * 60 * 1000 * 1000; long millis_per_day = 24 * 60 * 60 * 1000; System.out.println(micros_per_day / millis_per_day);
输出结果。
注意:当你操作很大的数字时,一定要提防溢出;较大整数运算可使用BigInteger 3. 初级问题 System.out.println(12345 + 5432l)输出结果。 注意:做题要细心;在long类型字面常量中,一定要用大写的L 三)作业:
1. java中注释的分类 java中注释分三类
//:单行注释,如描述一个变量的作用 /* */:多行注释,如描述类的作用、方法的作用、复杂算法的描述 /** */:文档注释,需产生API文档时使用 2. java中标示符的命名规则
1) 以字母、_和$开头,不能以数字开头,后跟字母、数字、“_”和“$”的组合
2) 大小写敏感 3) 没有长度限制 4) 不能使用关键字
3. java中有哪些常用的基本数据类型
boolean、整型族(byte、short、int、long)、浮点型(float、double)、字符型(char)
4. 类和对象的概念 类是现实世界中,具有相同属性和行为的事物的抽象(如鸟类、鱼类、人类)。 对象是类的具体化(万物皆对象、每个对象都是唯一的)。 5. 基本数据类型和引用类型的区别
1) 基本类型代表简单的数据类型,比如整数和字符。
引用类型代表复杂数据类型,引用类型所引用的实例包括操纵这种数据类型的行为。通过\运算符,就能访问引用变量所引用的实例的方法. 2) 基本类型Java虚拟机会为其分配数据类型实际占用的内存空间; 引用类型仅是一个指向堆区中某个实例的指针。 例:public class Counter {
int count = 13;
}
Counter counter = new Counter();
counter引用变量-------------> Counter实例 count变量(占4个字节,值为13)
counter引用变量的取值为Counter实例的内存地址。 counter引用变量本身也占一定的内存空间,到底占用多少内存空间取决于Java虚拟机的实现,这对Java程序是透明的。
注:counter引用变量到底位于Java虚拟机的运行时数据区的哪个区?取决于counter变量的作用域,如果是局部变量,则位于Java栈区;静态成员变量,则位于方法区;实例成员变量,则位于堆区; 6. 编程(exercise/chap02/exercise1)
1)模仿Teacher类创建Student类
要求:Student类要描述姓名、性别、年龄 2)模仿TeacherTest类创建StudentTest类 要求:
a) 在StudentTest类中创建Student的对象
b) 为该对象的属性(姓名、性别、年龄)赋值 c) 将该对象的属性(姓名、性别、年龄)输出 7. 编程(exercise/chap02/exercise2)
1)为Teacher类添加一个方法,用于在教师原有薪水的基础上增加5000
2)修改TeacherTest类,增加对教师增加薪水方法的调用,并将增加后的薪水值输出
8. 编程(exercise/chap02/exercise3)
已知类MyPoint表示一个二维的点,其定义如下: public class MyPoint { public int x; public int y;
public String toString() {
return (\ } }
使用上面已提供的MyPoint类,建立一个TestMyPoint程序,该程序执行下列操作:
1)定义两个类型为MyPoint的变量,变量名为:start 和 end。每个变量赋值一个新的MyPoint的对象。
2)将start 的 x 和 y 值设置为10,end的 x值设置为20,y值为30。 3)打印输出这两点变量,使用类似于如下的代码:System.out.println(“Start point is ”+start);
4)编译运行TestMyPoint。
5)声明一个类型为MyPoint的新变量,名为stray 将现有变量end 的引用

