Questions tagged «java»

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

3
对使用Web服务的基于桌面的客户端进行脱机故障转移的最佳方法是什么?
我有三个共享相同问题的新项目: 他们需要在Web系统上具有逻辑,并且他们需要通过RESTful Web服务与此类系统进行通信的本地应用程序(例如销售点)。 我的解决方案 我设法提出的解决方案是在桌面应用程序消息队列中实现,以在服务离线时存储操作,更准确地说是异步消息队列。但是,这很容易(如果这是最佳解决方案)。我还关注数据同步和冲突解决。 主要系统必须基于Web,因为利益相关者需要使用Web应用程序来进行报告和监视,并且Web服务将处理多个机构的请求。 桌面客户端(最好是瘦客户端)将使用Java(更具体地讲是Netbeans)实现,而Web系统将使用Symfony2实现。其中两个项目需要客户端进行硬件集成,因此使用Web技术制作桌面应用程序(例如Appcelerator Titanium)可能会很麻烦。 我的问题 什么是可扩展的更好解决方案,这意味着以最小的努力获得最高的效率(最好没有额外的成本,例如购买备用服务器进行本地操作)? 以前还有谁处理过?您是如何解决您的问题的?您可以分享什么课程? 您如何处理同步? 编辑:在第3点中向我的问题添加了缺失的部分


4
解释模型视图控制器
我在开发动态网站方面的经验主要限于Java Servlet。我已经使用Tomcat开发了各种Java servlet,并且我毫不犹豫地说我对这项技术以及前端的客户端HTML / CSS / Javascript相当精通。 当我想到“动态网站”时,我认为:用户请求带有查询字符串的URL,服务器接收查询,然后继续动态输出HTML以响应查询。这通常涉及与数据库的通信,以便获取请求的数据以进行显示。这基本上doGet是Java方法背后的思想HttpServlet。 但是,这些天来,我越来越多地听到有关诸如Django和Ruby on Rails之类的较新框架的信息,它们都利用了“模型视图控制器”架构。我已经阅读了许多 解释MVC的文章,但是我很难真正理解其好处。我知道一般的想法是将业务逻辑与UI逻辑分开,但是我看不出这与普通的Web编程有什么真正的不同。从本质上讲,Web编程迫使您将业务逻辑(后端服务器端编程)与UI编程(客户端HTML或Javascript)分开,因为两者存在于完全不同的编程领域。 问题: MVC在Java servlet之类的东西上提供了什么?更重要的是, MVC到底是什么?与使用Java servlet(甚至是Java servlet)甚至更传统的方法来开发动态网站时,MVC有何不同?像CGI这样的旧版本?如果可能,在解释MVC时,请提供一个示例,说明如何将MVC应用于Web开发过程以及它如何带来好处。

6
在此时,您将为.NET和Java之间的项目选择什么?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 您刚刚开始一个新项目,并且拥有Java和.NET这两种技术供您选择。您正在从事的项目不涉及具有可轻松在这两种技术之间进行选择的功能(例如,.NET具有我需要的功能,而Java则不需要),并且两者对您都可以正常工作(尽管您只能当然需要之一)。考虑到: 性能 可用工具(甚至是第三方工具) 跨平台兼容性 图书馆(尤其是第三方图书馆) 成本(Oracle似乎尝试通过Java货币化) 开发过程(最简单/最快) 还请记住,Linux不是您的主要平台,但您也想将项目移植到Linux / MacO。您绝对应该记住,围绕Oracle和Java社区而来的麻烦以及Mono和Java的局限性。如果在这两个方面都有经验的人都可以给出概述以及他们对选择哪个以及为什么的主观看法,将不胜感激。
13 java  .net  mono 

1
我们在滥用静态方法吗?
几个月前,我开始从事一个新项目,在遍历代码时,它使我震惊了所使用的静态方法。它们不仅保留了实用程序方法collectionToCsvString(Collection<E> elements),而且还保留了大量业务逻辑。 当我问负责背后原因的那个人时,他说这是逃避斯普林暴政的一种方式。它围绕着这个思考过程进行了一些操作:要实现客户收据创建方法,我们可以提供服务 @Service public class CustomerReceiptCreationService { public CustomerReceipt createReceipt(Object... args) { CustomerReceipt receipt = new CustomerReceipt(); // creation logic return receipt; } } 现在,那个家伙说他不喜欢让Spring不必要地管理类,主要是因为它强加了限制,即客户类必须是Spring bean本身。我们最终将一切都由Spring管理,这几乎迫使我们以过程方式使用无状态对象。或多或少在这里说了什么https://www.javacodegeeks.com/2011/02/domain-driven-design-spring-aspectj.html 因此,除了上面的代码,他有 public class CustomerReceiptCreator { public static CustomerReceipt createReceipt(Object... args) { CustomerReceipt receipt = new CustomerReceipt(); // creation logic return receipt; } } …

4
Callable <T>和Java 8的Supplier <T>有什么区别?
在CodeReview提出了一些建议之后,我一直在从C#切换到Java。因此,当我查看LWJGL时,我想起的一件事是,每次调用都Display必须在Display.create()调用该方法的同一线程上执行。记住这一点,我整理了一个看起来像这样的课程。 public class LwjglDisplayWindow implements DisplayWindow { private final static int TargetFramesPerSecond = 60; private final Scheduler _scheduler; public LwjglDisplayWindow(Scheduler displayScheduler, DisplayMode displayMode) throws LWJGLException { _scheduler = displayScheduler; Display.setDisplayMode(displayMode); Display.create(); } public void dispose() { Display.destroy(); } @Override public int getTargetFramesPerSecond() { return TargetFramesPerSecond; } @Override public Future&lt;Boolean&gt; isClosed() …
13 java 


2
比较TCP / IP应用程序与HTTP应用程序[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 我对开发使用Java编写的面向用户的大型网站感兴趣。 至于设计,我正在考虑开发独立的模块化服务,这些服务可以作为我的主要Web应用程序的数据提供者。 至于编写这些模块化服务(数据提供程序),我可以利用现有的框架(如Spring)并按照RESTful设计模式开发这些服务,并通过HTTP和消息格式(如JSON)公开资源...或者我可以利用现有的网络像Netty这样的框架(http://netty.io/)和像Protobufs这样的序列化格式(https://developers.google.com/protocol-buffers/docs/overview),并开发一个TCP服务器来来回发送序列化的protobuf有效载荷。 您何时应选择一个?使用Protobufs之类的序列化格式并通过网络发送字节流会有任何好处吗?仅使用JSON会产生开销吗?使用TCP / IP和使用HTTP之间有多少开销?什么时候应该使用Spring over Netty来建立这样的服务,反之亦然?
13 java  rest  http  serialization  tcp 

2
我应该考虑哪种k-best最短路径算法?
我正在解决图搜索优化问题。我需要通过有向加权图找到k个最佳非循环最短路径。 我知道有很多精确的和近似的k最佳算法,但是最近的大多数研究似乎都针对非常大,非常稀疏的关系图(例如道路路线和方向),而我的图都不是。 区分我的问题的方面: 该图包含大约160个顶点。 该图几乎完全连接(双向,所以〜160 ^ 2〜= 25k边) k会很小(可能小于10) 最大路径长度可能会有限制,并且也非常小(例如3-5条边) 我在上面说了“非循环”,但只是重申一下,解决方案不得包含循环。这不是1最佳最短路径的问题,但对于k最佳路径却成为问题-例如,考虑一条道路路线-从A到B的第二最短路径可能与1最佳路径相同,在某个地方的街区附近快速旅行。从数学上讲,这可能是最佳选择,但不是非常有用的解决方案。;-) 对于每个计算,我们可能需要即时重新加权边缘。边缘成本由几个因素的加权总和组成,最终要求(无论何时获得)都可以使用户指定自己对这些加权因子的优先级,从而改变边缘权重。这是一个相对较小的图(我们应该能够以几百KB表示它),因此将图克隆到内存中,应用重新加权,然后对克隆的图执行搜索可能是合理的。但是,如果有一种更有效的搜索方法,可以即时计算权重,那么我很感兴趣。 我正在研究Santos(K最短路径算法),Eppstein 1997(查找k最短路径)等中描述的算法。日元的算法很受关注,这主要是因为现有的Java 实现。我不害怕阅读研究论文,但是我认为值得抛开我的问题的细节,并要求提供指针以节省一些阅读时间。 而且,如果您有指向Java实现的指针,那就更好了。
13 java  algorithms 

1
是时候弃用同步,等待并通知了吗?
是否有一个场景(除了与古代JVM的兼容性以外),使用场景比synchronized使用Lock?谁能证明使用wait或使用notify较新的系统? 是否有任何算法必须在实现中使用其中之一? 我看到先前的问题涉及到此问题,但我想更进一步,实际上是deprecate这些问题。新设施已经消除了太多的陷阱,陷阱和警告。我只是觉得可能快要把它们标记为过时了。

6
记录规则和建议?
在我的组织中,我们整理了一些有关日志记录的规则/准则,我想知道您是否可以添加或评论。 我们使用Java,但您可能会对Loggin进行一般性评论-规则和建议 使用正确的日志记录级别 错误:出了点问题,需要立即修复 警告:此过程可以继续进行而不进行修复。应用程序应容忍此级别,但警告应始终得到调查。 INFO:重要过程完成的信息 调试。仅在开发期间使用 确保您知道要记录的内容。 避免日志记录影响应用程序的行为 日志记录的功能应该是在日志中写入消息。 日志消息应具有描述性,清晰,简短和简洁。 故障排除时,废话消息的使用很少。 将正确的属性放入log4j 输入正确的方法和类是自动编写的。 例: 日期文件-web log4j.rootLogger=ERROR, DATEDFILE log4j.logger.org.springframework=INFO log4j.logger.waffle=ERROR log4j.logger.se.prv=INFO log4j.logger.se.prv.common.mvc=INFO log4j.logger.se.prv.omklassning=DEBUG log4j.appender.DATEDFILE=biz.minaret.log4j.DatedFileAppender log4j.appender.DATEDFILE.layout=org.apache.log4j.PatternLayout log4j.appender.DATEDFILE.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%C{1}.%M] - %m%n log4j.appender.DATEDFILE.Prefix=omklassning. log4j.appender.DATEDFILE.Suffix=.log log4j.appender.DATEDFILE.Directory=//localhost/WebSphereLog/omklassning/ 日志值。 请记录应用程序中的值。 日志前缀。 声明日志记录是从应用程序的哪一部分写入的,最好带有项目约定前缀的内容,例如 PANDORA_DB 文字量。 注意不要有太多的日志文本。它会影响应用程序的性能。 登录格式: -有几种与log4j一起使用的变体和方法,但是当我们记录异常时,我们希望统一使用以下格式: logger.error("PANDORA_DB2: Fel vid hämtning av frist i TP210_RAPPORTFRIST", …
13 java  logging 

1
Java正则表达式模式-编译时间常数还是实例成员?
当前,我有几个单例对象,它们在正则表达式上进行匹配,并且Patterns的定义如下: class Foobar { private final Pattern firstPattern = Pattern.compile("some regex"); private final Pattern secondPattern = Pattern.compile("some other regex"); // more Patterns, etc. private Foobar() {} public static Foobar create() { /* singleton stuff */ } } 但是前几天有人告诉我这是不好的风格,Pattern应该始终在类级别定义s ,而看起来像这样: class Foobar { private static final Pattern FIRST_PATTERN = Pattern.compile("some regex"); …

2
我如何才能充分利用自己的编码技能?
到今年秋天,我的两个小型网站每月的最低/零投入应该总计约为1200美元,这足以让我过上舒适的生活。 我宁愿花几年的时间做一些真正好的事情,也可以帮助需要它的其他人,而不愿从事另一项业务。我想花4到5年的时间将自己的时间用于有价值的事业,并尽我所能来帮助我掌握已有的Web开发和编程技能。 问题是我不知道从哪里开始。我对自己的想法并不了解,并且对许多大型慈善机构表示怀疑。理想情况下,我想找到一个小型项目,每个人都没有薪水,专注于帮助。 有没有这么小的组织? 是否有人想出一个项目/网站/应用程序的想法,可以帮助有需要的人希望他们与我合作或与他们合作? 我知道这不是典型的StackOverflow 2 + 2 =?类型问题,有些人会很想删除它,但考虑到IT行业的慈善性质(仅看SO本身),这对于现在或在职业生涯中的许多开发人员来说都是非常相关的问题。考虑到日本最近发生的事件,这个问题与许多寻求与他人分享技能和时间来帮助他人的人特别相关。 真的很期待阅读您的想法/答案,谢谢大家
13 c#  java  php  javascript  jquery 

2
Logger.getLogger(MyClass.class)是初始化log4j记录器的最佳方法吗?
此Mkyong教程建议以这种方式初始化记录器: @Controller public class WelcomeController { private static final Logger logger = Logger.getLogger(WelcomeController.class); // etc } 现在,假设您使用的所有其他类都具有记录器,它们将以相同的方式初始化其记录器。 我的问题是-这是最好的方法吗?似乎...重复。
13 java  logging 

1
“语法醋”是什么意思
我正在阅读《Groovy in Action,第二版》,并在一个脚注中找到了以下内容: Java将“语法醋”浇在这样的结构上,以阻止程序员使用它。 该术语syntax vinegar在这里意味着什么? 我之前从未听说过这个词,并在DuckDuckGo和Google上进行了搜索,但找不到含义。但是它已在多个地方使用。如果有人可以澄清该术语的含义以及它在编程语言中的应用,那就太好了。希望这构成一个有效的问题。找不到其他我可以问这个的stackexchange网站。
12 java  syntax  groovy 

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.