爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      Java基础深化和提高 ---- 反射技术

      首页 知识中心 软件开发 文章详情页

      Java基础深化和提高 ---- 反射技术

      2024-04-03 09:22:53 阅读次数:52

      jvm,反射

      反射机制介绍

       什么是反射

      Java 反射机制是Java语言一个很重要的特性,它使得Java具有了“动 态性”。在Java程序运行时,对于任意的一个类,我们能不能知道这 个类有哪些属性和方法呢?对于任意的一个对象,我们又能不能调 用它任意的方法?答案是肯定的!这种动态获取类的信息以及动态 调用对象方法的功能就来自于Java 语言的反射(Reflection)机 制。

       反射的作用

      简单来说两个作用,RTTI(运行时类型识别)和DC(动态创建)。 我们知道反射机制允许程序在运行时取得任何一个已知名称的class 的内部信息,包括其modifiers(修饰符),fields(属性),methods(方 法)等,并可于运行时改变fields内容或调用methods。那么我们便 可以更灵活的编写代码,代码可以在运行时装配,无需在组件之间 进行源代码链接,降低代码的耦合度;还有动态代理的实现等等; 但是需要注意的是反射使用不当会造成很高的资源消耗!

      创建对象过程 

      Java创建对象的三个阶段

      Java基础深化和提高 ---- 反射技术

       创建对象时内存结构

      Users user = new Users();
      

      Java基础深化和提高 ---- 反射技术

       实际上,我们在加载任何一个类时都会在方法区中建立“这个类对应 的Class对象”,由于“Class对象”包含了这个类的整个结构信息,所 以我们可以通过这个“Class对象”来操作这个类。 我们要使用一个类,首先要加载类;加载完类之后,在堆内存中, 就产生了一个 Class 类型的对象(一个类只有一个 Class 对象), 这个对象就包含了完整的类的结构信息。我们可以通过这个对象知 道类的结构。这个对象就像一面镜子,透过这个镜子可以看到类的 结构,所以,我们形象的称之为:反射。 因此,“Class对象”是反射 机制的核心。

      反射的具体实现 

      获取Class对象的三种方式

       1、通过getClass()方法;

       2、通过.class 静态属性;

       3、通过Class类中的静态方法forName();

       创建Users类

      public class Users {
          private String username;
          private int userage;
          public String getUsername() {
              return username;
            }
         public void setUsername(String username)
           {
              this.username = username;
           }
         public int getUserage() {
              return userage;
            }
          public void setUserage(int userage) {
              this.userage = userage;
         }
      }

      通过getClass()方法获取Class对象

      * 通过getClass()方法获取该类的Class对象
      */
      public class GetClass1 {
          public static void main(String[] args) {
              Users users = new Users();
              Users users1 = new Users();
              Class clazz = users.getClass();
              System.out.println(clazz);
              System.out.println(clazz.getName());
              System.out.println(users.getClass() == users1.getClass());
         }
      }

      通过.class 静态属性获取Class对象

      /**
      * .class静态属性获取Class对象
      */
      public class GetClass2 {
          public static void main(String[] args) {
              Class clazz = Users.class;
              Class clazz2 = Users.class;
              System.out.println(clazz);
              System.out.println(clazz.getName());
              System.out.println(clazz == clazz2);
         }
      }
      

      通过forName()获取Class对象

      /**
      * 通过Class.forName("class Name")获取Class对象
      */
      public class GetClass3 {
          public static void main(String[] args)throws Exception {
              Class clazz = Class.forName("com.bjsxt.Users");
              Class clazz2 = Class.forName("com.bjsxt.Users");
              System.out.println(clazz);
              System.out.println(clazz.getName());
              System.out.println(clazz == clazz2);
         }
      }

      获取类的构造方法

      方法介绍

      Java基础深化和提高 ---- 反射技术

       方法使用

      修改Users类

      public class Users {
          private String username;
          private int userage;
          public Users(){}
          public Users(String username,int userage){
              this.username= username;
              this.userage=userage;
         }
         
       public  Users(String username){
              this.username= username;
         }
         
       private Users(int userage){
              this.userage = userage;
         }
         
       public String getUsername() {
              return username;
         }
          
       public void setUsername(String username)
         {
              this.username = username;
         }
          
       public int getUserage() {
              return userage;
         }
       public void setUserage(int userage) {
              this.userage = userage;
         }
      }
      

      获取构造方法

      public class GetConstructor {
          public static void main(String[] args)throws Exception {
              Class clazz = Users.class;
              Constructor[]  arr = clazz.getDeclaredConstructors();
              for(Constructor c:arr){
                  System.out.println(c);
             }
              System.out.println("---------------------");
              Constructor[]  arr1 = clazz.getConstructors();
              for(Constructor c:arr1){
                  System.out.println(c);
             }
              System.out.println("------------------------");
              Constructor c =   clazz.getDeclaredConstructor(int.class);
              System.out.println(c);
              System.out.println("------------------------");
              Constructor c1 =   clazz.getConstructor(null);
              System.out.println(c1);
         }
      }

      通过构造方法创建对象

      public class GetConstructor2 {
          public static void main(String[] args)throws Exception {
              Class clazz = Users.class;
              Constructor constructor = clazz.getConstructor(String.class,int.class);
              Object o = constructor.newInstance("OldLu",18);
              Users users = (Users)o;
            System.out.println(users.getUsername()+"\t"+ users.getUserage());
         }
      }

      获取类的成员变量

      方法介绍

      Java基础深化和提高 ---- 反射技术

       方法使用

      修改Users类

      public class Users {
          private String username;
          public int userage;
          public Users(){
         }
          
          public Users(String username,int userage){
              this.username= username;
              this.userage=userage;
            }
          
          public  Users(String username){
              this.username= username;
            }
          
          private Users(int userage){
              this.userage = userage;
            }
      
          public String getUsername() {
              return username;
            }
          public void setUsername(String username)
            {
              this.username = username;
            }
          public int getUserage() {
              return userage;
            }
          public void setUserage(int userage) {
              this.userage = userage;
         }
      }

      获取成员变量

      public class GetField {
          public static void main(String[] args)throws Exception {
              Class clazz = Users.class;
              Field[] fields = clazz.getFields();
              for(Field f:fields){
                  System.out.println(f);
                  System.out.println(f.getName());
              }
              System.out.println("------------------------");
              Field[] fields2 =clazz.getDeclaredFields();
              for(Field f:fields2){
                  System.out.println(f);
                  System.out.println(f.getName());
             }
              System.out.println("------------------------");
              Field field = clazz.getField("userage");
              System.out.println(field);
              System.out.println("---------------------");
              Field field1 = clazz.getDeclaredField("username");
              System.out.println(field1);
         }
      }

      操作成员变量

      public class GetField2 {
          public static void main(String[] args)throws Exception {
              Class clazz = Users.class;
              Field field = clazz.getField("userage");
              //对象实例化
              Object obj = clazz.newInstance();
              //为成员变量赋予新的值
              field.set(obj,18);
              //获取成员变量的值
              Object o = field.get(obj);
              System.out.println(o);
         }
      }

      获取类的方法

      方法介绍

      Java基础深化和提高 ---- 反射技术

       方法使用

      修改Users类

      public class Users {
          private String username;
          public int userage;
          public Users(){ }
          public Users(String username,int userage){
              this.username= username;
              this.userage=userage;
            }
          public  Users(String username){
              this.username= username;
            }
          private Users(int userage){
              this.userage = userage;
            }
          public String getUsername() {
              return username;
            }
          public void setUsername(String username)
            {
              this.username = username;
            }
          public int getUserage() {
              return userage;
            }
          public void setUserage(int userage) {
              this.userage = userage;
            }
          private void suibian(){
              System.out.println("Hello Oldlu");
         }
      }

      获取方法

      public class GetMethod {
          public static void main(String[] args)throws Exception{
              Class clazz = Users.class;
              Method[] methods = clazz.getMethods();
              for(Method m: methods){
                  System.out.println(m);
                  System.out.println(m.getName());
             }
              System.out.println("---------------------------");
              Method[] methods2 = clazz.getDeclaredMethods();
              for(Method m: methods2){
                  System.out.println(m);
                  System.out.println(m.getName());
             }
              System.out.println("--------------------------");
              Method method = clazz.getMethod("setUserage", int.class);
              System.out.println(method.getName());
              System.out.println("--------------------------");
              Method method1 = clazz.getDeclaredMethod("suibian");
              System.out.println(method1.getName());
         }
      }

      调用方法

      public class GetMethod2 {
          public static void main(String[] args)throws  Exception {
              Class clazz = Users.class;
              Method method = clazz.getMethod("setUsername",String.class);
               //实例化对象
              Object obj = clazz.getConstructor(null).newInstance();
              //通过setUserName赋值
              method.invoke(obj,"oldlu");
              //通过getUserName获取值
              Method method1 = clazz.getMethod("getUsername");
              Object value = method1.invoke(obj);
              System.out.println(value);
         }
      }

      获取类的其他信息

      public class GetClassInfo {
          public static void main(String[] args) {
              Class clazz = Users.class;
              //获取类名
              String className = clazz.getName();
              System.out.println(className);
              //获取包名
              Package p = clazz.getPackage();
              System.out.println(p.getName());
              //获取超类
              Class superClass = clazz.getSuperclass();
              System.out.println(superClass.getName());
              //获取该类实现的所有接口
              Class[] interfaces = clazz.getInterfaces();
              for(Class inter:interfaces){
                 System.out.println(inter.getName());
             }
         }
      }

      反射应用案例

      需求:根据给定的方法名顺序来决定方法的执行顺序。

      class Reflect {
          public void method1(){
            System.out.println("Method1.......");
         }
          public void method2(){
             System.out.println("Method2.......");
         }
          public void method3(){
             System.out.println("Method3.......");
         }
      }
      public class ReflectDemo {
          public static void main(String[] args)throws Exception {
              Reflect rd = new Reflect();
              if(args != null && args.length > 0){
                  //获取ReflectDemo的Class对象
                  Class clazz = rd.getClass();
                  //通过反射获取ReflectDemo下的所有方法
                  Method[] methods = clazz.getMethods();
                  for(String str :args){
                      for(int i=0;i<methods.length;i++){ if(str.equalsIgnoreCase(methods[i].getName())){
                            methods[i].invoke(rd);
                              break;
                         }
                     }
                 }
             }else{
                  rd.method1();
                  rd.method2();
                  rd.method3();
             }
         }
      }

      反射机制的效率

      由于Java反射是要解析字节码,将内存中的对象进行解析,包括了 一些动态类型,而JVM无法对这些代码进行优化。因此,反射操作 的效率要比那些非反射操作低得多! 接下来我们做个简单的测试来直接感受一下反射的效率。

      反射机制的效率测试 

      public class Test{
          public static void main(String[] args) {
              try {
                  //反射耗时
                  Class clazz = Class.forName("com.bjsxt.Users");
                  Users users = (Users) clazz.getConstructor(null).newInstance();
                  long reflectStart = System.currentTimeMillis();
                  Method method = clazz.getMethod("setUsername", String.class);
                  for(int i=0;i<100000000;i++){
                     method.invoke(users,"oldlu");
                 }
                  long reflectEnd = System.currentTimeMillis();
                  //非反射方式的耗时
                  long start = System.currentTimeMillis();
                  Users u = new Users();
                  for(int i=0;i<100000000;i++){
                      u.setUsername("oldlu");
                 }
                  long end = System.currentTimeMillis();
                  System.out.println("反射执行时 间:"+(reflectEnd - reflectStart)); System.out.println("普通方式执行时间:"+(end - start));
             } catch (Exception e) {
                  e.printStackTrace();
             }
         }
      }

      setAccessible方法

      setAccessible()方法: setAccessible是启用和禁用访问安全检查的开关。值为 true 则指示 反射的对象在使用时应该取消 Java 语言访问检查。值为 false 则指 示反射的对象应该实施 Java 语言访问检查;默认值为false。 由于JDK的安全检查耗时较多.所以通过setAccessible(true)的方式关 闭安全检查就可以达到提升反射速度的目的。

      public class Test2 {
          public static void main(String[] args)throws Exception {
              Users users = new Users();
              Class clazz = users.getClass();
              Field field = clazz.getDeclaredField("username");
              //忽略安全检查
              field.setAccessible(true);
              field.set(users,"oldlu");
              Object object = field.get(users); System.out.println(object);
              System.out.println("-----------------------------");
              Method method = clazz.getDeclaredMethod("suibian");
              method.setAccessible(true);
              method.invoke(users);
         }
      }

      本章总结

      Java 反射机制是Java语言一个很重要的特性,它使得Java具有了 “动态性”。

      反射机制的优点:

          1、更灵活。

          2、更开放。

      反射机制的缺点:

          1、降低程序执行的效率。

          2、增加代码维护的困难。

      获取Class类的对象的三种方式:

         1、运用getClass()。

         2、运用.class 语法。

         3、运用Class.forName()(最常被使用)。

      反射机制的常见操作

         1、动态加载类、动态获取类的信息(属性、方法、构造器)。

         2、动态构造对象。

         3、动态调用类和对象的任意方法。

         4、动态调用和处理属性。

         5、 获取泛型信息。

         6、处理注解。

      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://tongxiaochun.blog.csdn.net/article/details/127975923,作者:童小纯,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:【Junit5】就这篇,带你从入门到进阶

      下一篇:Python IDLE常用快捷键

      相关文章

      2025-04-14 08:45:56

      java学习第十一天笔记-字符串222-学生管理系统4查询

      java学习第十一天笔记-字符串222-学生管理系统4查询

      2025-04-14 08:45:56
      i++ , java , jvm , System , 学习
      2025-04-11 07:15:54

      Java反射学习(1)(Java的“反射“机制、Class类对象的实例化方式)

      日常生活中的反射是一种物理现象。(如通过照镜子反射自己的容貌、水面反射景物)通过反射,可以将应该虚像映射到实物,这样就可以获取实物的某些形态特征。

      2025-04-11 07:15:54
      class , Class , Java , 反射 , 对象 , 机制 , 获取
      2025-04-01 10:28:48

      java中satb和tlab有什么区别?

      java中satb和tlab有什么区别?

      2025-04-01 10:28:48
      Java , jvm , JVM , 内存空间
      2025-03-24 08:52:53

      【CTFHub】XSS漏洞_反射型

      【CTFHub】XSS漏洞_反射型

      2025-03-24 08:52:53
      XSS , 反射 , 注入 , 漏洞
      2025-03-18 09:59:07

      深入探讨Java的最新技术:文本块和反射的现代应用

      深入探讨Java的最新技术:文本块和反射的现代应用

      2025-03-18 09:59:07
      Java , SQL , 代码 , 动态 , 反射 , 文本 , 调用
      2025-03-17 07:49:59

      jvm内存堆栈监控之jmap篇

      jvm内存堆栈监控之jmap篇

      2025-03-17 07:49:59
      heap , jvm , 内存
      2025-03-04 09:11:34

      查看rancher中debug端口信息,并做IDEA Remote Jvm Debug

      查看rancher中debug端口信息,并做IDEA Remote Jvm Debug

      2025-03-04 09:11:34
      debug , Debug , IDEA , jvm , 断点
      2025-01-16 09:30:08

      java基础(1)

      java基础(1)

      2025-01-16 09:30:08
      java , JAVA , jsp , jvm , php , 动态 , 客户端
      2025-01-14 09:12:33

      【学习笔记】Java安全之反射

      【学习笔记】Java安全之反射

      2025-01-14 09:12:33
      Class , Java , 参数 , 反射 , 方法 , 构造
      2024-12-23 09:16:52

      深入解析Java中的反射机制及其应用场景

      在Java编程中,反射(Reflection)机制是一种强大的工具,允许程序在运行时检查和操作类、方法和属性。通过反射,程序可以获取类的信息,探索类的方法和字段,并在运行时动态调用这些方法或访问这些字段。

      2024-12-23 09:16:52
      动态 , 反射 , 场景 , 字段 , 方法 , 访问 , 调用
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5244486

      查看更多

      最新文章

      Java反射学习(1)(Java的“反射“机制、Class类对象的实例化方式)

      2025-04-11 07:15:54

      java中satb和tlab有什么区别?

      2025-04-01 10:28:48

      深入探讨Java的最新技术:文本块和反射的现代应用

      2025-03-18 09:59:07

      【学习笔记】Java安全之反射

      2025-01-14 09:12:33

      深入解析Java中的反射机制及其应用场景

      2024-12-23 09:16:52

      深入理解Java中的反射机制

      2024-12-23 09:16:44

      查看更多

      热门文章

      Java学习路线-33:反射与Annotation

      2023-06-28 09:10:50

      【java基础】ArrayList源码解析

      2023-07-03 08:06:07

      Java中创建对象的方式

      2023-02-13 09:25:28

      第十九章《类的加载与反射》第3节:反射

      2023-03-14 10:16:15

      Java反射类Class,反射方法Method以及反射变量Field

      2023-04-11 10:15:41

      Class类常用方法介绍、获取Class对象的方式、通过反射实现各种骚操作

      2023-05-18 09:39:05

      查看更多

      热门标签

      java Java python 编程开发 代码 开发语言 算法 线程 Python html 数组 C++ 元素 javascript c++
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      查看更多

      随机文章

      第二季:8.G1垃圾收集器【Java面试题】

      第一季:1自增变量【Java面试题】

      C#反射(Reflection)详解

      【java基础】集合基础说明

      Java进阶-反射的详解与应用

      第一季:6成员变量和局部变量【Java面试题】

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号