第2章 一切都是对象2.1 用句柄操纵对象2.2 必须创建所有对象2.2.1 保存在什么地方2.2.2 特殊情况:主类型2.2.3 Java中的数组2.3 绝对不要清除对象2.3.1 作用域2.3.2 对象的作用域2.4 新建数据类型:类2.4.1 字段和方法2.5 方法、自变量和返回值2.5.1 自变量列表2.6 构建Java程序2.6.1 名字的可见性2.6.2 使用其他组件2.6.3 static关键字2.7 我们的第一个Java程序2.8 注释和嵌入文档2.8.1 注释文档2.8.2 具体语法2.8.3 嵌入HTML2.8.4 @see:引用其他类2.8.5 类文档标记2.8.6 变量文档标记2.8.7 方法文档标记2.8.8 文档示例2.9 编码样式2.10 总结2.11 练习 第3章 控制程序流程3.1 使用Java运算符3.1.1 优先级3.1.2 赋值3.1.3 算术运算符3.1.4 自动递增和递减3.1.5 关系运算符3.1.6 逻辑运算符3.1.7 按位运算符3.1.8 移位运算符3.1.9 三元if-else运算符3.1.10 逗号运算符3.1.11 字串运算符+3.1.12 运算符常规操作规则3.1.13 造型运算符3.1.14 Java没有“sizeof”3.1.15 复习计算顺序3.1.16 运算符总结3.2 执行控制3.2.1 真和假3.2.2 if-else3.2.3 反复3.2.4 do-while3.2.5 for3.2.6 中断和继续3.2.7 切换3.3 总结3.4 练习 第4章 初始化和清除4.1 由构建器保证初始化4.2 方法过载4.2.1 区分过载方法4.2.2 主类型的过载4.2.3 返回值过载4.2.4 默认构建器4.2.5 this关键字4.3 清除:收尾和垃圾收集4.3.1 finalize()用途何在4.3.2 必须执行清除4.4 成员初始化4.4.1 规定初始化4.4.2 构建器初始化4.5 数组初始化4.5.1 多维数组4.6 总结4.7 练习 第5章 隐藏实施过程5.1 包:库单元5.1.1 创建独一无二的包名5.1.2 自定义工具库5.1.3 利用导入改变行为5.1.4 包的停用5.2 Java访问指示符5.2.1 “友好的”5.2.2 public:接口访问5.2.3 private:不能接触5.2.4 protected:“友好的一种”5.3 接口与实现5.4 类访问5.5 总结5.6 练习 第6章 类再生6.1 合成的语法6.2 继承的语法6.2.1 初始化基础类6.3 合成与继承的结合6.3.1 确保正确的清除6.3.2 名字的隐藏6.4 到底选择合成还是继承6.5 protected6.6 递增开发6.7 上溯造型6.7.1 何谓“上溯造型”?6.8 final关键字6.8.1 final数据6.8.2 final方法6.8.3 final类6.8.4 final的注意事项6.9 初始化和类装载6.9.1 继承初始化6.10 总结6.11 练习 第7章 多形性7.1 上溯造型7.1.1 为什么要上溯造型7.2 深入理解7.2.1 方法调用的绑定7.2.2 产生正确的行为7.2.3 扩展性7.3 覆盖与过载7.4 抽象类和方法7.5 接口7.5.1 Java的“多重继承”7.5.2 通过继承扩展接口7.5.3 常数分组7.5.4 初始化接口中的字段7.6 内部类7.6.1 内部类和上溯造型7.6.2 方法和作用域中的内部类7.6.3 链接到外部类7.6.4 static内部类7.6.5 引用外部类对象7.6.6 从内部类继承7.6.7 内部类可以覆盖吗?7.6.8 内部类标识符7.6.9 为什么要用内部类:控制框架7.7 构建器和多形性7.7.1 构建器的调用顺序7.7.2 继承和finalize()7.7.3 构建器内部的多形性方法的行为7.8 通过继承进行设计7.8.1 纯继承与扩展7.8.2 下溯造型与运行期类型标识7.9 总结7.10 练习 第8章 对象的容纳8.1 数组8.1.1 数组和第一类对象8.1.2 数组的返回8.2 集合8.2.1 缺点:类型未知8.3 枚举器(反复器)8.4 集合的类型8.4.1 Vector8.4.2 BitSet8.4.3 Stack8.4.4 Hashtable8.4.5 再论枚举器8.5 排序8.6 通用集合库8.7 新集合8.7.1 使用Collections8.7.2 使用Lists8.7.3 使用Sets8.7.4 使用Maps8.7.5 决定实施方案8.7.6 未支持的操作8.7.7 排序和搜索8.7.8 实用工具8.8 总结8.9 练习 第9章 违例差错控制9.1 基本违例9.1.1 违例自变量9.2 违例的捕获9.2.1 try块9.2.2 违例控制器9.2.3 违例规范9.2.4 捕获所有违例9.2.5 重新“掷”出违例9.3 标准Java违例9.3.1 RuntimeException的特殊情况9.4 创建自己的违例9.5 违例的限制9.6 用finally清除9.6.1 用finally做什么9.6.2 缺点:丢失的违例9.7 构建器9.8 违例匹配9.8.1 违例准则9.9 总结9.10 练习 第10章 Java IO系统10.1 输入和输出10.1.1 InputStream的类型10.1.2 OutputStream的类型10.2 增添属性和有用的接口10.2.1 通过FilterInputStream从InputStream里读入数据10.2.2 通过FilterOutputStream向OutputStream里写入数据10.3 本身的缺陷:RandomAccessFile10.4 File类10.4.1 目录列表器10.4.2 检查与创建目录10.5 IO流的典型应用10.5.1 输入流10.5.2 输出流10.5.3 快捷文件处理10.5.4 从标准输入中读取数据10.5.5 管道数据流10.6 StreamTokenizer10.6.1 StringTokenizer10.7 Java 1.1的IO流10.7.1 数据的发起与接收10.7.2 修改数据流的行为10.7.3 未改变的类10.7.4 一个例子10.7.5 重定向标准IO10.8 压缩10.8.1 用GZIP进行简单压缩10.8.2 用Zip进行多文件保存10.8.3 Java归档(jar)实用程序10.9 对象串联10.9.1 寻找类10.9.2 序列化的控制10.9.3 利用“持久性”10.10 总结10.11 练习 第11章 运行期类型鉴定11.1 对RTTI的需要11.1.1 Class对象11.1.2 造型前的检查11.2 RTTI语法11.3 反射:运行期类信息11.3.1 一个类方法提取器11.4 总结11.5 练习 第12章 传递和返回对象12.1 传递句柄12.1.1 别名问题12.2 制作本地副本12.2.1 按值传递12.2.2 克隆对象12.2.3 使类具有克隆能力12.2.4 成功的克隆12.2.5 Object.clone()的效果12.2.6 克隆合成对象12.2.7 用Vector进行深层复制12.2.8 通过序。
1. PATH环境变量。
作用是指定命令搜索路径,在命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。
CLASSPATH环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPATH来寻找类的。
我们需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。2、public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int sum=0;//设定一个变量,求和的值 for(int i=1;i<=100;i++){ sum=sum+i; } System.out.println("1+2+3+。
.+100的和:"+sum); }}3、import java.util.Arrays;public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int str[]={1,3,9,5,4,8,2}; Arrays.sort(str); System.out.println("数组中最大数:"+str[str.length-1]); }}4、public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String str="abc.java.txt";//定义一个变量设置文件名称 System.out.println(str.substring(str.lastIndexOf(".")+1)); }}5、public class Student {private String name;//姓名private int age;//年龄private double score;//成绩public Student(String name,int age,double score){ this.name=name; this.age=age; this.score=score;}public String getName() { return name;}public void setName(String name) { this.name = name;}public int getAge() { return age;}public void setAge(int age) { this.age = age;}public double getScore() { return score;}public void setScore(double score) { this.score = score;}}6、我就不贴代码了。你自己创建借个对象。
然后把五个对象的成绩放在一个数组中,直接调用Arrays.sort(数组名) 这个方法排序输出就ok了。7、方法:可以使用文件流来读写。
楼主可根据文件的类型选择是字节流还是字符流来实现。如果楼主还需要,可以把代码写出来8、TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。
一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。
三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。TCP协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往往使用TCP协议传输数据。
面向非连接的UDP协议“面向非连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。这与现在风行的手机短信非常相似:你在发短信的时候,只需要输入对方手机号就OK了。
UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。
比如,我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。例如,在默认状态下,一次“ping”操作发送4个数据包(如图2所示)。
大家可以看到,发送的数据包数量是4包,收到的也是4包(因为对方主机收到后会发回一个确认收到的数据包)。这充分说明了UDP协议是面向非连接的协议,没有建立连接的过程。
正因为UDP协议没有连接的过程,所以它的通信效果高;但也正因为如此,它的可靠性不如TCP协议高。QQ就使用UDP发消息,因此有时会出现收不到消息的情况。
TCP协议和UDP协议各有所长、各有所短,适用于不同要求的通信环境。9、
用户名: | |
密码: |