SCJP認定試験の準備や、Java言語の使用に関するニュアンスのさまざまな情報源を読むと、さまざまな疑問が生じます。 また、言語の一部の機能は完全に非論理的に見えますが、これは言語仕様で示されており、すべての自尊心のある専門家はこれらのささいなことを知るよう努めています。
このトピックは、プログラムの短い例(またはコードのセクション)に専念します。 プログラムごとに、簡単な質問に答える必要があります。実行方法と、実行後にコンソールに表示される内容。 タスクで特に指定されていない限り、Java 1.6が使用されると想定されます。
PS同じトピックに関する興味深いタスクがある場合は、コメントに投稿してください。
タスクの最初の部分に注目してください。
- 式が真になるためには、省略記号をどの数値定数に置き換える必要がありますか? (回答は、プリミティブ型のラッパークラスで宣言された標準定数の形式でも受け入れられます)
(int)((char)-1)== ...
(短い)((int)((char)-1))== ...
- COOLが画面に表示されるように、省略記号の代わりにどの定数を使用する必要がありますか?
int x = ...;
if(x!= 0 && x == -x){
System.out.println( "COOL");
}
タイプをlongに変更するとどうなりますか?
- COOLが画面に表示されるように、省略記号の代わりにどの定数を使用する必要がありますか?
double x = ...;
if(x!= x){
System.out.println( "COOL");
}
- このプログラムの結果として何が表示されますか?
パブリッククラスTest {
static int a(){print( "a"); 1を返します。 }
static int b(){print( "b"); 1を返します。 }
static int c(){print( "c"); 1を返します。 }
static void print(String s){System.out.println(s); }
public static void main(String [] p){
int d = a()+ b()* c();
print( "" + d);
}
}
- このプログラムの結果として何が表示されますか?
パブリッククラスTest {
static int a(){print( "a"); 1を返します。 }
static int b(){print( "b"); 1を返します。 }
static int c(){print( "c"); 1を返します。 }
static void print(String s){System.out.println(s); }
public static void main(String [] p){
if(a()== b()|| a()== c()){
印刷(「d」);
}
}
}
- このプログラムの結果として何が表示されますか?
パブリッククラステスト{
static int a(){print( "a"); 1を返します。 }
static int b(){print( "b"); 1を返します。 }
static int c(){print( "c"); 1を返します。 }
static void print(String s){System.out.println(s); }
public static void main(String [] p){
{
if((a()+ b())/(a()-b())+ c()== a()){
印刷(「d」);
}
} catch(Throwable e){
}
}
}
- このプログラムの結果として何が表示されますか?
クラスBasicExceptはRuntimeExceptionを拡張します{
private int b = 10;
public BasicExcept(){
bは15です。
これを投げます;
}
{
bは5です。
}
public int getB(){
return b;
}
public String toString(){
「スーパークラス」を返します。
}
}
クラスExceptはBasicExceptを拡張します{
private int a = 10;
public(){を除く
スーパー();
a = 15;
}
{
a = 5;
}
public int getA(){
を返します;
}
public String toString(){
return "サブクラス";
}
}
パブリッククラスTest {
public static void main(String [] args){
{
newを除く();
System.out.println(「例外なし」);
} catch(eを除く){
System.out.println( "例外が発生しました!A =" + e.getA()
+ "、B =" + e.getB()
+ "、toString()=" + e.toString());
}
}
}
- このプログラムの結果として何が表示されますか?
クラスTryExceptはRuntimeExceptionを拡張します{
private String s;
static {
init();
}
public TryExcept(){
s = "ハハハ";
}
private static void init(){
新しいTryExcept()をスローします。
}
public String get(){
return s;
}
}
パブリッククラスTest {
public static void main(String [] args)
{
for(int i = 0; i <2; i ++){
{
新しいTryExcept();
} catch(Throwable e){
System.out.println( "e =" + e);
if(e.getCause()instanceof TryExcept){
TryExcept ex =(TryExcept)e.getCause();
System.out.println( "e instanceof"
+ TryExcept.class.getName()
+ "、s =" + ex.get());
}
}
}
}
}
トピックのエラーを見つけて修正するのを手伝ってくれた人に感謝します:バーカー 、
モハックス 、
サニックス