2014.10.25
The final exam: you should do well if you read, and if you come to lecture and if you attend section.
如果你好好读书、积极听课、参与讨论,期末考试就轻而易举
The sounds of sense are all part of language in use, which people are using to do things with.
理性的声音蕴含在所有的正在运用的语言中,人们也正利用此来处理事情。
And happier people are more successful, because they have more energy and work harder.
越快乐的人越成功,因为他们有更多精力,工作更努力。
进入中国的 10 个月里,Uber 做了什么?
Google的产品策略:每样都做两件
谷歌管理层调整 拟合并Chrome和Android
注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便的地使用这些数据。
注解可以提供用来完整的描述程序所需的信息,而这些信息是无法用java来表达的。注解可以用来生成描述符文件,甚至或是新的类定义。并且有助于减轻编写“样板”代码的负担。
注解的语法比较简单,除了@符号的使用之外,它基本与java固有的语法一致。
@Override,表示当前的方法定义将覆盖超类中的方法。
@Deprecated,如果程序员使用了注解为它的元素,那么编译器会发出警告信息。
@SuppressWarnings,关闭不当的编译器警告信息。
每当你创建描述符性质的类或接口时,一旦其中包含了重复性的工作,那就可以考虑使用注解来简化与自动化该过程。
注解是在实际的源代码级别保存所有的信息,而不是某种注释性的文字,这使得代码更整洁,且便于维护。
从语法的角度来看,注解的使用方式几乎与修饰符的使用一模一样。
定义注解时,会需要一些元注解,如@Target和@Retention。@Target用来定义你的注解将应用于什么地方(例如是一个方法或者是一个域)。@Retention用来定义该注解在哪一个级别可用,在源代码中(SOURCE)、类文件中(CLASS)或者运行时(RUNTIME)。
没有元素的注解称为标记注解。
注解的元素在使用时表现为名-值对的形式,并需要置于注解声明之后的括号内。
四种元注解:@Target表示该注解可以用于什么地方。@Retention表示需要在什么级别保存该注解信息。@Documented将此注解包含在Javadoc中。@Inherited允许子类继承父类中的注解。
元注解专职负责注解其他的注解。
2014.10.26
They make the markets work because if you didn't have this there would be all kinds of crooks and bad actors.
监管使得市场有序运行,如果缺乏监管,市场就会充斥着不法商人。
Let's try to have some cooperation, so we build, so we become constructive.
让我们试着合作,从而筑造未来,让我们变得具有建设性。
People somehow got the idea that Los Angeles is just this wonderful city and so they started bidding up real estate prices.
不知道为什么,人们总认为洛杉矶是一个美好的城市,他们开始竞相抬升房地产价格
移动营销:那些我们做对的和做错的
注解元素可用的类型有:所有的基本类型、String、Class、enum、Annotation、以上类型的数组。注解也可以作为元素的类型,也就是说注解可以嵌套。
注解元素要么具有默认值,要么在使用注解时提供元素的值。其次,对于非基本类型的元素,无论是在源代码中声明时,或是在注解接口中定义默认值时,都不能以null作为其值。这个约束使得处理器很难表现一个元素的存在或缺失的状态,因为在每个注解的声明中,所有的元素都存在,并且都具有相应的值。为了绕开这个约束,我们只能自己定义一些特殊的值,例如空字符串或负数,以此表示某个元素不存在。
快捷方式:如果程序员的注解中定义了名为value的元素,并且在应用该注解的时候,如果该元素是唯一需要赋值的一个元素,那么此时无需使用名-值对的这种语法,而只需在括号内给出value元素所需的值即可。
使用多个注解的时候,同一个注解不能重复使用。
注解不支持继承。
getDeclaredAnnotation()返回一个包含一个域上的所有注解的数组。
注解处理工具apt,这是Sun为了帮助注解的处理过程而提供的工具。与javac一样,apt被设计为操作java源文件,而不是编译后的类。使用apt生成注解处理器的时候,我们无法利用java的反射机制,因为我们操作的是源代码。
单元测试是对类的每个方法提供一个或多个测试的一种实践,其目的是为了有规律地测试一个类的各个部分是否具备正确的行为。@Test标记测试方法。使用@Unit进行测试的类必须定义在某个包中,即必须包括package声明。@TestProperty:由它注解的域表示只在单元测试中使用。也可以用它来标记那些只在测试中使用的方法,而它们本身又不是测试方法。
所有测试的保留属性必须是RUNTIME,因为@Unit系统必须在编译后的代码中查询这些注解。
@Test方法将被保存在TestMethods列表中