news 2026/4/16 15:04:37

Java澶у巶闈㈣瘯鐜板満锛氶潰璇曞畼涓庢按璐х▼搴忓憳璋㈤鏈虹殑鐖嗙瑧瀵规垬

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java澶у巶闈㈣瘯鐜板満锛氶潰璇曞畼涓庢按璐х▼搴忓憳璋㈤鏈虹殑鐖嗙瑧瀵规垬

闈㈣瘯鐜板満锛氳阿椋炴満澶ф垬浜掕仈缃戝ぇ鍘傞潰璇曞畼

绗竴杞細Java鍩虹绡�

闈㈣瘯瀹�锛氳浠嬬粛涓�涓� HashMap 鐨勫簳灞傚疄鐜板師鐞嗭紵

璋㈤鏈�锛氬憙鈥︹�ashMap 鍟婏紝灏辨槸 Map 鐨勪竴绉嶏紝key-value 瀛樻暟鎹紝鎴戝钩鏃剁敤瀹冨瓨鐢ㄦ埛ID鍜屽悕瀛椼�俓n闈㈣瘯瀹�锛氶偅浣犵煡閬撳畠鏄�庝箞瑙e喅鍝堝笇鍐茬獊鐨勫悧锛焅n璋㈤鏈�锛氬啿绐侊紵澶氬垱寤哄嚑涓狹ap涓嶅氨琛屼簡锛熶竴涓彨userMap1锛屼竴涓彨userMap2鈥︹�n闈㈣瘯瀹�锛氣�︹�︽垜浠户缁�侫rrayList 鍜� LinkedList 鏈変粈涔堝尯鍒紵

璋㈤鏈�锛欰rrayList 鏄暟缁勶紝LinkedList 鏄摼琛紒鎴戠煡閬撹繖涓紒鑰屼笖 LinkedList 鐗瑰埆閫傚悎鍒犻櫎锛屽洜涓轰笉鐢ㄧЩ鍔ㄥ厓绱狅紒

闈㈣瘯瀹�锛堝井寰偣澶达級锛氫笉閿欙紝閭f彃鍏ュ憿锛焅n璋㈤鏈�锛氭彃鍏ワ紵ArrayList 鎻掍腑闂磋鎸悗闈㈡墍鏈夊厓绱狅紝鎵�浠ユ參锛汱inkedList 鍙鏀规寚閽堬紝蹇紒鎴戣儗杩囧叓鑲℃枃鐨勶紒

闈㈣瘯瀹�锛氳繕琛屻�傞偅 ArrayList 鎵╁鏈哄埗浜嗚В鍚楋紵

璋㈤鏈�锛氭墿瀹癸紵鍝︼紒榛樿10涓紝婊′簡灏卞彉鎴�15涓紝1.5鍊嶏紒

闈㈣瘯瀹�锛氬棷锛岀畻浣犵瓟瀵逛簡銆俓n

绗簩杞細骞跺彂缂栫▼涓嶫VM

闈㈣瘯瀹�锛氳璇� synchronized 鍜� ReentrantLock 鐨勫尯鍒紵

璋㈤鏈�锛歴ynchronized 鏄叧閿瓧锛孯eentrantLock 鏄被锛佽�屼笖 ReentrantLock 鑳� tryLock锛屼笉浼氫竴鐩寸瓑锛乗n闈㈣瘯瀹�锛氬緢濂姐�傞偅绾跨▼姹犵殑鏍稿績鍙傛暟鏈夊摢浜涳紵

璋㈤鏈�锛歝orePoolSize銆乵aximumPoolSize銆亀orkQueue銆乼hreadFactory銆乭andler鈥︹�︽垜鍏ㄤ細鑳岋紒

闈㈣瘯瀹�锛氬鏋滈槦鍒楁弧浜嗕笖绾跨▼鏁拌揪鍒� maximum锛屾柊浠诲姟浼氭�庢牱锛焅n璋㈤鏈�锛氶偅灏扁�︹�﹀紑涓柊绾跨▼锛熶笉琛屽氨绛夌瓑锛焅n闈㈣瘯瀹�锛氶敊浜嗭紝浼氳Е鍙戞嫆缁濈瓥鐣ャ�傛瘮濡� AbortPolicy 鐩存帴鎶涘紓甯搞�俓n璋㈤鏈�锛氬摝鍝︼紝閭f垜椤圭洰閲屾病閰嶈繃锛岄兘鏄� @Async 榛樿鐨勩�俓n闈㈣瘯瀹�锛氶偅浣犱簡瑙� JVM 鍚楋紵璇磋鍐呭瓨缁撴瀯銆俓n璋㈤鏈�锛氭湁鍫嗐�佹爤銆佹柟娉曞尯锛佸爢鏀惧璞★紝鏍堟斁鏂规硶璋冪敤锛屾柟娉曞尯鏀剧被淇℃伅锛乗n闈㈣瘯瀹�锛欸C 鍛紵CMS 鍜� G1 鏈変粈涔堝尯鍒紵

璋㈤鏈�锛欳MS 鏄�佸勾浠o紝骞跺彂鏍囪娓呴櫎锛屼絾浼氱鐗囧寲锛汫1 鍛⑩�︹�︽槸鈥淕鈥濆紑澶寸殑锛岃繕鑳藉垎 Region鈥︹�﹀埆鐨勬垜蹇樹簡銆俓n闈㈣瘯瀹�锛堟壎棰濓級锛氣�︹�︿笅涓�涓棶棰樸�俓n

绗笁杞細涓绘祦妗嗘灦涓庝腑闂翠欢

闈㈣瘯瀹�锛歋pring 涓� Bean 鐨勪綔鐢ㄥ煙鏈夊摢浜涳紵

璋㈤鏈�锛歴ingleton 鍜� prototype锛佸崟渚嬪拰鍘熷瀷锛佹垜杩樼煡閬� request 鍜� session锛屼絾娌$敤杩囥�俓n闈㈣瘯瀹�锛欱ean 寰幆渚濊禆鎬庝箞瑙e喅鐨勶紵

璋㈤鏈�锛歋pring 鎻愬墠鏆撮湶涓�涓�滃崐鎴愬搧鈥滲ean锛岀敤涓夌骇缂撳瓨锛佷竴绾т簩绾т笁绾э紝鍍忎粨搴撲竴鏍凤紒

闈㈣瘯瀹�锛堢暐鎯婅锛夛細鍡紝涓嶉敊銆傞偅 MyBatis #{} 鍜� ${} 鏈変粈涔堝尯鍒紵

璋㈤鏈�锛�#{} 鏄缂栬瘧锛岄槻SQL娉ㄥ叆锛�${} 鏄瓧绗︿覆鎷兼帴锛佹垜鍦ㄥ啓 ORDER BY 鐨勬椂鍊欑敤杩� ${}锛乗n闈㈣瘯瀹�锛氬嵄闄╂搷浣滃晩銆侱ubbo 鐨勮礋杞藉潎琛$瓥鐣ユ湁鍝簺锛焅n璋㈤鏈�锛氶殢鏈恒�佽疆璇€�佹渶灏戞椿璺冩暟鈥︹�︽垜璁板緱鏈変釜鍙�滀竴鑷存�у搱甯屸�濈殑锛岀敤鏉ュ仛缂撳瓨瀹氫綅锛乗n闈㈣瘯瀹�锛氳繕琛屻�俁edis 鎸佷箙鍖栨満鍒讹紵

璋㈤鏈�锛歊DB 鏄媿蹇収锛孉OF 鏄鏃ュ織锛丄OF 鏇村畨鍏紝浣嗘枃浠跺ぇ锛乗n闈㈣瘯瀹�锛歁ySQL 鐨勭储寮曞け鏁堝満鏅紵

璋㈤鏈�锛歭ike '%寮犱笁' 浼氬け鏁堬紝杩樻湁瀵瑰瓧娈靛仛鍑芥暟鎿嶄綔锛屾瘮濡� where date(create_time) = '2024-01-01'锛乗n闈㈣瘯瀹�锛氭渶鍚庝竴涓棶棰橈細DDD 鐨勬牳蹇冩蹇垫槸浠�涔堬紵

璋㈤鏈�锛欴DD锛熸槸鈥樻晫閮藉�掆�欏悧锛熷摝鍝︼紝棰嗗煙椹卞姩璁捐锛佹湁瀹炰綋銆佸�煎璞°�佽仛鍚堟牴鈥︹�︾劧鍚庘�︹�︾劧鍚庢垜椤圭洰閲屾病鐢ㄨ繃锛岄兘鏄疌RUD銆俓n闈㈣瘯瀹�锛堝徆姘旓級锛氬ソ鐨勶紝璋㈠厛鐢燂紝浠婂ぉ鍏堝埌杩欓噷锛屽洖鍘荤瓑閫氱煡鍚с�俓n璋㈤鏈�锛氬ソ鍢烇紒鎴戝洖鍘诲氨鎶婂叓鑲℃枃鍐嶈儗涓�閬嶏紒


绛旀璇﹁В锛氭妧鏈偣娣卞害瑙f瀽

1. HashMap 搴曞眰鍘熺悊

HashMap 鍦� JDK 8 涓噰鐢ㄢ�滄暟缁� + 閾捐〃 + 绾㈤粦鏍戔�濈粨鏋勩�傞�氳繃 key 鐨� hashCode 璁$畻 hash 鍊硷紝纭畾鏁扮粍涓嬫爣銆傚綋閾捐〃闀垮害瓒呰繃 8 涓旀暟缁勯暱搴﹀ぇ浜� 64 鏃讹紝閾捐〃杞负绾㈤粦鏍戯紝鎻愬崌鏌ユ壘鏁堢巼銆傚搱甯屽啿绐侀�氳繃閾惧湴鍧�娉曡В鍐筹紝鍗冲悓涓�涓《浣嶆寕澶氫釜鑺傜偣銆俓n

2. ArrayList 鎵╁鏈哄埗

榛樿鍒濆瀹归噺涓�10锛屾瘡娆℃墿瀹逛负鍘熷閲忕殑1.5鍊嶏紙oldCapacity + (oldCapacity >> 1)锛夈�傛墿瀹归�氳繃 Arrays.copyOf 瀹炵幇锛屾秹鍙婃暟缁勬嫹璐濓紝杈冭�楁�ц兘锛屽缓璁垵濮嬪寲鏃舵寚瀹氬悎鐞嗗閲忋�俓n

3. synchronized vs ReentrantLock

  • synchronized 鏄� JVM 灞傞潰鐨勪簰鏂ラ攣锛岃嚜鍔ㄩ噴鏀撅紝涓嶅彲涓柇銆俓n- ReentrantLock 鏄� API 灞傞潰鐨勫彲閲嶅叆閿侊紝闇�鎵嬪姩 lock/unlock锛屾敮鎸佸叕骞抽攣銆侀潪鍏钩閿併�佸彲涓柇銆佽秴鏃惰幏鍙栫瓑楂樼骇鐗规�с�俓n

4. 绾跨▼姹犱竷澶у弬鏁癨n- corePoolSize锛氭牳蹇冪嚎绋嬫暟

  • maximumPoolSize锛氭渶澶х嚎绋嬫暟
  • keepAliveTime锛氶潪鏍稿績绾跨▼绌洪棽瀛樻椿鏃堕棿
  • unit锛氭椂闂村崟浣峔n- workQueue锛氶樆濉為槦鍒梊n- threadFactory锛氱嚎绋嬪伐鍘俓n- handler锛氭嫆缁濈瓥鐣ワ紙AbortPolicy銆丆allerRunsPolicy 绛夛級

5. JVM 鍐呭瓨缁撴瀯

  • 鍫嗭紙Heap锛夛細瀛樻斁瀵硅薄瀹炰緥锛孏C 涓昏鍖哄煙
  • 铏氭嫙鏈烘爤锛氬瓨鏀炬柟娉曡皟鐢ㄦ爤甯э紝灞�閮ㄥ彉閲忚〃銆佹搷浣滄暟鏍堢瓑
  • 鏂规硶鍖猴紙鍏冪┖闂达級锛氬瓨鏀剧被淇℃伅銆佸父閲忋�侀潤鎬佸彉閲廫n- 绋嬪簭璁℃暟鍣細璁板綍褰撳墠绾跨▼鎵ц瀛楄妭鐮佺殑浣嶇疆
  • 鏈湴鏂规硶鏍堬細涓� Native 鏂规硶鏈嶅姟

6. G1 涓� CMS 鍖哄埆

  • CMS锛氫互鏈�鐭仠椤挎椂闂翠负鐩爣锛岀敤浜庤�佸勾浠o紝閲囩敤鈥滃垵濮嬫爣璁�-骞跺彂鏍囪-閲嶆柊鏍囪-骞跺彂娓呴櫎鈥濓紝瀛樺湪纰庣墖闂銆俓n- G1锛氶潰鍚戝ぇ鍫嗭紝灏嗗爢鍒掑垎涓哄涓� Region锛屾敮鎸佸苟琛屼笌骞跺彂锛屽彲棰勬祴鍋滈】鏃堕棿锛岄�氳繃 Remembered Set 瑙e喅璺� Region 寮曠敤锛岄伩鍏嶅叏灞�鎵弿銆俓n

7. Spring Bean 寰幆渚濊禆

Spring 閫氳繃涓夌骇缂撳瓨瑙e喅 singleton Bean 鐨勫惊鐜緷璧栵細

  • 涓�绾х紦瀛橈細singletonObjects锛屽瓨鏀惧畬鏁� Bean
  • 浜岀骇缂撳瓨锛歟arlySingletonObjects锛屽瓨鏀炬棭鏈熸毚闇茬殑 Bean锛堟湭瀹屽叏鍒濆鍖栵級
  • 涓夌骇缂撳瓨锛歴ingletonFactories锛屽瓨鏀� ObjectFactory锛岀敤浜庡垱寤轰唬鐞嗗璞n

8. Redis 鎸佷箙鍖朶n- RDB锛氬畾鏃跺揩鐓э紝鎭㈠蹇紝鏁版嵁鍙兘涓㈠け

  • AOF锛氳褰曟瘡鏉″啓鍛戒护锛屾棩蹇楄拷鍔狅紝鏁版嵁鏇村畨鍏紝鍙�氳繃 rewrite 浼樺寲鏃ュ織

9. MySQL 绱㈠紩澶辨晥鍦烘櫙

  • 浣跨敤鍑芥暟鎴栬繍绠楋細where year(create_time) = 2024
  • 宸︽ā绯婃煡璇細like '%abc'
  • 绫诲瀷杞崲锛氬瓧绗︿覆瀛楁浼犳暟瀛梊n- OR 鏉′欢鏈叏閮ㄤ娇鐢ㄧ储寮昞n- 鏈�宸﹀墠缂�鍘熷垯鐮村潖锛氳仈鍚堢储寮� (a,b,c)锛屾煡璇㈡潯浠舵棤 a

10. DDD 鏍稿績姒傚康

  • 瀹炰綋锛圗ntity锛夛細鏈夊敮涓�鏍囪瘑锛岀敓鍛藉懆鏈熻繛缁璡n- 鍊煎璞★紙Value Object锛夛細鏃犳爣璇嗭紝閫氳繃灞炴�у垽鏂浉绛塡n- 鑱氬悎锛圓ggregate锛夛細涓�缁勭浉鍏冲璞$殑闆嗗悎锛岃仛鍚堟牴璐熻矗杈圭晫鍐呯殑涓�鑷存�n- 棰嗗煙鏈嶅姟銆佸簲鐢ㄦ湇鍔°�佷粨鍌ㄣ�佷簨浠剁瓑涔熸槸閲嶈缁勬垚閮ㄥ垎

鎬荤粨锛氳阿椋炴満铏界劧鏈変簺闂绛斿緱绂昏氨锛屼絾閮ㄥ垎鍩虹鎺屾彙灏氬彲銆傜湡瀹為潰璇曚腑锛岀悊瑙e師鐞嗚繙姣旇儗璇垫洿閲嶈銆傚缓璁ぇ瀹舵繁鍏ュ涔犲簳灞傛満鍒讹紝缁撳悎涓氬姟鍦烘櫙鎬濊�冿紝鎵嶈兘鐪熸鑴遍鑰屽嚭銆�

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 12:14:16

3D数据压缩革命:从原理到实践的Draco深度解析

3D数据压缩革命:从原理到实践的Draco深度解析 【免费下载链接】draco Draco is a library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics. 项目地址: https:…

作者头像 李华
网站建设 2026/4/16 13:55:37

终极数据仓库实战指南:从零构建电商实时与离线数仓系统

终极数据仓库实战指南:从零构建电商实时与离线数仓系统 【免费下载链接】data-warehouse-learning 【2024最新版】 大数据 数据分析 电商系统 实时数仓 离线数仓 建设方案及实战代码,涉及组件 flink、paimon、doris、seatunnel、dolphinscheduler、datar…

作者头像 李华
网站建设 2026/4/14 22:31:30

Wan2.2-T2V-A14B能否生成水下生物活动视频?

Wan2.2-T2V-A14B能否生成水下生物活动视频? 在海洋纪录片的幕后,我们常常看到摄影师潜入数百米深海,只为捕捉一只发光水母的优雅漂浮。耗时数月、动用专业设备和团队协作——这几乎是传统内容生产的“标配”。但今天,如果我告诉你…

作者头像 李华
网站建设 2026/4/16 13:53:44

聊聊 GEO:为什么你家好产品,AI偏偏“看不见”?

你有没有遇到过这种尴尬?公司的产品技术过硬、客户口碑也不错,可当客户问AI“XX领域哪家好”时,AI列举了一圈竞品,偏偏没提你家——就像在热闹的派对上,你明明站在人群里,却没人递话。这不是产品的问题&…

作者头像 李华
网站建设 2026/4/16 13:53:38

PyKalman终极指南:简单实现卡尔曼滤波数据预测

PyKalman终极指南:简单实现卡尔曼滤波数据预测 【免费下载链接】pykalman Kalman Filter, Smoother, and EM Algorithm for Python 项目地址: https://gitcode.com/gh_mirrors/py/pykalman 卡尔曼滤波是一种强大的数学算法,专门用于在噪声环境中进…

作者头像 李华