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

深圳东门地铁站叫什么网站建设属于什么支出

深圳东门地铁站叫什么,网站建设属于什么支出,服务周到的做网站,谷歌seo需要做什么目录 引出类什么时候被加载JVM中创建对象几种方式1.new 看到new : new Book()2.反射 Class.forName(“包名.类名”)如何获取Class对象【反射的基础】案例#xff1a;连接数据库方法 3.克隆#xff08;拷贝#xff09;clone浅拷贝深拷贝案例 序列化和反序列化对象流-把对象存… 目录 引出类什么时候被加载JVM中创建对象几种方式1.new 看到new : new Book()2.反射 Class.forName(“包名.类名”)如何获取Class对象【反射的基础】案例连接数据库方法 3.克隆拷贝clone浅拷贝深拷贝案例 序列化和反序列化对象流-把对象存储为dat文件 总结 引出 1.类什么时候被加载到JVM中newClass.forName: Class.forName(“包名.类名”) 2.创建对象的方式反射本质是获得类的类对象Class 3.克隆clone深拷贝浅拷贝的对比 4.序列化和反序列化的方式 类什么时候被加载JVM中 Hello h; // 此时没有用Hellojvm并没有进行类加载 看到new : new Book()Class.forName: Class.forName(“包名.类名”)类加载器 package com.tianju.auth.reflect;public class HelloTest1 {public static void main(String[] args) throws ClassNotFoundException {Hello h; // 此时没有用Hellojvm并没有进行类加载System.out.println(**********);new Hello(); // new 的时候会加载到内存中System.out.println(**********);Class.forName(com.tianju.auth.reflect.Hello);} }package com.tianju.auth.reflect;public class Hello {static {System.out.println(hello);}public Integer count(Integer a,Integer b){return ab;}public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {int a 3;Class? aClass Hello.class; // ?泛型的写法Class? aClass1 Class.forName(com.tianju.auth.reflect.Hello);Class? extends Hello aClass2 new Hello().getClass();System.out.println(aClass);System.out.println(aClass1);System.out.println(aClass2);Hello o (Hello) aClass.newInstance();int count o.count(1, 2);System.out.println(count);} }创建对象几种方式 1.new 看到new : new Book() 2.反射 Class.forName(“包名.类名”) 一个类会产生一个唯一的Class对象JVM底层原理 Car.java 编译成 Car.clase 类加载到 JVM 中加载时还没有创建对象 进入JVM中给类Car创建单独的唯一的对象Class 类该Class对象中存储了Car类的一些必要信息没有记录相关的值 以Class对象生产成多个Car对象通过Class类映射出多个Car对象 如何获取Class对象【反射的基础】 对象.getClass()类.classClass.forName(“包名.类名”) 案例连接数据库方法 类加载采用了反射的方式 采用枚举方式封装JDBC单例 方法程序 package com.tianju.util;import java.sql.*; import java.util.Objects;/*** 采用枚举单例封装数据库*/ public enum DbUtilEnum {INSTANCE;private Connection conn;private PreparedStatement pst;private ResultSet rs;private DbUtilEnum() {// 注册驱动-类加载register();}/*** 第一步注册驱动类加载*/private void register(){try {Class.forName(com.mysql.cj.jdbc.Driver);} catch (ClassNotFoundException e) {throw new RuntimeException(e);}}// 建立数据库连接// 192.168.0.134:3306// root123/*** 第二步建立数据库连接* param ipAdress ip地址端口号* param user 用户名root* param password 密码123*/public void connect(String ipAdress,String user,String password){String url jdbc:mysql://ipAdress/emp_db?useSSLfalseserverTimezoneAsia/ShanghaiallowPublicKeyRetrievaltrue;try {conn DriverManager.getConnection(url,user,password);System.out.println(成功连接数据库ipAdress);} catch (SQLException e) {throw new RuntimeException(e);}}/*** 第三步准备SQL语句* param sql sql语句*/public void setPreparedStatement(String sql, Object...values){try {pst conn.prepareStatement(sql);// 逐个填充 ? 处的空缺for (int i0;ivalues.length;i){pst.setObject(i1, values[i]);}} catch (SQLException e) {throw new RuntimeException(e);}}/*** 第四步增加删除修改*/public void executeUpdate(){try {pst.executeUpdate();System.out.println(执行增删改操作);} catch (SQLException e) {throw new RuntimeException(e);}}/*** 第四步查询ResultSet调用next()方法* return 返回查询的ResultSet*/public ResultSet executeQuery(){try {rs pst.executeQuery();System.out.println(执行查询操作返回结果);return rs;} catch (SQLException e) {throw new RuntimeException(e);}}/*** 第五步关闭连接*/public void close(){try {if (Objects.nonNull(rs)){rs.close();}if (Objects.nonNull(pst)){pst.close();}if (Objects.nonNull(conn)){conn.close();}System.out.println(操作完成关闭数据库连接);} catch (SQLException e) {throw new RuntimeException(e);}} } 3.克隆拷贝clone 继承的时候可以将子类的访问控制符扩大但不能缩小子类不得比父类抛出更多更大的异常。浅拷贝、深拷贝问题 浅拷贝 // protected代表本包或者继承// 继承的时候可以将子类的访问控制符扩大但不能缩小// 子类不能比父类抛出更多的异常Overridepublic Object clone() throws CloneNotSupportedException {return super.clone();}深拷贝 public Book deepClone(){Book book new Book();Author au new Author();au.setName(author.getName());book.setAuthor(au);book.setTitle(this.title);book.setPrice(this.price);return book;}案例 Author.java实体类 package com.tianju.auth.reflect;import lombok.Data;Data public class Author {private String name; }Book.java实体类 implements Cloneable{ // 可以克隆的 package com.tianju.auth.reflect;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;Data NoArgsConstructor AllArgsConstructor public class Book implements Cloneable{ // 可以克隆的private String title;private Author author;public double price;static {System.out.println(book的静态代码块);}// protected代表本包或者继承// 继承的时候可以将子类的访问控制符扩大但不能缩小// 子类不能比父类抛出更多的异常Overridepublic Object clone() throws CloneNotSupportedException {return super.clone();}public Book deepClone(){Book book new Book();Author au new Author();au.setName(author.getName());book.setAuthor(au);book.setTitle(this.title);book.setPrice(this.price);return book;} } 进行测试 package com.tianju.auth.reflect;public class TestDemo{public static void main(String[] args) throws CloneNotSupportedException {Author author new Author();author.setName(吴承恩);Book book new Book(三国演义, author,12.56);Book book1 book;System.out.println(book1book);// 两个引用是否指向同一个对象// clone创建了一个新的对象只是值一样Book bookClone (Book) book.clone();// 深拷贝创建了新的对象上面的浅拷贝只是拷贝了引用Book deepClone book.deepClone();System.out.println(bookClonebook);System.out.println(克隆前book);System.out.println(克隆后bookClone);author.setName(小柯基);System.out.println(修改后的原对象book);System.out.println(修改后的clone对象bookClone);// 深拷贝System.out.println(***********);System.out.println(深拷贝的方法deepClone);} } 序列化和反序列化 对象流-把对象存储为dat文件 要点 1实体类需要实现序列化接口 public class Car implements Serializable【标记接口】 2序列化的版本号最好不要写交给JVM实现要保证版本号一致 功能 ObjectOutputStream—-对象写入文件 serialVersionUID 在序列化的时候指定的编号 在反序列化时应该保证版本号一致。 案例把car类存储到dat文件中 1类需要实现序列化的接口 public class Car implements Serializable { // 需要实现序列化的接口// 序列化的版本号不要写交给jvm实现保证读的和写的对象实体类要一样 // private static final long serialVersionUID 2L;private Integer id;private String name;public Car() {} }2从内存写入硬盘文件为out用write ObjectOutputStream out new ObjectOutputStream(new FileOutputStream(D:\\Myprogram\\idea-workspace\\IOStrem\\IOStrem\\src\\com\\woniuxy\\resources\\car.dat)); // 存多个的解决方法存到List中 ListCar list new ArrayList(); list.add(new Car(1, BMW)); list.add(new Car(2, BYD)); list.add(new Car(3, BMW)); out.writeObject(list); // list也实现了Serializable out.flush(); out.close();3从硬盘读入内存为in用read ObjectInputStream in new ObjectInputStream(new FileInputStream(D:\\Myprogram\\idea-workspace\\IOStrem\\IOStrem\\src\\com\\woniuxy\\resources\\car.dat) ); // Car car (Car) in.readObject(); // 读对象向下转型 // System.out.println(car); ListCar list (ListCar) in.readObject(); System.out.println(list); list.forEach(car - System.out.println(car)); // list的lamda表达式 list.forEach(System.out::println); // 上面的简化写法 in.close(); // 记得关闭总结 1.类什么时候被加载到JVM中newClass.forName: Class.forName(“包名.类名”) 2.创建对象的方式反射本质是获得类的类对象Class 3.克隆clone深拷贝浅拷贝的对比 4.序列化和反序列化的方式
http://www.dnsts.com.cn/news/87483.html

相关文章:

  • h5和手机网站做网站思想
  • 婚庆网站设计福安网站定制
  • 建站平台排行网站架构分类
  • 爱站网关键词查询工具海外网站seo
  • 用qq邮箱做网站乐清网论坛
  • 专业网站是什么意思知名网站开发哪家好
  • 定制网站开发多少钱哪个网站建设平台支持花呗分期
  • 河南网站建设运营域名注册公司网站私信界面
  • 中石油网页设计与网站建设网站建设与管理工作内容
  • 技术支持 网站建设福千欣隆网站建设公司 概况
  • 网站收录有什么用做网站是用什么语言做成的
  • 官方网站旗舰店网络的结构
  • 岳麓 网站设计创建公司网站需要准备哪些素材
  • wordpress主题取消中山市企业网站seo营销工具
  • vps如果制作论坛网站品牌logo设计在线生成
  • 武进建设局网站首页科普网站建设方案
  • 女程序员可以干到多少岁网站营销优化
  • 单页网站模板修改吗发布 php 微网站
  • 满洲里网站建设整站下载器 做网站地图
  • 沛县网站企业网站备案系统
  • 六盘水市网站建设美食网站开发的目标
  • 湖南智能网站建设平台百度爱采购优化排名软件
  • 高平网站优化公司毕业答辩问题怎么做的这个网站
  • 深圳建设管理中心网站正规网站开发流程
  • 英文外贸网站制作外贸网站 流量
  • 做网站要好多钱WordPress添加ftp
  • 建站模板 discuzwordpress注册未发邮件
  • 山东省建设工程注册中心网站群晖wordpress端口无法登陆
  • 洛阳网站建设启辰网络微舍 微网站 怎么做
  • 免费网站建设咨询手工企业网站模板