首页
归档
关于
Search
1
C服务器端
9 阅读
2
1.数据流图(下午题)
8 阅读
3
管道处理模型
8 阅读
4
数据结构与算法
8 阅读
5
3.面向对象设计
7 阅读
软件设计师笔记
.Net
Java
数据库
PHP
运维
前端
Python
中间件相关
云原生
架构设计
Search
标签搜索
websocket
科技新闻
Bi8bo
累计撰写
267
篇文章
累计收到
2
条评论
首页
栏目
软件设计师笔记
.Net
Java
数据库
PHP
运维
前端
Python
中间件相关
云原生
架构设计
页面
归档
关于
搜索到
81
篇与
的结果
2025-04-03
2.2 Class 反射常用的方法
Class.forName();动态加载类。newInstance() :根据对象的class新建一个对象getSuperclass() 获取继承的父类getInterfaces() 获取继承的接口getDeclaredFields() 获取字段名字getDeclaredMethods();获取当前类的所有方法。getConstructors() :获得所有的构造函数。getModifiers() : 反射中获得修饰符 getPackage() :反射中获得packagegetField(String name):反射中获得域成员。 getFields() :获得域数组成员。 isAnnotation() :判断是否为注解类型。 isPrimitive() :判断是否为基本类型。 isArray() :判断是否为数组类型。isEnum() :判断是否为枚举类型。getClassLoader() :获得类的类加载器getMethods() 获得公共的方法。
2025年04月03日
0 阅读
0 评论
0 点赞
2025-04-03
2.1 反射机制 Reflection(反射)
Java反射机制ReflectionReflection(反射)是Java被视为准动态语言的关键,反射机制允许程序在执行期间借助ReflectionAPI去的任何类的内部信息(无视private等),并能够直接操作任意对象的内部属性及方法Class c = Class.forName("java.lang.String");加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,所以,我们形象的称之为:反射正常方式:引入需要的“包类”名称—>通过new实例化—>取得实例对象反射方式:实例化对象—>getClass()方法—>得到完整的“包类”名称Java反射(Reflection)框架主要提供以下功能:在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法(通过反射甚至可以调用private方法);在运行时调用任意一个对象的方法Java反射(Reflection)的主要用途工厂模式:Factory类中用反射的话,添加了一个新的类之后,就不需要再修改工厂类Factory了数据库JDBC中通过Class.forName(Driver).来获得数据库连接驱动分析类文件:毕竟能得到类中的方法等等访问一些不能访问的变量或属性:破解别人代码Java反射(Reflection)的基本运用 获取Class有一下三种方法:使用Class类的forName静态方法//在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), //这通过java.lang.Class类的静态方法forName(String className)实现。 //例如: try{ //加载MySql的驱动类 Class.forName("com.mysql.jdbc.Driver") ; }catch(ClassNotFoundException e){ //System.out.println("找不到驱动程序类 ,加载驱动失败!"); e.printStackTrace() ; } //成功加载后,会将Driver类的实例注册到DriverManager类中。直接获取某一个对象的classClass<?> klass = int.class; Class<?> classInt = Integer.TYPE;调用某个对象的getClass()方法public class Test{ public static void main(String[] args) { Demo demo=new Demo(); System.out.println(demo.getClass().getName()); } }
2025年04月03日
0 阅读
0 评论
0 点赞
2025-04-03
1.3自定义一个注解
@interface Annotation{ } 定义一个注解 @Annotation,一个注解是一个类package 注解; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; public class myannotation { } //多个参数的注解 @Target({ElementType.TYPE,ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @interface MyAnnotation{ //参数名不是一个方法 //注解的参数: 参数类型+参数名() String name(); //参数的默认值设置 default int age() default 0; String[] school() default {"",""}; } //一个参数的注解 注解如果只有一个参数 ,参数名建议设为value, //这样注解填参数就可以省略参数名 @Target({ElementType.TYPE,ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @interface MyAnnotation2{ //注解如果只有一个参数 ,参数名建议设为value,这样注解填参数就可以省略参数名 String value(); }
2025年04月03日
4 阅读
0 评论
0 点赞
2025-04-03
JVM调优
-Xms1024m 将初始化的内存调成1024m-Xmx1024m 将虚拟机最大内存调成1024m-XX:+PrintGCDetails 启动时打印GC的详细信息-XX:+HeapDumpOnOutOfMemoryError
2025年04月03日
0 阅读
0 评论
0 点赞
2025-04-03
死锁
多个线程各自占有一些共享资源﹐并且互相等待其他线程占有的资源才能运行﹐而导致两个或者多个线程都在等待对方释放资源﹐都停止执行的情形﹒某一个同步块同时拥有“两个以上对象的锁”时,就可能会发生“死锁”的问题.产生死锁的四个必要条件:1.互斥条件:一个资源每次只能被一个进程使用。2.请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。3.不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺。4.循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
2025年04月03日
0 阅读
0 评论
0 点赞
1
...
13
14
15
...
17