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

网站建设需要那种技术网站是别人做的域名自己怎么续费

网站建设需要那种技术,网站是别人做的域名自己怎么续费,2昌平区网站建设,wordpress china1 Java接口的修饰符只能是public或abstract。其中abstract是接口的默认修饰符 1. 接口中的所有方法默认都是public abstract的 2. 接口中的所有属性默认都是public static final的 3. 接口是一种完全抽象的类型,用于定义类需要实现的方法规范 4. Java 8之后接口中可以有默认方…1 Java接口的修饰符只能是public或abstract。其中abstract是接口的默认修饰符 1. 接口中的所有方法默认都是public abstract的 2. 接口中的所有属性默认都是public static final的 3. 接口是一种完全抽象的类型,用于定义类需要实现的方法规范 4. Java 8之后接口中可以有默认方法(default)和静态方法(static)的实现 2 泛型的类型擦除机制依旧可以在运行时动态获取ListT中T的实际类型 答案正常情况下因泛型类型擦除机制无法直接在运行时动态获取 ListT 中 T 的实际类型但可通过一些 “技巧手段” 间接获取核心原理与字节码中泛型信息的特殊保留、反射结合处理有关以下展开理解 1. 先理解 “类型擦除机制” 的本质 Java 的泛型是 “伪泛型” 编译时ListString、ListInteger 等泛型声明里的 T比如 String、Integer 这些具体类型参数 会被擦掉。最终字节码中ListT 会被处理成原始类型Raw TypeList T 会被替换成 Object若泛型没限定边界 或限定的边界类型。运行时JVM 看到的只有原始类型“天生” 丢失了 T 的具体类型信息 。 2. 常规思路直接用 ListT 想拿 T → 做不到 比如写了 ListString list new ArrayList(); 编译后字节码里是 List list new ArrayList(); 运行时单纯通过这个 list 对象没办法直接拿到 T 是 String 。因为类型擦除后JVM 根本不知道编译前 T 具体是啥只认 List 原始类型和 Object 相关操作。 3. 特殊手段间接 “套路” 获取 T 的思路 借助子类继承 反射 若定义一个子类 class StringList extends ArrayListString {} 编译时Java 会把泛型信息这里 T 是 String 以 “元数据” 形式在字节码的 Signature 属性里 保留下来。运行时通过反射 StringList.class.getGenericSuperclass() 拿到 ParameterizedType 再调用 getActualTypeArguments() 就能提取到 T 对应的 String 类型。 原理是子类继承带泛型的父类时编译器会把父类的泛型信息 “固化” 到子类的字节码元数据里 反射可以读取这些元数据 “反推” 出 T 。利用 TypeToken 等工具类如 Guava 库 原理类似上面的继承 反射但封装得更易用。比如 TypeTokenListString token new TypeTokenListString() {}; 内部也是靠匿名子类继承 TypeToken 让编译器保留泛型信息再通过反射解析拿到 T 类型。 4. 总结关键理解 类型擦除机制下单纯的 ListT 对象本身运行时不携带 T 的具体类型信息 直接拿不到。但通过 “让泛型信息以元数据形式被字节码保留如子类继承场景 ” “反射读取元数据” 的组合玩法能间接 “恢复” 出 T 的实际类型本质是利用了 Java 编译时对泛型子类的特殊处理保留泛型元数据 来 “绕开” 类型擦除的限制。 简单说就是类型擦除 “擦” 了常规运行时的直接类型信息但通过子类继承等手段让编译器 “悄悄存下” 泛型元数据反射又能把这些元数据 “挖出来” 变相实现运行时获取 T 。 嗯~ o(*▽*)o 我们可以通过反射机制在运行时获取泛型类型信息。例如通过Class类的getGenericSuperclass()或getGenericInterfaces()方法获取泛型父类或接口的类型参数。 Java 的反射机制确实提供了获取泛型类型信息的能力这正是我在上文提到的 特殊手段 之一。通过 getGenericSuperclass() 和 getGenericInterfaces() 方法我们可以突破类型擦除的限制在运行时获取泛型参数的具体类型。 关键点解析 1. 类型擦除与元数据保留 类型擦除编译后泛型参数 T 会被擦除为原始类型如 Object但 泛型的元数据信息 会被保留在字节码中如 Signature 属性。反射获取通过反射 API 可以读取这些元数据从而推断出泛型参数的具体类型。 2. 核心 API getGenericSuperclass()获取带泛型参数的父类。getGenericInterfaces()获取带泛型参数的接口。ParameterizedType反射中的类型接口用于表示泛型类型如 ListString。 3 输入流 BufferedWriter是字符输出流用于缓冲字符输出FileInputStream是字节输入流ObjectInputStream是对象输入流用于对象的反序列化InputStreamReader是将字节输入流转换为字符输入流属于面向字符的输入流 。 4 构造方法的修饰符 Java 中的构造方法Constructor可以使用修饰符来控制其访问权限和行为。构造方法的修饰符主要分为两类 访问修饰符 public任何类都可以访问protected同一包内的类和不同包的子类可以访问private只有类内部可以访问默认无修饰符只有同一包内的类可以访问 非访问修饰符 static静态构造方法Java 中不直接支持但可以通过静态代码块实现final构造方法不能被重写但构造方法本身不能被继承所以这个修饰符对构造方法无实际意义synchronized同步构造方法不推荐使用可能导致死锁 public class ConstructorDemo {// 私有构造方法单例模式常用private ConstructorDemo() {System.out.println(私有构造方法被调用);}// 默认访问修饰符包内可见ConstructorDemo(String message) {System.out.println(默认构造方法被调用: message);}// 受保护的构造方法包内和子类可见protected ConstructorDemo(int value) {System.out.println(受保护的构造方法被调用: value);}// 公共构造方法全局可见public ConstructorDemo(boolean flag) {System.out.println(公共构造方法被调用: flag);}// 静态代码块模拟静态构造方法static {System.out.println(静态代码块执行类加载时);}// 构造方法不能使用abstract修饰符// abstract ConstructorDemo() {} // 编译错误// 构造方法不能使用final修饰符无意义// final ConstructorDemo() {} // 编译错误// 构造方法不能使用static修饰符但可以有静态代码块// static ConstructorDemo() {} // 编译错误// 同步构造方法不推荐public synchronized ConstructorDemo(double num) {System.out.println(同步构造方法被调用: num);}// 示例用法public static void main(String[] args) {// 注意这里只能调用public构造方法// 其他构造方法需要在同一包内或子类中调用ConstructorDemo demo new ConstructorDemo(true);} }5 String类的replace()方法 String str hello; str.replace(h, H); System.out.println(str); String类的replace()方法会返回一个新的字符串对象而不会修改原有字符串的内容。这是因为String类的对象是不可变的(immutable)。 在这段代码中: 1. str.replace(h, H) 确实会执行替换操作但是返回的新字符串并没有被赋值给任何变量 2. 原始的str变量依然指向原来的hello字符串 3. 所以最终打印str的值时输出的还是原始的hello 分析其他选项: B错误:虽然replace()方法确实会将h替换为H但因为没有接收返回值所以str的值不会变成Hello C错误:replace()方法不会将所有字符都转换为大写且原字符串内容也不会改变 D错误:代码可以正常运行不会出现运行错误 要想实现字符串的替换效果正确的写法应该是: str str.replace(h, H); 这样才能将替换后的新字符串赋值给str变量。 6 Java 中面向字节和字符的流类区分 字节流是Stream~~字符流是Reader Writer 在 Java 的 IO 体系中流分为两类面向字节的流和面向字符的流。它们的主要区别在于处理的数据单位不同 字节流处理 8 位字节数据byte适合处理二进制数据如图片、音频、视频等字符流处理 16 位 Unicode 字符数据char适合处理文本数据 字节流类层次结构 字节流的基类是InputStream输入和OutputStream输出常用的子类包括 文件操作 FileInputStream / FileOutputStream读写文件内容 缓冲操作 BufferedInputStream / BufferedOutputStream带缓冲区的字节流 数据类型操作 DataInputStream / DataOutputStream读写基本数据类型 对象序列化 ObjectInputStream / ObjectOutputStream读写对象 内存操作 ByteArrayInputStream / ByteArrayOutputStream读写字节数组 管道操作 PipedInputStream / PipedOutputStream线程间通信 字符流类层次结构 字符流的基类是Reader输入和Writer输出常用的子类包括 文件操作 FileReader / FileWriter读写文本文件内容 缓冲操作 BufferedReader / BufferedWriter带缓冲区的字符流 格式化操作 PrintWriter格式化输出文本 内存操作 CharArrayReader / CharArrayWriter读写字符数组StringReader / StringWriter读写字符串 转换流 InputStreamReader / OutputStreamWriter字节流与字符流之间的转换 转换流的重要性 转换流InputStreamReader和OutputStreamWriter是连接字节流和字符流的桥梁它们允许 将字节流转换为字符流例如从文件读取字节并转换为字符指定字符编码如 UTF-8、GBK 等 字节流与字符流的使用场景 字节流适合 处理二进制文件图片、音频、视频等需要直接操作字节数据不需要字符编码转换 字符流适合 处理文本文件需要进行字符编码转换处理人类可读的文本数据 7 在finally块中使用return的做法虽然合法,但在实际编程中应当避免 1. finally块的代码一定会执行 2. 如果finally块中包含return语句,这个return会覆盖try块中的任何return语句 3. 这种在finally块中使用return的做法虽然合法,但在实际编程中应当避免,因为它会导致代码逻辑难以理解和维护。 ----------- 哎期末周好想玩游戏啊......我就是这样的人平时没事干的时候就那么闲着有事做的时候就很想玩好想玩啊
http://www.dnsts.com.cn/news/15068.html

相关文章:

  • PHP网站开发简单实例wordpress cron原理
  • 好看的商城网站设计建网站优势
  • 手机免费创建网站的软件网站底部留言代码
  • 开公司先建设网站免费网站软件哪个好
  • 网站视频提取软件app简洁企业网站asp
  • 青岛网站建设博采网络从事广告设计需要学什么
  • 可以查企业备案的网站网页设计题材
  • 网站建设创客温州网站制作要多少钱
  • 网站模板和源码商标注册查询一览表
  • 网站建设最新教程视频企业运营管理师
  • 网页设计作业怎么做网站wordpress置顶不重复
  • 网站建设丶金手指a排名15网站在哪里设置关键词
  • 湖北网站开发培训浙江大成建设集团有限公司网站
  • 广州公共资源建设工程交易中心网站网站建设工具哪个好
  • 欧洲手表网站长春自助建站系统
  • 网站标题名字和备案名字深圳市在建项目查询
  • 网站开发程序的移交宁波市建设网
  • 广东省两学一做网站网站怎么自己做
  • 开源 购物网站沧州网站建设哪家专业
  • 自助建站网站哪个好品牌策划案例
  • 中国建筑总公司网站如今做那些网站致富
  • html5网站多少钱wordpress模板极简
  • 株洲网站排名优化价格wordpress模板后门
  • 建设银行德阳分行网站网页设计报告心得
  • 漂亮的php网站源码wordpress网站主题
  • 北京做网站多少钱合理苏州手机网站建设多少钱
  • 烟台市城市建设发展有限公司网站微信小程序开发平台
  • 百度站长平台官网wordpress更改忘记密码样式
  • 通用企业网站模板做网站什么软件好
  • 网站界面设计的要求万网封停慧聪网域名事件