java毕业设计读书笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java毕业设计读书笔记
篇一:java 读书笔记
1 Java中finally关键字的使用
与其他语言的模型相比,finally 关键字是对Java 异常处理模型的最佳补充。
finally 结构使代码总会执行,而不管有无异常发生。
使用finally 可以维护对象的内部状态,并可以清理非内存资源。
如果没有finally,您的代码就会很费解。
finally 块必须与try 或try/catch 块配合使用。
此外,不可能退出try 块而不执行其finally 块。
如果finally 块存在,则它总会执行。
(无论从那点看,这个陈述都是正确的。
有一种方法可以退出try 块而不执行finally 块。
如果代码在try 内部执行一条; 语句,则应用程序终止而不会执行finally 执行。
另一方面,如果您在try 块执行期间拨掉电
源,finally 也不会执行。
)2最近在看Java,在编译写书上一个例子时,由于书上的代码只有一部分,于是就自己补了一个内部类。
结果编译时出现:No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing instance of type E where x is an instance of E). 根据提示,没有可访问的内部类E的实例,必须分配一个合适的内部类E的实例(如A,x必须是E的实例。
)查看一下相关资料。
原来我写的内部类是动态的,也就是开头以public class开头。
而主程序是public static class main。
在Java中,类中的静态方法不能直接调用动态方法。
只有将某个内部类修饰为静态类,然后才能够在静态类中调用该类的成员变量与成员方法。
所以在不做其他变动的情况下,最简单的解决办法是将public class改为public static class.
31)、序列化是干什么的?
简单说就是为了保存在内存中的各
种对象的状态,并且可以把保存的对象状态再读出来。
虽然你可以用你自己的各种各样的方法来保存Object States,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。
2)、什么情况下需要序列化
a)当你想把的内存中的对象保存到一个文件中或者数据库中时候;
b)当你想用套接字在网络上传送对象的时候;
c)当你想通过RMI传输对象的时候;
3)、当对一个对象实现序列化时,究竟发生了什么?在没有序列化前,每个保存在堆(Heap)中的对象都有相应的状态(state),即实例变量(instance ariable)比如:
Foo myFoo = new Foo;
myFoo .setWidth;
;
当通过下面的代码序列化之后,MyFoo对象中的width和Height实例变
量的值(37,70)都被保存到文件中,这样以后又可以把它从文件中读出来,重新在堆中创建原来的对象。
当然保存时候不仅仅是保存对象的实例变量的值,JVM还要保存一些小量信息,比如类的类型等以便恢复原来的对象。
FileOutputStream fs = new FileOutputStream;
ObjectOutputStreamos = new ObjectOutputStream;
;
4)、实现序列化(保存到一个文件)的步骤
a)Make a FileOutputStream
java 代码
FileOutputStream fs = new FileOutputStream;
b)Make a ObjectOutputStream
java 代码
ObjectOutputStreamos = new ObjectOutputStream;
c)write the object
java 代码
;
;
;
d) close the ObjectOutputStream
java 代码
;
5)、举例说明
java 代码
import *;
public class Box implements Serializable
{
private int width;
private int height;
public void setWidth{
= width;
}
public void setHeight{
= height;
}
public static void main{
Box myBox = new Box;
;
;
try{
FileOutputStream fs = new FileOutputStream;
ObjectOutputStreamos = new ObjectOutputStream;
;
;
}catch{
;
} } }
6、相关注意事项
a)当一个父类实现序列化,子类自动实现序列化,不需要显式实现Serializable接口;
b)当一个对象的实例变量引用其他对象,序列化该对象时也把引用对象进行序列化;
c)并非所有的对象都可以序列化,,至于为什么不可以,有很多原因了,比如:
1.安全方面的原因,比如一个对象拥有private,public等field,对于一个要传输的对象,比如写到文件,或者进行rmi传输等等,在序列化进行传输的过程中,这个对象的private等域是不受保护的。
2. 资源分配方面的原因,比如socket,thread类,如果可以序列化,进行传输或者保存,也无法对他们进行重新的资源分配,而且,也是没有必要这样实现。
篇二:Java基础读书笔记
Java
一.Java概述
二.Java语言基础
三.面向对象编程
四.Java异常类处理机制
五.数组
六.Java常用类
七.Java容器类
八.Java流技术
九.Java多线程机制
十.Java网络编程
十一.GUI编程
篇三:读书笔记-java开发实战
五、面向对象
static 关键字
使用static声明属性
package JavaKaiFaJiJin;
class Person{
String name;
intage;
String country=“A城”;
public Person{
}
publicvoid info{
{
}
} Person p1=new Person; Person p2=new Person; ; ;);
运行结果:
姓名:张三,年龄:30,城市A城
姓名:lisi,年龄:21,城市A城
这里如果城市需要进行修改,则工
作量比较大
package JavaKaiFaJiJin;
class Person{
String name;
intage;
static String country=“A城”;
public Person{
}
publicvoid info{
System.{
}
}
); Person p1=new Person; Person p2=new Person; ; ; ; ; p1.=“b城”; ; ;
输出结果:
.........修改之前..........
姓名:张三,年龄:30,城市A城
姓名:lisi,年龄:21,城市A城
.........修改之后..........
姓名:张三,年龄:30,城市b城
姓名:lisi,年龄:21,城市b城
java中主要存在4块内存空间:
1、栈内存空间:保存所有的对象名称(准确的说是保存引用的堆内存空间的地址)
2、堆内存空间:保存每个对象的具体属性内容
3、全局数据区:保存static类型属性
4、全局代码区:保存所有的方法定义
类的公共属性应该由类进行修改是最合适的,因为用户不知道一个类到底有多少个对象产生,所以以上代码在访问static属性的时候最好可以由类名直接调用,那么有时也就把使用static声明的属性称为类属性。
类名.static属性。
所以以上代码最好是:
=“B城”;
使用static声明方法
static既可以在声明属性时使用,也可以用其来声明方法,用它声明方法的时候有时也被称为“类方法”。
package JavaKaiFaJiJin;
class Person{
private String name;
privateintage;
privatestatic String country=“A城”;
publicstaticvoid setCountry{
}
public Person{
}
publicvoid info{
{
}
}
publicclass ImgButton{
publicstaticvoid main{
); returncountry; Person p1=new Person; Person p2=new Person; ; ; ; ; ; ; ;
}
}
输出结果:
.........修改之前..........
姓名:张三,年龄:30,城市A城
姓名:lisi,年龄:21,城市A城
.........修改之后..........
姓名:张三,年龄:30,城市B城
姓名:lisi,年龄:21,城市B城
在上边程序中,所有的Person类的属性都进行了封装,所以要想设臵属性就必须使用setter()方法,但是这里的setter方法是使用static声明的,所以可以直接使用类名进行调用。
注意:非static声明的方法可以调用static声明的属性或方法。
但是static声明的方法不能调用非static类型声明的属性或方法。
static的相关应用
package JavaKaiFaJiJin;
class Demo{
}
privatestaticintcount=0; public Demo{} count++; ;。