我有一个Java类来表示数据库中的一个条目。所以每个字段都是数据库中的一列。
当我想更新该数据库时,我会构造一个ContentValures对象。
是
ArrayList<T> contentValues = new ArrayList<T>()
//bla bla add ten items to contentValues`
速度快于
ArrayList<T> = new ArrayList<T>(ThisClass.class.getDeclaredFields().length);
//bla bla add ten items to contentValues
getDeclaredFields
的绝对性能是什么?我希望有人能真正指出getDeclaredFields
是如何工作的。我知道容器的大小调整是如何工作的,但我对getDeclaredFields
如何工作以及如何执行一无所知。
ContentValues contentValues = new ContentValues()
我认为执行时间的差异并不明显。
带有简单HashMap的微型基准测试,使用与ContentValue相同的设置(假设这是您所指的类),并添加10个字段(即一个调整大小的操作):
Benchmark Mean Mean error Var Units
c.a.p.g.a.Reflection.getDeclaredFields 326.405 5.989 33.961 nsec/op
c.a.p.g.a.Reflection.resize 247.581 7.377 51.520 nsec/op
因此,<code>getDeclaredFields</code>比一次调整地图大小要慢一些,但在台式PC上,差异仅为100纳秒量级。
当向< code>ThisClass添加更多字段时,< code>getDeclaredFields会变慢,所以我倾向于使用自动调整大小的方法。
代码:
@GenerateMicroBenchmark(BenchmarkType.AverageTimePerOp)
public Map getDeclaredFields() {
Map m = new HashMap(ThisClass.class.getDeclaredFields().length, 1.0f);
for (int i = 0; i < 9; i++) {
m.put(i, "a");
}
return m;
}
@GenerateMicroBenchmark(BenchmarkType.AverageTimePerOp)
public Map resize() {
Map m = new HashMap(8, 0.75f);
for (int i = 0; i < 9; i++) {
m.put(i, "a");
}
return m;
}
class ThisClass {
private int i, j, k;
public String s, t, u;
protected List l, m, n;
}
我有一个设置,我想有一个方法来处理不同的报告模板(每个模板的字段比其他模板少/多),方法是传入报告名称并在运行时创建对象。然后检查每个字段是否存在,如果存在,则设置值。然后将对象序列化为JSON以返回。 我有一个测试设置如下。问题是我无法获取已创建对象的字段列表。物体。getClass()。getDeclaredFields()始终提供空数组。 我想看看你是否能发现任何错误,或者是否有更聪明的方法
问题内容: 我有3个要素。 第一个更大(包装)并具有 第2个相对于第1个相对位置绝对定位(并包含在第1个中) 第3个包含在第2个中,并且也具有绝对定位。 为什么第3个位置相对于第2个绝对位置(这也是第1个位置的绝对位置)而不是相对位置的第一个位置? 因为3rd 是绝对定位到2nd的绝对定位。 问题答案: 因为就像重置孩子的相对位置一样。 这是无法解决的-如果您希望第三个相对于第一个绝对定位,则必须
位置路径指定XML文档中节点的位置。路径可以是绝对路径或相对路径。 如果位置路径以根节点或开头,则它是绝对路径。 以下是使用绝对路径定位元素的示例中的一小部分。 - 选择类根节点中的节点。 - 在类根节点中选择节点的名称。 示例 在这个例子中,我们创建了一个示例XML文档students.xml,及其样式表文档students.xsl,它使用了XPath表达式。 以下是使用的示例XML,文件:st
问题内容: 如果我做一个 然后我收到服务器控制台警告 表达已弃用:改为使用 但它在客户端工作正常。 但是当我将其更改为 我得到一个错误 TypeError:路径必须是绝对路径或将根目录指定为 并且不呈现。 我无法弄清楚绝对路径是什么。我的目录与处于同一级别。我正在使用。我也宣布 添加我的目录结构: 在此处指定的绝对路径是什么? 我正在使用Express4.x。 问题答案: 该中间件是独立的,所以用
当一个元素的 position属性设置为 absolute 或 fixed,它将使用绝对定位。绝对定位的元素将从文档流中完全删除,它原先在正常文档流中所占的空间会关闭,就好像该元素不存在一样,因此不会在原先的位置留下空白。 绝对定位的元素相对它的包含块进行定位。position: absolute 元素的包含块是最近已定位(position属性被设置,且不是static)的祖先元素,如果没有已定位