Questions tagged «java»

Java是最初由Sun Microsystems开发的高级,独立于平台的,面向对象的编程语言。Java目前归甲骨文所有,甲骨文于2010年收购了Sun。

3
在Java空间中,企业门户策略的替代方案是什么?
对门户空间的幻灭 我看到许多令人困扰的大型企业客户,他们对其企业Portal的经验感到失望,尤其是WebSphere Portal Server(WPS)空间中的客户。数以百万计的投资已经完成,但是通过聚合和集成协作工具实现个性化内容的承诺从未实现。迁移到WPS 7.x是一个巨大的失败,并取代了迁移,客户想知道他们是否应该完全迁移到其他地方。 门户软件:可怕的选择,但是替代品是什么 那里有大量的门户网站仇恨者,有时门户网站解决方案确实过高了,但是当您谈论大型跨国公司时,如何建议他们构建没有门户网站服务器的全球解决方案? 门户网站并非总是像Tomcat或JBoss AS那样有趣,但是在集成多个应用程序,管理内容,更新作为单独war文件部署的单个应用程序,管理直至Portlet级别的安全性,证明某种对用户的个性化设置,以及管理大型企业作为其内部和外部网站一部分的数千页的繁重任务,是否有更好的技术? 收集社区见解和反馈 我一直在努力获取尽可能多的见识。我在TSS上写了一篇有关该问题的文章: 市场上还有哪些门户替代品? 我还将在CodeRanch上恢复一个线程,以查看是否可以从那个英俊的团队中获得任何见识。 更新了线程,要求替代门户软件Stragetty。大约2012年 我也在寻找twitterati(@potemcam)的一些见识。 与其说是交叉发布,还不如说是一种从社区中真正收集到敏锐洞察力的尝试。如果我能得到扎实的回应和经验,我想将它们汇总到TSS的建议文章中。 在Java空间中,什么是企业门户的正确选择? 顺便说一句,我也将从其他站点交叉链接到该问题,以便有相同问题的人能够来回弹跳,并查看社区对此主题的看法。

6
PHP和性能
我总是听到PHP用于中小型网站,而.NET和Java用于企业应用程序。我的问题是关于PHP的。为什么PHP不是企业Web应用程序的好选择?是否因为Web应用程序变得更大而使PHP变慢,因为它是一种解释语言? 我知道企业界会选择.NET或J2EE,因为它们与其产品集成在一起,并且由于后端服务等原因。但是,如果我们只有PHP来构建站点和Web应用程序,那么我们如何使用它来实现良好的性能呢?大网站? 简而言之,PHP的性能和网站的大小之间是否有关系?什么因素使PHP不适合用于大型站点?

7
相当于Linq的最佳Java是什么?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 Java中是否有任何库可以提供Linq的功能?
17 java  linq 

2
Java和JVM许可证
Java许可是否允许其他公司创建自己的Java语言版本或只是准确地实现它?关于JVM的同样问题。 我听说Sun起诉Microsoft更改其.NET版本的Java实现和Java for Google Android,但我只是不能完全理解整个概念。
17 java  licensing  jvm 

9
Java会赶上C#吗?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 今天,我发布了一个问题,询问哪种C#或Java语言更适合我学习。我有一些很好的答案。出现的一件事是,也许Java现在在新功能方面已经落后于C#。我看到了一些Web链接,并且大多数人指出了C#拥有什么以及Java没有什么。 所以我对大家的问题是Java是否会再次赶上C#?如果您要猜测5年后的状况。是否会有现在可能缺少的所有东西?Java 7呢?
17 java  c# 

6
此时,Java的公共领域是否只是一个悲剧的历史设计缺陷?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 在这一点上,Java似乎是正统的,基本上不应将公共字段用于对象状态。(我不一定同意,但这与我的问题无关。)考虑到这一点,可以说从今天开始的今天,很显然Java的公共领域是语言设计的错误/缺陷?还是有一个合理的论据,即使在今天,它们仍然是语言的有用和重要的一部分? 谢谢! 更新:我知道更优雅的方法,例如C#,Python,Groovy等。我不是直接在寻找这些示例。我真的只是想知道是否还有人在掩体深处,喃喃地谈论着真正的公共场所有多美妙,群众如何全都是羊,等等。 更新2:显然,静态的最终公共字段是创建公共常量的标准方法。我指的是将公共字段用于对象状态(甚至是不可变状态)。我认为应该将公共字段用作常量而不是状态,这似乎是一种设计缺陷,一种语言的规则应自然而然地通过语法而不是准则来强制执行。

4
为什么在Java中没有“仅子类”访问修饰符?
在Java中,方法有四个可用的访问修饰符: public -任何类都可以使用此方法。 protected -同一包中的类和任何包中的子类都可以使用此方法。 private -只有此类可以使用此方法。 no modifier (“包私有”)-只有同一包中的类才能使用此方法。 经常发生的事情是,我想在超类中拥有所有子类都可以使用的有用方法。但是其他类访问此方法没有任何意义,从某种意义上说,它将破坏封装。 因此,我必须在超类publicor中声明这些有用的方法protected,这至少在包中将它们公开给所有其他类。即使它们仅打算由子类使用。 有没有理由subclasses-only在Java中没有访问修饰符?对我来说似乎很奇怪。我想念什么吗? 同样,subclasses-only当您只想将变量公开给子类时,访问修饰符也很有用。在我身上发生的事情很多。

4
Java-拥有完全静态的类是一个坏主意吗?
我正在一个更大的单独项目中工作,并且现在有几个类,在这些类中我看不到创建其实例的任何理由。 例如,我现在的骰子类静态地存储其所有数据,并且其所有方法也都是静态的。我不需要初始化它,因为当我想掷骰子并获得新值时,我只是使用Dice.roll()。 我有几个类似的类,它们只有一个这样的主要功能,我将开始研究一种“控制器”类,它将负责所有事件(例如,玩家移动时以及当前的转弯方向)是的),而且我发现我可以针对这一堂课遵循相同的想法。我从来没有打算为这些特定的类创建多个对象,因此使它们完全静态将是一个坏主意吗? 我想知道当涉及到Java时,这是否被视为“不好的做法”。从我所看到的,社区似乎在这个话题上有些分歧?无论如何,我希望对此进行一些讨论,并且与资源的链接也很棒!

5
如何为代表自身或另外两件事的事物创建数据类型
背景 这是我正在研究的实际问题:我想要一种在纸牌游戏“ 魔术:聚会”中表示纸牌的方法。游戏中的大多数卡都是外观正常的卡,但其中有些分为两部分,每部分都有自己的名称。这些分为两部分的卡的每半都被视为卡本身。因此,为清楚起见,我将Card仅指代普通卡或两部分卡的一半(换句话说,只有一个名字的东西)。 因此,我们有一个基本类型Card。这些对象的目的实际上只是为了保留卡的属性。他们自己根本不做任何事情。 interface Card { String name(); String text(); // etc } Card我称之为的两个子类PartialCard(两部分的卡的一半)和WholeCard(普通卡)。 PartialCard还有两个附加方法:PartialCard otherPart()和boolean isFirstPart()。 代表 如果我有一个牌组,它应该由WholeCards而不是Cards组成,因为a Card可能是a PartialCard,这没有任何意义。因此,我想要一个表示“物理卡”的对象,即可以表示一个WholeCard或两个PartialCards的对象。我暂时称呼这种类型Representative,并Card有方法getRepresentative()。A Representative几乎不会在其代表的卡上提供任何直接信息,而只会指向它/它们。现在,我的聪明/疯狂/愚蠢的想法(由您决定)是WholeCard继承自两个 Card和Representative。毕竟,它们是代表自己的卡片!WholeCards可以实现getRepresentative为return this;。 至于PartialCards,它们并不代表自己,但是它们的外部Representative不是Card,而是提供了访问这两个PartialCard的方法。 我认为这种类型的层次结构很有意义,但是很复杂。如果我们将Cards视为“概念卡”而将Representatives视为“物理卡”,那么,大多数卡都是!我认为您可以提出一个论点,即物理卡实际上包含概念卡,并且它们不是一回事,但我认为它们是相同的。 类型转换的必要性 因为PartialCards和WholeCards都是Cards,通常没有充分的理由将它们分开,所以我通常只使用Collection<Card>。所以有时我需要转换PartialCards才能访问它们的其他方法。现在,我正在使用此处描述的系统,因为我真的不喜欢显式强制转换。和一样Card,Representative需要将其强制转换为WholeCard或Composite,以访问Card它们所代表的实际。 所以仅作总结: 基本类型 Representative 基本类型 Card 类型WholeCard extends Card, Representative(无需访问,它代表自己) 类型PartialCard extends Card(允许访问其他部分) 类型Composite extends Representative(允许访问两个部分) 这是疯了吗?我认为这实际上很有意义,但是老实说我不确定。

4
具有多个参数的单个方法与必须按顺序调用的许多方法
我有一些原始数据,我需要做很多事情(移动它,旋转它,沿某个轴缩放它,将它旋转到一个最终位置),而且我不确定保持代码可读性的最佳方法是什么。一方面,我可以使用具有多个参数(10个以上)的单个方法来执行我需要的操作,但这是一场代码阅读的噩梦。另一方面,我可以使用1-3个参数制作多个方法,但是这些方法需要以非常特定的顺序调用才能获得正确的结果。我已经读过,最好的方法是做一件事情并且做好事,但是似乎有很多需要调用的方法才能打开代码以查找难以发现的错误。 我是否可以使用一种编程范例来使错误最小化并使代码更易于阅读?
16 java  readability 

7
如何提高C#,Java和类似语言中面向数学的代码的可读性?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 作为C程序员和C#程序员,我不喜欢C#的一件事就是数学函数的详细程度。例如,每次您必须使用正弦,余弦或幂函数时,都必须在Math静态类之前。当方程本身非常简单时,这将导致代码很长。如果您需要强制转换数据类型,则问题将变得更加严重。因此,我认为可读性受到影响。例如: double x = -Math.Cos(X) * Math.Sin(Z) + Math.Sin(X) * Math.Sin(Y) * Math.Cos(Z); 相对于简单 double x = -cos(X) * sin(Z) + sin(X) * sin(Y) * cos(Z); 在其他语言(如Java)中也是如此。 我不确定这个问题是否真的有解决方案,但是我想知道C#或Java程序员是否使用任何技巧来提高Math代码的可读性。但是我意识到C#/ Java / etc。不是像MATLAB之类的面向数学的语言,所以这很有意义。但是有时候,人们仍然需要编写数学代码,如果可以使其更具可读性,那就太好了。
16 java  c#  math  readability 

2
如何使通用结构更有效率?
“通用构造”是顺序对象的包装器类,可使它线性化(并发对象的强一致性条件)。例如,这是来自Java [1]的一种经过修改的免等待构造,它假定存在一个满足接口的等待空闲队列WFQ(仅需要线程之间的一次性共识)并假定一个Sequential接口: public interface WFQ<T> // "FIFO" iteration { int enqueue(T t); // returns the sequence number of t Iterable<T> iterateUntil(int max); // iterates until sequence max } public interface Sequential { // Apply an invocation (method + arguments) // and get a response (return value + state) Response apply(Invocation …

6
(过度)使用反射是个坏习惯吗?
如果大大减少了样板代码的数量,使用反射是否是一种好习惯? 基本上,在性能和一方面的可读性与另一方面的抽象/自动化/简化样板代码之间要进行权衡。 编辑:这是推荐使用反射的示例。 举一个例子,假设有一个抽象类Base,其具有10个字段和具有3个亚类SubclassA,SubclassB并且SubclassC每个具有10个不同的字段; 它们都是简单的豆子。问题是您有两个Base类型引用,并且想要查看它们的对应对象是否属于相同(子)类型并且相等。 作为解决方案,有一个原始解决方案,在该解决方案中,您首先要检查类型是否相等,然后检查所有字段,或者可以使用反射并动态查看它们是否属于同一类型,并遍历以“ get”开头的所有方法(约定超出配置),请同时在两个对象上调用它们,并在结果上调用equals。 boolean compare(Base base1, Base, base2) { if (base1 instanceof SubclassA && base2 instanceof SubclassA) { SubclassA subclassA1 = (SubclassA) base1; SubclassA subclassA2 = (SubclassA) base2; compare(subclassA1, subclassA2); } else if (base1 instanceof SubclassB && base2 instanceof SubclassB) { //the same } //boilerplate } …

1
如何改进Java,使其不再需要执行类型擦除?
关于泛型的官方Java教程介绍了类型擦除以及将其添加到编译器的原因: 当实例化泛型类型时,编译器会通过一种称为类型擦除的技术来转换这些类型,在该过程中,编译器将删除与类或方法中的类型参数和类型参数有关的所有信息。通过类型擦除,使用泛型的Java应用程序可以维护与泛型之前创建的Java库和应用程序的二进制兼容性。 这很可能是一种务实的方法,或者也许是最不痛苦的方法。但是,既然泛型已在整个行业得到广泛支持,那么为了使我们不需要类型擦除,该怎么办?不需要破坏向后兼容性是否可行,或者如果可行,是否可行? 上面引用中的最后一个语句是否已成为自我参照?也就是说:“类型擦除使使用泛型的Java应用程序能够与Java库和使用执行类型擦除的Java版本创建的应用程序保持二进制兼容性。”
16 java  jvm 

9
使用构造方法还是setter方法?
我正在编写具有Action类的UI代码,例如: public class MyAction extends Action { public MyAction() { setText("My Action Text"); setToolTip("My Action Tool tip"); setImage("Some Image"); } } 创建此Action类时,几乎可以假定Action该类是不可自定义的(从某种意义上说,它的文本,工具提示或图像在代码中的任何位置都不会更改)。现在,我们需要在代码中的某些位置更改动作文本。因此,我建议我的同事从构造函数中删除硬编码的操作文本,并接受它作为参数,以使每个人都被迫传递操作文本。类似于下面的代码- public class MyAction extends Action { public MyAction(String actionText) { setText(actionText); setTooltip("My Action tool tip"); setImage("My Image"); } } 但他认为,由于setText()方法属于基类,因此可以在创建操作实例的任何位置灵活地使用该方法传递操作文本。这样,无需更改现有的MyAction类。所以他的代码看起来像这样。 MyAction action = new MyAction(); //this creates action …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.