Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
ã¨ã ã¹ãªã¼ã§ãã«ãããã¤ã¹ãã¼ã ã®ãã¼ã ãªã¼ãã¼ããã¦ããæ¾å@ma2geã§ãã ãã«ãããã¤ã¹ãã¼ã ã¯ãã¡ãã®ããã¯ããã°ã§ã¯ååºãªã®ã§ç°¡åã«ç´¹ä»ããã¨ãiOS ã Android çã®ããã¤ã¹å¯¾å¿ã主å°ããéçºãããã¼ã ã§ã主㫠iOS, Android ã®ãã¤ãã£ãã¢ããªéçºãããã¢ããªããå©ã API ãµã¼ã(ãããã Backends For Frontends(BFF))ãããã·ã¥éç¥åºç¤ã·ã¹ãã ã®ããã¯ã¨ã³ããµã¼ãã¹ãéçºãã¦ããã¾ãã ç§èªèº«ã¯3æã¾ã§ã¯å¥ãã¼ã ã§ Rails/Java/Elixir ãªã©ã触ã£ã¦ãã¾ãããã4æããç¾ãã¼ã ã«ç§»åããã¡ãã§ãã¾ãæ°ããªææ¦ãããã¦ããã£ã¦ãã¾ãã ðª åæ ä»åã¯ãã¤ãã£ãã¢ããªåãã® RESTful 㪠API ãµã¼ããã¬ã¬ã·ã¼ã¨ãªã£ã¦ããããã®ãµã¼ãã®ãªãã¥ã¼ã¢ã«ãæ¤è¨ãã¦ããè©±ãæ¸ãã¾ãã 対象ã®ãµã¼ãã¯ãã¬ã¼ã ã¯ã¼
GraalVM ã® native-image ã§ HelloWorld ãã¦ã¿ã ç®ç https://medium.com/graalvm/instant-netty-startup-using-graalvm-native-image-generation-ed6f14ff7692 ã«ããã¨ãgraalvm ãå©ç¨ãã㨠Java Application ã®èµ·åãå§åçã«é«éã«ãªãããã ãå®éã«ã©ã®ç¨åº¦é«éåãããã®ãã Hello World Application ãæå ã§å®è¡ãã¦ã¿ããã¨ã«ãã使ããã å®é¨ $ javac Hello.java $ java Hello Hello $ time java Hello Hello java Hello 0.08s user 0.02s system 102% cpu 0.097 total $ ~/Downloads/graal
JVM (Java ä»®æ³ãã·ã³) ã«ã¯ DNS ã®åå解決ã®çµæããã£ãã·ã¥ããæåãåãã£ã¦ããããã£ãã·ã¥ããã ããªãããã®ã ããã©ããã®ãã£ãã·ã¥ã§ã¯ DNS ã® TTL ãç¡è¦ãã¦ãã£ãã·ã¥ãããããåå解決ã®çµæãå¤ãã£ã¦ã JVM ããã®æ¥ç¶å ãåãæ¿ããã¾ã§ã«ï¼TTL ããæ³å®ãããæé以ä¸ã«ï¼æéããããããããã¯å ¨ãåãæ¿ãããªãã¨ãããã¨ãããããã®æåããã®å¶å¾¡ã«ã¤ãã¦èª¿ã¹ãã®ã§ããã®è©±ãããã ï¼ä»¥ä¸ã®è©±é¡ã§ã¯ Oracle JDK ããã³ OpenJDK ã対象ã«ãã¦è«ããã®ã§ããã以å¤ã® JVM å®è£ ã§ã©ããªã£ã¦ããã¯èª¿ã¹ã¦ããªããé©ç¨ã§ããç®æãããã°ããã§ãªãç®æãããããï¼ èæ¯ã»è§£èª¬ ãããã®ããã©ã«ãå¤ã¯åå解決æåæã¯ ã»ãã¥ãªãã£ã¼ããã¼ã¸ã£ã¼ãã¤ã³ã¹ãã¼ã«ããã¦ããå ´åã®ããã©ã«ãå¤ã¯ -1 (ãã£ã¨) ã§ãã»ãã¥ãªãã£ã¼ããã¼ã¸ã£ã¼ãã¤ã³ã¹ãã¼
ããã«ã¡ã¯ãã¢ããªã±ã¼ã·ã§ã³åºç¤ãã¼ã ã®éæ¨(@a_o_k_i_n_g)ã§ãã ä»å㯠Java ã¢ããªã±ã¼ã·ã§ã³ãã»ãã¥ã¢ã«éç¨ããä»çµã¿ã§ãã Java Security Manager ã«ã¤ãã¦ç´¹ä»ãããã¨æãã¾ãããã®ä»çµã¿ã¯ Linux ã®å¼·å¶ã¢ã¯ã»ã¹å¶å¾¡æ©æ§ï¼SELinux ã AppArmor) ã® Java çã«ç¸å½ãããã®ã§ãããã°ã©ã ã®æåãå¶éãããã¨ãã§ãã¾ããå¼ç¤¾ãæä¾ããã¯ã©ã¦ããµã¼ãã¹ cybozu.com ã§ãæå¹åããã¦ãã¾ãã ã»ãã¥ã¢ãªãµã¼ãã¹ãæä¾ããä¸ã§ã¯è¯ãä»çµã¿ã ã¨æãã®ã§ãããæ¤ç´¢ããã¨ãã Java Security Manager ã«é¢ããè¨äºããã¾ãå¤ããªãã£ããããæã ãå¾ãç¥è¦ãããã«è¨ãã¾ãã Java Security Manager ã¨ã¯ Java Security Manager (ä»¥ä¸ JSM) ã¨ã¯ãJava ã³ã¼ããå®
ããã»ã©ã®è¨äºã§ Lambda å¼ããæ§æç³ãã¨æ¸ãã¾ããããå®ã¯ãããããªãã®ããããã¾ããã Java 7 ã§è¿½å ããã invokedynamic å½ä»¤ã使ã£ã¦ã Lambda å¼ã®å®è¡ãå¹çåãããã¨ãã話ãããããã§ãã 以ä¸ã Brian Goetz ã® From Lambdas to Bytecode ã¨ããè³æããçè§£ã§ããç¯å²ãæ¸ãã¾ãã 2011 å¹´ã«éå¬ããã JVM Language Summit ã§çºè¡¨ããããã®ã¿ããã§ããç¾æç¹ã§ã®ä»æ§ã®ãã©ãã㯠JSR 335 ã®æ·»ä»ææ¸ metafactory.pdf ãã覧ãã ãããã¾ãã invokedynamic ã«ã¤ãã¦ã¯ 2æã® JJUG Night Seminar ã§ä½¿ã£ã Java 7 invokedynamic ã®æ¦è¦ããè¦ããã¾ãã ä¾ã¨ãã¦ã次ã®ãããªã³ã¼ããèãã¦ã¿ã¾ãã // ãªã¹ãã®è¦ç´ ãåã«ãã¦
Java ã®æ°ããªãã¼ã¸ã§ã³ã§ãã JDK 9 ã®ãªãªã¼ã¹ãç´ 2 ã¶æå¾ã«æ§ãã¦ããããæå¤§ã®ç®çã¨è¨ã£ã¦ãéè¨ã¯ãªã Project Jigsaw ãã³ãã¥ããã£ãã No ãçªãã¤ããããããã®æè¿ã®æµãããæ¥µåæè¦ãæ··ããã«äºå®ãæ·¡ã ã¨ç´¹ä»ããã Project Jigsaw ã¨ã¯ ä¹±æ´ã«è¨ã㨠Java ã®æ°ããåå²ã®ä»æ¹ã¨ãã¦ã¢ã¸ã¥ã¼ã«ãå°å ¥ãããã¨ããåçµ è©³ç´°ã¯æåå³åã§ãã以ä¸ã®ã¹ã©ã¤ãåè Prepare for Java 9 #jjug from Yuji Kubota åæ Java ã®æ©è½ã¯ JSR (Java Specification Request) ã JCP (Java Community Process) ã§æ¿èªããã¦åãã¦å°å ¥ããã Project Jigsaw ãä¾å¤ã§ã¯ãªã JSR 376: Java Platform Module System
ã¿ã¤ãã«ã®éãCapistranoã§Javaã®Webã¢ããªã±ã¼ã·ã§ã³ï¼warãã¡ã¤ã«ã¨ãJettyãçµã¿è¾¼ãã jarãã¡ã¤ã«ã¨ãï¼ããããã¤ãã¦ãã®ã§ãããã¿ãªããã©ããã£ã¦ããã§ããããï¼ï¼ ä¼ç¤¾ã§ã¯Java以å¤ã®ãããã¯ããçµæ§ãã£ã¦ãããããCapistranoã§ãããã¤ãã¦ããããJavaã®ãããã¯ããCapistranoã§ãããã¤ãã¦ããã®ã§ãããGradleã¨ãã§ããã®ãå¤ãã®ããªãã¼ããã æè¿Capistranoã®ãã¼ã¸ã§ã³ã2ãã3ã¸ä¸ããã¨ãã«ããã®è¾ºã®äºæ ãæ°ã«ãªã£ãã®ã§ããã°è¨äºã«æ¸ããã¨ã«ãã¾ããã Capistranoã®ãã¼ã¸ã§ã³ã¯ã3.2.1ã§ãã ã¤ã³ã¹ãã¼ã«ãã¿ã¹ã¯ã®ããã¼ãªã©ã¯ä»¥ä¸ã®ãã¼ã¸ãåèã«ãªãã¨æãã¾ãã å ¥é Capistrano 3 ~ å ¨ã¦ã®æä½æ¥ãçã¾ããåã«æ¶ãå»ããã | GREE Engineers' Blog Capistrano
Fork/Joinã¨ã¯ï¼ JavaSE7ã§ãµãã¼ããããjava.util.concurrent.ForkJoinPoolã¯ãExecutorServiceã®ä¸å¡ã§ãããä¸è¦ããã¨ThreadPoolExecutorã«ä¼¼ããããªãã®ã«æããããå®éã¯å ¨ãå¥ã®ãç°è³ªã®ãã®ã§ããã ForkJoinPoolã¯ãããã¦ãã«è¨ãã°Work-stealingã¢ã«ã´ãªãºã ã®å®è£ ã§ãããç¡æ°ã®ã¿ã¹ã¯ãç¡é§ãªãè«çCPUåã®ã¹ã¬ããã«å²ãå½ã¦ããã®ã§ããã ForkJoinPoolã¯ããã©ã«ãã§ã¯è«çCPUæ°åã®ã¹ã¬ãããã¼ã«ããã¤ããã«æ§ç¯ãããã ããã¦ãããã¿ã¹ã¯ãå®äºãããããããã¯å¾ ã¡ã«ãªã£ãããããã«å¥ã®ã¿ã¹ã¯ãã¢ã¯ãã£ãã¨ãªãã常ã«ãè«çCPUæ°åã®ã¹ã¬ããã ããã¢ã¯ãã£ãã«ãªãããã«èª¿æ´ãããã ã¾ããForkJoinPoolã«å ¥ããForkJoinTaskã¯ããã®ã¿ã¹ã¯ã®ä¸ã§æ°ããªã¿ã¹ã¯
Suppose that I have two int[] arrays input1 and input2. I want to take only positive numbers from the first one, take distinct numbers from the second one, merge them together, sort and store into the resulting array. This can be performed using streams: int[] result = IntStream.concat(Arrays.stream(input1).filter(x -> x > 0), Arrays.stream(input2).distinct()).sorted().toArray(); I want to speed u
ããªãã«ã¨ã£ã¦éè¦ãªãããã¯ãååã®ææ°æ å ±ãå ¥æãã¾ãããææ°ã®æ´å¯ã¨ãã¬ã³ãã«é¢ããææ°æ å ±ãå³åº§ã«åãåãã¾ãããã ç¶ç¶çãªå¦ç¿ã®ããã«ãç¡æã®ãªã½ã¼ã¹ã«æè»½ã«ã¢ã¯ã»ã¹ãã¾ãããããããã¯ããã©ã³ã¹ã¯ãªããä»ãåç»ãããã³ãã¬ã¼ãã³ã°ææã è¨äºãä¿åãã¦ããã¤ã§ãèªããã¨ãã§ãã¾ãè¨äºãããã¯ãã¼ã¯ãã¦ãæºåãã§ããããã¤ã§ãèªãã¾ãã
ã¢ãã¤ã«ã¢ããªã®ã¹ã¬ãããã¼ã«ãµã¤ãºã®æé©åï¼ç»åèªã¿è¾¼ã¿ç·¨ï¼ - ã¯ãã¯ãããéçºè ããã° ããã«å¯¾ãããI/Oå¤éåããã°ã¹ã¬ããæ°ã¨ãæ°ã«ããªãã¦ããããããªãã®ãã¨ããæè¦ãèãã¦ããããããã ãªã¨æã£ãã®ã§æ¤è¨¼ãã¦ã¿ã¾ããã åæç¥è IOå¤éåã«ã¯java.nio.channels.Selector 㨠java.nio.channels.SocketChannel ã使ã Selector 㯠Perlã® IO::Select ã«ããä¼¼ãã¤ã³ã¿ã¼ãã§ã¤ã¹ã¨æ©è½ãæã¤ ã¤ã¾ã select(2) ãªããåçã®ã·ã¹ãã ã³ã¼ã«ã¸ã®ã¤ã³ã¿ã¼ãã§ã¤ã¹ Androidã®å ´åã«ä½¿ãããã®ã¯ epool(2) ãã SocketChannel 㯠Selector ã§å¤éåã§ããsocket Androidã®documentã¯ãã¾ããªãããOracleã®ããã¥ã¡ã³ããããã®ã§åèã«ãªã Se
Summary Enhance the Java Language to extend type inference to declarations of local variables with initializers. Goals We seek to improve the developer experience by reducing the ceremony associated with writing Java code, while maintaining Java's commitment to static type safety, by allowing developers to elide the often-unnecessary manifest declaration of local variable types. This feature would
public class Main { public static void main(String[] args) throws Throwable { int num = 100; double[] syncList = new double[num]; double[] atomicList = new double[num]; for (int i = 0; i < num; i++) { IntTest it = new IntTest(); double sync = test(()->it.testSync()); double atomic = test(()->it.testAtomic()); syncList[i] = sync; atomicList[i] = atomic; System.out.println(i+" "+sync+" "+atomic); }
Javaã®Atomicããã±ã¼ã¸ã«ã¯AtomicFloatã¨ãAtomicDoubleãç¡ãã¦ï¼ããã¥ã¡ã³ããè¦ã㨠ã¾ããFloat.floatToIntBits ã Float.intBitstoFloat 夿ã使ç¨ã㦠float ãä¿æããããDouble.doubleToLongBits ã Double.longBitsToDouble 夿ã使ç¨ã㦠double ãä¿æãããã§ãã¾ãã ã¨ãããã¨ãªã®ã§ï¼ä½ã£ã¦ã¿ãï¼ import java.util.concurrent.atomic.AtomicInteger; public class AtomicFloat { private static final int toI(float f){ return Float.floatToRawIntBits(f); } private static final float
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}