object

反射②:调用构造方法、普通方法以及成员变量

◇◆丶佛笑我妖孽 提交于 2020-01-07 19:12:37
先获取一个类(如Student) Class clazz = Student.class; ①获取构造方法:借助Class类某些可以获取对应类中声明的构造方法实例对象 //Test测试//返回该对象表示类参数列表相匹配的public构造方法(不含继承)对应的Constructor对象 Constructor constructor = clazz.getConstructor();//public //返回该对象表示类参数列表相匹配的构造方法(不区分访问权限)对应的Constructor对象 Constructor constructor = clazz.getDeclaredConstructor();//不区分访问权限//返回该对象表示类包含的所有public构造方法(不含继承)对应的Constructor对象数组 Constructor[] constructors= clazz.getConstructors();//public//返回该对象表示类所声明所有的构造方法(不区分访问权限)对应的Constructor对象 constructors= clazz.getDeclaredConstructors();//不区分访问权限 ②操作构造方法——获取构造方法信息 //获取一个构造方法 Constructor constructor = clazz

Java8 ArrayList的源码分析(一)

牧云@^-^@ 提交于 2020-01-07 16:53:07
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在Java开发中,最常用的集合莫过于ArrayList, Arraylist 提供了方便的crud的api,看似很复杂,但源码其实很简单,但是jdk1.8与以前版本的方法实现还是有一些不同,下面让我们一起看看ArrayList在Java8中是如何实现的。 查看源代码首先要从构造方法开始,通常初始化一个ArrayList通过如下方式 List<Object> list = new ArrayList<Object>(); ArrayList 有三个构造方法: public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; } 这是无参构造方法 DEFAULTCAPACITY_EMPTY_ELEMENTDATA 是一个空的Object 数组 private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; **elementData **是ArrayList的核心,是一个object的数组,ArrayList所有的数据操作,都是通过数组实现的 transient Object[] elementData; 所以,无参构造方法的ArrayList

js基础

为君一笑 提交于 2020-01-07 16:05:26
1. JS的数据类型 2. JS有哪些内置对象 3. 宿主对象和原生对象的区别 4. null、undefined及未声明变量之间的区别。如何区分? 5. ==和===的区别 6. JS隐式转换及应用场景 7."Attribute"和"Property"的区别 8. NaN是什么?如何判断是否是NaN类型 9. 如何判断两个对象相等 10. 什么是'user strict',使用它有什么优缺点? 优点: 缺点: 11. call,apply和bind的作用是什么?两者区别是什么? 12. 请说明Function.prototype.bind的用法 摘自MDN: 13. 如何判断是否为空数组 14. 数组方法 数组乱序: 数组拆解: 15. push、pop、shift、unshift功能及返回值 16. .forEach和.map()循环的主要区别,使用场景举例 17. JS执行对象查找时,永远不会去查找原型的函数是哪个? 18. 如何将arguments转为数组 19. 对象的遍历方法 20. 数组的遍历方法 21. 匿名函数的典型应用场景 22. IIFE(立即执行函数)的用法 23. document的load事件和DOMContentLoaded事件之间的区别 24. 数据类型判断方式有几种 25. DOM操作(增删改查) 26. 异步加载JS 的方式有哪些 27.

CLR via C# 接口 类和接口继承

99封情书 提交于 2020-01-07 13:52:43
CLR不支持多继承,因此所有托管编程语言也支持不了。 CLR只是通过接口提供了缩水版的多继承。 Microsoft.NET Framework 提供了System.Object类,它定义了4个公共实例方法:ToString,Equals,GetHashCode和GetType。该类是其他所有类的跟或者说终极基类。换言之,所有类都继承了object的4个实例方法。这还意味着只要代码能操作object实例,就能操作任何类的实例。 由于Microsoft的开发团队已实现了object的方法,所以从object派生的任何类实际都继承了以下内容: 1.方法签名 使代码认为自己在操作object类的实例,但实际操作的可能是其他类的实例。 2.方法实现 是开发人员定义object的派生类时不必手动实现object的方法。 //-- 在CLR中,任何类都肯定从一个(而且只能是一个)类派生,后者最终从object派生。这个类称为基类。基类提供了一组方法签名和这些方法的实现。你定义的新类可在将来由其他开发人员用作基类---所有方法签名和方法实现都会由新的派生类继承。 //-- CLR还允许开发人员定义接口,它实际只是对一组方法签名进行了统一命名。这些方法不提供任何实现。类通过指定接口名称来继承接口,而且必须显式实现接口方法,否则CLR会认为此类型定义无效。C#编译器和CLR允许一个类继承多个接口

ES6、ES7、ES8、ES9、ES10新特性

倖福魔咒の 提交于 2020-01-07 13:19:33
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> ES6新特性(2015) 类 Class 传统的javascript中只有对象,没有类的概念。它是基于原型的面向对象语言。原型对象特点就是将自身的属性共享给新对象。这样的写法相对于其它传统面向对象语言来讲,很有一种独树一帜的感脚!非常容易让人困惑! 如果要生成一个对象实例,需要先定义一个构造函数,然后通过new操作符来完成。构造函数示例: //函数名和实例化构造名相同且大写(非强制,但这么写有助于区分构造函数和普通函数) function Person(name,age) { this.name = name; this.age=age; } Person.prototype.say = function(){ return "我的名字叫" + this.name+"今年"+this.age+"岁了"; } var obj=new Person("laotie",88);//通过构造函数创建对象,必须使用new 运算符 console.log(obj.say());//我的名字叫laotie今年88岁了 构造函数生成实例的执行过程: 1.当使用了构造函数,并且new 构造函数(),后台会隐式执行new Object()创建对象; 2.将构造函数的作用域给新对象,(即new Object()创建出的对象)

C#与JAVA的相同之处

懵懂的女人 提交于 2020-01-07 12:25:30
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 由于C#与JAVA都是基于C++发展起来的,因此二者之间具有很多相似之处,具体如下: 1、C#和JAVA语言的编译结果是独立于计算机和编程语言的,可执行文件可以在受管理的执行 环境中执行; 2、C#和JAVA语言都是采用了自动的垃圾回收机制; 3、C#和JAVA语言都取消了指针操作; 4、C#和JAVA语言都没有头文件; 5、C#和JAVA语言都只支持单重继承,要实现与多重继承类似的功能,必须通过接口来实现; 6、类都是从Object类派生而来,类的对象通过关键字new生成; 7、C#和JAVA语言都支持线程; 8、C#和JAVA语言都没有全局变量和全局函数,所有的变量和函数都属于某个类所有; 9、C#和JAVA语言都支持对数组和字符串边界的严格检查,不会出现边界溢出的情况; 10、C#和JAVA语言都使用“.”操作符,不再使用“->”和“::”操作符; 11、C#和JAVA语言都将null和bool作为关键字; 12、C#和JAVA语言中所有的值都必须先初始化后才能使用; 13、C#和JAVA语言中的if语句都不允许采用整数作为判断条件; 14、C#和JAVA语言中的try语句块都可以后接finally语句块。 C#与JAVA的不同之处: 尽管C#和JAVA有很多相同之处

Python入门(十三) 文件操作

柔情痞子 提交于 2020-01-07 11:40:31
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.打开/关闭文件 首先来看一下Python中的open函数: open(file, mode='r', buffering=-1, encoding=None) 1)file: 文件名 2)mode: 这个跟标准c库中fopen中的mode参数取值类似: 'r': 以只读方式打开文件,如果文件不存在,则会抛出IOError ‘w': 以只写方式打开文件,如果文件不存在,则会自动创建文件;如果文件已经存在,则会清空文件已有的内容 'a': 以追加的方式打开,一般会与'w'联合使用; 'b': 二进制模式打开,表示此文件中的数据不是文本数据; '+': 读/写模式, 'r+':表示读写方式打开文件,'w+'以读写方式打开文件; 4)buffering: 表示是否使用缓存,如果使用缓存的话,我们往文件中写入数据时,并不会 马上写入到文件中,而是写入到缓存中,直至我们flush()或者close()时,才会把缓存中的数据写入到文件中; 5)encoding: 指定写入字符的编码,如utf-8 open函数如果成功,则会返回一个file object,否则返回None. 关闭文件: close()函数 f = open(file='data.txt', mode='w+', encoding='utf-8') if f

Which ways are best to define my method.

戏子无情 提交于 2020-01-07 09:42:28
问题 My methods are in Helper var Helper = { isEmpty: function (obj) { return !obj || obj === null || obj === undefined || Array.isArray(obj) && obj.length === 0; }, pushArray: function (arr1, arr2) { if (arr1 && arr2 && Array.isArray(arr1)) { arr1.push.apply(arr1, Array.isArray(arr2) ? arr2 : [arr2]); } } } Question: So, if I have two functions that is isEmpty (it porposes to check from Array, String, Object) and pushArray , which of these following three methods should I use to define that

ISO C++ forbids declaration of 'myStruct' with no type

余生颓废 提交于 2020-01-07 08:13:28
问题 Here is my code DeviceClass.cpp: ... #include "myHeader.h" class DeviceClass : public DeviceClassBase { private: myClass::myStruct Foo; Foo.one = 1; Foo.two = 2; myClass myclass(Foo); ... }; This is myClass from the myHeader.h file: class myClass : baseClass{ public: struct myStruct { myStruct(): one(0), two(0){} int one; int two; }; myClass(const myStruct &mystruct); }; But this is failing to compile. I get this error: : error: ISO C++ forbids declaration of 'myStruct' with no type : error:

ISO C++ forbids declaration of 'myStruct' with no type

亡梦爱人 提交于 2020-01-07 08:13:09
问题 Here is my code DeviceClass.cpp: ... #include "myHeader.h" class DeviceClass : public DeviceClassBase { private: myClass::myStruct Foo; Foo.one = 1; Foo.two = 2; myClass myclass(Foo); ... }; This is myClass from the myHeader.h file: class myClass : baseClass{ public: struct myStruct { myStruct(): one(0), two(0){} int one; int two; }; myClass(const myStruct &mystruct); }; But this is failing to compile. I get this error: : error: ISO C++ forbids declaration of 'myStruct' with no type : error: