Javaエンジニアの面接問題の蓄積(2.0版)
6742 ワード
前の文章はここにあります:面接問題の蓄積:http://blog.csdn.net/renfufei/article/details/8754239
古いのでCSDNは更新させません.そのうち1-11題は古い問題です.
1.1つの数が2のべき乗であることをどのように判断するか.
個人的には、数字はバイナリに変換され、記号ビットは0で、残りの部分はあり、最も左側の1ビットだけが1で、残りのビットは0で、2のべき乗だと思います.原理は2に乗ると左に1つ入ることです.
2.落とし穴面接問題:
Javaでは、Throwableはインタフェースですか、抽象クラスですか.
3.Javascriptテーマ
4.バイナリアルゴリズム及び思考トラップ問題
現在千本の薬水があり、そのうち九百九十九本は全く同じで、1本だけ中が毒薬だが、外観的には見分けがつかない.毒薬を少し飲ませると、一週間後に突然死んでしまいますが、これまで症状はありませんでした.今1週間以内にどの瓶が毒薬なのかを見つけて、少なくとも何匹のマウスが必要ですか?
5.Javaデータ範囲
Javaでは、100億などの数字がありますが、intを使って保存できますか?
100億*100億は、どのようなタイプで保存できますか?
このように計算すると、intタイプは32ビット、4バイト、2の10乗は1024、約1 K、2^20=1 M、約100万、2^30=1 G、約10億であるため、整数は約40億個、正数22 E個しか残っていないため、100億はlongで記憶できるが、intで記憶することはできない.longは64ビットで、32ビットは100億ドル未満なので、64ビットも100億*100億ドル未満で、K神が言ったBigIntegerやBigDecimalなどの特殊なタイプしか使えません.
テストプログラム:
6.Java面接問題:インターネットでいくつかの操作を実行する方法
また、Java 8にはデフォルトの方法が追加されており、このようなニーズを専門にしています.
7.MySQLでUUIDをプライマリ・キーとして使用すると、どのように順序が整いますか?
次の結果が返されます.
8.JSON定義の基準で属性名を引用符で囲む必要があるのはなぜですか?
様々なシステム、様々なキーワード、識別子の構成が異なり、Mapなどがあることを考慮すべきである.
9.JVMについて
万(wu)能(lai)の面接テクニックがあって、あなたは求職者に聞いて、この背後の思想は何なのか、あなたは彼の原理を理解して、どうしてこのように実現して、もしあなたに自分で書かせたら、どのくらいの時間で基礎バージョンを作って出ますか?
10.面接問題:Javaでは、次のような使い方に問題がありますか?
もちろん、この使い方はよくありません.プラス1ヶ月で使うべきはCalendarクラスで、CalendarはJavaの標準ツールクラスで、java.utilパッケージの下にあります.
もっと穴があいているのはここです.
次の出力結果を参照できます.
ヒント:int値はどのくらいの値を置くことができますか?
11.Listのinstanceofについて、123と言ってください
12.1.Springの理解方法
12.2.SpringのAOPはどのような方法で実現されていますか.
13.MySQLデータベースの分離境界
14.Oracleクエリー・ツリーのキーワード
15.MySQL繰り返し可能シーン
16.MySQLのbin-logの理解
17.HTTP,TCP/UDPが置かれている層
18.redis,mongodb,HBAseの適用シーン
19.redisのデータ型
20.redisの期限切れは何の役に立つのか、実現原理
21.Linux OracleのJDKをインストールし、プロファイルをどこに配置するか
22.性能調整にはどのような手段があるか
23.JVMの分析方法
24. Dubbo
25.MyBatisの#,$
26.プロジェクトケース、役割
27.HashMapの実現原理
28.ConcurrentHashMap実現原理、ロックの粒度
29.バブルソートを実現するためのプログラムを書く
30.Integerのキャッシュ、127、==、equalsの問題
31.AtomicXXXの使用
32.ロックの様々な実装、タイプ、消費、および適用シーン
33.具体的な調整事例と分析
34.JVMメモリパーティション、各スペースのサイズを表示する方法
35.GCの適用シーン、G 1、CMS、各メモリ領域の回収アルゴリズム
36.スレッドプール
37.データベース方面(SQL最適化、SQL注入、越権、インデックスなど)、
38.ThreadLocalの原理
2016年3月29日更新
古いのでCSDNは更新させません.そのうち1-11題は古い問題です.
1.1つの数が2のべき乗であることをどのように判断するか.
個人的には、数字はバイナリに変換され、記号ビットは0で、残りの部分はあり、最も左側の1ビットだけが1で、残りのビットは0で、2のべき乗だと思います.原理は2に乗ると左に1つ入ることです.
2.落とし穴面接問題:
Javaでは、Throwableはインタフェースですか、抽象クラスですか.
3.Javascriptテーマ
,
var myname = "xiaoming";
if(!!myage){
myname = "xiaozhang";
}
alert("myname="+myname);
4.バイナリアルゴリズム及び思考トラップ問題
現在千本の薬水があり、そのうち九百九十九本は全く同じで、1本だけ中が毒薬だが、外観的には見分けがつかない.毒薬を少し飲ませると、一週間後に突然死んでしまいますが、これまで症状はありませんでした.今1週間以内にどの瓶が毒薬なのかを見つけて、少なくとも何匹のマウスが必要ですか?
5.Javaデータ範囲
Javaでは、100億などの数字がありますが、intを使って保存できますか?
100億*100億は、どのようなタイプで保存できますか?
このように計算すると、intタイプは32ビット、4バイト、2の10乗は1024、約1 K、2^20=1 M、約100万、2^30=1 G、約10億であるため、整数は約40億個、正数22 E個しか残っていないため、100億はlongで記憶できるが、intで記憶することはできない.longは64ビットで、32ビットは100億ドル未満なので、64ビットも100億*100億ドル未満で、K神が言ったBigIntegerやBigDecimalなどの特殊なタイプしか使えません.
テストプログラム:
public class TestIntLong {
/**
* int 100 , long 100 *100
*/
public static void main(String[] args) {
int num1 = 10 * 1000 * 1000 * 1000;
long num2 = 10L * 1000 * 1000 * 1000 * 10 * 1000 * 1000 * 1000;
long num3 = 10 * 1000 * 1000 * 1000 * 10 * 1000 * 1000 * 1000L;
long num4 = 10L * 1000L * 1000L * 1000L * 10L * 1000L * 1000L * 1000L;
//
System.out.println("num1="+ num1);//num1=1410065408
System.out.println("num2="+ num2);//num2=7766279631452241920
System.out.println("num3="+ num3);//num3=1569325056000
System.out.println("num4="+ num4);//num4=7766279631452241920
}
}
6.Java面接問題:インターネットでいくつかの操作を実行する方法
package com.test.test.java;
/**
* Java : interface ?
*/
public interface TestInvocation {
public static final Runnable RUNNABLE
= new Runnable() {
@Override
public void run() {
System.out.println(
" , , , ."
);
}
};
}
また、Java 8にはデフォルトの方法が追加されており、このようなニーズを専門にしています.
7.MySQLでUUIDをプライマリ・キーとして使用すると、どのように順序が整いますか?
select concat( date_format(current_timestamp, '%Y%m%d%H%i%s'),'-', UUID() );
次の結果が返されます.
mysql> select concat( date_format(current_timestamp, '%Y%m%d%H%i%s'),'-', UUID() );
+----------------------------------------------------------------------+
| concat( date_format(current_timestamp, '%Y%m%d%H%i%s'),'-', UUID() ) |
+----------------------------------------------------------------------+
| 20140705202902-f280257a-043f-11e4-989a-00163e0202ca |
+----------------------------------------------------------------------+
1 row in set (0.00 sec)
8.JSON定義の基準で属性名を引用符で囲む必要があるのはなぜですか?
様々なシステム、様々なキーワード、識別子の構成が異なり、Mapなどがあることを考慮すべきである.
9.JVMについて
万(wu)能(lai)の面接テクニックがあって、あなたは求職者に聞いて、この背後の思想は何なのか、あなたは彼の原理を理解して、どうしてこのように実現して、もしあなたに自分で書かせたら、どのくらいの時間で基礎バージョンを作って出ますか?
GC ,
JDK ,
,
,
,
,
、
。。。
10.面接問題:Javaでは、次のような使い方に問題がありますか?
Date nextMonth = new Date(new Date().getTime() + 30*24*60*60*1000);
もちろん、この使い方はよくありません.プラス1ヶ月で使うべきはCalendarクラスで、CalendarはJavaの標準ツールクラスで、java.utilパッケージの下にあります.
Date today = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(today);
cal.add(Calendar.MONTH, 1); //
cal.add(Calendar.DATE, -1); //
//
Date nextM = cal.getTime();
System.out.println(nextM);
もっと穴があいているのはここです.
long n = 30*24*60*60*1000;
long nl = 30*24*60*60*1000L;
System.out.println("n="+n);
System.out.println("nl="+nl);
次の出力結果を参照できます.
n=-1702967296
nl=2592000000
ヒント:int値はどのくらいの値を置くことができますか?
11.Listのinstanceofについて、123と言ってください
import java.util.ArrayList;
import java.util.List;
/**
* ( ) ?
*/
public class TestInstanceOf {
public static void main(String[] args) {
List listS = new ArrayList();
List listI = new ArrayList();
// ( ) ?
if (listS instanceof List) {
System.out.println("listS instanceof List="+true);
} else {
System.out.println("listS instanceof List="+false);
}
}
}
12.1.Springの理解方法
> , , , ,core,context 。
12.2.SpringのAOPはどのような方法で実現されていますか.
> , ,cglib...
13.MySQLデータベースの分離境界
> 4 ,
14.Oracleクエリー・ツリーのキーワード
> connect by prior ,
15.MySQL繰り返し可能シーン
> 100 , , 50 , 50 , 。
>
> : ?
> redo,undo ,
16.MySQLのbin-logの理解
> : ,
17.HTTP,TCP/UDPが置かれている層
> ,
18.redis,mongodb,HBAseの適用シーン
> redis, ,
> mongo, , ,
> hbase, , ,
19.redisのデータ型
20.redisの期限切れは何の役に立つのか、実現原理
> , . ,
>
> . . key ( ) 。
21.Linux OracleのJDKをインストールし、プロファイルをどこに配置するか
> /etc/profile.d/
22.性能調整にはどのような手段があるか
23.JVMの分析方法
24. Dubbo
> RPC, ,
25.MyBatisの#,$
26.プロジェクトケース、役割
27.HashMapの実現原理
> hash, bucket/ ,
28.ConcurrentHashMap実現原理、ロックの粒度
> bucket
29.バブルソートを実現するためのプログラムを書く
> ,
30.Integerのキャッシュ、127、==、equalsの問題
31.AtomicXXXの使用
32.ロックの様々な実装、タイプ、消費、および適用シーン
33.具体的な調整事例と分析
34.JVMメモリパーティション、各スペースのサイズを表示する方法
35.GCの適用シーン、G 1、CMS、各メモリ領域の回収アルゴリズム
36.スレッドプール
> , ,submit() excutive() :
37.データベース方面(SQL最適化、SQL注入、越権、インデックスなど)、
38.ThreadLocalの原理
2016年3月29日更新