Tag: java

什么是反斜杠字符(\\)?

什么是string文字\\ 反斜杠 ? 它有什么作用? 我曾经想过,但我不明白。 我也读过维基百科 。 当我尝试打印以下内容时: System.out.println("Mango \\ Nightangle"); 输出结果是: Mango \ Nightangle 这个string文字的意义是什么?

如何取消SwingWorker的执行?

目前我有两个SwingWorker线程在后台工作。 如果发生exception,该方法停止工作,但线程仍然运行。 如果发生exception,我该如何停止执行并杀死doInBackground()的线程? this.cancel(true)不会销毁/closures线程。 我怎样才能做到这一点? @Override protected Boolean doInBackground() throws Exception { try { while (true) { //some code here return true; } } catch (Exception e) { this.cancel(true); //<– this not cancel the thread return false; } } 我在NetBeans的debugging中看到这些线程。 'AWT-EventQueue-0' em execução 'AWT-Windows' em execução 'SwingWorker-pool-1-thread-1' em execução 'SwingWorker-pool-1-thread-2' em execução //*em execução = […]

如何计算文本在JTextArea中所占的行数(以及每行的列数)?

在对这个问题中提出的问题感兴趣之后,我尝试了几次,失败了,我不喜欢那样:) 我认为,如果问题分解成小问题,可能有助于解决问题。 为了简单起见,假设JTextArea不会改变它的大小,所以我们不需要担心重新评估等。我认为重要的问题是: 1.如何计算某个文本在JTextArea中所占的行数? 2.JTextArea中的列数与它可以放在一行中的字符数之间的关系是什么? 所以我们可以计算行长。 请在下面find提供要处理的文本区域的示例代码: import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.SwingUtilities; public class TextAreaLines { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { JPanel p = new JPanel(); JFrame f = new JFrame(); JTextArea ta = new JTextArea("dadsad sasdasdasdasdasd"); ta.setWrapStyleWord(true); ta.setLineWrap(true); ta.setRows(5); ta.setColumns(5); p.add(ta); f.setContentPane(p); […]

string常量池

正如在这些Stackoverflow的问题所解释的: 问题1和问题2我明白,“ string文字 ”是interned在下列情况下: String s = "abc"; 而且,当以下情况时,JVM将创build一个新的String对象,而不是使用string池中现有的对象: String s = new String("abc"); 但是,在阅读以下两个类似的陈述之后,我有一个疑问。 从SCJP准备书 : 当编译器遇到一个string时,它会检查这个池是否存在一个相同的string。 如果find匹配项,则对新文字的引用将定向到现有的string,并且不会创build新的string字面值对象。 从JavaRanch: 在这种情况下,由于关键字“new”,我们实际上最终会有一个稍微不同的行为。 在这种情况下,对string文字的引用仍然放在常量表(string文字池)中,但是,当您使用关键字“new”时,JVM有义务在运行时创build一个新的String对象,而不是使用常量表中的一个。 所以如果我们在非池内存AND池内存中使用“new”创build一个对象,并且基于上面的定义,我们也会引用它。 当我们这样做时,JVM是否也应该返回相同的参考? : String one = new String("test"); String two = "test"; System.out.println(one.equals(two)); // true System.out.println(one == two); // false 因为在声明string时, String three = "test"; 它将已经存在于游泳池? 因此应该返回相同的参考和打印真实? 或者做以前的陈述意味着他们将被放入池内存中,但是当使用new操作符时,只是简单地跳过?

具有可变数量的组的正则expression式?

是否有可能创build一个具有可变数量的组的正则expression式? 运行这个例如… Pattern p = Pattern.compile("ab([cd])*ef"); Matcher m = p.matcher("abcddcef"); m.matches(); …我想有类似的东西 m.group(1) = "c" m.group(2) = "d" m.group(3) = "d" m.group(4) = "c" 。 (背景:我正在parsing一些数据行,其中一个“字段”是重复的,我想避免这些字段的matcher.find循环。 正如@Tim Pietzcker在评论中指出的, perl6和.NET有这个特性。

使用睡眠()为单个线程

我相当新的Java,并开始进入使用不同的线程,以便对我的代码的一部分使用wait()或sleep() ,并让其他人仍然运行。 对于这个项目,我正在使用带有javax.swing.*和java.awt.* JFrame导入。 我想要做的是有一个线程(在我的代码中,它是主要的起始线程)允许玩家在井字棋板上select一个空间,当他们点击它时,它会改变图标,那么AI会等待1秒,然后再从我创build的第二个线程回放。 不幸的是,每当我调用ait.sleep(1000) ( ait是我的线程名)时,两个线程在完成执行之前等待1秒钟。 谁能告诉我为什么睡一个线程是停止我的整个执行?

如何在Java中使用XPath访问OWL文档?

我有一个XML文件forms的OWL文档。 我想从这个文档中提取元素。 我的代码适用于简单的XML文档,但不适用于OWL XML文档。 实际上我正在寻找这个元素: /rdf:RDF/owl:Ontology/rdfs:label ,为此我做了这个: DocumentBuilder builder = builderfactory.newDocumentBuilder(); Document xmlDocument = builder.parse( new File(XpathMain.class.getResource("person.xml").getFile())); XPathFactory factory = javax.xml.xpath.XPathFactory.newInstance(); XPath xPath = factory.newXPath(); XPathExpression xPathExpression = xPath.compile("/rdf:RDF/owl:Ontology/rdfs:label/text()"); String nameOfTheBook = xPathExpression.evaluate(xmlDocument,XPathConstants.STRING).toString(); 我也尝试以这种方式只提取rdfs:label元素: XPathExpression xPathExpression = xPath.compile("//rdfs:label"); NodeList nodes = (NodeList) xPathExpression.evaluate(xmlDocument, XPathConstants.NODESET); 但是这个节点列表是空的。 请让我知道我要去哪里错了。 我正在使用Java XPath API。

结合Spring项目和泽西岛

我已经用Spring JPA构build了一个项目,现在我想在我的Jersey项目中使用它。 我在我的pom.xml中添加了我的SJPA项目作为依赖项 当我使用GET / POST / PUT / DELETE方法时,我想从我的SJPA使用我的服务类。 有没有简单的方法来做到这一点与注释? 或者我必须在每个类中获得AnnotationConfigApplicationContext ? 感觉有点浪费。 @Path("/users") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public final class UserResource { private AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); private PodcastService service; @GET public Response getAllPodcasts() { context.scan("org.villy.spring.service"); context.refresh(); service= context.getBean(PodcastService.class); return Response.ok(service.findAll()).build(); } }

我如何从jackson的一个自定义反序列化器中调用默认的反序列化器

我在Jackson的自定义反序列化程序中遇到问题。 我想访问默认序列化程序来填充我反序列化的对象。 在人口之后,我会做一些自定义的事情,但首先我想用默认的jackson行为反序列化对象。 这是我目前的代码。 public class UserEventDeserializer extends StdDeserializer<User> { private static final long serialVersionUID = 7923585097068641765L; public UserEventDeserializer() { super(User.class); } @Override @Transactional public User deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { ObjectCodec oc = jp.getCodec(); JsonNode node = oc.readTree(jp); User deserializedUser = null; deserializedUser = super.deserialize(jp, ctxt, new User()); // The previous […]

使用Java Sound API播放MP3

你能提出一个build议,我怎么写一首曲子呢? 我尝试了下面的代码片段,但是我得到了这个exception: import sun.audio.*; import java.io.*; class tester { public static void main(String args[]) throws Exception { InputStream in=new FileInputStream("tester.mp3"); AudioStream as=new AudioStream(in); AudioPlayer.player.start(as); } }