面试官:断网了,还能 ping 通 127.0.0.1 吗?
2024/12/01 00:53:51
mall瀛︿範鏁欑▼瀹樼綉锛歮acrozheng.com
鍙兘鐪嬪埌鏍囬锛屼綘灏辩煡閬撶瓟妗堜簡锛屼絾鏄綘浜嗚В鑳屽悗鐨勫師鍥犲悧锛熼偅濡傛灉鎶
127.0.0.1 鎹㈡垚 0.0.0.0 鎴 localhost 浼氭€庝箞鏍峰憿锛熶綘鐭ラ亾杩欏嚑涓IP鏈変粈涔堝尯鍒悧锛浠ュ墠闈㈣瘯鐨勬椂鍊欏氨閬囧埌杩囪繖涓棶棰橈紝澶у鐪嬩釜鍔ㄥ浘浜嗚В涓嬮潰璇曞畼鍜屾垜褰撴椂鐨勫満鏅紝姹傚綋鏃跺皬鐧界殑蹇冮噷闃村奖闈㈢Н銆
璇濅笉澶氳锛屾垜浠洿鎺ュ紑杞︺€
鎷旀帀缃戠嚎锛屾柇缃戙€
鐒跺悗鍦ㄦ帶鍒跺彴杈撳叆
ping 127.0.0.1銆$ ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.080 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.093 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.074 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.079 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.079 ms
^C
--- 127.0.0.1 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.074/0.081/0.093/0.006 ms
璇存槑锛屾嫈浜嗙綉绾匡紝
ping 127.0.0.1 鏄兘ping閫氱殑銆鍏跺疄杩欑瘒鏂囩珷鐪嬪埌杩欓噷锛屾爣棰樺墠鍗婁釜闂宸茬粡琚洖绛斾簡銆備絾鏄垜浠彲浠ュ啀鎯虫繁涓€鐐广€
涓轰粈涔堟柇缃戜簡杩樿兘
ping 閫 127.0.0.1 鍛紵杩欒兘璇存槑浣犱笉鐢ㄤ氦缃戣垂灏辫兘涓婄綉鍚楋紵
涓嶈兘銆
棣栧厛鎴戜滑闇€瑕佽繘鍏ュ熀纭€绉戞櫘鐜妭銆
涓嶆噦鐨勫悓瀛︾湅浜嗗氨鎳備簡锛屾噦鐨勭湅浜嗗氨褰撴煡婕忚ˉ缂哄惂銆
杩欐垨璁告槸涓€涓浣犳湁鐢ㄧ殑寮€婧愰」鐩紝mall椤圭洰鏄竴濂楀熀浜 SpringBoot + Vue + uni-app 瀹炵幇鐨勭數鍟嗙郴缁燂紙Github鏍囨槦60K锛夛紝閲囩敤Docker瀹瑰櫒鍖栭儴缃诧紝鍚庣鏀寔澶氭ā鍧楀拰寰湇鍔℃灦鏋勩€傚寘鎷墠鍙板晢鍩庨」鐩拰鍚庡彴绠$悊绯荤粺锛岃兘鏀寔瀹屾暣鐨勮鍗曟祦绋嬶紒娑电洊鍟嗗搧銆佽鍗曘€佽喘鐗╄溅銆佹潈闄愩€佷紭鎯犲埜銆佷細鍛樸€佹敮浠樼瓑鍔熻兘锛
- Boot椤圭洰锛歨ttps://github.com/macrozheng/mall
- Cloud椤圭洰锛歨ttps://github.com/macrozheng/mall-swarm
- 瑙嗛鏁欑▼锛歨ttps://www.macrozheng.com/video/
椤圭洰婕旂ず锛
浠€涔堟槸127.0.0.1
棣栧厛锛岃繖鏄釜
IPV4 鍦板潃銆IPV4 鍦板潃鏈 32 浣嶏紝涓€涓瓧鑺傛湁 8 浣嶏紝鍏 4 涓瓧鑺傘€鍏朵腑127 寮€澶寸殑閮藉睘浜庡洖鐜湴鍧€锛屼篃鏄
IPV4 鐨勭壒娈婂湴鍧€锛屾病浠€涔堥亾鐞嗭紝灏辨槸浜轰负瑙勫畾鐨勩€鑰
127.0.0.1鏄紬澶氬洖鐜湴鍧€涓殑涓€涓€備箣鎵€浠ヤ笉鏄 127.0.0.2 锛岃€屾槸 127.0.0.1锛屾槸鍥犱负婧愮爜閲屽氨鏄繖涔堝畾涔夌殑锛屼篃娌′粈涔堥亾鐞嗐€/* Address to loopback in software to local host. */
#define INADDR_LOOPBACK 0x7f000001 /* 127.0.0.1 */
IPv4 鐨勫湴鍧€鏄 32 浣嶇殑锛2鐨32娆℃柟锛屽ぇ姒傛槸40+浜銆傚湴鐞冨厜浜哄彛灏76浜夸簡锛40浜縄P杩欑偣閲忥紝濉炵墮缂濋兘涓嶅锛屽疄闄呬笂IP涔熺‘瀹炵敤瀹屼簡銆鎵€浠ュ氨鏈変簡
IPV6锛 IPv6 鐨勫湴鍧€鏄 128 浣嶇殑锛屽ぇ姒傛槸2鐨128娆℃柟鈮10鐨38娆℃柟銆傛嵁璇村湴鐞冪殑娌欏瓙鏁伴噺澶ф鏄 10鐨23娆℃柟锛屾墍浠PV6鐨処P鍙互璁や负鐢ㄤ笉瀹屻€IPV4浠8浣嶄竴缁勶紝姣忕粍涔嬮棿鐢 . 鍙烽殧寮€銆
IPV6灏变互16浣嶄负涓€缁勶紝姣忕粍涔嬮棿鐢 : 鍙烽殧寮€銆傚鏋滃叏鏄0锛岄偅涔堝彲浠ョ渷鐣ヤ笉鍐欍€
鍦↖PV4涓嬬殑鍥炵幆鍦板潃鏄
127.0.0.1锛屽湪IPV6涓嬶紝琛ㄨ揪涓 ::1 銆備腑闂存妸杩炵画鐨0缁欑渷鐣ヤ簡锛屼箣鎵€浠ヤ笉鏄7涓 鍐掑彿锛岃€屾槸2涓啋鍙: 锛 鏄洜涓轰竴涓 IPV6 鍦板潃涓彧鍏佽鍑虹幇饧€娆′袱涓繛缁殑鍐掑彿銆
澶氳涓€鍙ワ細鍦↖PV4涓嬬敤鐨勬槸 ping 127.0.0.1 鍛戒护銆傚湪IPV6涓嬬敤鐨勬槸 ping6 ::1 鍛戒护銆
浠€涔堟槸 ping
ping 鏄簲鐢ㄥ眰鍛戒护锛屽彲浠ョ悊瑙d负瀹冭窡娓告垙鎴栬€呰亰澶╄蒋浠跺睘浜庡悓涓€灞傘€傚彧涓嶈繃鑱婂ぉ杞欢鍙互鏀跺彂娑堟伅锛岃繕鑳界偣涓禐浠€涔堢殑锛屾湁寰堝澶嶆潅鐨勫姛鑳姐€傝€ ping 浣滀负涓€涓皬杞欢锛屽畠鐨勫姛鑳芥瘮杈冪畝鍗曪紝灏辨槸灏濊瘯鍙戦€佷竴涓皬灏忕殑娑堟伅鍒扮洰鏍囨満鍣ㄤ笂锛屽垽鏂洰鐨勬満鍣ㄦ槸鍚﹀彲杈撅紝鍏跺疄涔熷氨鏄垽鏂洰鏍囨満鍣ㄧ綉缁滄槸鍚﹁兘杩為€氥€
ping搴旂敤鐨勫簳灞傦紝鐢ㄧ殑鏄綉缁滃眰鐨処CMP鍗忚銆
铏界劧ICMP鍗忚鍜孖P鍗忚閮藉睘浜庣綉缁滃眰鍗忚锛屼絾鍏跺疄ICMP涔熸槸鍒╃敤浜咺P鍗忚杩涜娑堟伅鐨勪紶杈撱€
鎵€浠ワ紝澶у鍦ㄨ繖閲屽畬鍏ㄥ彲浠ョ畝鍗曠殑鐞嗚В涓 ping 鏌愪釜IP 灏辨槸寰€鏌愪釜IP鍦板潃鍙戜釜娑堟伅銆
TCP鍙戞暟鎹拰ping鐨勫尯鍒
涓€鑸儏鍐典笅锛屾垜浠細浣跨敤 TCP 杩涜缃戠粶鏁版嵁浼犺緭锛岄偅涔堟垜浠彲浠ョ湅涓嬪畠鍜 ping 鐨勫尯鍒€
ping鍜屽叾浠栧簲鐢ㄥ眰杞欢閮藉睘浜庡簲鐢ㄥ眰銆
閭d箞鎴戜滑妯悜瀵规瘮涓€涓嬶紝姣旀柟璇磋亰澶╄蒋浠讹紝濡傛灉鐢ㄧ殑鏄疶CP鐨勬柟寮忓幓鍙戦€佹秷鎭€
涓轰簡鍙戦€佹秷鎭紝閭e氨寰楀厛鐭ラ亾寰€鍝彂銆俵inux閲屼竾鐗╃殕鏂囦欢锛岄偅浣犺鍙戞秷鎭殑鐩殑鍦帮紝涔熸槸涓枃浠讹紝杩欓噷灏卞紩鍑轰簡socket 鐨勬蹇点€
瑕佷娇鐢
socket , 閭d箞棣栧厛闇€瑕佸垱寤哄畠銆鍦 TCP 浼犺緭涓垱寤虹殑鏂瑰紡鏄
socket(AF_INET, SOCK_STREAM, 0);锛屽叾涓 AF_INET 琛ㄧず灏嗕娇鐢 IPV4 閲 host:port 鐨勬柟寮忓幓瑙f瀽寰呬細浣犺緭鍏ョ殑缃戠粶鍦板潃銆SOCK_STREAM 鏄寚浣跨敤闈㈠悜瀛楄妭娴佺殑 TCP 鍗忚锛屽伐浣滃湪浼犺緭灞傘€鍒涘缓濂戒簡
socket 涔嬪悗锛屽氨鍙互鎰夊揩鐨勬妸瑕佷紶杈撶殑鏁版嵁鍐欏埌杩欎釜鏂囦欢閲屻€傝皟鐢 socket 鐨sendto鎺ュ彛鐨勮繃绋嬩腑杩涚▼浼氫粠鐢ㄦ埛鎬佽繘鍏ュ埌鍐呮牳鎬侊紝鏈€鍚庝細璋冪敤鍒 sock_sendmsg 鏂规硶銆鐒跺悗杩涘叆浼犺緭灞傦紝甯︿笂
TCP澶淬€傜綉缁滃眰甯︿笂IP澶达紝鏁版嵁閾捐矾灞傚甫涓 MAC澶寸瓑涓€绯诲垪鎿嶄綔鍚庛€傝繘鍏ョ綉鍗$殑鍙戦€侀槦鍒 ring buffer 锛岄『鐫€缃戝崱灏卞彂鍑哄幓浜嗐€鍥炲埌
ping 锛 鏁翠釜杩囩▼涔熷熀鏈窡 TCP 鍙戞暟鎹被浼硷紝宸紓鐨勫湴鏂逛富瑕佸湪浜庯紝鍒涘缓 socket 鐨勬椂鍊欑敤鐨勬槸 socket(AF_INET,SOCK_RAW,IPPROTO_ICMP)锛SOCK_RAW 鏄師濮嬪鎺ュ瓧 锛屽伐浣滃湪缃戠粶灞傦紝 鎵€浠ユ瀯寤ICMP锛堢綉缁滃眰鍗忚锛夌殑鏁版嵁锛屾槸鍐嶅悎閫備笉杩囦簡銆俻ing 鍦ㄨ繘鍏ュ唴鏍告€佸悗鏈€鍚庝篃鏄皟鐢ㄧ殑 sock_sendmsg 鏂规硶锛岃繘鍏ュ埌缃戠粶灞傚悗鍔犱笂ICMP鍜孖P澶村悗锛屾暟鎹摼璺眰鍔犱笂MAC澶达紝涔熸槸椤虹潃缃戝崱鍙戝嚭銆傚洜姝 鏈川涓妏ing 璺 鏅€氬簲鐢ㄥ彂娑堟伅 鍦ㄧ▼搴忔祦绋嬩笂娌″お澶у樊鍒€杩欎篃瑙i噴浜**涓轰粈涔堝綋浣犲彂鐜版€€鐤戠綉缁滄湁闂鐨勬椂鍊欙紝鍒汉绗竴鏃堕棿鏄棶浣犺兘ping閫氬悧锛**鍥犱负鍙互绠€鍗曠悊瑙d负ping灏辨槸鑷繁缁勪簡涓暟鎹寘锛岃绯荤粺鎸夌潃鍏朵粬杞欢鍙戦€佹暟鎹殑璺緞寰€澶栧彂涓€閬嶏紝鑳介€氱殑璇濊鏄庡叾浠栬蒋浠跺彂鐨勬暟鎹篃鑳介€氥€
涓轰粈涔堟柇缃戜簡杩樿兘 ping 閫 127.0.0.1
鍓嶉潰鎻愬埌锛屾湁缃戠殑鎯呭喌涓嬶紝ping 鏈€鍚庢槸閫氳繃缃戝崱灏嗘暟鎹彂閫佸嚭鍘荤殑銆
閭d箞鏂綉鐨勬儏鍐典笅锛岀綉鍗″凡缁忎笉宸ヤ綔浜嗭紝ping 鍥炵幆鍦板潃鍗翠竴鍒囨甯革紝鎴戜滑鍙互鐪嬩笅杩欑鎯呭喌涓嬬殑宸ヤ綔鍘熺悊銆
浠庡簲鐢ㄥ眰鍒颁紶杈撳眰鍐嶅埌缃戠粶灞傘€傝繖娈佃矾寰勮窡ping澶栫綉鐨勬椂鍊欐槸鍑犱箮鏄竴鏍风殑銆傚埌浜嗙綉缁滃眰锛岀郴缁熶細鏍规嵁鐩殑IP锛屽湪璺敱琛ㄤ腑鑾峰彇瀵瑰簲鐨勮矾鐢变俊鎭紝鑰岃繖鍏朵腑灏卞寘鍚€夋嫨鍝釜缃戝崱鎶婃秷鎭彂鍑恒€
褰撳彂鐜扮洰鏍嘔P鏄缃慖P鏃讹紝浼氫粠"鐪熺綉鍗"鍙戝嚭銆
褰撳彂鐜扮洰鏍嘔P鏄洖鐜湴鍧€鏃讹紝灏变細閫夋嫨鏈湴缃戝崱銆
鏈湴缃戝崱锛屽叾瀹炲氨鏄釜"鍋囩綉鍗"锛屽畠涓嶅儚"鐪熺綉鍗"閭f牱鏈変釜
ring buffer浠€涔堢殑锛"鍋囩綉鍗"浼氭妸鏁版嵁鎺ㄥ埌涓€涓彨 input_pkt_queue 鐨 閾捐〃 涓€傝繖涓摼琛紝鍏跺疄鏄墍鏈夌綉鍗″叡浜殑锛屼笂闈㈡寕鐫€鍙戠粰鏈満鐨勫悇绉嶆秷鎭€傛秷鎭鍙戦€佸埌杩欎釜閾捐〃鍚庯紝浼氬啀瑙﹀彂涓€涓蒋涓柇銆涓撻棬澶勭悊杞腑鏂殑宸ュ叿浜"ksoftirqd" 锛堣繖鏄釜鍐呮牳绾跨▼锛夛紝瀹冨湪鏀跺埌杞腑鏂悗灏变細绔嬮┈鍘婚摼琛ㄩ噷鎶婃秷鎭彇鍑猴紝鐒跺悗椤虹潃鏁版嵁閾捐矾灞傘€佺綉缁滃眰绛夊眰灞傚線涓婁紶閫掓渶鍚庣粰鍒板簲鐢ㄧ▼搴忋€
ping 鍥炵幆鍦板潃鍜岄€氳繃TCP绛夊悇绉嶅崗璁彂閫佹暟鎹埌鍥炵幆鍦板潃閮芥槸璧拌繖鏉¤矾寰勩€傛暣鏉¤矾寰勪粠鍙戝埌鏀讹紝閮芥病鏈夌粡杩"鐪熺綉鍗"銆備箣鎵€浠127.0.0.1鍙湰鍦板洖鐜湴鍧€锛屽彲浠ョ悊瑙d负锛屾秷鎭彂鍑哄埌杩欎釜鍦板潃涓婄殑璇濓紝灏变笉浼氬嚭缃戠粶锛屽湪鏈満鎵撲釜杞氨鍙堝洖鏉ヤ簡銆傛墍浠ユ柇缃戯紝渚濈劧鑳
ping 閫 127.0.0.1銆ping鍥炵幆鍦板潃鍜宲ing鏈満鍦板潃鏈変粈涔堝尯鍒
鎴戜滑鍦╩ac閲屾墽琛
ifconfig 銆$ ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000
...
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.31.6 netmask 0xffffff00 broadcast 192.168.31.255
...
鑳界湅鍒 lo0锛岃〃绀烘湰鍦板洖鐜帴鍙o紝瀵瑰簲鐨勫湴鍧€锛屽氨鏄垜浠墠闈㈡彁鍒扮殑 127.0.0.1 锛屼篃灏辨槸鍥炵幆鍦板潃銆
鍜 eth0锛岃〃绀烘湰鏈虹涓€鍧楃綉鍗★紝瀵瑰簲鐨処P鍦板潃鏄192.168.31.6锛岀瀹冨彨鏈満IP銆
涔嬪墠涓€鐩磋涓簆ing鏈満IP鐨勮瘽浼氶€氳繃"鐪熺綉鍗"鍑哄幓锛岀劧鍚庨亣鍒扮涓€涓矾鐢卞櫒锛屽啀鍙戝洖鏉ュ埌鏈満銆
涓轰簡楠岃瘉杩欎釜璇存硶锛屽彲浠ヨ繘琛屾姄鍖咃紝浣嗙粨鏋滆窡涓婇潰鐨勮娉曞苟涓嶇浉鍚屻€
鍙互鐪嬪埌 ping 鏈満IP 璺 ping 鍥炵幆鍦板潃涓€鏍凤紝鐩稿叧鐨勭綉缁滄暟鎹紝閮芥槸璧扮殑 lo0锛屾湰鍦板洖鐜帴鍙o紝涔熷氨鏄墠闈㈡彁鍒扮殑"鍋囩綉鍗"銆
鍙璧颁簡鏈湴鍥炵幆鎺ュ彛锛岄偅鏁版嵁閮戒笉浼氬彂閫佸埌缃戠粶涓紝鍦ㄦ湰鏈虹綉缁滃崗璁爤涓厹涓€鍦堬紝灏卞彂鍥炴潵浜嗐€傚洜姝 ping鍥炵幆鍦板潃鍜宲ing鏈満鍦板潃娌℃湁鍖哄埆銆
127.0.0.1 鍜 localhost 浠ュ強 0.0.0.0 鏈夊尯鍒悧
鍥炲埌鏂囩珷寮€澶村姩鍥鹃噷鐨勬彁闂紝绠楁槸闈㈣瘯鍏偂鏂囬噷鐨勮€佸父瀹簡銆
浠ュ墠绗竴娆$敤
nginx 鐨勬椂鍊欙紝鍙戠幇鐢ㄨ繖鍑犱釜 IP锛岄兘鑳芥甯歌闂埌 nginx 鐨勬杩庣綉椤点€備竴搴﹁涓鸿繖鍑犱釜 IP 閮芥槸涓€鏍风殑銆浣嗘湰璐ㄤ笂杩樻槸鏈変簺鍖哄埆鐨勩€
棣栧厛
localhost 灏变笉鍙 IP锛屽畠鏄竴涓煙鍚嶏紝灏辫窡 "baidu.com",鏄竴涓舰寮忕殑涓滆タ锛屽彧涓嶈繃榛樿浼氭妸瀹冭В鏋愪负 127.0.0.1 锛屽綋鐒惰繖鍙互鍦 /etc/hosts 鏂囦欢涓嬭繘琛屼慨鏀广€鎵€浠ラ粯璁ゆ儏鍐典笅锛屼娇鐢
localhost 璺熶娇鐢 127.0.0.1 纭疄鏄病鍖哄埆鐨勩€鍏舵灏辨槸
0.0.0.0锛屾墽琛 ping 0.0.0.0 锛屾槸浼氬け璐ョ殑锛屽洜涓哄畠鍦IPV4涓〃绀虹殑鏄棤鏁堢殑鐩爣鍦板潃銆$ ping 0.0.0.0
PING 0.0.0.0 (0.0.0.0): 56 data bytes
ping: sendto: No route to host
ping: sendto: No route to host
浣嗗畠杩樻槸寰堟湁鐢ㄥ鐨勶紝鍥炴兂涓嬶紝鎴戜滑鍚姩鏈嶅姟鍣ㄧ殑鏃跺€欙紝涓€鑸細
listen 涓€涓 IP 鍜岀鍙o紝绛夊緟瀹㈡埛绔殑杩炴帴銆濡傛灉姝ゆ椂
listen 鐨勬槸鏈満鐨 0.0.0.0 , 閭d箞瀹冭〃绀烘湰鏈轰笂鐨勬墍鏈塈PV4鍦板潃銆/* Address to accept any incoming messages. */
#define INADDR_ANY ((unsigned long int) 0x00000000) /* 0.0.0.0 */
涓句釜渚嬪瓙銆傚垰鍒氭彁鍒扮殑
127.0.0.1 鍜 192.168.31.6 锛岄兘鏄湰鏈虹殑IPV4鍦板潃锛屽鏋滅洃鍚 0.0.0.0 锛岄偅涔堢敤涓婇潰涓や釜鍦板潃锛岄兘鑳借闂埌杩欎釜鏈嶅姟鍣ㄣ€褰撶劧锛 瀹㈡埛绔
connect 鏃讹紝涓嶈兘浣跨敤 0.0.0.0 銆傚繀椤绘寚鏄庤杩炴帴鍝釜鏈嶅姟鍣↖P銆鎬荤粨
127.0.0.1鏄洖鐜湴鍧€銆localhost鏄煙鍚嶏紝浣嗛粯璁ょ瓑浜127.0.0.1銆ping鍥炵幆鍦板潃鍜ping鏈満鍦板潃锛屾槸涓€鏍风殑锛岃蛋鐨勬槸lo0 "鍋囩綉鍗"锛岄兘浼氱粡杩囩綉缁滃眰鍜屾暟鎹摼璺眰绛夐€昏緫锛屾渶鍚庡湪蹇鍑虹綉鍗″墠鐙犵嫚鎷愪簡涓集锛 灏嗘暟鎹彃鍏ュ埌涓€涓摼琛ㄥ悗灏辫蒋涓柇閫氱煡 ksoftirqd 鏉ヨ繘琛屾敹鏁版嵁鐨勯€昏緫锛屽帇鏍瑰氨涓嶅嚭缃戠粶銆傛墍浠ユ柇缃戜簡涔熻兘ping閫氬洖鐜湴鍧€銆- 濡傛灉鏈嶅姟鍣
listen鐨勬槸0.0.0.0锛岄偅涔堟鏃剁敤127.0.0.1鍜屾湰鏈哄湴鍧€閮藉彲浠ヨ闂埌鏈嶅姟銆
Github涓
鏍囨槦60K鐨勭數鍟嗗疄鎴橀」鐩甿all锛屽叏濂 瑙嗛鏁欑▼锛2023鏈€鏂扮増锛 宸叉洿鏂板畬姣曪紒鍏ㄥ鏁欑▼绾40灏忔椂锛屽叡113鏈锛岄€氳繃杩欏鏁欑▼浣犲彲浠ユ嫢鏈変竴涓娑电洊涓绘祦Java鎶€鏈爤鐨勫畬鏁撮」鐩粡楠锛屽悓鏃舵彁楂樿嚜宸鐙珛寮€鍙戜竴涓」鐩殑鑳藉姏锛屼笅闈㈡槸椤圭洰鐨勬暣浣撴灦鏋勫浘锛屾劅鍏磋叮鐨勫皬浼欎即鍙互鐐瑰嚮閾炬帴 mall瑙嗛鏁欑▼ 鍔犲叆瀛︿範銆鏁村 瑙嗛鏁欑▼ 鐨勫唴瀹硅繕鏄潪甯稿畬鍠勭殑锛屾兜鐩栦簡mall椤圭洰鏈€浣冲涔犺矾绾裤€佹暣浣撴鏋舵惌寤恒€佷笟鍔′笌鎶€鏈疄鐜板叏鏂逛綅瑙f瀽銆佺嚎涓奃ocker鐜閮ㄧ讲銆佸井鏈嶅姟椤圭洰瀛︿範绛夊唴瀹癸紝鍏蜂綋澶х翰鍙互鍙傝€冧笅鍥撅紝浣犱篃鍙互鐐瑰嚮閾炬帴 mall瑙嗛鏁欑▼ 浜嗚В鏇村鍐呭銆
鎺ㄨ崘闃呰
- 69K Star锛佽繖鏄垜瑙佽繃鏈€寮虹殑寮€婧愮數鍟嗙郴缁 锛侊紒
- Github鏍囨槦60K锛佷竴濂楀畬鏁寸殑椤圭洰瀹炴垬鏁欑▼鏉ヤ簡锛屼富娴丣ava鎶€鏈竴缃戞墦灏斤紒
- 鐪嬩簡鎴戦」鐩腑璐墿杞︺€佽鍗曘€佹敮浠樹竴鏁村璁捐锛屽悓浜嬩篃寮€濮嬫倓鎮勬ā浠夸簡...
- 璁㈠崟绯荤粺灏辫杩欎箞璁捐锛岀ǔ鐨勪竴鎵癸紒
- 鏀粯绯荤粺灏辫杩欎箞璁捐锛岀ǔ鐨勪竴鎵癸紒
- 鏉冮檺绯荤粺灏辫杩欎箞璁捐锛岀ǔ鐨勪竴鎵癸紒