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

推广网官方推广网站淘宝网站的建设情况

推广网官方推广网站,淘宝网站的建设情况,seo搜索引擎优化5,网站怎样做注册窗口目录 面试回答 使用 new 关键字 使用反射机制 使用 Class 类的 newInstance() 方法 使用 Constructor 类的 newInstance 方法 使用 clone 方法 使用反序列化 使用方法句柄 使用 Unsafe 分配内存 面试回答 使用 new 关键字 这是我们最常用的、也是最简单的创建对象的方…目录 面试回答 使用 new 关键字 使用反射机制 使用 Class 类的 newInstance() 方法 使用 Constructor 类的 newInstance 方法 使用 clone 方法 使用反序列化 使用方法句柄 使用 Unsafe 分配内存 面试回答 使用 new 关键字 这是我们最常用的、也是最简单的创建对象的方式通过这种方式我们还可以调用任意的构造函数无参的和有参的。 User usernew User(); 使用反射机制 运用反射手段调用 java.lang.Class或者 java.lang.reflect.Constructor类的 newInstance()实例方法。 使用 Class 类的 newInstance() 方法 可以使用 Class 类的 newInstance 方法创建对象。这个 newInstance 方法调用无参的构造函数创建对象。 User user User.class.newInstance(); User user (User) Class.forName(com.chiyi.model.User).newInstance(); 使用 Constructor 类的 newInstance 方法 和 Class 类的 newInstance 方法很像java.lang.reflect.Constructor类里也有一个 newInstance 方法 可以创建对象。我们可以通过这个 newInstance 方法调用有参数的和私有的构造函数。 Constructor constructorUser.class.getConstructor(); User user (User) constructor.newInstance(); 这两种newInstance方法就是大家所说的反射。事实上 Class 的 newInstance 方法内部调用 Constructor的 newInstance 方法。 使用 clone 方法 无论何时我们调用一个对象的 clone 方法jvm 就会创建一个新的对象将前面对象的内容全部拷贝进去。用 clone方法创建对象并不会调用任何构造函数。 要使用 clone方法我们需要先实现 Cloneable 接口并实现其定义的 clone 方法。如果只实现了 Cloneable 接口并没有重写 clone 方法的话会默认使用 Object类中的 clone 方法这是一个 native 的方法。 public class CloneTest implements Cloneable{private String name;private int age;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 CloneTest(String name,int age){super();this.namename;this.ageage;}public static void main(String[] args) {try {CloneTest cloneTestnew CloneTest(Tango,17);CloneTest copyClone(CloneTest) cloneTest.clone();System.out.println(newClone:cloneTest.getName());System.out.println(copyClone:copyClone.getName());cloneTest.setName(Change Name);System.out.println(newClone:cloneTest.getName());System.out.println(copyClone:copyClone.getName());} catch (CloneNotSupportedException e) {throw new RuntimeException(e);}} } 使用反序列化 当我们序列化和反序列化一个对象jvm 会给我们创建一个单独的对象。其实反序列化也是基于反射实现的。 public static void main(String[] args) {User usernew User();user.setName(Tango);user.setAge(17);System.out.println(user);ObjectOutputStream oosnull;try {oosnew ObjectOutputStream(new FileOutputStream(tempFile));oos.writeObject(user);} catch (IOException e) {throw new RuntimeException(e);}finally {IOUtils.closeQuietly(oos);}File filenew File(tempFile);ObjectInputStream oisnull;try {oisnew ObjectInputStream(new FileInputStream(file));User newUser(User) ois.readObject();System.out.println(newUser);} catch (IOException e) {throw new RuntimeException(e);}catch (ClassNotFoundException e) {throw new RuntimeException(e);}finally {IOUtils.closeQuietly(ois);try {FileUtils.forceDelete(file);} catch (IOException e) {throw new RuntimeException(e);}}} 使用方法句柄 通过使用方法句柄可以间接地调用构造函数来创建对象 public static void main(String[] args) throws Throwable {// 定义构造函数的方法句柄类型为 void 类型无参数MethodType methodTypeMethodType.methodType(void.class);// 获取构造函数的方法句柄MethodHandles.Lookup lookup MethodHandles.lookup();MethodHandle constructor lookup.findConstructor(User.class, methodType);// 使用方法句柄调用构造函数创建对象User user(User) constructor.invoke();} 使用了 MethodHandles.Lookup.findConstructor() 方法获取构造函数的方法句柄然后通过 invoke 方法调用构造函数来创建对象。 使用 Unsafe 分配内存 在 Java 中可以使用 sun.misc.Unsafe类来进行直接的内存操作包括内存分配和对象实例化。然而需要注意的是sun.misc.Unsafe 类是 Java 的内部 API它并不属于 Java 标准库的一部分也不建议直接在生产环境使用。 public static void main(String[] args) throws Exception {Field fieldUnsafe.class.getDeclaredField(theUnsafe);field.setAccessible(true);Unsafe unsafe (Unsafe) field.get(null);// 获取 User 类的字段偏移量long nameOffset unsafe.objectFieldOffset(User.class.getDeclaredField(name));long ageOffset unsafe.objectFieldOffset(User.class.getDeclaredField(age));// 使用 allocateInstance 方法创建对象不会调用构造函数User user (User) unsafe.allocateInstance(User.class);// 使用 putObject 方法设置字段的值unsafe.putObject(user,nameOffset,Tango);unsafe.putObject(user,ageOffset,17);System.out.println(user);} 这种方式有以下几个缺点 不可移植性Unsafe 类的行为在不同的 Java 版本和不同的 JVM 实现中可能会有差异因此代码在不同的环境下可能会出现不可移植的问题。安全性问题Unsafe 类的功能是非常强大和危险的可以绕过 Java 的安全机制可能会导致内存泄漏、非法访问、数据损坏等安全为。不符合面向对象的原则Java 是一门面向对象的语言鼓励使用构造函数和工厂方法来创建对象以确保对象的正确初始化和维护对象的不变性。
http://www.dnsts.com.cn/news/153920.html

相关文章:

  • 音乐自助建站移动网站建设的前期规划内容
  • 宁波网站建设就业方向工作细胞中文版免费完整版第一季
  • 网站建设介绍会发言稿网站开发编码选择一般是
  • 网站ftp文件福州网站大全
  • 自己网站给别人网站做外链护肤品网站建设前的行业分析
  • 南通手机建站模板热门关键词排名查询
  • 个人网站子域名设置wordpress子目录新建页面无法找到
  • 注册网站安全吗公司的论坛与网站绑定
  • 简述如何对网站进行推广?公司网站别人做的怎么签合同
  • 兼职网站平台有哪些wordpress手动清楚插件
  • 天长市城乡规划建设局网站wordpress首页置顶推荐问题
  • 系统之家网站怎么做的wordpress 网站 seo
  • 彩票网站建设与推广潍坊哪里能找到做网站的
  • 企业互联网网站定位工信部域名备案管理系统
  • 电子商务网站建设与管理实验总结建网站费用
  • 盐城做网站推广电话酒店建筑设计网站
  • 网站开发需要那些技能做网站一般哪里找
  • 九江建网站报价优秀界面设计作品
  • 建设网站的建议网站建设管理员角色设置
  • 用凡科做网站需要花钱吗大连仟亿科技有限公司
  • 网站总是跳转dede58淄博网站开发
  • 甘肃建设职工教育培训中心网站代理注册公司代理费多少钱
  • 网站建设服务yisinuo订单网站怎么做
  • 做网站界面设计大小网站建设及外包
  • 亚马逊海外版网站网站设计的时间计划
  • wordpress网站第一次打开慢建设网站费用如何做账
  • 青岛自助建站软件企业门户网站管理办法
  • 优化公司网站注册安全工程师职业资格制度规定
  • 网站开发的目的意义如何做淘宝直播教学视频网站
  • 成都小程序制作开发wordpress目录seo