我一直听说Android应用程序应该尝试限制创建的对象数量,以减少垃圾收集器的工作量.有意义的是,您可能不希望创建大量的对象来跟踪有限的内存占用,例如在传统的服务器应用程序上,在几秒钟内创建100,000个对象并不是闻所未闻.
问题是我应该走多远?我已经看到大量的Android应用程序依赖于静态状态的例子,据说可以"加快速度".是否需要将垃圾收集的实例数量从几十个增加到几十个真的会产生很大的差异?我可以想象改变我的编码风格,现在创建了数十万个对象,就像你可能在一个完整的Java-EE服务器上,但依赖一堆静态状态(据说)减少垃圾收集的对象数似乎奇.
为了创建性能Android应用程序,改变编码风格真的需要多少钱?
我注意到我们没有在GWT中为排列编译定义的"user.agent"ie7.
如果我想为ie7创建一个类的特定实现,我该如何定义它?如果user.agent是ie6,我将只使用那个user.agent,因为我们不支持ie6.
我注意到,当您配置Maven项目以使用属性过滤时,属性过滤似乎也可以在非maven IntelliJ"make"期间工作.这意味着Jetty/Tomcat/GWT/Glassfish的IntelliJ运行配置仍将遵循您的maven资源过滤.
所以如果我把它添加到我的pom.xml:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.properties</include>
<include>**/persistence.xml</include>
</includes>
</resource> ....
Run Code Online (Sandbox Code Playgroud)
在任何intellij运行配置启动之前,它应该过滤我的属性和peristence.xml文件中的任何属性.这对于交换JDBC引用或文件系统参数非常有用.
我遇到的唯一问题是,即使我更改pom.xml以获得其他目录的第二个条目(即:src/integrationtest/resources),IntelliJ似乎也只是尊重src/main/resources中的过滤.
这一切似乎都是"自动化的".那么它如何工作以及我可以在哪里(如果有的话)配置它?
<style>HTML头标记内有两个标记是否有效?
例如,我正在尝试为没有添加外部样式表的电子邮件客户端编写HTML页面.由于我们的模板系统的工作方式,我们更容易拥有
<head>
<style>
.someStyle{}
</style>
<style>
.someOtherStyle{}
</style>
</head>
Run Code Online (Sandbox Code Playgroud)
而不是这个......
<head>
<style>
.someStyle{}
.someOtherStyle{}
</style>
</head>
Run Code Online (Sandbox Code Playgroud)
如果选项2是执行此操作的唯一方法,我将这样做,但选项1由于各种原因更适合我们的框架代码.
我需要在JOOQ中做相同的操作.
SELECT
name,
'companyType' AS resultType
FROM company
UNION ALL
SELECT
name,
'userType' AS resultType
FROM "user";
Run Code Online (Sandbox Code Playgroud)
我已经弄清楚如何在JOOQ中使用unionall,但我无法弄清楚如何在选择union时选择结果的常量值.
我想知道是否有人看到过将Maven依赖项添加到Ant的技术.我认为Ivy本来是为了做到这一点,但后来我意识到它只是一个Ant风格的依赖管理工具.
在我看来,如果有人扩展Ant以便能够引用Maven依赖(也许只针对开源库),Ant可以捎带至少Maven的一个重要特性,而不必重新发明轮子.
有什么想法吗?
在许多支持案例之后,我们意识到我们在基于GWT的应用程序中遇到的最大问题是用户将其一次打开数周.这意味着当我们每两周执行一次修补程序时,RPC存根不同步并导致静默异常被抛出,使网站看起来"坏了".有没有人知道自动检测和避免这个问题的方法?我的一些想法是......
有任何想法吗?
Android平台是否适合特定风格的UI编程,如MVC或MVP?我的大部分UI体验都是在非常旧的嵌入式设备上使用意大利面条代码,或者在带有MVP的GWT中使用意大利面条代码,所以我不知道从哪里开始.
由于这个问题,我理解OSGI解决的问题....
而且我已经相信Guice是惊人的,所以我很好奇这个被称为"peaberry"的Guice的OSGI集成应该做什么,它似乎在各处出现,甚至在Maven 3演示中.
我不断发现使用像db4o这样的对象数据库非常困惑的一件事是你应该如何处理通常由SQL/PL-SQL处理的复杂迁移.
例如,假设您在关系数据库中有一个名为my_users的表.最初您有一个名为"full_name"的列,现在您的软件在V2中,您希望删除此列,在空白处拆分全名,并将第一部分放在名为"first_name"的列中,将第二部分放在列中名为last_name.在SQL中,我只需填充"first_name"和"second_name"列,然后删除名为"full_name"的原始列.
我怎样才能在像db4o这样的东西上做到这一点?我是否编写了一个Java程序,脚本查找User.class的所有对象,在设置first_name和last_name时将full_name设置为null?当我执行下一个svn提交时,将没有与full_name对应的字段/ bean属性,这是一个问题吗?似乎在我的"架构"更改的生产应用程序中使用它我想编写一个脚本将数据从版本x迁移到版本x + 1然后在版本x + 2中实际删除我想要的属性摆脱版本x + 1,因为我无法编写Java脚本来修改不再属于我的类型的属性.
似乎问题的一部分是RDBMS基于一个简单的不区分大小写的基于字符串的名称来解析你所指的对象,在像Java这样的语言中,输入比这更复杂,如果getter你不能引用属性/ setter/field不是运行时加载的类的成员,所以你基本上需要在同一个脚本中有两个版本的代码(嗯,自定义类加载器听起来很痛苦),你的类的新版本属于另一个包(听起来很乱),或使用我提到的版本x + 1 x + 2策略(需要更多的计划).也许有一些明显的解决方案我从未从db4o文档中收集过.
有任何想法吗?希望这有一定道理.