このエントリーは、GMOアドマーケティング Advent Calendar 2018 (https://qiita.com/advent-calendar/2018/gmo-am) の 【12/09】 の記事です。 GMOアドマーケティングとしては初のAdvent Calendar参戦です。 はじめに Go言語では、Table Driven Testという形式でテストコードを書くのが一般的です。 Goエンジニア(Gopher)の間では、「Goらしさ」という言葉がよく使われていて、 ソースコードはいつもGoらしく書くことが求められます。 Goらしさという言葉には曖昧なところが少しあると思いますが、 Table Driven Testは、Goらしさの一つです。 今回は、GoらしさをJavaに持ち込んでみた例を紹介します。 Table Driven Testとは Table Driven Tes
この記事は、Go3 Advent Calendar 2018 の8日目の記事です。 7日目は @codehex さんによる「Go でアプリケーションとクライアントのミドルウェアを作成する方法知ってますか?」でした。 本日はネタ全開でお送りいたします。 Disclaimer(免責事項) はじめに言い訳というか、これを書いた経緯というか。 プログラミング言語をdisる人をdisる芸を見たいですね! — yet another (@Maki_Daisuke) 2018年10月11日 というツイートをいたしまして、言った手前自分でやるか、と思い立った次第です。 なので、ネタとしてお楽しみください。 なお、炎上した場合にも、それすらもネタとして楽しむ所存ですのでアシカラズ。 それでは、いってみましょう。 Go言語がイケてない…だ…と……? Go言語はイケてない言語としてよくdisられているが、その中
This article explains the internal architecture of the Java Virtual Machine (JVM). The following diagram show the key internal components of a typical JVM that conforms to The Java Virtual Machine Specification Java SE 7 Edition. The components shown on this diagram are each explained below in two sections. First section covers the components that are created for each thread and the second section
JDK Documentation Contents The Java Platform, Standard Edition (Java SE) allows the development and deployment of a large variety of complex applications. This web page contains pointers to information to help you troubleshoot problems you encounter with applications developed with Java SE release 8. (For troubleshooting information for J2SE release 7, see Troubleshooting J2SE 7) Troubleshooting G
<!-- https://mvnrepository.com/artifact/com.google.guava/guava --> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>22.0</version> </dependency> import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; Map<String, String> m = new HashMap<>(); m.put("a", "あ"); m.put("i", "い"); m.put("u", "う"); BiMap<String, String> bimap = HashBiMap
I'm trying to add header for my request using HttpUrlConnection but the method setRequestProperty() doesn't seem working. The server side doesn't receive any request with my header. HttpURLConnection hc; try { String authorization = ""; URL address = new URL(url); hc = (HttpURLConnection) address.openConnection(); hc.setDoOutput(true); hc.setDoInput(true); hc.setUseCaches(false); if (username != n
Java の持つ、チェック例外(Checked exception) と非チェック例外(Unchecked exception) の違いです。基本的なところなので、ドキュメントも参照してください。 RuntimeException でない例外は、チェック例外とされ「メソッドで処理(catch または throws)されなければならない」としてコンパイラに扱われます。メソッドの中でチェック例外が発生したならば、try...catchで受け取るか、もしくは、 throws でメソッド自体が例外を投げることを宣言しなければコンパイルエラーとなります。 対して RuntimeException は、非チェック例外(実行時例外)です。例外が発生する事実がコンパイルに影響することはありません。そのかわり、例外処理のコーディングを忘れるなどで、意図しないところで実行時に例外が発生し、バグの元となる可能性
概要(お前は何を言っているんだ) コードレビューしていると、__Java8のfeature(Stream APIとかOptionalとか)を使ってるんだけど、Java7以前と大差ない書き方をされているコード__をよく見かける。 もっと皆に__Java8っぽいコード__を書いて欲しい。そうじゃないともったいない。 (*"Java8っぽい"の基準は割りと(かなり?)私見が入っている) 言葉を尽くしても伝わりづらいので、例を作ろう。 ← これ ついでに、「無理してJava8のfeature使うことで、逆に悪くなってしまっている例」も作ろう。 対象読者 Java8でコード書いてるけど、Java7以前の書き方が染み付いちゃっていてなかなか抜け出せない人 「forやnullチェックは絶対使うべきでない」という思いが強すぎて、何でもかんでもStream APIやOptional使ってる人 Notice
よくあったんですよ、手元で例外が発生して原因を辿るためにスタックトレースを辿ってたら、おやおや、「... 3 more」とか出てて、原因が辿れねーぞっていうケース。 HighLevelException: MidLevelException: LowLevelException at Junk.a(Junk.java:13) at Junk.main(Junk.java:4) Caused by: MidLevelException: LowLevelException at Junk.c(Junk.java:23) at Junk.b(Junk.java:17) at Junk.a(Junk.java:11) ... 1 more Caused by: LowLevelException at Junk.e(Junk.java:30) at Junk.d(Junk.java:27) at
jcmd が "well-known file is not secure" などと意味不明なことを申した場合、この例外は 以下の位置から上がっている。 JNIEXPORT void JNICALL Java_sun_tools_attach_LinuxVirtualMachine_checkPermissions (JNIEnv *env, jclass cls, jstring path) { jboolean isCopy; const char* p = GetStringPlatformChars(env, path, &isCopy); if (p != NULL) { struct stat64 sb; uid_t uid, gid; int res; /* * Check that the path is owned by the effective uid/gid of
Javaアプリケーションはどのような要素で構成されているか これまでは、Javaによって実現している部分を「Javaアプリケーション」としていましたが、問題発生時には、その構成要素のうちのどこに問題があり、どこに問題がないのかを切り分けないといけません。 図1 Javaアプリケーションの構成要素 Javaアプリケーションは、大きく「アプリケーション」と「Java仮想マシン」に分けられます(図1中央)。また、アプリケーションのアーキテクチャによっては、アプリケーションサーバ上でアプリケーションを動かします(図1右)。 アプリケーション~さまざまなリソースを使用してサービスを提供する アプリケーションには、これまで紹介したWebアプリケーションだけではなく、バッチやマイクロサービスなど、さまざまな形態のものがあります。また、Javaだけではなく、JVM上で動作するさまざまな言語でアプリ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く