1、java毕业设计读书笔记java毕业设计读书笔记 篇一:java 读书笔记 1 Java中finally关键字的使用 与其他语言的模型相比,finally 关键字是对 Java 异常处理模型的最佳补充。finally 结构使代码总会执行,而不管有无异常发生。使用 finally 可以维护对象的内部状态,并可以清理非内存资源。如果没有 finally,您的代码就会很费解。 finally 块必须与 try 或 try/catch 块配合使用。此外,不可能退出 try 块而不执行其 finally 块。如果 finally 块存在,则它总会执行。(无论从那点看,这个陈述都是正确的。有一种方法可以退
2、出 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
3、 E). 根据提示,没有可访问的内部类E的实例,必须分配一个合适的内部类E的实例(如 A,x必须是E的实例。)查看一下相关资料。原来我写的内部类是动态的,也就是开头以public class开头。而主程序是public static class main。在Java中,类中的静态方法不能直接调用动态方法。只有将某个内部类修饰为静态类,然后才能够在静态类中调用该类的成员变量与成员方法。所以在不做其他变动的情况下,最简单的解决办法是将public class改为public static class. 31)、序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态,并且可以把保存的对象状态
4、再读出来。虽然你可以用你自己的各种各样的方法来保存Object States,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。 2)、什么情况下需要序列化 a)当你想把的内存中的对象保存到一个文件中或者数据库中时候; b)当你想用套接字在网络上传送对象的时候; c)当你想通过RMI传输对象的时候; 3)、当对一个对象实现序列化时,究竟发生了什么?在没有序列化前,每个保存在堆(Heap)中的对象都有相应的状态(state),即实例变量(instance ariable)比如: Foo myFoo = new Foo; myFoo .setWidth; ; 当通过下面的代
5、码序列化之后,MyFoo对象中的width和Height实例变量的值(37,70)都被保存到文件中,这样以后又可以把它 从文件中读出来,重新在堆中创建原来的对象。当然保存时候不仅仅是保存对象的实例变量的值,JVM还要保存一些小量信息,比如类的类型等以便恢复原来的对 象。 FileOutputStream fs = new FileOutputStream; ObjectOutputStreamos = new ObjectOutputStream; ; 4)、实现序列化(保存到一个文件)的步骤 a)Make a FileOutputStream java 代码 FileOutputStream
6、 fs = new FileOutputStream; b)Make a ObjectOutputStreamjava 代码 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 vo
7、id 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)当一个对象的实例变量引用其他对象,序列化该对象时也把引用对象进行序列
8、化; c)并非所有的对象都可以序列化,,至于为什么不可以,有很多原因了,比如: 1.安全方面的原因,比如一个对象拥有private,public等field,对于一个要传输的对象,比如写到文件,或者进行rmi传输 等等,在序列化进行传输的过程中,这个对象的private等域是不受保护的。2. 资源分配方面的原因,比如socket,thread类,如果可以序列化,进行传输或者保存,也无法对他们进行重新的资源分 配,而且,也是没有必要这样实现。篇二:Java基础读书笔记 Java 一 Java概述 二 Java语言基础 三 面向对象编程 四 Java异常类处理机制 五 数组 六 Java常用类 七
9、 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城
10、这里如果城市需要进行修改,则工作量比较大 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,
11、城市b城 java中主要存在4块内存空间: 1、栈内存空间:保存所有的对象名称(准确的说是保存引用的堆内存空间的地址) 2、堆内存空间:保存每个对象的具体属性内容 3、全局数据区:保存static类型属性 4、全局代码区:保存所有的方法定义 类的公共属性应该由类进行修改是最合适的,因为用户不知道一个类到底有多少个对象产生,所以以上代码在访问static属性的时候最好可以由类名直接调用,那么有时也就把使用static声明的属性称为类属性。 类名.static属性。 所以以上代码最好是: =“B城”; 使用static声明方法 static既可以在声明属性时使用,也可以用其来声明方法,用它声明方法
12、的时候有时也被称为“类方法”。 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; ; ; ; ; ; ;
13、; 输出结果: .修改之前. 姓名:张三,年龄: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+; ;