今天将Effective Java(第二版)中的泛型部分读完,深感自己泛型掌握有多么不熟练,还是需要多加练习。 废话少说,上点重点: 1.不要使用原型 比如: 当你用该list引用指向其他带有泛型的List时,是不会出现编译错误的,只会给一个rawtype的警告,但是———— 这很容易出现挂羊头卖狗 ...
分类:
编程语言 时间:
2018-04-22 18:39:29
阅读次数:
177
Tips 《Effective Java, Third Edition》一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化。 在这里第一时间翻译成中文 ...
分类:
编程语言 时间:
2018-04-14 00:37:10
阅读次数:
205
3D Graph Neural Networks for RGBD Semantic Segmentation 2018-04-13 19:19:48 ...
分类:
Web程序 时间:
2018-04-13 20:35:45
阅读次数:
1052
1. 理解std::move和std::forward 从std::move和std::forward不能做的地方开始入手是有帮助的,std::move不会移动任何值,std::forward也不会转发任何东西,在运行时,他们不会产生可执行代码,一个字节也不会:)。他们实际上是执行转换的函数模板。s ...
分类:
编程语言 时间:
2018-04-12 20:49:04
阅读次数:
217
类可以提供一个静态方法,返回类的一个静态实例,如Boolean包装类的一个获取实例的静态方法 优势: 1、有名称。当一个类需要多个带有相同签名的构造器时,就用静态工厂方法代替构造器,并慎重选择名称以突出它们之间的区别。 如:BigInteger.probablePrime(int bitLength ...
分类:
编程语言 时间:
2018-04-10 15:11:15
阅读次数:
205
1. 如果对象是不可变的(immutable),它就始终可以被重用。 (1) 特别是String类型的对象。 (2) 同时提供了静态工厂方法和构造器的不可变类,通常可以使用静态工厂方法而不是构造器。 2. 如果可变对象是已知不会被修改的,它也可以被重用。 如果isBabyBoomer()经常被调用, ...
分类:
编程语言 时间:
2018-04-08 15:51:02
阅读次数:
154
1.更多的使用auto而不是显式类型声明 将大段声明缩减成auto 例如: typename std::iterator_traits<It>::value_type currValue = *b; auto currValue = *b; 使用auto可以防止变量未初始化 例如: int x1; ...
分类:
编程语言 时间:
2018-04-07 16:20:44
阅读次数:
203
类有多个可选参数的解决方案:1. 重叠构造器模式可行,但是当有许多参数的时候,客户端代码会很难编写,并且仍然较难以阅读。2. JavaBeans模式,调用一个无参构造器来创造对象,然后调用setter方法来设置每个必要的参数,以及每个相关的可选参数。 缺点:构造过程被分到了几个调用中,在构造过程中J ...
分类:
编程语言 时间:
2018-04-04 21:05:10
阅读次数:
219
获取类的实例有两种方法: 1. 提供一个公有的构造器(最常用)。 2. 提供一个公有的静态工厂方法(static factory method)。 静态工厂方法的优势: 1. 有名称。当一个类需要多个带有相同签名(方法签名 = 方法名 + 参数列表)的构造器时,就用静态工厂方法代替构造器,并且慎重选 ...
分类:
编程语言 时间:
2018-04-04 16:10:06
阅读次数:
172
现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 ...... OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Conten ...
分类:
Web程序 时间:
2018-03-31 15:11:49
阅读次数:
218