我间歇性地得到这个错误。 我有一个程序,使用java aws sdk,并将数以千计的小文件加载到s3。 我间歇地看到这个错误。 在网上快速search后找不到任何有用的答案。 注意调用程序是单线程的。 基础aws java sdk似乎使用工作线程。 Status Code: 409, AWS Service: Amazon S3, AWS Request ID: 75E16E8DE2193CA6, AWS Error Code: OperationAborted, AWS Error Message: A conflicting conditional operation is currently in progress against this resource. Please try again., S3 Extended Request ID: 0uquw2YEoFamLldm+c/p412Lzd8jHJGFBDz3h7wN+/4I0f6hnGLkPMe+5LZazKnZ at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:552) at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:289) at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:170) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2648) […]
在我的Android应用程序中,我有这样的布局: <?xml version="1.0" encoding="utf-8" ?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <fragment android:id="@+id/map" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" class="com.google.android.gms.maps.SupportMapFragment"/> <Button android:id="@+id/button_back" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="CloseActivity" android:padding="0dp" android:text="@+string/back" /> </LinearLayout> 在预览和电话中,它看起来像: 正如你可以看到在底部区域的button,那里有一些填充。 我怎样才能摆脱这一点,并让button完全填充底部区域?
public void onClick(View v) { // TODO Auto-generated method stub switch(v.getId()){ case R.id.rollDice: Random ranNum = new Random(); int number = ranNum.nextInt(6) + 1; diceNum.setText(""+number); sum = sum + number; for(i=0;i<8;i++){ for(j=0;j<8;j++){ int value =(Integer)buttons[i][j].getTag(); if(value==sum){ inew=i; jnew=j; buttons[inew][jnew].setBackgroundColor(Color.BLACK); //I want to insert a delay here buttons[inew][jnew].setBackgroundColor(Color.WHITE); break; } } } break; } } 我想在改变背景之间的命令之间设置一个延迟。 […]
现在我一直在为一个类的Java项目工作。 它是一个链表的实现(这里叫做AddressList ,包含简单的节点叫做ListNode )。 问题是,一切都必须用recursionalgorithm来完成。 我能够做的一切都很好的方法之一: public AddressList reverse() ListNode: public class ListNode{ public String data; public ListNode next; } 现在我的reverse函数只是调用一个帮助函数,它需要一个参数来允许recursion。 public AddressList reverse(){ return new AddressList(this.reverse(this.head)); } 与我的帮助函数具有private ListNode reverse(ListNode current)的签名。 目前,我有迭代使用堆栈,但这不是规范要求。 我已经find了一个C语言的algorithm,它recursion地反转并手动将其转换为Java代码,并且它工作正常,但是我对此不了解。 编辑:没关系,我在此期间计算出来了。 private AddressList reverse(ListNode current, AddressList reversedList){ if(current == null) return reversedList; reversedList.addToFront(current.getData()); return this.reverse(current.getNext(), reversedList); } 虽然我在这里,有没有人看到这条路线的任何问题?
我有一些问题要为斯坦福大学parsing器创build一个新的模型。 我也下载了斯坦福大学的最新版本: http : //nlp.stanford.edu/software/lex-parser.shtml 在这里,Genia语料库有两种格式,xml和ptb(Penn Treebank)。 斯坦福德parsing器可以训练与ptd文件; 然后我下载了Genia语料库,因为我想用生物医学文本工作: http://categorizer.tmit.bme.hu/~illes/genia_ptb/ (链接不再可用) (genia_ptb.tar.gz) 然后,我有一个简短的Main类来获得一个生物医学句子的依赖表示: String treebankPath = "/stanford-parser-2012-05-22/genia_ptb/GENIA_treebank_v1/ptb"; Treebank tr = op.tlpParams.diskTreebank(); tr.loadPath(treebankPath); LexicalizedParser lpc=LexicalizedParser.trainFromTreebank(tr,op); 我尝试了不同的方式,但总是得到相同的结果。 我在最后一行有一个错误。 这是我的输出: Currently Fri Jun 01 15:02:57 CEST 2012 Options parameters: useUnknownWordSignatures 2 smoothInUnknownsThreshold 100 smartMutation false useUnicodeType false unknownSuffixSize 1 unknownPrefixSize 1 flexiTag true useSignatureForKnownSmoothing false parserParams edu.stanford.nlp.parser.lexparser.EnglishTreebankParserParams forceCNF […]
我知道这对于有经验的编程人员来说可能是一个愚蠢的问题。 但我有一个库(一个HTTP客户端),我的项目中使用的一些其他框架/jar子需要。 但他们都需要不同的主要版本,如: httpclient-v1.jar => Required by cralwer.jar httpclient-v2.jar => Required by restapi.jar httpclient-v3.jar => required by foobar.jar 类加载器是否足够聪明,以某种方式将它们分开? 最有可能不? Classloader如何处理这个问题,以防三个jar子中的Class是相同的。 哪一个被加载,为什么? Classloader只拾取一个jar子,还是混合任意的类? 例如,如果一个类是从Version-1.jar加载的,那么从同一个类加载器加载的所有其他类将全部进入相同的jar? 你如何处理这个问题? 有没有什么把“jar子”合并到“required.jar”中的一些技巧,这样就可以被Classloader看作是“一个单元/包”,或者以某种方式被链接?
我刚刚被公司要求在Clojure中重写一个大型的(50000单行代码)Java应用程序(一个使用JSP和servlet的web应用程序)。 有没有其他人有什么我应该小心的提示? 请记住,我很了解Java和Clojure。 更新 我做了重写,并投入生产。 这很奇怪,重写的速度很快,大约在6周内完成。 因为许多function并不需要,所以它更像是3000行的Clojure。 我听说他们对这个系统很满意,而且他们正在做他们想做的事情。 唯一的缺点是维护这个系统的人必须从零开始学习Clojure,并且被拖入它的脚步和尖叫声中。 我有一天接到他的电话,说他现在爱Lisp ..虽然..有趣:) 另外,我应该提到Vaadin。 使用Vaadin可能会占用尽可能多的代码,Clojure所做的一样。Vaadin仍然是我使用过的顶级Web框架,尽pipe现在我正在愤怒的学习ClojureScript! (请注意,Vaadin和ClojureScript都使用Google的GUI框架)
最近我注意到声明一个包含64个元素的数组要比声明65个元素的相同types的数组快很多(> 1000倍)。 这是我用来testing这个的代码: public class Tests{ public static void main(String args[]){ double start = System.nanoTime(); int job = 100000000;//100 million for(int i = 0; i < job; i++){ double[] test = new double[64]; } double end = System.nanoTime(); System.out.println("Total runtime = " + (end-start)/1000000 + " ms"); } } 这大约运行6毫秒,如果我用new double[65]replacenew double[64]大约需要7秒。 如果工作分散在越来越多的线程中,这个问题就会成倍地增加,这就是我的问题的起因。 不同types的数组(如int[65]或String[65]也会发生此问题。 大string不会出现此问题: […]
有人可以解释什么是transient和volatile修饰符在Java中的含义?
我最近在java中对内存分配scheme进行了大量的研究,而且我从各种来源阅读的时候都有很多疑问。 我已经收集了我的概念,并且要求通读所有的观点并对其进行评论。 我知道内存分配是特定于JVM的,所以我必须事先说,我的问题是Sun特有的。 类(由类加载器加载)进入堆中的特殊区域:永久生成 所有与类名相关的信息,与类关联的对象数组,与JVM使用的内部对象(如java / lang / Object)以及优化信息相关的信息都会进入永久生成区域。 所有静态成员variables都保留在永久变形区域。 对象走在另一堆:年轻一代 每个类的每个方法只有一个副本,方法是静态的或非静态的。 该副本放在永久代区域。 对于非静态方法,所有的参数和局部variables都进入堆栈 – 每当有一个具体的方法调用时,我们就得到一个新的与之关联的栈帧。 我不知道静态方法的局部variables存储在哪里。 他们在永久一代吗? 或者只是他们的参考文献被存储在永久代的区域,而实际的副本是在别的地方(哪里?) 我也不确定方法的返回types存储在哪里。 如果对象(在年轻一代)需要使用静态成员(在永久代),它们被赋予一个静态成员的引用&&它们被给予足够的内存空间来存储方法的返回types等。 感谢您通过这个!