在过去的3年里,我一直在使用PHP开发Web应用程序。 我现在正在接近Java。 我最后一次使用该语言的时间大约是8年前,主要是学术。 我相当熟悉PHP的对象模型(版本5),而且我几乎完全使用OO进行编码。 现在我想传达这个经验,并用它来开发Java。 我来自哪里: Linux作为桌面和服务器 Vim / gVim +插件作为编辑器 MySql for db apache httpd 经验了一堆PHP框架,Zend + Doctrine是我使用最多的 到目前为止,我已经获得了关于迁移到Java的东西: 我需要一个IDE:IntellijIDEA,NetBeans或Eclipse 我需要select一个开发框架。 一些经常性的名字:Spring MVC,stripes,wicket。 现在我需要一些有助于使这一过渡更顺利的见解。 但从人们谈论它的方式来看,Java似乎是一个拥有自己的生态系统的全新的野兽。 听起来好像转向Ruby或Python实际上会更容易一些,因为从我的angular度来看,Java从概念上来说似乎是最接近PHP的,尽pipe它更加严格和预编译。 听起来很奇怪,很less有人公开logging他们的这种行为的经验。 我search谷歌,亚马逊和stackoverflow类似的问题,结果离开的愿望。 我简直不敢相信,如果我想快速成为一名Java开发人员,就必须像新手一样开始。 欢迎任何人作出回应,但我有些认为有这两种语言的宝贵经验的人最能丰富这个讨论。 什么帮助你快速进入Java? 什么概念是无所不在的Java和PHP不存在,反之亦然? 一些PHP开发人员使用Java的一些小问题。 在感觉过渡完成之前多久?
我想知道如果scala有一个相当于java的@SuppressWarnings可以应用到一个函数或任何忽略任何弃用警告[1]该函数发出的? 1:在我的情况下,相关警告是: method stop in class Thread is deprecated: see corresponding Javadoc for more information. 我知道停止的问题,但仍然有一些情况下,由于遗留代码,我们必须使用它。
如何在div中横向和纵向放置内容?
我公司的Empoyee需要通过我编写的程序来修改SQL Server数据库中的数据。 该程序首先使用Windows身份validation,并要求数据库pipe理员给这个特定的用户写入访问数据库。 他们不愿意这样做,而是给我的 Windows用户帐户写入访问权限。 由于我相信这个人,但是还不足以让他在我的会话打开90分钟的情况下工作,我只需在我的程序中添加一个login提示,询问用户名和密码组合,然后使用它login到SQL Server。 我会login,并相信我的应用程序,让他只做他需要的东西。 但是,这会带来很小的安全风险。 Sun Oracle站点上的密码字段教程指出密码应该保持在内存中所需的最less时间,为此, getPassword方法返回一个char[]数组,您可以在完成该操作后将其置零。 但是,Java的DriverManager类只接受String对象作为密码,所以一旦完成,我将无法处理密码。 而且,由于我的应用程序在分配和内存要求方面相当低,谁知道在内存中能够存活多久呢? 如上所述,该计划将运行相当长的时间。 当然,我无法控制SQL Server JDBC类用我的密码做什么,但是我希望我能控制我的密码。 有没有一种可靠的方法来销毁/清零Java的String对象? 我知道两者都是反对语言的(对象销毁是非确定性的,而且String对象是不可变的), System.gc()也是不可预知的,但仍然是这样。 任何想法?
这个关于对象生成器模式的问题让我想到了使它自动化的方法。 本质上,我想自动创build像std::make_pair , std::bind1st和std::mem_fun这样的函数,以便不必为每个模板类types编写不同的函数,可以编写单个可变模板模板函数即时处理所有案件。 这个函数的用法如下: make<std::pair>(1, 2); // equivalent to std::make_pair(1, 2) make<std::binder2nd>(&foo, 3); // equivalent to std::bind2nd(&foo, 3); 可以写这个函数吗? 我已经尝试过,但是在GCC 4.5或4.6中不起作用: template <template <typename…> class TemplateClass, typename… Args> TemplateClass<Args…> make(Args&&… args) { return TemplateClass<Args…>(std::forward<Args>(args)…); } 如果我尝试打电话(例如) make<std::pair>(1, 2)我只是得到 error: no matching function for call to 'make(int, int)' 我在这里的任何地方都有语法错误吗? 或者这是正确的,海湾合作委员会是错的? 或者,这只是在C ++ 0x从根本上不可能? [编辑] build议N2555似乎暗示这是允许的, […]
我正在查看MS Access中的链接数据。 “是/否”字段的值为“是”,否则为“0”。 有人可以解释为什么这样的反直觉价值被用于“是”吗? (显然,它应该是1和0) 我想一定有一个很好的理由,我想知道。
你什么时候select键入一个给定函数的返回types为Seq vs Iterable vs Traversable (或者Seq的层次结构中的更深层次)? 你如何做出这个决定? 我们有很多代码默认返回Seq (通常从DB查询和连续变换的结果开始)。 我倾向于在默认情况下使返回types为Traversable ,并且在特定期望给定的顺序时使用Seq 。 但是我没有强有力的理由。 我完全熟悉每个特质的定义,所以请不要回答定义的条款。
刚刚开始在我的Android应用程序中实施Google Analytics V2,虽然我有麻烦。 我相信我已经正确地build立了一个属性和configuration文件的帐户。 我在analytics.xml文件中以及我使用的每个活动中提供了我的密钥 EasyTracker.getInstance().activityStart(this); 在onStart方法中 和 EasyTracker.getInstance().activityStop(this); 在每个活动的onStop方法中。 不过,我在Google Analytics(分析)网站上似乎没有看到任何结果。 此外,我打开了debugging选项,我可以看到来自Gav2(谷歌分析)的各种消息,意味着一个问题。 例如 11-04 21:56:48.000: W/GAV2(6376): Thread[main,5,main]: **Connection to service failed 1** 11-04 21:56:48.040: W/GAV2(6376): Thread[main,5,main]: **Need to call initialize() and be in fallback mode to start dispatch.** 11-04 21:56:48.050: I/GAV2(6376): Thread[main,5,main]: ExceptionReporter created, original handler is com.keypod.utils.AppCrashExceptionHandler 11-04 21:56:50.055: I/GAV2(6376): Thread[GAThread,5,main]: No campaign […]
给定一个未sorting的数组,找出max j – i之间的差异,使得在O(n)中j > i和a[j] > a[i] 。 我能够findj和i在O(n^2)复杂性中使用微不足道的方法,但是想知道如何在O(n)做到这一点? input:{9,2,3,4,5,6,7,8,18,0} 输出:8(j = 8,i = 0) input:{1,2,3,4,5,6} 输出:5(j = 5,i = 0)
给定一个具有可选参数的函数: function DoSomething(a, b?) { /** Implementation */ } 我如何确定是否从函数体内提供了一个可选参数? 目前,我能想到的最好的方法是: typeof b === 'undefined' 但这是一种混乱,不能直接阅读。 由于TypeScript提供了可选的参数支持,我希望它也有一个直观的方法来检查是否提供了一个参数。 如上例所示,我不介意可选参数是否显式设置为undefined或根本没有提供。