当前位置: 首页 > news >正文

微网站开发平台动画制作软件flash官方下载

微网站开发平台,动画制作软件flash官方下载,wordpress 国外空间,网站设计待遇参考链接#xff1a; Java中的final最终变量 java对象的序列化 Java序列化是指把Java对象转换为字节序列的过程#xff1b;而Java反序列化是指把字节序列恢复为Java对象的过程。java中存有Cloneable接口#xff0c;实现此接口的类都具有被拷贝能力#xff0c;比new一个对象…参考链接 Java中的final最终变量 java对象的序列化 Java序列化是指把Java对象转换为字节序列的过程而Java反序列化是指把字节序列恢复为Java对象的过程。java中存有Cloneable接口实现此接口的类都具有被拷贝能力比new一个对象要快拷贝分为浅拷贝和深拷贝浅拷贝导致对象属性不彻底。 class Professor  { String name; int age; Professor(String name,int age) { this.namename; this.ageage; } } class student implements Cloneable { String name; int age; Professor p; student(String name,int age,Professor p) { this.namename; this.ageage; this.pp; } public Object clone() { student onull; try { o(student)super.clone(); } catch(CloneNotSupportedException e) { System.out.println(e.toString()); } return o; } public static void main(String[] args) { Professor pnew Professor(wang,5); student s1new student(zhangsan,1,p); student s2(student)s1.clone(); s2.p.namelisi; s2.p.age3; System.out.println(names1.p.name,ages1.p.age); } } 如代码中s2变了s1也变了说明他们指向同一个对象这就是浅复制关键是在clone方法上他并不是将对象的所有属性全拷贝过来而是选择性拷贝拷贝规则为1基本类型只拷贝其值。2实例对象拷贝其地址引用新拷贝对象原对象共用该实例。3字符串拷贝地址引用修改时会从字符串常量池中新生一个原字符串不变。解决办法在clone里新建一个对象。但是在如果大量对象都是拷贝生成每个类都写一个clone方法工程量就很大。 序列化实现对象的复制。通过字节流拷贝对象 public class CloneUtils { SuppressWarnings(unchecked) public static T extends Serializable T clone(T obj){ T cloneObj null; try { //写入字节流 ByteArrayOutputStream out new ByteArrayOutputStream(); ObjectOutputStream obs new ObjectOutputStream(out); obs.writeObject(obj); obs.close(); //分配内存写入原始对象生成新对象 ByteArrayInputStream ios new ByteArrayInputStream(out.toByteArray()); ObjectInputStream ois new ObjectInputStream(ios); //返回生成的新对象 cloneObj (T) ois.readObject(); ois.close(); } catch (Exception e) { e.printStackTrace(); } return cloneObj; } } 使用该工具类的对象必须要实现Serializable接口否则是没有办法实现克隆。无须继承cloneable接口实现clone方法。 Static关键字 Static代表全局和静态的意思可以修饰成员变量和成员方法也可修饰代码块。java的内存分配有栈和堆栈中存放基本变量数组和对象引用堆中存放对象当有static修饰的变量或方法则会为其分配固定区域切既然是静态那他作用于内是不变的删除了就不会再有。static修饰的变量是为类所共有不依赖于实例先于对象而存在任一实例修改其他实例也会使用修改后的变量值。java编程思想中有一句话static方法就是没有this的方法。在static方法内部不能调用非静态方法反过来是可以的。而且可以在没有创建任何对象的前提下仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。”这段话虽然只是说明了static方法的特殊之处但是可以看出static关键字的基本作用简而言之一句话来描述就是方便在没有创建对象的情况下来进行调用方法/变量。 static修饰的变量静态变量在类加载时候完成初始化在内存中仅有一个jvm也只会为他分配一次内存所有实例共享可通过类名直接访问。实例变量与实例共存亡。在对象之间共享数据或方便访问时用静态变量。非静态变量是对象所拥有创建对象时初始化存在多个副本各个对象的副本相互不影响。静态变量的初始化顺序是按照定义的数序进行初始化。 静态方法可以通过类名直接访问Math类的所有方法都是static的不依赖于对象 可以进行访问没有对象那么静态方法是没有this的。静态方法中不可以访问非静态成员方法或变量但是非静态成员方法可以访问静态/变量。静态依赖于类普通依赖于对象的创建。 代码块静态代码块会随着类的加载一块执行而且他可以随意放可以存在于该了的任何地方。可以有多个在类初次被加载时会按照static块的顺序来执行每个块并且只执行一次。 java中的static和c中的是不一样的java中static不会影响到变量或者方法的作用域能够影响作用域的只有private、public、protected public class Test { public static void main(String[] args) { System.out.println(s.age);//报错The field s.age is not visible System.out.println(s.name); } } class s{ public static String namezhangsan; private static int age10; } private修饰的原因造成。在静态方法中没有this在非静态中通过this访问非静态成员变量会怎样。 public class Test { static int value 10; public static void main(String[] args) { new Test().show(); } private void show() { int value 1; System.out.println(this.value); } } 结果为10.this代表当前对象new Test调用show的对象就是new Test生成的对象。static变量是所有对象共享show是局部变量不可能与this关联所以输出10静态对象独立于对象但是仍可以通过对象访问。java语法规定static不允许修饰局部变量。Static也存在一些缺陷。1它只能调用static变量。2它只能调用static方法。3不能以任何形式引用this、super。 4static变量在定义时必须要进行初始化且初始化时间要早于非静态变量。无论是变量方法还是代码块只要用static修饰就是在类被加载时就已经准备好了,也就是可以被使用或者已经被执行都可以脱离对象而执行。反之如果没有static则必须要依赖于对象实例。 public class Test { Person person new Person(Test); static{ System.out.println(test static); }     public Test() { System.out.println(test constructor); }  public static void main(String[] args) { new My(); } } class Person{ static{ System.out.println(person static); } public Person(String str) { System.out.println(person str); } } class My extends Test { Person person new Person(My); static{ System.out.println(myc static); }     public My() { System.out.println(my constructor); } } test static   1、首先加载Test类执行静态代码块然后执行Mymy static 2、因没加载且其继承Test先加载Test但已加执行my其静态方法person static 3、加载后执行构造函数生成对象先初始化父类的成员变量执行new person但是没有加载person类先加载就会执行person的静态方法person Test  4、完成成员初始化。test constructor 5、完成父类构造器完成初始化person My      6、自身成员变量初始化my constructor 7/构造函数初始化 final关键字 final最终的意思他修饰的部分不会改变final修饰数据可以看做常量编译期常量永远不改变运行期初始化希望他也不变。编译期的常量在编译时即可参与运算在类加载完成后不可改变编译期常量只能用基本类型在定义时要初始化。运行期常量可以是基本类型和引用类型基本类型其值不变引用类型引用不变应用对象的内容可以变 final修饰方法最终的方法不可被继承更改使用final修饰方法是为了锁定方法父类的final方法是不能被子类所覆盖的也就是说子类是不能够存在和父类一模一样的方法的。 final修饰类不能被继承final修饰的类成员变量可以是final也可以不是成员方法默认final。 如果final修饰参数代表该参数不可改变。 final和static在一起使用时即可修饰成员变量也可修饰成员方法。对于成员变量该变量一旦赋值就不能改变我们称它为“全局常量”。可以通过类名直接访问。对于成员方法则是不可继承和改变。可以通过类名直接访问。
http://www.pierceye.com/news/464756/

相关文章:

  • 做自行车网站应该注意什么个人介绍网页设计模板
  • 邢台网站建设免费做网站排名上海开发app
  • 沈阳网站建设设计企业网站设计与管理系统
  • 婚纱照网站制作梁山网站建设价格
  • 做现货去哪些网站营销好呢网站 服务报价
  • 网站建设渠道做网站前端和平面配合
  • 北京交友最好的网站建设wordpress 移动支付宝
  • 2015百度推广网站遭到攻击非遗网页设计作品欣赏
  • 网站空间需要多大网站推荐几个免费的
  • 做一个网站花多少钱建行系统
  • 滁州市住房城乡建设部网站wordpress title背景
  • 餐饮手机微网站怎么做wordpress 多语言建站
  • 企业信息系统案例东昌府聊城网站优化
  • 做美食直播哪个网站好php网站开发数据列表排重
  • 网站建设 职责网站分站加盟
  • 单页网站产品手机网站免费生成
  • 无锡电子商务网站建设公司德国网站的后缀名
  • 服务器做视频网站赣州企业做网站
  • 如何看出网站用dede做的网站百度快照
  • 做网站很难吗五种新型营销方式
  • 个人网站搭建模拟感想江西企业网站建设哪家好
  • 长春企业网站建设网站制作公司相关工作
  • 免费课程网站有哪些兼职网站项目建设报告
  • 建立网站免费dedecms网站地图制作
  • 网页设计公司网站制作做网站最主要是那个一类商标
  • 卫生局网站建设方案网站架构设计英文翻译
  • 学做衣服网站有哪些智能开发平台软件
  • wordpress 下载站插件wordpress清楚所有评论
  • 公司网站建设工作计划网站设置受信任
  • 网站如何做实名验证码深圳企业网站推广