学习日记-java高新技术

本文介绍了Java高新技术中的静态导入、可变参数函数、加强for循环、基本数据的拆装箱操作、反射机制、枚举及泛型等内容,并通过示例详细解释了如何在实际开发中运用这些技术。

 -------android培训java培训、期待与您交流! ----------


java高新技术 

学完java se的基础知识,又看了张老师讲的高新技术的一些东西,现在这些是我整理了一下的一些知识,现在与大家分享:

 1、静态导入

静态导入的语法是impoort static包名.类名.*
注意:针对一个给定的包,不可能用一行语句静态地导入包中所有类的所有类方法和类变量。
如果一个本地方法和一个静态导入方法有着相同的名字,则本地方法被调用,如果静态导入两个中同名的类变量或类方法以,则必须通过对象或类名使用类变量、类方法。
 可变参数函数
  语法:函数修饰符返回类型函数名(参数类型...参数名){}
              例如:public int add(int x,int y,int…z){}
              注意:可变参数只能位于参数列表的最后。
加强for循环
             格式:for(type变量名:集合变量名){}
基本数据的拆、装箱操作
在面向对象的语法中,处理的对象一般都是对象。但是基本数据类型却不是对象,既用int、double和boolean等定义的变量都不是对象,在以前的版本中,为了解决基本数据类型转换为对象的问题,出现了打包类型。为了方便基本数据类型与对对象间的转换,在最新的版本中出了基本数据的自动拆,装箱操作。
      Integerdatal1=new Integer(10);//实现int类型转换对对象方式
      Integer datal2=Integer.valueOf(10);//实现int类型转换对对象方式
      Integer datal3=20;//通过自动装箱方式实现int类型转换对对象方式
注意:当通过自动装箱方式返回同一数值的对象时如果该数值在-128~127之间,返回的对象会引用同一个对象。否则相反。
反射-Class类
Class实例代表内存中的一份字节码,所谓字节码就是当Java虚拟机加载某个类的对象时,首先需要把硬盘上该类的二进制源码编译成Class文件的二进制代码(字节码),然后把文件的字节码加载到内存中,之后现创建该类的对象。
获取Class对象,既相应类的字节码。
获取类的方法:
类.getClass();
Class.forName(“类”);
类.Class
反射的基本应用
反射一般会涉及如下类:Class(表示一个类的类)、Field(表示属性的类)、Method(表示方法的类和Constrctor(表示类的构造方法的类)。
Class类位于java.lang包中,而后面3个类都位于java.lang.reflect包中。
构造方法的反射
//先通过String.class获取String类的字节码,然后再通过String.class.getConstructor()方法
//获取String类的构造函数。
Constructor cs=String.class.getConstructor(StringBuffer.class);
//在Constructor类中存在一个newInstance()方法,用来利用构造函数创建一个实例
//对象。该方法的参数类型必须与获取构造函数的参数类型相同。
String str=(String)cs.newInstance(new StringBuffer("gouzhao"));
//成员字段的反射
import java.lang.reflect.Field;
publicclass FieldRef {
   publicstaticvoid main(String[] args)throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
           Student st=new Student("lisi",20);
      //获取类中的类字段
      Field fieldString=st.getClass().getField("name");
      //获取对象中的值只能获取公有字段
      System.out.println("输出public属性字段"+fieldString.get(st));
      //获取私有字段的值,称暴力反射
      Field fieldAge=st.getClass().getDeclaredField("age");
      //改变类字段的属性
      fieldAge.setAccessible(true);
      System.out.println("输出private属性字段"+fieldAge.get(st));
   }
}
class Student{
   public Stringname;
   privateintage;
   public Student(String name,int age)
   {
      super();
      this.name=name;
      this.age=age;
   }
}
成员方法的反射
String str="abcdref";
//获取String类中参数为int的charAt()方法
Method methodChatAt=String.class.getMethod("charAt",int.class);
//对象str调用charAt()方法
System.out.println("str的第二个字母是:"+methodChatAt.invoke(str, 1));
System.out.println("str的第二个字母是:"+methodChatAt.invoke(str,new Object[]{1}));
枚举
以前都是使用public static final修饰常量。为了让程序员能够抛弃这种常量,于是就出现了Enum语法。
 
Public enum WeekDay{          //定义了星期的枚举
 
      SUN,MON,TUE,WED,THU,FN,SAT
 
}
 
带有构造函数的枚举
 
publicenum WeekDay{
 
      SUN,MON,TUE,WED,THU,FN("星期五"),SAT();
 
      private WeekDay(){
 
          System.out.println("没有参数构造函数");
 
      }
 
      private WeekDay(String s){
          System.out.println(s+"有参数构造函数");
      }
   }
对于枚举构造函数,必须放在枚举常量的后面,同时构造函数的修饰符必须是private。枚举类型的自定义构造函数不能覆盖默认执行的构造函数,只会在其后运行。
在高新技术这一节还讲到了泛型;泛型的好处:
		1、将运行时期出现的问题转移到了编译时期。
                2、避免了强制转换的麻烦。
格式:通过<>的形式接收指定的类型。
泛型类。泛型定义在类上,在new对象的时候传入具体类型,该类型作用于整个类。
      泛型方法。泛型定义在方法上,该泛型只在方法上有效。
      泛型既定义在类上又定义在方法上。
               注意:当方法被静态修饰时,静态不可以访问类上定义的泛型,而且在静态方法上定义泛型时,泛型只能定义在static关键字之后。
泛型的限定
通配符:?可以对类型进行限定范围。
        ?estends E:接收E类型或者E的子类型。
        ? super E:接收E类型或者E的父类型。

 -------android培训java培训、期待与您交流! ----------


AI 代码审查Review工具 是一个旨在自动化代码审查流程的工具。它通过集成版本控制系统(如 GitHub 和 GitLab)的 Webhook,利用大型语言模型(LLM)对代码变更进行分析,并将审查意见反馈到相应的 Pull Request 或 Merge Request 中。此外,它还支持将审查结果通知到企业微信等通讯工具。 一个基于 LLM 的自动化代码审查助手。通过 GitHub/GitLab Webhook 监听 PR/MR 变更,调用 AI 分析代码,并将审查意见自动评论到 PR/MR,同时支持多种通知渠道。 主要功能 多平台支持: 集成 GitHub 和 GitLab Webhook,监听 Pull Request / Merge Request 事件。 智能审查模式: 详细审查 (/github_webhook, /gitlab_webhook): AI 对每个变更文件进行分析,旨在找出具体问题。审查意见会以结构化的形式(例如,定位到特定代码行、问题分类、严重程度、分析和建议)逐条评论到 PR/MR。AI 模型会输出 JSON 格式的分析结果,系统再将其转换为多条独立的评论。 通用审查 (/github_webhook_general, /gitlab_webhook_general): AI 对每个变更文件进行整体性分析,并为每个文件生成一个 Markdown 格式的总结性评论。 自动化流程: 自动将 AI 审查意见(详细模式下为多条,通用模式下为每个文件一条)发布到 PR/MR。 在所有文件审查完毕后,自动在 PR/MR 中发布一条总结性评论。 即便 AI 未发现任何值得报告的问题,也会发布相应的友好提示和总结评论。 异步处理审查任务,快速响应 Webhook。 通过 Redis 防止对同一 Commit 的重复审查。 灵活配置: 通过环境变量设置基
【直流微电网】径向直流微电网的状态空间建模与线性化:一种耦合DC-DC变换器状态空间平均模型的方法 (Matlab代码实现)内容概要:本文介绍了径向直流微电网的状态空间建模与线性化方法,重点提出了一种基于耦合DC-DC变换器的状态空间平均模型的建模策略。该方法通过数学建模手段对直流微电网系统进行精确的状态空间描述,并对其进行线性化处理,以便于系统稳定性分析与控制器设计。文中结合Matlab代码实现,展示了建模与仿真过程,有助于研究人员理解和复现相关技术,推动直流微电网系统的动态性能研究与工程应用。; 适合人群:具备电力电子、电力系统或自动化等相关背景,熟悉Matlab/Simulink仿真工具,从事新能源、微电网或智能电网研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握直流微电网的动态建模方法;②学习DC-DC变换器在耦合条件下的状态空间平均建模技巧;③实现系统的线性化分析并支持后续控制器设计(如电压稳定控制、功率分配等);④为科研论文撰写、项目仿真验证提供技术支持与代码参考。; 阅读建议:建议读者结合Matlab代码逐步实践建模流程,重点关注状态变量选取、平均化处理和线性化推导过程,同时可扩展应用于更复杂的直流微电网拓扑结构中,提升系统分析与设计能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值