"黑马程序员"张老师Java高新技术学习(注解、类加载器)

SAP CO模块实战:成本中心会计分割结构配置全流程(OKES事务码详解) 本文详细解析了SAP CO模块中成本中心会计分割结构的配置全流程,重点讲解了OKES事务码的实战操作。内容涵盖分割结构的概念理解、配置前的次级成本要素与作业类型主数据准备,并通过步骤拆解演示了如何定义分割结构、规则与版本,以及如何将配置关联到成本中心并执行分割。最后提供了常见问题排查与优化建议,旨在帮助顾问及财务人员掌握成本精确分摊的关键配置,确保期末成本核算的准确性。 阅读详情

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

注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记,没加,则等于没有某种标记,以后,javac编译器,开发工具和其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记,就去干相应的事。标记可以加在包,类,字段,方法,方法的参数以及局部变量上。 自定义注解及其应用: 定义一个最简单的注解:public @interface MyAnnotation {} 把它加在某个类上:@MyAnnotation public class AnnotationTest{} @Retention元注解的讲解,其三种取值:RetetionPolicy.SOURCE、RetetionPolicy.CLASS、RetetionPolicy.RUNTIME;分别对应:java源文件-->class文件-->内存中的字节码。 演示和讲解@Target元注解 Target的默认值为任何元素,设置Target等于ElementType.METHOD,原来加在类上的注解就报错了,改为用数组方式设置{ElementType.METHOD,ElementType.TYPE}就可以了。

定义基本类型的属性和应用属性: 在注解类中增加String color(); @MyAnnotation(color="red") 用反射方式获得注解对应的实例对象后,再通过该对象调用属性对应的方法 MyAnnotation a = (MyAnnotation)AnnotationTest.class.getAnnotation(MyAnnotation.class); System.out.println(a.color()); 可以认为上面这个@MyAnnotation是MyAnnotaion类的一个实例对象 为属性指定缺省值: String color() default "yellow"; value属性: String value() default "zxx";  如果注解中有一个名称为value的属性,且你只想设置value属性(即其他属性都采用默认值或者你只有一个value属性),那么可以省略value=部分,例如:@MyAnnotation("lhm")。

以下是注解的代码实现:

@Retention(RetentionPolicy.RUNTIME)//定义注解的生命周期,在运行期 @Target(ElementType.TYPE)//定义注解的作用范围,在类声明上 public @interface subAnnotation {//通过@interface进行申明注解    String value();//注解的默认属性 }

@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE ) public @interface testAnnotation {        String color();        String value() default "abc";//通过default来为注解声明默认的属性值        String[] arrays();//类型可以使数组        subAnnotation annotation() default @subAnnotation("bbbb");//属性类型可以是注解        test.weekday emnuAttr();//属性类型也可以是枚举 }

@testAnnotation(color="red",arrays={"aa","bb","cc"},emnuAttr=test.weekday.sun)//为注解增添属性值 public class test { public static void main(String[] args)throws Exception { if(test.class.isAnnotationPresent(testAnnotation.class)){//判断test有没有注解进行标识 testAnnotation annotation=test.class.getAnnotation(testAnnotation.class);//通过反射得到testAnnotation注解 System.out.println(annotation.color());//打印注解的值 System.out.println(annotation.value()); System.out.println(Arrays.asList(annotation.arrays())); System.out.println(annotation.annotation().value()); System.out.println(annotation.emnuAttr().index);//获得枚举的值 }

/*

一下是枚举的定义

*/

 public enum weekday{ sun(1),sat,mon;//通过括号来调用构造方法 public int index; private weekday(int index){//构造方法修饰词必须是私有的,而且必须在枚举实例的后面 this.index=index; } private weekday(){} public void print(String s){ System.out.println(s); } }

关于类加载器的小结:

Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap,ExtClassLoader,AppClassLoader
类加载器也是Java类,因为其他是java类的类加载器本身也要被类加载器加载,显然必须有第一个类加载器不是不是java类,这正是BootStrap。
Java虚拟机中的所有类装载器采用具有父子关系的树形结构进行组织,在实例化每个类装载器对象时,需要为其指定一个父级类装载器对象或者默认采用系统类装载器为其父级类加载。

类加载器的委托机制:
当Java虚拟机要加载一个类时,到底派出哪个类加载器去加载呢?
首先当前线程的类加载器去加载线程中的第一个类。
如果类A中引用了类B,Java虚拟机将使用加载类A的类装载器来加载类B。 
还可以直接调用ClassLoader.loadClass()方法来指定某个类加载器去加载某个类。
每个类加载器加载类时,又先委托给其上级类加载器。
当所有祖宗类加载器没有加载到类,回到发起者类加载器,还加载不了,则抛ClassNotFoundException,不是再去找发起者类加载器的儿子,因为没有getChild方法,即使有,那有多个儿子,找哪一个呢?
对着类加载器的层次结构图和委托加载原理,解释先前将ClassLoaderTest输出成jre/lib/ext目录下的itcast.jar包中后,运行结果为ExtClassLoader的原因。

一下代码是调用自己自定义的类加载器:

public class myClassLoad extends ClassLoader {//自定义的类加载器必须继承ClassLoader


public void addSecretFile(InputStream inputStream, OutputStream out) {//该方法将输入流字节进行解密后输出到输出流中
int b = -1;
try {
while ((b = inputStream.read()) != -1) {
out.write(b ^ 0xff);//将每个b进行解密
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


@Override
protected Class<?> findClass(String name) throws ClassNotFoundException {
try {
FileInputStream inputStream = new FileInputStream("folder\\" + name+".class");//得到加密的class文件流
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();//字节数组流,用于接受class文件的字节
this.addSecretFile(inputStream, byteArrayOutputStream);//进行解密到字节数组
byte[] bytes = byteArrayOutputStream.toByteArray();//得到字节数组
System.out.println("aa");
return defineClass(bytes, 0, bytes.length);//调用父类的defineClass方法返回Class类
} catch (Exception e) {
e.printStackTrace();
}
return super.findClass(name);
}


public myClassLoad() {
}
}


public class myclassLoadTest {
   public static void main(String[] args) throws Exception {
Class clazz=new myClassLoad().loadClass("Demo");
Date demo=(Date) clazz.newInstance();//注意,这里必须返回Demo类的父类来指向它,因为Demo类进行了加密,编译器是不认识的
}
}

  ---------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.youkuaiyun.com/heima

海格通信嵌入式面试题及参考答案 计算电路的最高工作频率如何计算? 计算电路的最高工作频率主要考虑电路中的关键路径延迟。关键路径是指在整个电路中,信号传播延迟最长的路径。电路的最高工作频率的倒数就是时钟周期,而时钟周期必须大于关键路径的延迟时间。 首先要确定电路中各个模块的延迟。比如对于组合逻辑电路,可以通过查看芯片手册获取门电路的延迟参数。以一个简单的与门、或门、非门组成的组合逻辑为例,每个门都有自己的传输延迟,把信号从输入到输出经过的所有门的延迟相加,就得到这部分组合逻辑的延迟。 对于包含寄存器的电路,还需要考虑寄 阅读详情

相关推荐

宝马项目化流程标准(BMW ABC flyer requirement)

宝马项目化流程标准(BMW ABC flyer requirement)

于大博 7247

黑马程序员 Java自学总结二十二 张老师7K面试题之银行业务调度系统

总结内容来源于张孝祥老师的7K面试题之银行业务调度系统  这次又把张老师的银行业务调度系统看完了 , 看完后 , 第一感觉就是要比交通灯管理系统复杂很多 , 代码量也是交通灯的两倍 , 反复的看了3遍才勉强看明白 , 感觉现阶段自己完全不可能独立做出这种系统 , 不过就像张老师说的 , 每个人最初都是模仿 , 借鉴 , 使用别人的代码 , 用的多了 , 自己的经验多了 , 以后自己就会渐渐的

u011425950的专栏 810

AMD Ryzen AI Max+ 395四机集群实战:开源工具链与大模型推理优化全解析

本文详细解析了基于AMD Ryzen AI Max+ 395处理器的四机集群搭建与优化实践,涵盖硬件配置、开源工具链评测及大模型推理优化技巧。通过深度测试,揭示了集群在AI推理中的性能瓶颈与解决方案,特别适合需要扩展显存的大模型实验场景。文章还提供了成本效益分析,帮助开发者做出更明智的选型决策。

weixin_29041767的博客 1516

[黑马程序员]银行系统-跟着张老师敲代码

其实,这个题拿到之后,按照习惯,没有先直接继续看,er

tomlucky001的专栏 763

在 Kubernetes 上部署 Label Studio

Label Studio 是一款开源的数据标注工具,支持多种标注任务,如文本标注、图像标注、音频标注等。

啥都会一点 668

利用DRONEKIT-SITL + MAVPROXY + QGroundControl模拟飞行

dronekit: 一种用于无人机控制的python库。 dronekit-sitl:一种本地仿真工具,相当于本地虚拟化了一个无人机。 mavproxy:数据转发软件(类似于插线板的感觉,一个输入,多个相同的输出)。打开一个Anaconda prompt 首先激活相应的环境 然后运行如下命令: 保持2中的Anaconda prompt处于运行状态,另打开一个Anaconda prompt窗口,运行如下命令: tcp:127.0.0.1:5760: SITL默认端口,作为mavproxy的输入,把输入数据转发

Done___的博客 4344

黑马程序员----张老师 之 交通灯管理系统

一、交通灯管理系统的业务。      模拟实现十字路口的交通灯管理系统逻辑,具体需求如下:     1.异步随机生成按照各个路线行驶的车辆。 例如:      由南而来去北向的车辆……直行车辆      由西而来去南向的车辆……右转车辆      由东而来去南向的车辆…….左转车辆     2.信号灯忽略黄灯,只考虑红灯和绿灯     3.应考虑左转

kayfire1的专栏 644

接口调试必看:status显示canceled的3种常见原因及修复方法

本文深度解析了接口调试中status显示canceled的三种核心原因:网络层中断(如请求超时)、应用层逻辑主动取消(如请求竞态、组件卸载)以及用户交互与浏览器行为。文章提供了从诊断到修复的系统性方案,包括分析Network Timing、使用Axios CancelToken、优化请求策略与性能,帮助开发者从根本上解决这一常见问题。

bb456的博客 936

【黑马程序员】张老师高新知识学习(1)

------- ASP.Net+Unity开发、.Net培训、期待与您交流! --------- 1。javac是编译器,java是运行环境。java版本高于javac版本可以正常运行,反之不行。 2。eclipse开发环境下,分为workspace-项目-包的结构,上层结构的配置改变会影响下层。 3.常用操作:alt+/自动补全; ctrl+/注释鼠标选择区域;ctrl+Shift+T

进击的程序猿 579

中文实体关系抽取数据集大盘点:从百度Duie2.0到医疗CBLUE,哪个更适合你的NLP项目?

本文全面分析了中文实体关系抽取领域的主流数据集,包括百度DuIE 2.0、医疗CBLUE等,帮助开发者根据项目需求选择最适合的数据集。文章详细对比了各数据集的特点、适用场景及优化策略,为自然语言处理项目提供实用指南。

weixin_29284657的博客 121

Sigrity SPEED2000 General SI Simulation模式如何进行信号仿真分析操作指导-DDR

本例是几个简单的板载DDR颗粒的结构,本例中使用General SI Simulation模式仿真DDR信号,结构拓扑如下,Addcmd,clk,cke都是T拓扑。Sigrity SPEED2000 General SI Simulation模式可以对信号进行仿真分析,仿真将电源视为理想电源,以下图为例进行说明。DQS的接收端模型设置为DQS_34_ODT60_1333。模式如何进行信号仿真分析操作指导-DDR。附带驱动和接收端的IBIS模型。

weixin_54787054的博客 510

黑马程序员--张老师--银行业务调度系统

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

tototu的专栏 841

6、核函数与再生核希尔伯特空间:原理、应用与实践

本文系统介绍了核函数与再生核希尔伯特空间(RKHS)的理论基础、核心性质及其在机器学习和信号处理中的广泛应用。文章从核方法的优势出发,阐述了其在非线性建模、正则化和算法核化方面的独特价值,并深入探讨了正定核、Mercer定理、表示定理等关键理论。通过构建多种标准核与工程专用核,展示了核函数的设计灵活性。结合支持向量回归(SVR)模型与多个MATLAB示例,详细说明了核方法的实际应用流程与操作技巧。最后,总结了核方法的应用领域、未来发展方向及学习实践建议,为读者提供了一套完整的理论与实践指南。

z2a3b4c5d的博客 143

"黑马程序员"张老师Java高新技术学习(注解、类加载器)

----------------- android培训、java培训、期待与您交流! ----------------------注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记,没加

wcqlwyt的博客 151

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

黑马程序员高新技术-day3

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------      高新技术的最后一天,主要讲得内容有:       用类加载器的方式管理资源和配置文件       由内省引出JavaBean的讲解       对JavaBean的简单内省操作       对JavaBean的复杂内省操作

404

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

黑马程序员——高新技术(概述)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

u010322906的专栏 421

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【黑马程序员】张老师高新知识学习(2)

12.hashCode的作用:高效地从集合中查找元素。 (1)每个对象可以计算出一个哈希码,可以将哈希码分组,每 组分别别对应某个存储区域。将新元素放入时就只与部分元素 比较就可以。所以,一个类的hashCode()方法只有在hashset中 才有意义。 (2)当一个对象被存入HashSet中后,就不能修改这个对象中 的那些参与计算哈希值的字段,否则,对

进击的程序猿 443

黑马程序员-张老师基础加强4-注解

注解: 注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记,没加,则等于没有某种标记,以后,javac编译器,开发工具和其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记,就去干相应的事。标记可以加在包,类,字段,方法,方法的参数以及局部变量上。 注解: @interface A{ } 应用了注解的类: @...

weixin_33985507的博客 74

黑马程序员---张老师高新技术之反射,内省及注解

------- android培训、java培训、期待与您交流! ---------- 反射: 反射的基石--->Class类 Class类代表Java类,它的实例对象对应各个类在内存中的字节码,例如,Person类的字节码,ArrayList类的字节码,等等。 一个类被类加载器加载到内存中,占用一片存储空间,这个空间里面的内容就是类的字节码,不同的类的字节码是不同的,所以它们

zhangshisk的专栏 610

黑马程序员_张孝祥老师全部知识点总结

------- android培训、java培训、期待与您交流! ---------- eclipse工具以及IDE开发工具介绍 工程管理与快捷键配置: 工作台的概念 配置快捷键在Window-->Prefernces(选项)-->Keys-->Content Assist(内容助手)-->指定快捷键 视图管理与程序调试: 视图,就是eclipse中的工具视图窗

v191211的专栏 1163

Java注解反射 -- Java之类的加载过程

Java内存分析 Java内存分析 类的加载过程 示例: package annoAndRe.reflection; public class Test04 { public static void main(String[] args) { A a = new A(); System.out.println(A.m); /* 1.加载到内存,会产生一个类对应的class对象 2.链接,链接结束后 m =0

天行健 君子以自强不息,地势坤 君子以厚德载物。 432

Java知识点06——注解(Annotation)、类加载机制、反射

Java知识点06——注解(Annotation)、类加载机制、反射

努力的小C 1225

关于张老师java视频的学习(十)

<br />第三讲:面向对象上<br /> (1)、类的产生:类名C 对象名O = new 类中的构造方法; 该语句执行完毕之后,栈内存中产生一个C类型的引用变量O,并由new在堆内存中分配一个空间,由类的<br />  构造方法来初始化这个空间,并把该空间的首地址赋值给引用变量O,这样,对象O就像对内存中的对象名一样,其实,和指针一样。<br /> (2)、自动初始化: 基本类型变量数据 在声明时,系统自动对其进行初始化,而对于引用变量,系统则不进行初始化。<br />   其中,基本变量类型的初始默认值

莫小莫Online 822

Shiro-黑马程序员

一:实现分布式会话 SessionManager(53~56) 1. 会话的问题: 2.分布式会话实现思路 1)原理分析: 2)设计类图详解: 3)RedisSessionDAO 3. 4. 5.

张老师的博客 6991

Java---注解、类加载器-加强-实现运行任意目录下class中加了@MyTest的空参方法

做自己的类加载器 虚拟机的核心是通过类加载器来加载.class文件,然后进行相应的解析执行。那么我们可以自己做类加载器,手动加载需要的.class以进行解析执行,从而扩展虚拟机的功能。 以下内容摘自API文档: 应用程序需要实现 ClassLoader 的子类,以扩展 Java 虚拟机动态加载类的方式。 网络类加载器子类必须...

weixin_33976072的博客 252

黑马程序员_张老师银行面试题Bank

------- [url=http://www.itheima.com]android培训[/url]、[url=http://www.itheima.com]java培训[/url]、期待与您交流! ---------- 这里的注释非常清晰大家可以仔细的研究下,哈哈 银行业务调度系统 模拟实现银行业务调度系统逻辑,具体需求如下: 银行内有6个业务窗口,1 - 4号窗...

星博客 354
上一篇: "黑马程序员"张老师高新学习笔记(反射)
下一篇: “黑马程序员"Comparable与Comparator的区别
tangjinjava
博客等级 码龄16年 0粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值