トップページ⇒tech
1001コメント349KB

★★Java質問・相談スレッド150★★

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2011/12/24(土) 14:24:45.14
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 (p)ttp://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

前スレッド
★★Java質問・相談スレッド149★★
http://toro.2ch.net/test/read.cgi/tech/1318935200/
0002デフォルトの名無しさん2011/12/24(土) 14:29:03.52
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing & JavaFX 10
http://toro.2ch.net/test/read.cgi/tech/1316592884/
■ SWT は --
Java 高速GUI SWT 3
http://hibari.2ch.net/test/read.cgi/tech/1164877399/

■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part22
http://hibari.2ch.net/test/read.cgi/tech/1295766416/
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 9
http://hibari.2ch.net/test/read.cgi/tech/1249357352/
■ Androidアプリの作成は --
Androidプログラミング質問スレ Part16
http://toro.2ch.net/test/read.cgi/tech/1324191723/

■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 71 ★★
http://hibari.2ch.net/test/read.cgi/tech/1309076891/
0003デフォルトの名無しさん2011/12/24(土) 14:33:09.26
■ NetBeansに関する雑談は --
NetBeans Part6
http://hibari.2ch.net/test/read.cgi/tech/1273665879/
■ Eclipseに関する雑談は --
Eclipse統合M32【Java/C++/Ruby/Python/Perl】
http://toro.2ch.net/test/read.cgi/tech/1320318310/

**** 開発環境、実行環境は ****
■ Java SE Downloads
http://www.oracle.com/technetwork/java/javase/downloads/index.html
0004デフォルトの名無しさん2011/12/24(土) 15:05:31.56
SwingとAWTとSWTはどのように選択していいのかわかりません
0005デフォルトの名無しさん2011/12/24(土) 15:07:48.93
とりあえず全部やってみて一番好きなの使えばいいんじゃね?
0006デフォルトの名無しさん2011/12/24(土) 15:26:41.51
テンプレに入れといてやろう

■C#の話題はスレチなので巣におかえりください --
C#, C♯, C#相談室 Part69
http://toro.2ch.net/test/read.cgi/tech/1323354868/
0007デフォルトの名無しさん2011/12/24(土) 15:39:29.17
>>4
何回目だよこの質問
0008デフォルトの名無しさん2011/12/24(土) 15:46:24.63
ごちゃごちゃ言ってないで回答しろ
0009デフォルトの名無しさん2011/12/24(土) 15:49:47.91
>>8文盲おつ
>>4は>>2に書いてあるだろ。アホらし
0010デフォルトの名無しさん2011/12/24(土) 15:52:41.23
こがらし
0011デフォルトの名無しさん2011/12/24(土) 16:02:39.60
>>6
Javaやるにはまだ早い or 見込みないから、C#やった方がいいよってのはあったけど、C#の質問は今までなかっただろ
それともC#はGUI出来る人多いのにJavaではSwing GUIを出来る人があまりいないからC#のGUIをひがんでるんの?w
0012デフォルトの名無しさん2011/12/24(土) 16:03:25.45
filewriterとbufferedwriter大差なくね?

buffの利用価値がわからん
0013デフォルトの名無しさん2011/12/24(土) 16:08:05.64
>>11
おまえの周囲の紹介なんか興味ねーよ。スレチでノイズだからあっち池ってだけだ。
どっちも使える俺は住みわけてるお前もそうするよな?
0014デフォルトの名無しさん2011/12/24(土) 16:13:51.36
>>12
メモリ上かファイルかString(char[])のままかbyte[]に変換されるかの違いがある。
0015デフォルトの名無しさん2011/12/24(土) 20:28:36.96
前スレ最後の言語仕様云々の話は面白かった。
話してた人たちありがとう。

仕事でやってる人たちはあれぐらい知ってるのか。
すげーな。
0016デフォルトの名無しさん2011/12/24(土) 23:59:39.99
var latlng = new google.maps.LatLng(35, 139.);
var lat = google.maps.LatLng.lat;
alert(lat);

このvar latに「35」の値が格納されるようにしたいんだけどアンディファインドが出てしまう、どうすればいいんだろう?
現在だとLatとLngが同時に格納されているからlatとlngそれぞれに分けたい
0017デフォルトの名無しさん2011/12/25(日) 00:02:39.67
ごめん、googlemapsapiのスレでないとスレ違いかな?
失礼
0018デフォルトの名無しさん2011/12/25(日) 00:42:46.71
メリークリスマス

さて質問です。

enumでメソッドやフィールドが定義できるが、
メリットはなんなの?
0019デフォルトの名無しさん2011/12/25(日) 03:21:57.69
>>18
enumに使いたい文字が使用禁止文字だったり数字そのものだったりしたとき、どうする?
またその文字列や値をenumに変換したい場合、そのメソッドはどこに置くべき?
0020デフォルトの名無しさん2011/12/25(日) 09:20:27.50
>>19
むむっ
ちょっと考えてみます!

ありがとう!
0021デフォルトの名無しさん2011/12/25(日) 18:35:54.45
javadocの日本語版のダウンロードするやつどこ?
オラクルになってからリンク切れてどこにあるかさっぱりわからない。
0022デフォルトの名無しさん2011/12/25(日) 19:41:17.63
質問です
javaでmp3使えるようにするにはどうしたらいいですか?
0023デフォルトの名無しさん2011/12/25(日) 19:47:40.36
>>22
http://bit.ly/tvL1NH
0024デフォルトの名無しさん2011/12/25(日) 22:19:27.03
このエラーが出るときってどうすればなおるんでしょうか?#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000, pid=4988, tid=5752
#
# JRE version: 6.0_30-b12
# Java VM: Java HotSpot(TM) Client VM (20.5-b03 mixed mode windows-x86 )
# Problematic frame:
# C 0x00000000
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
0025242011/12/25(日) 22:21:19.02
--------------- T H R E A D ---------------

Current thread (0x51c8e000): JavaThread "Minecraft main thread" daemon [_thread_in_native, id=5752, stack(0x52480000,0x524d0000)]

siginfo: ExceptionCode=0xc0000005, reading address 0x00000000

Registers:
EAX=0x524cf31c, EBX=0x524cf690, ECX=0x00000000, EDX=0x525f0ea8
ESP=0x524cf30c, EBP=0x524cf61c, ESI=0x890119f4, EDI=0x00380456
EIP=0x00000000, EFLAGS=0x00010297

Top of Stack: (sp=0x524cf30c)
0x524cf30c: 6906eac4 890119f4 524cf31c 525f0ea8
0x524cf31c: 00000002 00000000 0001a52a 00000000
0x524cf32c: 525f0ea8 00000000 00000000 00002000
0x524cf33c: 00002000 69071aef 00000000 00000000
0x524cf34c: 525f0ea8 0001a52a 00000000 525d4880
0x524cf35c: 525beab0 52957f38 00000000 00000000
0x524cf36c: 00000000 00000000 525669c8 000a0008
0x524cf37c: 00000000 24e8bcf3 76fc5078 76fc5078
0026242011/12/25(日) 22:25:29.49

Register to memory mapping:

EAX=0x524cf31c is pointing into the stack for thread: 0x51c8e000
EBX=0x524cf690 is pointing into the stack for thread: 0x51c8e000
ECX=0x00000000 is an unknown value
EDX=0x525f0ea8 is an unknown value
ESP=0x524cf30c is pointing into the stack for thread: 0x51c8e000
EBP=0x524cf61c is pointing into the stack for thread: 0x51c8e000
ESI=0x890119f4 is an unknown value
EDI=0x00380456 is an unknown value


Stack: [0x52480000,0x524d0000], sp=0x524cf30c, free space=316k
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j org.lwjgl.opengl.WindowsContextImplementation.nSwapBuffers(Ljava/nio/ByteBuffer;)V+0
j org.lwjgl.opengl.WindowsContextImplementation.swapBuffers()V+35
j org.lwjgl.opengl.Context.swapBuffers()V+3
j org.lwjgl.opengl.Display.swapBuffers()V+31
j org.lwjgl.opengl.Display.update(Z)V+44
j org.lwjgl.opengl.Display.update()V+1
j org.lwjgl.opengl.Display.initContext()V+19
j org.lwjgl.opengl.Display.create(Lorg/lwjgl/opengl/PixelFormat;Lorg/lwjgl/opengl/Drawable;Lorg/lwjgl/opengl/ContextAttribs;)V+97
j org.lwjgl.opengl.Display.create(Lorg/lwjgl/opengl/PixelFormat;)V+9
j net.minecraft.client.Minecraft.a()V+151
j net.minecraft.client.Minecraft.run()V+6
j java.lang.Thread.run()V+11
v ~StubRoutines::call_stub
0027242011/12/25(日) 22:26:29.92
VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
def new generation total 157248K, used 87179K [0x04b00000, 0x0f5a0000, 0x1a050000)
eden space 139776K, 62% used [0x04b00000, 0x0a022c90, 0x0d380000)
from space 17472K, 0% used [0x0d380000, 0x0d380000, 0x0e490000)
to space 17472K, 0% used [0x0e490000, 0x0e490000, 0x0f5a0000)
tenured generation total 349568K, used 0K [0x1a050000, 0x2f5b0000, 0x44b00000)
the space 349568K, 0% used [0x1a050000, 0x1a050000, 0x1a050200, 0x2f5b0000)
compacting perm gen total 14592K, used 14414K [0x44b00000, 0x45940000, 0x48b00000)
the space 14592K, 98% used [0x44b00000, 0x45913960, 0x45913a00, 0x45940000)
No shared spaces configured.

Code Cache [0x02b00000, 0x02ce0000, 0x04b00000)
total_blobs=1245 nmethods=958 adapters=221 free_code_cache=31605440 largest_free_block=192
0028242011/12/25(日) 22:30:07.90
Dynamic libraries:
0x00400000 - 0x00425000 C:\Program Files\Java\jre6\bin\javaw.exe
0x76f00000 - 0x77028000 C:\Windows\system32\ntdll.dll
0x769b0000 - 0x76a8c000 C:\Windows\system32\kernel32.dll
0x75c70000 - 0x75d36000 C:\Windows\system32\ADVAPI32.dll
0x77040000 - 0x77103000 C:\Windows\system32\RPCRT4.dll
0x75d40000 - 0x75ddd000 C:\Windows\system32\USER32.dll
0x77110000 - 0x7715b000 C:\Windows\system32\GDI32.dll
0x6daf0000 - 0x6db0e000 C:\Windows\system32\ShimEng.dll
0x753d0000 - 0x753fc000 C:\Windows\system32\apphelp.dll
0x6d420000 - 0x6d4a8000 C:\Windows\AppPatch\AcLayers.dll
0x75e60000 - 0x76971000 C:\Windows\system32\SHELL32.dll
0x75b40000 - 0x75bea000 C:\Windows\system32\msvcrt.dll
0x75de0000 - 0x75e39000 C:\Windows\system32\SHLWAPI.dll
0x75870000 - 0x759b5000 C:\Windows\system32\ole32.dll
0x75630000 - 0x756bd000 C:\Windows\system32\OLEAUT32.dll
0x75450000 - 0x7546e000 C:\Windows\system32\USERENV.dll
0x75430000 - 0x75444000 C:\Windows\system32\Secur32.dll
0x72550000 - 0x72592000 C:\Windows\system32\WINSPOOL.DRV
0x74fe0000 - 0x74ff4000 C:\Windows\system32\MPR.dll
0029242011/12/25(日) 22:30:37.00

0x745c0000 - 0x745ff000 C:\Windows\system32\UxTheme.dll
0x73560000 - 0x73592000 C:\Windows\system32\WINMM.dll
0x74180000 - 0x741b9000 C:\Windows\system32\OLEACC.dll
0x75290000 - 0x75306000 C:\Windows\system32\NETAPI32.dll
0x75590000 - 0x75597000 C:\Windows\system32\PSAPI.DLL
0x73150000 - 0x73164000 C:\Windows\system32\MSACM32.dll
0x74b70000 - 0x74b78000 C:\Windows\system32\VERSION.dll
0x72610000 - 0x72615000 C:\Windows\system32\sfc.dll
0x738a0000 - 0x738ad000 C:\Windows\system32\sfc_os.dll
0x76d70000 - 0x76efa000 C:\Windows\system32\SETUPAPI.dll
0x71420000 - 0x7142c000 C:\Windows\system32\dwmapi.dll
0x759d0000 - 0x75b03000 C:\Windows\system32\urlmon.dll
0x76b80000 - 0x76d69000 C:\Windows\system32\iertutil.dll
0x73280000 - 0x73285000 C:\Windows\system32\SHUNIMPL.dll
0x75e40000 - 0x75e5e000 C:\Windows\system32\IMM32.DLL
0x757a0000 - 0x75868000 C:\Windows\system32\MSCTF.dll
0x755a0000 - 0x755a9000 C:\Windows\system32\LPK.DLL
0x75bf0000 - 0x75c6d000 C:\Windows\system32\USP10.dll
0030242011/12/25(日) 22:30:58.78
0x743b0000 - 0x7454e000 C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.6002.18305_none_5cb72f2a088b0ed3\comctl32.dll
0x7c340000 - 0x7c396000 C:\Program Files\Java\jre6\bin\msvcr71.dll
0x6d7f0000 - 0x6da9f000 C:\Program Files\Java\jre6\bin\client\jvm.dll
0x6d7a0000 - 0x6d7ac000 C:\Program Files\Java\jre6\bin\verify.dll
0x6d320000 - 0x6d33f000 C:\Program Files\Java\jre6\bin\java.dll
0x6d7e0000 - 0x6d7ef000 C:\Program Files\Java\jre6\bin\zip.dll
0x6d000000 - 0x6d14c000 C:\Program Files\Java\jre6\bin\awt.dll
0x00bb0000 - 0x00bdc000 C:\Windows\DOWNLO~1\CnsMin.dll
0x00be0000 - 0x00bef000 C:\Program Files\Logicool\SetPoint\GameHook.dll
0x01c60000 - 0x01c71000 C:\Program Files\Logicool\SetPoint\lgscroll.dll
0x723f0000 - 0x7248b000 C:\Windows\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_d09154e044272b9a\MSVCR80.dll
0x72490000 - 0x72517000 C:\Windows\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_d09154e044272b9a\MSVCP80.dll
0x748b0000 - 0x748d1000 C:\Windows\system32\NTMARTA.DLL
0x75750000 - 0x75799000 C:\Windows\system32\WLDAP32.dll
0x75b10000 - 0x75b3d000 C:\Windows\system32\WS2_32.dll
0x77030000 - 0x77036000 C:\Windows\system32\NSI.dll
0x75060000 - 0x75071000 C:\Windows\system32\SAMLIB.dll
0031242011/12/25(日) 22:31:57.97

0x6d600000 - 0x6d613000 C:\Program Files\Java\jre6\bin\net.dll
0x746f0000 - 0x74704000 C:\Windows\system32\wpclsp.dll
0x74c10000 - 0x74c4b000 C:\Windows\system32\mswsock.dll
0x74c70000 - 0x74c75000 C:\Windows\System32\wship6.dll
0x6d620000 - 0x6d629000 C:\Program Files\Java\jre6\bin\nio.dll
0x747b0000 - 0x747b5000 C:\Windows\System32\wshtcpip.dll
0x747a0000 - 0x747af000 C:\Windows\system32\NLAapi.dll
0x74e40000 - 0x74e59000 C:\Windows\system32\IPHLPAPI.DLL
0x74e00000 - 0x74e35000 C:\Windows\system32\dhcpcsvc.DLL
0x75080000 - 0x750ac000 C:\Windows\system32\DNSAPI.dll
0x74df0000 - 0x74df7000 C:\Windows\system32\WINNSI.DLL
0x74dc0000 - 0x74de2000 C:\Windows\system32\dhcpcsvc6.DLL
0x706f0000 - 0x706ff000 C:\Windows\system32\napinsp.dll
0x706b0000 - 0x706c2000 C:\Windows\system32\pnrpnsp.dll
0x70650000 - 0x70671000 C:\Program Files\Bonjour\mdnsNSP.dll
0x706e0000 - 0x706e8000 C:\Windows\System32\winrnr.dll
0x729f0000 - 0x729f6000 C:\Windows\system32\rasadhlp.dll
0x74930000 - 0x7496b000 C:\Windows\system32\rsaenh.dll
0x756c0000 - 0x75744000 C:\Windows\system32\CLBCatQ.DLL
0x73af0000 - 0x73bbd000 C:\Windows\system32\ime\imejp10\imjptip.dll
0x73a30000 - 0x73aef000 C:\Windows\system32\imjp10k.dll
0x73e30000 - 0x73e8c000 C:\Windows\system32\ime\shared\imetip.dll
0x74560000 - 0x7456b000 C:\Windows\system32\ime\shared\imecfm.dll
0x739d0000 - 0x73a24000 C:\Windows\system32\ime\imejp10\imjpapi.dll
0x74120000 - 0x74143000 C:\Windows\system32\ime\shared\imjkapi.dll
0x6d780000 - 0x6d788000 C:\Program Files\Java\jre6\bin\sunmscapi.dll

0032242011/12/25(日) 22:32:23.09
0x74ee0000 - 0x74fd2000 C:\Windows\system32\CRYPT32.dll
0x75040000 - 0x75052000 C:\Windows\system32\MSASN1.dll
0x524d0000 - 0x5253b000 C:\Users\kkatunori\AppData\Roaming\.minecraft\bin\natives\lwjgl.dll
0x63860000 - 0x6392b000 C:\Windows\system32\OPENGL32.dll
0x6e6f0000 - 0x6e713000 C:\Windows\system32\GLU32.dll
0x6d670000 - 0x6d755000 C:\Windows\system32\DDRAW.dll
0x710a0000 - 0x710a6000 C:\Windows\system32\DCIMAN32.dll
0x6d350000 - 0x6d356000 C:\Program Files\Java\jre6\bin\jawt.dll
0x6ed60000 - 0x6ed68000 C:\Windows\system32\atkogl32.dll
0x69030000 - 0x69b89000 C:\Windows\system32\atioglxx.dll
0x4b8b0000 - 0x4b8dd000 C:\Windows\system32\atiadlxx.dll
0x74660000 - 0x7468d000 C:\Windows\system32\WINTRUST.dll
0x76980000 - 0x769a9000 C:\Windows\system32\imagehlp.dll
0033デフォルトの名無しさん2011/12/25(日) 22:32:36.66
質問:
次のようなstatic classで
スタックオーバーフローになるんだけど理由分かります?

public class Boss {
__public static class Loader {
____LoaderImp imp = new LoaderImp();
____imp.load();
__}
}

class LoaderImp {
__void load() {
____// nothing
__}
}
0034242011/12/25(日) 22:33:39.28
VM Arguments:
jvm_args: -Xms512m -Xmx1024m
java_command: C:\Users\kkatunori\Desktop\Minecraft.exe C:\Users\kkatunori\Desktop\マイクラ.bat
Launcher Type: SUN_STANDARD

Environment Variables:
CLASSPATH=.;C:\Program Files\Java\jre6\lib\ext\QTJava.zip
PATH=C:\Free\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files\Common Files\Roxio Shared\DLLShared\;C:\Program Files\Common Files\Roxio Shared\DLLShared\;
C:\Program Files\Common Files\Roxio Shared\9.0\DLLShared\;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;
C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Program Files\QuickTime\QTSystem\;
C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\C:\java\jdk1.6.0_30\bin:;c:\java\jdk1.6.0_30\bin;;C:\Program Files\Java\jre6\bin
USERNAME=kkatunori
OS=Windows_NT
PROCESSOR_IDENTIFIER=x86 Family 6 Model 15 Stepping 11, GenuineIntel
0035242011/12/25(日) 22:34:06.98
--------------- S Y S T E M ---------------

OS: Windows XP Build 2600 Service Pack 2

CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 15 stepping 11, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3

Memory: 4k page, physical 2095696k(824876k free), swap 4444316k(2280068k free)

vm_info: Java HotSpot(TM) Client VM (20.5-b03) for windows-x86 JRE (1.6.0_30-b12), built on Nov 10 2011 01:51:00 by "java_re" with MS VC++ 7.1 (VS2003)

time: Sun Dec 25 22:06:20 2011
elapsed time: 15 seconds

0036332011/12/25(日) 22:37:37.66
LoaderImpのクラス定義をLoaderの定義内で行うと
スタックオーバーフローは起きないのですが、意味不明です。
スタックトレースにはスタックオーバーフローとしかでてこないので
javaの内部クラス文法上のルールに知らないものがあるのかな。。。
0037デフォルトの名無しさん2011/12/25(日) 22:42:07.99
>>24
かつのり君ぺろぺろ
0038デフォルトの名無しさん2011/12/25(日) 22:50:52.74
内部クラス仕様を完全に理解すれば初心者卒業、内部クラス(およそ4パターン)を完全に手足の如く使いこなせれば初級者卒業だと思います。
0039332011/12/25(日) 23:02:06.37
内部クラスのネストが深いとダメみたいなものがあるかもしれませんね。
パッケージ間でクラスの名前衝突に対して内部クラスで解決した結果なのです。

public class Web {
__public static class Loader {
____public interface Listener {
____}
__}
}
0040デフォルトの名無しさん2011/12/25(日) 23:13:35.69
おいおい。釣じゃないなら質問の仕方がへったくそだなあ。

>> 33
> のような
じゃなくて、エラーが再現する最短のコードをはれよ。
それ、見ただけで動かないことわかるだろ。
0041デフォルトの名無しさん2011/12/25(日) 23:15:47.57
>>39
スタックオーバフローと名前衝突が関係あるわけないだろw
もともとのバグじゃないエラーをつぶして解決した気になってるだけだな
0042332011/12/25(日) 23:45:22.09
再現コードを別途に作るとできないんですよ。。。

たぶん内部クラスをimportしなくても親クラスをimportすれば
コンパイルエラーにはなりませんが、これが原因のような気がします。

import sample.Web;
class AAA{
__void hoge(){
____Web.Loader loader = new Web.Loader();
____loader.load();// メソッドは空
__}
}
0043332011/12/26(月) 00:08:39.28
>>42の予測ははずれでした。
やはり打ち間違えかなにかで委譲の際に再帰してたのでしょうね。
お騒がせしました。
0044デフォルトの名無しさん2011/12/26(月) 03:46:15.92
jniでnullを返すにはどうすればよいか知っていたら教えて欲しい。
c++のNULL(VC)や0(int)を返してもJavaのnullとは異なっているようで、文字通りアドレス0を参照してしまうような感じで困っている。
jni.hをみているが、nullで検索しても見付からない。
0045デフォルトの名無しさん2011/12/26(月) 03:47:39.72
>>22じゃないけど、
>>23に感動した!
0046442011/12/26(月) 03:56:17.63
>>44はわすれてください。
申し訳ない。勘違いでした。
0047デフォルトの名無しさん2011/12/26(月) 08:25:28.39
byte[] b;
int i;

while(true)
{
b = new byte[32];
b[0] = 1;
b[1] = 2;
i = b[0] + b[1];
}

ループ内で作られたbは、逐次開放されますか?それともこのループを含むオブジェクトが使われなくなるまで開放されませんか?
0048デフォルトの名無しさん2011/12/26(月) 10:23:08.73
b = new Byte[32]のたびに、以前にbに存在していた領域は、
参照カウントが0になるので、Java的には開放準備状態になる。
ただ実際の開放=GCのタイミングは実装依存。
一般的なJVMなら恐らくループを抜けた直後でもされない。
0049デフォルトの名無しさん2011/12/26(月) 11:11:24.28
>>47
一般的なVM実装ならnewしてメモリ足りない場合、
一旦GCしてそれでもメモリ足りない場合にOutOfMemoryErrorになる。

あと、普通は参照カウント方式は使ってない。
オブジェクトヘッダがでかくなるし
循環参照考慮したら他の方式もつかわにゃならんので。
0050472011/12/26(月) 11:23:43.30
ありがとうございます
実は、socket受信でArrayListにディープコピーするためにnewしているのですが、GCの対象になるということは、このやり方じゃまずいですね
0051デフォルトの名無しさん2011/12/26(月) 11:50:54.55
どこかから強参照されてるならGCの対象にはならんぞ。
0052デフォルトの名無しさん2011/12/26(月) 12:09:28.00
なるよ
スタックかstaticフィールドから参照を辿れないオブジェクトはGC対象
0053デフォルトの名無しさん2011/12/26(月) 12:13:28.64
byte[]でどうやって循環参照作るんだよ
0054デフォルトの名無しさん2011/12/26(月) 12:14:30.68
>>50
されない。というかコード例が悪いよ。
あれじゃ同じローカル変数に代入してるみたいじゃないの。
0055デフォルトの名無しさん2011/12/26(月) 14:03:41.50
javaでファイルの入出力はObjectIOStreamがメジャーなの?
0056デフォルトの名無しさん2011/12/26(月) 15:05:03.31
FileChannel主流になるといいな。
FileInputStream FileOutputStream RandomAccessStream あたりはまだまだ強いが。
0057デフォルトの名無しさん2011/12/26(月) 15:05:21.84
RandomAccessFileだた
0058デフォルトの名無しさん2011/12/26(月) 15:11:56.67
>>57
それじゃcharをガバって持ってこれないけど、どうするの?
0059デフォルトの名無しさん2011/12/26(月) 15:32:45.86
RandomAccessFile#readChar()
RandomAccessFile#readUTF()
RandomAccessFile#reaLine()

好きなの使え。
0060デフォルトの名無しさん2011/12/26(月) 15:36:36.67
>>59
というか、java utf16のエンコードのことちゃんと理解してる?
ネタだから別にどうでもいいけど
0061デフォルトの名無しさん2011/12/26(月) 16:02:06.26
複数行のテキストの先頭行を削除したいんですが、手っ取り早い方法はどんなのがありますか?
0062デフォルトの名無しさん2011/12/26(月) 16:12:43.81
↑を書いた直後にreplaceで出来ることに気が付きました……
str = str.replaceFirst("^[^\n]+\n", "");

失礼しました
0063デフォルトの名無しさん2011/12/26(月) 16:29:55.59
いやまて、それ空行は削除されないぞ。
0064デフォルトの名無しさん2011/12/26(月) 16:34:06.53
あ、はい
空行でないことは分かってるのでいいんです
0065デフォルトの名無しさん2011/12/26(月) 19:53:41.44
>>23
なんだこのサイトすげぇ
0066デフォルトの名無しさん2011/12/26(月) 19:57:45.19
>>47
揚げ足だがこのコード、デバッグモードじゃなきゃ、
ループの中身消えるよな。
それ以前にコンパイルエラーか。
0067デフォルトの名無しさん2011/12/26(月) 21:00:09.98
コンパイルエラーになるか?
0068デフォルトの名無しさん2011/12/26(月) 21:05:26.82
ならない。消えない。
0069デフォルトの名無しさん2011/12/26(月) 21:50:40.91
他に影響がなけりゃ最適化で消し飛ばされるだろ
0070デフォルトの名無しさん2011/12/26(月) 21:58:25.73
他が未到達エラーでひっかかりそう
0071デフォルトの名無しさん2011/12/26(月) 22:06:44.87
そこら辺のソースに突っ込んでコンパイルしたら

$ drive/Package.java:320: この文に制御が移ることはありません。
だってさ。まぁ、次の行に式が存在しなきゃ発生しないけど。
0072デフォルトの名無しさん2011/12/27(火) 08:10:08.21
eclipseでJavaをやってるのですが、ひとつのパッケージにmain()メソッドがあるクラスが複数ある場合、どれから優先して実行されるのでしょうか?
マウスでクリックしているクラスのmain()が優先される、というのは分かりますが、それ以外に何か規則性はありますか?
また、ひとつのパッケージで並行してmain()メソッドを実行させるって可能なんでしょうか?
0073デフォルトの名無しさん2011/12/27(火) 08:15:29.89
>>72
実行ボタンやらデバッグボタンのとこにある
構成の編集で指定したメインクラス。

そういや、Javaスレだからeclipseはスレ違いか。
0074デフォルトの名無しさん2011/12/27(火) 10:54:34.09
ArrayListのシリアライズされた文字列が欲しいんですけど、
サンプルとか探すとファイルに出力するものばっかりなんですにゃー
コード短めでStringあたりにシリアライズデータを出すサンプルありませんか?
0075デフォルトの名無しさん2011/12/27(火) 11:52:15.97
public String toString(List<Object> list){
 StringBuilder b = new StringBuilder();
 for(Object o; list){
  b.append(o.toString()).append(", ");
 }
 return b.toString();
}
0076デフォルトの名無しさん2011/12/27(火) 12:12:05.97
言葉が足りなかったようで。

オブジェクトをシリアライズ、デシリアライズする事が出来る手段を探しています。
ただしファイル出力に使うわけではないので、Serializable以外のいい方法が見つからなくて困っています。
あまり手間がかからないいい手段はないでしょうか?
0077デフォルトの名無しさん2011/12/27(火) 12:42:49.36
ファイルに出力するのはSerializableが問題じゃなくてFileOutputStreamを使ってるからだろ?
ByteArrayOutputStreamでも使えば?
0078デフォルトの名無しさん2011/12/27(火) 13:07:16.29
Android(OS2.3以降)でjavaネイティブのみでOpenGLES2.0が使えるようになったので
挑戦してるのですが、一つjavaの壁に行き当たってます

C/C++でのOpenGLでは色を表現するのに1Byte(0~255)を16進で良く扱います
しかしjavaだとunsignedが無いので 1Byte == char で-128~127です…
16進操作で無くとも良いので、可読性がある8bit操作って無いでしょうか?

理想例(C/C++風)
Byte b = 0xff;

今だと、
char c = -1;//補数表現で0xffとなるが、それ以外のマイナス値が分かりにくい、と言うか0xfdとかしたいだけ
0079デフォルトの名無しさん2011/12/27(火) 13:10:33.34
キャストしたら?
0080デフォルトの名無しさん2011/12/27(火) 13:24:06.93
すみません、分かり辛い説明で…

キャストするにも、0xfdとかがマイナス(数)値で幾つになるか
関数電卓とかで変換しないと分からないので、
直感的(16進表現レベル)に扱いたいのです
0081デフォルトの名無しさん2011/12/27(火) 13:32:08.83
byte b = (byte)0xFF;
0082デフォルトの名無しさん2011/12/27(火) 13:43:37.24
>>77
なるほど、それで実行可能でしたか。
ありがとうございます。
0083デフォルトの名無しさん2011/12/27(火) 13:43:55.38
なるほど、理解しました
16進表現を、一度10進表現にしてキャストだと思い込んでいました(自分の中で)
そんなに単純に実装出来たのですね、ありがとうございました
0084デフォルトの名無しさん2011/12/27(火) 14:44:05.69
Matcher関連?について質問(文字列操作関連という表現のが正しいかも?)

matcherで

"hogehoge"という文字列に対して"h"というPatternで抹茶ーをしたとき

Matcher m (以下略);

m.find() true
m.start() 0

これは予定通り

m.find(); true
m.find(); true
m.start() 4
こうするとfindを2回実行したため、チェックしている場所が進む?


どういう仕組みなんですかね
0085デフォルトの名無しさん2011/12/27(火) 15:50:30.52
モデル開発?モデル構造?のニュアンスの開発手法で、xmlに似た名前のことを何と言いますでしょうか?
思い出そうと思ってググったりしましたがわからず、もやもやしています。

スレチガイでしたらお手数ですが、誘導お願いいたします。
0086デフォルトの名無しさん2011/12/27(火) 15:53:21.90
まさかUMLのことか?
0087デフォルトの名無しさん2011/12/27(火) 17:02:46.14
---------------------
int ia,ib,ic;
ia = 1;
ib = 1;
ic = 1;
if ( (ia == ib) == ic ) //エラー
---------------------

booleanとintの判定はできないのがJavaらしいが、
こういうとき、みなはどう解決してますか??
0088デフォルトの名無しさん2011/12/27(火) 17:07:20.39
>>87
普通に比較すればいいだろ。
0089デフォルトの名無しさん2011/12/27(火) 17:14:17.84
>>87
それJava以外でもありえない比較だから。
0090デフォルトの名無しさん2011/12/27(火) 17:14:21.51
サンプルかいてくれ
0091デフォルトの名無しさん2011/12/27(火) 17:18:09.67
理解した。

>> 88,89
ありがとう!
0092デフォルトの名無しさん2011/12/27(火) 17:18:32.46
if ((ia == ib ? 1 : 0) == ic)
0093デフォルトの名無しさん2011/12/27(火) 17:28:12.74
>>89
Pythonはうまくやってくれそうな気がする
0094デフォルトの名無しさん2011/12/27(火) 17:33:13.69
>>93
JavaScriptでもいけるけど、やっちゃいけない比較だろこれ。
0095デフォルトの名無しさん2011/12/27(火) 17:43:06.23
Cでは日常茶飯事だろ
0096852011/12/27(火) 18:03:10.63
>>86
それです!!
すっきりしました。
ありがとうございました。
0097デフォルトの名無しさん2011/12/27(火) 18:03:47.20
比較演算子の結果をintと比較なんてそうそうお目にかかれないだろ…。
0098デフォルトの名無しさん2011/12/27(火) 18:23:19.74
boolean無いんだからざら
0099デフォルトの名無しさん2011/12/27(火) 18:38:53.95
>>73
ありがとうございました
0100デフォルトの名無しさん2011/12/27(火) 20:36:46.13
平松邦夫/民主党
大阪市役所・自治労・大阪市労働組合・日教組・大阪市教育委員会・自民党・共産党・社民党・関西電力・住友グループ
・毎日放送・毎日新聞・関西経済連合・日本原子力発電株式会社 ・ 週刊文春・週刊新潮・NHK・朝日新聞・読売新聞
・部落解放同盟・朝鮮総連・在日本大韓民国民団・日本遊技関連事業協会・全日本遊技事業協同組合連合会・日本弁護士連合会・生活保護受給者・反日左翼・9条の会・革マル派・中核派

VS

橋下徹/維新の会
大阪市民・みんなの党・国民新党・亀井静香・石原慎太郎・東国原英夫
 様子見:公明
0101デフォルトの名無しさん2011/12/27(火) 20:59:24.40
>>95
いや、1と0に対して整数と比較することなんてまずねぇよ。
■ このスレッドは過去ログ倉庫に格納されています