object

测试,反射,注解

僤鯓⒐⒋嵵緔 提交于 2020-03-17 12:00:57
测试,反射,注解 1.junit测试 1.1流程 创建测试包 xxx.xxx.xx.test 创建测试类 xxxTest 创建测试方法 testxxxx(),返回值void,参数无,为保证测试方法可以独立运行,必须使用@Test进行注解,同时添加@Test的依赖 编写测试代码 使用Assert进行断言 查看测试结果:红色,失败;绿色,成功 1.2扩展的注解 @Before:如初始化init,在所有测试用例之前执行 @After:如关闭资源close,在所有测试用例之后执行 2.反射 当class文件加载入内存后会自动生成这个class文件的实例,名为class并与之关联,并且此实例私有,只可以由JVM运行,当我们获得此实例时就可以得到这个class文件中的所有信息,称之为反射。 2.1获取字节码文件的三种方式 使用静态方法 Class.forName(“全类名”):将字节码文件加载进内存,返回Class对象 * 多用于配置文件,将类名定义在配置文件中。读取文件,加载类 类名.class:通过类名的属性class获取 * 多用于参数的传递 对象.getClass():getClass()方法在Object类中定义着。 * 多用于对象的获取字节码的方式 结论: 同一个字节码文件(*.class)在一次程序运行过程中,只会被加载一次,不论通过哪一种方式获取的Class对象都是同一个。 2

JAVA并发编程-线程间协作(Object监视器方法与Condition)

二次信任 提交于 2020-03-17 11:21:32
某厂面试归来,发现自己落伍了!>>> 原文地址: http://blog.csdn.net/zhshulin/article/details/50762465 下面只是简单的介绍一下,具体代码可以看我分享的代码,注释都有 说到线程间协作,不得不提到经典的 生产者与消费者模型 :有一个商品队列,生产者想队列中添加商品,消费者取出队列中的商品;显然,如果队列为空,消费者应该等待生产者产生商品才能消费;如果队列满了,生产者需要等待消费者消费之后才能生产商品。队列就是这个模型中的临界资源,当队列为空时,而消费者获得了该对象的锁,如果不释放,那么生产者无法获得对象锁,而消费者无法消费对象,就进入了死锁状态;反之队列满时,生产者不释放对象锁也会造成死锁。这是我们不希望看到的,所以就有了线程间协作来解决这个问题。 其实说到生产者与消费者模型,我们不能简单的知道怎么实现,而是需要知这种模型的使用场景:主要是为了复用和解耦, 常见的消息框架(非常经典的一种生产者消费者模型的使用场景) ActiveMQ 。发送端和接收端用Topic进行关联。 JAVA语言中,如何实现线程间协作呢?比较常见的方法就是利用Object.wait(),Object.notify()和Condition。 先看看这几个方法究竟有什么作用?为什么利用它们就可以实现线程间协作了呢? 首先分析一下wait()/notify()

how to work with json object in c#

一个人想着一个人 提交于 2020-03-17 10:56:07
问题 I'm working with a json which comes from an API, here is what I'm talking about: { "popularity": 3.518962, "production_companies": [ { "name": "value1", "id": 4 }, { "name": "value2", "id": 562 }, { "name": "value13", "id": 14654 }, { "name": "value4", "id": 19177 }, { "name": "value5", "id": 23243 } ] } I already can return value of popularity As an example I need to know how can I access value of name and which name it is? I also tried to convert it to an array but didn't work or I did

Python基础(第八节)

我的未来我决定 提交于 2020-03-17 09:48:50
方法没有重载 1、在其他语言中,可以定义多个同名的方法 2、Python中方法的参数没有声明类型,参数的数量也可以由可变参数控制,因此Python中没有方法的重载 3、定义一个方法即可有多种调用方式,相当于实现了其他语言中的方法的重载 4、定义多个同名方法时,只有最后一个有效 方法的动态性 Python是动态语言,可以动态地为类添加新方法,或者动态地修改类的已有的方法 class Person: def work(self): print("努力工作!") def play_game(a): print("{}在玩游戏".format(a)) def work2(n): print("努力赚大钱,努力工作!") Person.play = play_game p = Person() p.work() p.play() #解释器解释为Person.play(p) Person.work = work2 #二者形参数量要对应 p.work() 运行结果为: 努力工作! <__main__.Person object at 0x00000287ABF64CF8>在玩游戏 努力赚大钱,努力工作! 私有属性和私有方法 1、Python对于类的成员没有严格的访问控制权限,这与其他面向对象语言有区别 2、关于私有属性和私有方法有如下要点: ①通常我们约定,两个下划线开头的属性是私有的

JavaScript中in操作符(for..in)、Object.keys()和Object.getOwnPropertyNames()的区别

霸气de小男生 提交于 2020-03-17 08:29:04
ECMAScript将对象的属性分为两种: 数据属性 和 访问器属性 。每一种属性内部都有一些特性,这里我们只关注对象属性的[[Enumerable]]特征,它表示是否通过 for-in 循环返回属性,也可以理解为:是否可枚举。 然后根据具体的上下文环境的不同,我们又可以将属性分为: 原型属性 和 实例属性 。原型属性是定义在对象的原型(prototype)中的属性,而实例属性一方面来自己构造函数中,然后就是构造函数实例化后添加的新属性。 本文主要介绍JavaScript中获取对象属性常用到的三种方法的区别和适用场景。 for..in循环 使用for..in循环时,返回的是所有能够通过对象访问的、可枚举的属性,既包括存在于实例中的属性,也包括存在于原型中的实例。这里需要注意的是使用for-in返回的属性因各个浏览器厂商遵循的标准不一致导致对象属性遍历的顺序有可能不是当初构建时的顺序。 遍历数组 虽然for..in主要用于遍历对象的属性,但同样也可以用来遍历数组元素。 var arr = ['a', 'b', 'c', 'd']; // 使用for..in for (var i in arr) { console.log('索引:' + i + ',值:' + arr[i]); } // 使用for循环 for (var j = 0; j < arr.length; j++) {

Wy we need to put e.target.name in square brackets []? [duplicate]

不羁的心 提交于 2020-03-17 07:35:06
问题 This question already has answers here : Understanding computed properties (square brackets) (1 answer) What do square brackets around a property name in an object literal mean? (1 answer) Closed 2 years ago . Why when I use form elements I got to put e.arget.name in brackets ? Here my code : onChange (e) { this.setState({ *[e.target.name]* : e.target.value}); } (...) <div> <label htmlFor=""> Title : </label> <input type="text" name="title" onChange={this.onChange} value={this.state.title} />

Java代理的小例子

℡╲_俬逩灬. 提交于 2020-03-17 06:54:56
利用代理可以在运行时创建一个实现了一组给定接口的新类。 需要一个调用处理器(invocation handler),调用处理器需实现InvocationHandler接口。无论何时调用代理对象的方法,调用处理器的invoke方法都会被调用,并向其传递Method对象和原始的调用参数。 创建代理对象,需要使用Proxy类的newProxyInstance方法。此方法有三个参数: 1、一个类加载器(class loader),null代表默认 2、接口数组 3、一个调用处理器 使用代理的作用: 1、路由对远程服务器的方法调用 2、在程序运行期间,将用户接口事件与动作关联起来(spring AOP就是) 3、为调试,跟踪方法调用 下面的例子就是跟踪方法调用。以二分查找法为例,注:Integer实现comparable接口,代理类覆盖toString方法: import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.lang.reflect.Field; import java.lang.reflect.InvocationHandler; import java.lang.reflect.InvocationTargetException; import java.lang

js (this,call,apply)(

别来无恙 提交于 2020-03-17 04:31:57
转自 http://blog.sina.com.cn/s/blog_68cb8c790100ytl5.html 对于我这种初学者来说this指的到底是哪里,实在头疼,再有了前面关于变量和作用域的概念后,今天我觉定学习关于this的用法,把这个烦人的家伙解决掉! (一)关于this 首先关于this我想说一句话,这句话记住了this的用法你也就差不多都能明白了: this指的是当前函数的对象 。这句话可能比较绕,我会举出很多例子和这句话 呼应 的!(看下文) 1.首先看下面这段代码, 定义一个函数,弹下this, function doSomething(){ alert(this); } doSomething(); 我是在firefox里面调试的,所以返回的结果是[Object Window]。 那么这个 [Object Window], 到底是什么呢?看看下面的代码 function doSomething(){ alert(this===window); } doSomething(); 看到弹出了true, 也就是说在这种正常情况下,this其实就是window 所以,我们定义了一个全局的变量的时候,可以 var test="Tony"; 也可以 window["test"]="Tony"; 下面这个例子,进一步说明,正常情况下,函数里的this就是window var

jQuery源码浅析–整体架构

独自空忆成欢 提交于 2020-03-17 03:52:29
http://www.cnblogs.com/coco1s/p/5261646.html @ChokCoco 最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美。 其结构明晰,高内聚、低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷、渐进增强)优雅的处理能力以及 Ajax 等方面周到而强大的定制功能无不令人惊叹。 另外,阅读源码让我接触到了大量底层的知识。对原生JS 、框架设计、代码优化有了全新的认识,接下来将会写一系列关于 jQuery 解析的文章。 我在 github 上关于 jQuery 源码的全文注解,感兴趣的可以围观一下。jQuery v1.10.2 源码注解(https://github.com/chokcoco/jQuery-) 。 网上已经有很多解读 jQuery 源码的文章了,作为系列开篇的第一篇,思前想去起了个【深入浅出jQuery】的标题,资历尚浅,无法对 jQuery 分析的头头是道,但是 jQuery 源码当中确实有着大量巧妙的设计,不同层次水平的阅读者都能有收获,所以打算厚着脸皮将自己从中学到的一些知识点共享出来。打算从整体及分支,分章节剖析。本篇主要讲 jQuery 的整体架构及一些前期准备,先来看看 jQuery 的整体结构: 整体架构 不同于 jQuery

第三章—Object类之toString方法

☆樱花仙子☆ 提交于 2020-03-17 01:09:32
最根基的类object(相当于所有的类都是从这个类继承) 因此object有什么子类就有什么 Java最根上的类只有一个(object) hashCode()返回这个对象的hash编码(可以根据对象的hash编码找到这个对象的位置) 十六进制 toString()方法 返回代表这个对象的字符串 一个字符串和另外一种类型在做连接时,另外一种类型自动转换成String类型然后再做连接 下面两种都会调用toString()方法 System.out.println("d:= " + d); System.out.println(d); 当打印时就相当于调用了toString() System.out.println("d:= " + d.toString()); toString返回值是一个字符串 把这个d.toString()字符串拿到之后和 "d:= "连接 为什么可以调用toString()方法呢? 因为是从父类继承下来的 建议所有子类都重写toString()方法 来源: CSDN 作者: 林伟茂-Summer 链接: https://blog.csdn.net/weixin_42814000/article/details/104877016