动态

初学动态内存分配

做~自己de王妃 提交于 2019-11-27 06:02:32
1 /* 2 动态内存分配 3 传统数组的缺点: 4 1,数组长度必须事先制定,且只能是常整数,不能是变量。 5 例子: 6 7 int a[5]//ok 8 int len = 5; int a[len]//error 9 10 2,传统形式定义的数组,该数组的内存程序员无法手动释放。 11 知道函数运行结束时,数组的空间才会被系统释放。 12 13 14 3,数组的长度不能在函数运行过程中动态地扩充货缩小 15 16 17 4,A函数定义的数在A函数运行期间可以被其他函数调用, 18 19 为什么需要动态分配内存 20 动态数组很好得解决了传统数组的缺陷 21 传统数组也叫静态数组 22 23 */ 24 # include <stdio.h> 25 # include <malloc.h> 26 27 int main( void ) 28 { 29 int len; 30 int * pArr; 31 int i; 32 33 printf( " 输入数组长度\n " ); 34 scanf( " %d " ,&len); 35 pArr = ( int *)malloc( 4 * len); 36 printf( " 输入各个元素的值\n " ); 37 for (i= 0 ; i<len; i++) 38 scanf( " %d " ,&pArr[i]); 39 40

代理模式

…衆ロ難τιáo~ 提交于 2019-11-27 05:46:24
一.静态代理。 静态代理常用的如:三层架构。 缺点是不符合开闭原则。 二.动态代理 1.JDK动态代理 (实现InvocationHandler接口,实现invoke方法,被代理的类需要集成一个接口) Proxy是一个工具类,实际上的作用就是动态生成字节码并编译执行新生成的类。 这里传入的clzz.getInterfaces() 就是为了获取到接口并且为新生成的类提供生成方法。 原理:动态生成字节码生成一个新的类,$Proxy类,$Proxy实现了被调用类的接口,通过反射,生成接口里所有的方法,调用目标方法其实就是在调用$Proxy这个新生成的类的方法,所以JDK动态代理一定要实现一个接口。 可以通过invoke()//代理,before()//代理前,after()//代理后 ,进行对代理方法的统一增强,有点类似Spring的AOP。 2.CGLib动态代理: 来源: https://blog.csdn.net/fox_233/article/details/99460291

反射

巧了我就是萌 提交于 2019-11-27 05:17:12
class 是描述具体一类事物的共同属性和方法 可以创建一个类(抽象出的类)去描述所有的类(事物),即用类去描述所有的类 在运行过程中,对于任意一个类都可以动态获取到当前类的相关信息,对于任意一个对象,都能动态调用对象的属性或方法,我们把这种能够动态获取或调用属性和方法的机制,叫 java 的反射机制(在运行过程中,可以通过程序改变程序的结构( private àpublic))。 调用一个类中的属性和方法,一定要创建对象才能调用。Java 反射中就可以动态的调用属性或方法,而无需创建类的对象。 Java 反射中通过 Class 类来描述所有类共同拥有的属性和方法 Student stu : stu 类的对象 Class class : class 类对象(类对象是描述具体某个类的一个对象) 动态语言:在运行过程中能够动态改变程序结构的语言( perl pytho….) 静态语言: java\c\c++ Java 中因有反射机制,所以也认为 java 是一种动态语言 ① 类对象的创建方式 Class 类:描述所有类的类 ② 类对象的常用方法 ③ Java 反射包 ---- 取到某一个具体的属性及方法和构造方法 Field : A 、 获取 Field象 B 、 对 Filed 对象进行设值取值 C 、通过类 对象创建类的对象 D 、设置对象的访问权限 Method : A

java 反射

穿精又带淫゛_ 提交于 2019-11-27 04:53:51
学习反射之前,我们要了解下Class类是什么。 1、Class类 在Java中,每个class都有一个相应的Class对象。 也就是说,当我们编写一个类,编译完成后,在生成的.class文件中,就会产生一个Class对象,用于表示这个类的类型信息。 如何获取Class类? 1、Class.forName(“类路径”) 2、对象.getClass() 3、类.class 2、反射 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法。 对于任意一个对象,都能够通过反射的机制去调用它的任意一个方法。 这种动态获取、调用对象方法的功能称为java语言的反射机制 。 优点: 灵活性高。因为反射属于动态编译,即只有到运行时才动态创建并获取对象实例。 编译方式: 静态编译:在编译时确定类型 & 绑定对象。如常见的使用new关键字创建对象 动态编译:运行时确定类型 & 绑定对象。动态编译体现了Java的灵活性、多态特性 & 降低类之间的藕合性 缺点: 性能是一个问题,反射相当于一系列解释操作,通知jvm要做的事情,性能比直接的java代码要慢很多。 应用场景 1.工厂模式:Factory类中用反射的话,添加了一个新的类之后,就不需要再修改工厂类Factory了 2.数据库JDBC中通过Class.forName(Driver).来获得数据库连接驱动 3.分析类文件

java基础学习——反射机制

♀尐吖头ヾ 提交于 2019-11-27 02:24:20
定义 :JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 反射机制能干啥: 反射属于动态编译 ,即只有到运行时才动态创建 &获取对象实例。因此灵活性很高,但效率很低 顺带说一下静态,动态编译的区别 静态编译是在编译时确定类型 & 绑定对象。如 new 关键字创建对象 动态编译是运行时确定类型 & 绑定对象。 用途: 动态代理、工厂模式优化、 JDBC连接 数据库操作等等 看详细的参见这篇博客,写的很好啊 https://www.jianshu.com/p/356e1d7a9d11 来源: https://www.cnblogs.com/hurong07/p/11338105.html

动态修改服务器时间

倾然丶 夕夏残阳落幕 提交于 2019-11-27 00:34:36
笔者今天新开了一台服务器在韩国,用于同步数据;迁完数据库之后发现在查询的时候时间对不上。上服务器date一看,果然,时间对不上。 于是立马修改时间,发现要重启,那是万万使不得的。所以找了20秒资料,总结了以下动态修改时间的方法。 1、 运行tzselect root@ubuntu:/# tzselect 2、 在这里我们选择亚洲 Asia,确认之后选择中国(China),最后选择北京(Beijing) 3、 复制文件到/etc目录下 root@ubuntu:/# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 4、 再次查看时间date -R,已经修改为北京时间ok date 来源: https://www.cnblogs.com/xingyunfashi/p/9391026.html

Eclipse 动态添加web.xml

三世轮回 提交于 2019-11-26 20:49:24
在创建javaweb项目时,也许会忘记让项目创建web.xml文件,这是我们可以右键创建后的项目,在javaEE Tools中选择第二个即可。 Generate deployment Descriptor Stub 我的按钮是灰色的,以为我已经使用过了,我的项目中已经创建了web.xml文件了,所以不能再点击了。 来源: https://www.cnblogs.com/darling1550lz/p/11333035.html