<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Sunshine</title><description>记录一点光</description><link>https://xiao12hhh.github.io/</link><language>zh_CN</language><item><title>步履经年，逐光而行——个人自传</title><link>https://xiao12hhh.github.io/sunshine/posts/auto-biography/</link><guid isPermaLink="true">https://xiao12hhh.github.io/sunshine/posts/auto-biography/</guid><description>从重庆乡野到重点学府再到普通 211，一段关于热爱、落差与接纳的成长自传。</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;我叫小红，是一名普通的青年学子，我生长在重庆一座宁静质朴的小村庄。乡土的清风、淳朴的人情，滋养了我开朗纯粹的性格，也塑造了我从小踏实上进、不服输、肯坚持的本心。回首一路走来的求学之路，有年少意气风发的热烈，有奋力拼搏的汗水，有青涩懵懂的心事，也有直面落差、接纳平凡、默默成长的迷茫与坚韧，每一段经历，都是我人生最珍贵的印记。&lt;/p&gt;
&lt;h2&gt;一、乡土年少，初心向阳&lt;/h2&gt;
&lt;p&gt;我的童年平凡而温暖，家中有一位比我更懂事稳重的哥哥。在家人的呵护与引导下，我自小便乖巧听话、待人真诚，性格活泼开朗，是邻里长辈口中懂事优秀的&quot;别人家的孩子&quot;。那时的我，心思纯粹、心性向上，不懂何为懈怠，只知道踏实做事、认真成长，小小的心里，始终藏着一份不甘平庸的底气。&lt;/p&gt;
&lt;p&gt;步入小学，我彻底爱上了学习，尤其痴迷数学。数字与逻辑的魅力深深吸引着我，让我始终保持着高涨的学习热情。彼时我的家乡地处偏僻，资源有限，镇上没有课外教辅书籍售卖，没有拓展学习的渠道，但我从未因此止步。为了精进自己的数学能力，我主动向数学老师求助，终于借到了一本奥数书。那段时光，我靠着一本旧书反复钻研、独自摸索，一点点拓宽自己的知识面。凭借热爱与坚持，我的成绩始终稳居班级前列。年少的我笃定地相信，只要足够努力，我会一直保持优秀，一直所向披靡。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./auto-p1.jpg&quot; alt=&quot;奥数自学时光&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;二、少年启程，砥砺求学&lt;/h2&gt;
&lt;p&gt;时光荏苒，小学岁月匆匆而过。为了让我接受更好的教育，拥有更好的未来，爷爷奶奶倾尽心力，为我的学业奔波操劳。老家的初中教学资源薄弱、教学质量有限，他们不愿让我错失成长的机会，四处托人、费心打点，带着家里珍藏的蜂蜜、自养的土鸡四处奔走，最终将我送入了镇上的初中就读。&lt;/p&gt;
&lt;p&gt;虽然费尽周折，我最终没能进入师资最好的班级，但年少的我心性豁达，从未心生抱怨。我始终坚信，学习的好坏从不由班级决定，只由自身的努力决定。刚踏入镇上的中学时，周遭皆是陌生的环境、陌生的同学，没有一个熟识的伙伴，我一度难以快速适应。但骨子里的傲气与韧劲支撑着我，我从不畏惧陌生，更不轻易认输。我自认天资尚可、肯下苦功，坚信自己依旧可以脱颖而出。&lt;/p&gt;
&lt;p&gt;我的努力从未辜负自己。初中第一次大型考试，在全校一千余名学生中，我取得了全校第十四名、班级前三的优异成绩。这份成绩让我备受鼓舞，更加坚定了我深耕学习的信念。初中阶段，我也曾有过短暂青涩的懵懂情愫，匆匆而过，不留遗憾，成为青春里轻轻翻过的一页。此后的日子里，我兼顾学习与生活，始终保持昂扬向上的状态。那时的我意气风发、年少轻狂，心中满是骄傲与自信，天真地以为自己是人生的主角，前路坦荡、万事可期。&lt;/p&gt;
&lt;p&gt;可成长从不会一帆风顺。步入初三，学业难度陡增，化学学科成了我最大的短板。无论我如何钻研、如何努力摸索，始终难以吃透知识点，成绩陷入瓶颈，无法再像从前一样稳步提升、突破自我。那段时间，我满心苦恼、倍感无力，只能咬牙坚持，熬过了压力重重的初三学年。中考之中，我的化学成绩依旧不尽人意，所幸我深耕多年的数学顶住了压力，考取一百四十多分的高分，凭借单科优势弥补了短板，顺利考入重点高中强基班，开启了全新的高中生涯。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./auto-p2.jpg&quot; alt=&quot;高中起点&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;三、青春逐梦，亦有回甘&lt;/h2&gt;
&lt;p&gt;进入重点高中强基班，我真正见识到了优秀者的模样。严厉负责的班主任、勤奋自律的身边同学、浓厚紧张的学习氛围，无时无刻不在激励着我奋勇向前。高中的我，不仅深耕学业，也坚持体育锻炼，在运动场上挥洒汗水，磨砺坚韧的意志。高一时，我在校运会斩获 400 米年级第一名、1500 米年级前八名的优异成绩；高二学年，我依旧坚持训练，在 400 米、1500 米长跑项目中持续保持优异水准，运动也成了我缓解学业压力、突破自我的重要方式。&lt;/p&gt;
&lt;p&gt;高二的青春里，我也曾心生悸动，悄悄暗恋过一位温柔美好的女孩。年少的喜欢纯粹又安静，我将这份心意藏于心底，默默努力、静静观望，未曾惊扰。直至高考结束，我鼓起勇气告白，最终遗憾未能双向奔赴。时过境迁，如今的我早已全然释怀，只将这份青涩的心动珍藏为青春独有的美好回忆。&lt;/p&gt;
&lt;p&gt;高中前两年，是我求学路上最充实、最轻松的时光。我平衡好学习与压力，疲惫时就独自一人在球场奔跑、打球，用汗水消解学业的疲惫，在松弛有度的节奏里稳步前行。凭借日复一日的坚持与自律，我的成绩长期稳定在年级前十，稳稳站在优秀的行列，依旧保持着少年的骄傲与底气。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./auto-p3.jpg&quot; alt=&quot;球场时光&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./auto-p4.jpg&quot; alt=&quot;少年意气&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;四、高三风雨，得失成长&lt;/h2&gt;
&lt;p&gt;所有的转折与落差，都出现在高三。冲刺阶段的高压学习，彻底压缩了所有的放松时间。无休止的刷题、频繁的考试、紧绷的节奏，让我的神经时刻处于高度紧张的状态。长期的高压内耗，慢慢消磨了我的思维与状态。我依旧保持着往日的作息，依旧拼尽全力努力学习，可成绩却开始断崖式下滑。曾经唾手可得的年级前十，变成了遥不可及的奢望，甚至一度考出年级三十名的低谷成绩。&lt;/p&gt;
&lt;p&gt;那段时间，是我高中最煎熬的日子。我满心困惑、满心不甘，明明从未懈怠，依旧全力以赴，为何换来的却是退步与落差？我习惯了在外人面前保持乐观开朗，伪装出云淡风轻的模样，可无人知晓，无数个深夜里，我会因为成绩下滑暗自难过、自我怀疑。老师殷切的期望、同学由衷的钦佩、自己坚守多年的骄傲，全部被残酷的成绩打破。&lt;/p&gt;
&lt;p&gt;我年少时最大的理想，是考入军校、身披戎装、保家卫国，守护家国山河。为了这个梦想，我认真备考、严格自律，顺利通过了军校严苛的军检与面试，一路过关斩将，距离梦想仅有一步之遥。可命运终究留有遗憾，最终几分之差，让我与心心念念的军校失之交臂。&lt;/p&gt;
&lt;p&gt;高考落幕，我最终的成绩只能进入一所普通 211 高校，就读计算机专业。梦想落空的失落、努力付诸东流的遗憾萦绕在心头，我纠结良久、反复斟酌，最终慢慢释然，说服自己坦然接受结果。我告诉自己，前路皆可奔赴，计算机亦是新的赛道，依然可以全力以赴、发光发热。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./auto-p5.jpg&quot; alt=&quot;重整出发&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;五、新程起航，温柔前行&lt;/h2&gt;
&lt;p&gt;怀揣着少年从未熄灭的傲气与憧憬，我离开故土，远赴陌生的城市开启大学生活。初入大学，我依旧延续着多年的执念，笃定自己可以像小学、初中、高中一样，披荆斩棘、所向披靡，在新的平台继续优秀。&lt;/p&gt;
&lt;p&gt;步入大学，我始终珍惜真挚的同窗情谊，从未淡忘高中并肩同行的挚友。纵使异地求学、分隔两地，我与高中最好的朋友们依旧保持着紧密的联系，日常互相鼓励、彼此陪伴，岁岁年年情谊不变。2026 年五一假期，我和许久未见的高中好友相约同行，共赴南京出游。我们并肩游历山河、畅谈过往与未来，褪去学业的疲惫，重温年少并肩的温暖，这段美好的同行时光，也成为我大学生活里无比珍贵的治愈与美好。&lt;/p&gt;
&lt;p&gt;可真正踏入大学校园，我也真切感受到了全新的差距与挑战。身边的同学大多基础扎实、见识更广，从小接触电子产品与专业知识，适应能力极强。而我，出身乡村，此前从未接触过电脑，所有的专业知识、设备操作，对我而言都是全然陌生的领域。一切都只能从零摸索、从头学起。&lt;/p&gt;
&lt;p&gt;大学的学习模式彻底颠覆了我多年的学习习惯。高等数学抽象晦涩，脱离了高中的学习节奏与氛围，我再也找不到从前得心应手的学习状态；C 语言专业课程节奏极快，课堂讲授内容有限，大部分知识需要自主线上自学，零基础的我屡屡碰壁、难以吃透；英语本就是我的薄弱学科，身处高手云集的校园，看着身边同学流利自如的英语能力，我的自卑愈发浓烈；曾经擅长的田径体育，在人才济济的大学里也变得平平无奇，再也没有过人的闪光点。&lt;/p&gt;
&lt;p&gt;曾经的我，是众人夸赞的优等生，是自带骄傲的少年；而如今，在全新的赛道上，我成了人群中最普通、最平庸的人。巨大的落差让我一度陷入自我怀疑，但骨子里的倔强从未消失。我不愿甘于平庸，不愿辜负多年的努力，依旧选择埋头深耕，用加倍的努力弥补基础的短板，一点点追赶他人的脚步。&lt;/p&gt;
&lt;h2&gt;六、接纳平凡，奔赴山海&lt;/h2&gt;
&lt;p&gt;一路走来，从乡村孩童到重点学子，再到普通的大学生，我见过意气风发的自己，也接纳了平凡普通的自己。如今的我，依然在默默努力、稳步前行。我深知，学习从不是一蹴而就的奇迹，而是循序渐进的积累。当下的努力或许无法立刻换来成绩的飞跃，但每一份坚持、每一份付出，都在为未来铺路。&lt;/p&gt;
&lt;p&gt;褪去年少的轻狂，褪去无谓的骄傲，我慢慢学会接纳落差、接纳遗憾、接纳不完美的自己。我珍惜真挚的情谊，释怀青春的遗憾，沉淀浮躁的心态，在成长中慢慢温柔、慢慢坚定。前路漫漫，风雨兼程，我始终相信，不忘初心、步履不停，终能冲破迷茫、摆脱自卑，在属于自己的赛道上稳步成长、向阳生长。&lt;/p&gt;
&lt;p&gt;以此自传，记录过往，期许未来。加油，始终坚韧、从未放弃的自己！&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./auto-p6.jpg&quot; alt=&quot;逐光而行&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>心有山海，自渡流年</title><link>https://xiao12hhh.github.io/sunshine/posts/xin-you-shan-hai/</link><guid isPermaLink="true">https://xiao12hhh.github.io/sunshine/posts/xin-you-shan-hai/</guid><description>人生是一场与自我周旋、与命运相处的漫长修行。观史察世，接纳缺憾，独处自愈，守住本心，与自己和解，与岁月温柔相处。</description><pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;人这一生，本质是一场与自我周旋、与命运相处的漫长修行。我们终其一生，都在追问活着的意义，在得失、迷茫与坚守中，慢慢拼凑出属于自己的人生答案。&lt;/p&gt;
&lt;h2&gt;一、少年傲骨，执念与迷茫&lt;/h2&gt;
&lt;p&gt;年少的十几年，我一直活在正向的成长轨迹里，在同辈中保持优异，带着一身少年傲骨笃定前行。那时总以为，足够努力就该万事顺遂，心有所向就必得所愿所得，顺势奔赴时代的浪潮，就一定能收获理想的结局。可越往前走越明白，人生从不是单向的耕耘换回报。计划常有偏差，奔赴常有落空，那些被期待、被骄傲裹挟的执念，终究会让人身陷迷茫，反复内耗。&lt;/p&gt;
&lt;h2&gt;二、观史察世，放下执念&lt;/h2&gt;
&lt;p&gt;我偏爱历史与哲学，总习惯跳出世俗的喧嚣，冷静审视人生的本质。纵观千载光阴，世间从来没有统一的人生标准答案。古今众生，有人功成名就留名青史，有人半生颠沛甘于平凡，有人坚守本心淡泊度日，万般活法，各有归途，本无高下之分。&lt;/p&gt;
&lt;p&gt;很多时候，我们的痛苦皆源于过度执念，执着于过往的优秀，执着于完美的结局，执着于付出必有回响，却忘了人生本就充满无常与缺憾。正如弘一法师所言：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;一念执着，万般皆苦；一念放下，便是重生。&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;三、接纳缺憾，清醒成长&lt;/h2&gt;
&lt;p&gt;很长一段时间，我始终困在这样的执念里：那些深夜的坚持、独自熬过的艰难、一路辗转的颠沛，终要靠一份耀眼的成绩、光鲜的结果来匹配，才算不负自己。可历经迷茫、慢慢沉淀后才通透，人生诸多奔赴，本就是徒劳与温柔并存。人力有穷尽，世事皆无常，很多努力未必会有立竿见影的结果，很多坚守未必能换来世俗认可的荣光，但奔赴的过程、沉淀的心境、磨砺的心性，本身就是独一无二的收获。&lt;/p&gt;
&lt;p&gt;庄子早已道破此间真谛：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;达命之情者，不务知之所无奈何。&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;认清局限、接纳缺憾，从不是妥协摆烂，而是成年人最清醒的成长。&lt;/p&gt;
&lt;h2&gt;四、独处自愈，沉默自渡&lt;/h2&gt;
&lt;p&gt;我向来是旁人眼中乐观开朗的模样，习惯收敛所有负面情绪，独自承压、默默自愈，习惯性做照亮他人、温暖周遭的人。久而久之，身边人都默认我永远坚韧、无惧风雨，无人知晓这层乐观的外壳之下，是一颗敏感脆弱、反复拉扯的心。所有的焦虑、迷茫与不甘，无处诉说，只能独自消化、自我和解。&lt;/p&gt;
&lt;p&gt;杨绛先生的一句话，恰好道尽了这种独处的心境：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;有些伤痛，何可言，何能言，何处言，不可说。&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;独处自愈、沉默自渡，是成长悄悄赋予我的铠甲，也是藏在我心底最温柔的软肋。&lt;/p&gt;
&lt;h2&gt;五、烟火与山海，并行共生&lt;/h2&gt;
&lt;p&gt;行走于世，最难得的从不是功成名就，而是不割裂自我、不弄丢本心。很多人在谋生赶路的途中，渐渐丢掉了精神底色，被功利裹挟，被世俗定义，活成了麻木单一的模样。但人生从不是非此即彼的单选题，烟火谋生与精神丰盈，从来可以并行共生。&lt;/p&gt;
&lt;p&gt;我们可以脚踏实地奔赴前路，为生活深耕笃行、立身立足；也可以心存山海、守住热爱，在文字、思考与文史求索中安放灵魂。理性支撑我们立足世间、抵御风雨，感性温柔我们岁月、治愈迷茫。那些对人文的偏爱、对人生的追问、对本心的坚守，从来不是无用的消遣，而是我们对抗平庸、接纳自我的底气。&lt;/p&gt;
&lt;h2&gt;六、宁做我：忠于本心&lt;/h2&gt;
&lt;p&gt;人生这场修行，最珍贵的从来不是活成别人眼中的完美范本，而是始终守住自我、忠于本心。正如东晋殷浩所言：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;我与我周旋久，宁做我。&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;走过迷茫、熬过内耗，我终于懂得，人生最好的活法，从不是登顶巅峰、万人艳羡，而是历经世事依然纯粹，遍历风雨依然清醒。不必困在世俗的标尺里自我内耗，不必执着于复刻别人的人生轨迹，不必用完美的标准苛责自己。&lt;/p&gt;
&lt;h2&gt;七、与己和解，与岁月温柔相处&lt;/h2&gt;
&lt;p&gt;过往的颠沛、独处的坚守、迷茫的求索，都不是人生的缺憾，而是成长的必经之路，是岁月赠予的沉淀与力量。人生百态，得失随缘，放下无谓的苛责与执念，方能卸下心头重负，坦然面对世事无常。&lt;/p&gt;
&lt;p&gt;无门慧开禅师说：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;若无闲事挂心头，便是人间好时节。&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;接纳人生的不完美，包容世事的无常，与自己和解，与岁月温柔相处，便是最好的人生状态。&lt;/p&gt;
&lt;h2&gt;结语&lt;/h2&gt;
&lt;p&gt;岁月不语，流年安然。往后余生，外可从容奔赴山海、踏实谋生，内可固守本心、向阳自持。以清醒渡迷茫，以赤诚抵岁月，不负独处坚守，不负一路奔赴，在平凡的时光里，活出自在、通透与坦荡。&lt;/p&gt;
</content:encoded></item><item><title>一曲旧韵，温藏岁岁青春</title><link>https://xiao12hhh.github.io/sunshine/posts/cry-for-me-youth/</link><guid isPermaLink="true">https://xiao12hhh.github.io/sunshine/posts/cry-for-me-youth/</guid><description>音乐是时光最温柔的存档。一首《Cry for me》，锁住了 2024 年的凛凛寒冬，也锁住了那段热烈滚烫的青春。</description><pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;听一万遍《cry for me》，能回到 24 年冬天吗&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;有人说，音乐是时光最温柔的存档。我们走过万千风景，看过四季更迭，许多人事会在岁月里慢慢模糊，消散在庸常的烟火里。可总有一首歌，一段旋律，会牢牢锁住某一段光阴、某一种心绪，成为岁月留给我们最鲜活、最温柔的印记。无需刻意追忆，只要熟悉的旋律响起，尘封的往事便如泉水奔涌，猝不及防，却万般温柔。&lt;/p&gt;
&lt;p&gt;我始终是偏爱在旋律里回望过往的人。大抵是天生的回忆型人格，心底如同藏着一间盛满旧时光的屋子，那些热烈的、温柔的、纯粹的瞬间，都被妥帖安放。而那些循环过无数次的歌曲，就是推开这间屋子的钥匙。一首老歌，从不是单纯的音符拼凑，它承载着独属于我们的季节、故事与少年心事，是时光最深情的留白。&lt;/p&gt;
&lt;p&gt;初次听见《Cry for me》，并不是在歌单里偶然翻到，而是一段《我在时间尽头等你》的电影解说。影片里跨越轮回的深情，随着旋律缓缓铺展，当时只觉得曲调动人，心底漾开淡淡的怅然。谁也未曾预料，这段旋律，会在不久之后，彻底嵌进我 2024 年的凛凛寒冬，成为我青春里最滚烫的注脚。彼时正值盛大的成人礼，十七八岁的我们，褪去懵懂稚气，站在成年的门槛之上，眼底盛满热血与憧憬。冬日的寒风掠过校园的跑道与教学楼，吹起少年的衣角，也藏起了无数未曾言说的心动与欢喜。&lt;/p&gt;
&lt;p&gt;那个冬天，《Cry for me》成了我耳机里循环不息的主旋律。如今再听这首曲子，依旧会瞬间失神，思绪穿透层层岁月，精准落回那个闪闪发光的冬天。&lt;/p&gt;
&lt;p&gt;回头再看，高中本就谈不上轻松。堆积的试卷、熬到很晚的夜晚、对前途的忐忑、数不清的压力与疲惫，都是真实存在的。可沉重的日子之所以会变成记忆里闪闪发光的模样，不全是岁月本身完美无瑕，而是因为身边有一群人。&lt;/p&gt;
&lt;p&gt;是朝夕相伴的挚友，疲惫时互相打气，烦闷时嬉笑打闹，枯燥的日子被彼此的陪伴揉得温热柔软；是小心翼翼的暗恋，藏在眼底，藏在心底，藏在冬日温柔的晚风里。一份突如其来的生日礼物，是那个冬天最珍贵的惊喜，是年少心动最温柔的佐证。那份忐忑、欢喜、雀跃的心情，足以冲淡刷题的苦、备考的累。&lt;/p&gt;
&lt;p&gt;苦难不会自动变成美好，是同行的人，给苦难镀上了一层柔光。明明也会疲惫，也会迷茫，可只要转头就能看见身边的他们，所有煎熬仿佛都有了归宿。那些伏案刷题的黄昏，那些课间短暂的闲谈，成人礼仪式上并肩站立的时刻，苦与乐交织在一起，才拼凑出完整真切的青春。&lt;/p&gt;
&lt;p&gt;那段日子是充实且滚烫的。我们奔赴晨光，追逐晚霞，为理想埋头努力，为热爱肆意生长。少年的热血藏在每一个伏案的黄昏，藏在每一次并肩前行的路上，藏在成人礼庄严又盛大的仪式里。我们热烈、坦荡、鲜活、明媚，拥有最纯粹的快乐，这是往后人生任何阶段，都再也复刻不了的圆满。&lt;/p&gt;
&lt;p&gt;后来四季轮转，冬去春来，我们告别了高中校园，奔赴新的人生旅程。身边的风景更迭，身边的人来人往，生活多了琐碎与压力，多了迷茫与权衡。可每当熟悉的旋律再次入耳，所有的浮躁都会瞬间沉淀，内心会被一股温柔的怅然填满。&lt;/p&gt;
&lt;p&gt;原来音乐最动人的魔力，从不是旋律有多动听、歌词有多戳心，而是它绑定了我们独一无二的记忆。当初看电影解说，只共情故事里跨越时间的爱恋；可经过 24 年冬天之后，这首歌早已不再只属于电影。它替我们留住了那个咬牙坚持却依旧热烈的少年，留住了一群陪自己熬过苦难的人，留住了那个寒风凛冽、却因为陪伴而无比温柔的冬天。&lt;/p&gt;
&lt;p&gt;世人总说人要向前看，不必频频回头。可偏爱回忆的人，从来不是沉溺过去、逃避当下，只是太过珍惜生命里难得的光亮。我们频频回望，反复感慨，清楚地记得当时的辛苦，却更加感念那些温暖的救赎。那些友情与心动，热血与陪伴，是人生漫长岁月里，最干净的白月光。&lt;/p&gt;
&lt;p&gt;时光匆匆，岁岁年年，人事终会渐行渐远。曾经并肩的挚友散落四方，未曾说出口的暗恋藏于岁月，盛大的成人礼定格在旧时光里，2024 年的冬天永远停留在了过往。&lt;/p&gt;
&lt;p&gt;但幸好，还有旋律为我们存档岁月。&lt;/p&gt;
&lt;p&gt;每当熟悉的歌声响起，便是我与青春重逢的时刻。那些熬过的疲惫，晚风里的欢喜，少年眼底的热忱，朋友给予的慰藉，都会穿过时光长河，温柔相拥。&lt;/p&gt;
&lt;p&gt;一曲旧韵，一生回响。&lt;/p&gt;
&lt;p&gt;往后余生，每当我再次听见这段旋律，依然会温柔动容。它记得高中所有的苦，也记得所有被人照亮的甜。它起于一段电影解说，最终沉落在我的青春深处，是我的青春序章，是我心底永不褪色的温柔，是我跨越岁岁年年，依然割舍不下的青春情结。&lt;/p&gt;
&lt;p&gt;时光会老去，岁月会翻篇，但藏在歌声里的少年与冬雪，苦累与陪伴，永远鲜活，永远热烈，永远温柔如初。&lt;/p&gt;
</content:encoded></item><item><title>山河相隔，本心相守，便是真友谊</title><link>https://xiao12hhh.github.io/sunshine/posts/friendship-bond/</link><guid isPermaLink="true">https://xiao12hhh.github.io/sunshine/posts/friendship-bond/</guid><description>真正的友谊，从来都没有标准答案，千人千解，万般模样，归根结底，是一份干净纯粹、松弛自在的灵魂链接。</description><pubDate>Mon, 07 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;世人总爱给友谊贴上各式标签。有人觉得朝夕相伴、形影不离是挚友，有人认为秒回的消息、频繁的寒暄是真心，也有人以相处时长、交集多少，来定义一段关系的深浅。可历经岁月沉淀，慢慢懂得，真正的友谊，从来都没有标准答案，千人千解，万般模样，归根结底，是一份干净纯粹、松弛自在的灵魂链接。&lt;/p&gt;
&lt;p&gt;它从不是黏腻的捆绑，也不是刻意的维系。年少时的我们，总以为友谊需要热烈的奔赴，需要日日相伴、时时闲谈，需要把彼此的生活紧紧捆绑，才算不负相遇。可长大后才慢慢清醒，真正的情谊，从不需要靠新鲜感支撑，也不需要用琐碎的寒暄填满空隙。那些强求的陪伴、刻意的寒暄、敷衍的回应，从来都不是友谊的本质，只是人际关系里流于表面的客套。&lt;/p&gt;
&lt;p&gt;真正的友谊，是一场温柔的留白，是久处不厌，亦是久别不散。我们各自奔赴人生的不同轨道，忙着生活、忙着成长、忙着应对世间纷扰，不必时刻分享日常，不必事事报备行踪，不必为了维系关系勉强寒暄。消息可以隔天才回，见面可以时隔数月，彼此的生活有了新的交集、新的风景，也无需刻意迁就与讨好。&lt;/p&gt;
&lt;p&gt;但这份看似松弛的关系，藏着最坚定的偏爱与兜底。它从不会因为距离而生疏，不会因为沉默而褪色。当你深陷低谷、情绪低落，被疲惫与委屈裹挟，不必伪装坚强，不必小心翼翼顾虑对错，只管坦诚展露狼狈与脆弱。那个真正的朋友，不会嫌弃你的颓态，不会敷衍你的情绪，更不会借机远离。TA会安静倾听你的心事，温柔抚平你的焦虑，在你迷茫时给予笃定，在你无助时予你支撑，做你最安稳的退路与底气。&lt;/p&gt;
&lt;p&gt;更动人的是久别重逢的温柔。岁月流转，山河阻隔，我们或许许久未见，各自历经风雨、褪去青涩，有了新的生活与阅历。可当再次相见的那一刻，没有生疏的尴尬，没有刻意的客套，所有隔阂尽数消散。我们依旧可以肆无忌惮畅谈过往，随性闲聊日常，一如年少模样，初心未改，熟稔如初。时间与距离，冲淡了琐碎的交集，却沉淀了最真挚的情谊。&lt;/p&gt;
&lt;p&gt;我始终觉得，真正的友谊，最珍贵的底色是纯粹。它无关名利、无关利弊、无关身份地位，不掺杂功利的算计，不裹挟世俗的权衡。始于真心，忠于本心，只是单纯地欣赏彼此、信任彼此、珍惜彼此。不用刻意维系，却始终不离不弃；不用时时相伴，却永远心有灵犀。&lt;/p&gt;
&lt;p&gt;它是一种双向的治愈与成长。我们不必强行共鸣所有情绪，不必强求三观完全契合，却懂得彼此的软肋，包容彼此的不完美。你可以坦然做最真实的自己，不用伪装、不用逞强、不用迎合。开心时，有人共享欢喜，让美好加倍；失意时，有人接纳低谷，让遗憾减半。彼此独立，又彼此牵挂，各自发光，又相互温暖。&lt;/p&gt;
&lt;p&gt;人世间的关系大多喧嚣浮躁，来来往往皆是过客。而真正的友谊，是岁月赠予的温柔馈赠。它不热烈张扬，却绵长持久；不刻意强求，却稳稳相守。&lt;/p&gt;
&lt;p&gt;不必朝夕相伴，却始终心心相念；不必朝夕寒暄，却始终岁岁安然。这份纯粹、干净、松弛的灵魂羁绊，便是人间最好的友谊。&lt;/p&gt;
</content:encoded></item><item><title>Java 基础入门教程（从零到面向对象之前）</title><link>https://xiao12hhh.github.io/sunshine/posts/java-basics-tutorial/</link><guid isPermaLink="true">https://xiao12hhh.github.io/sunshine/posts/java-basics-tutorial/</guid><description>从零开始系统学习 Java 编程语言核心基础语法。涵盖环境搭建、基本语法、数据类型、运算符、流程控制、数组、方法等，但不涉及面向对象深入内容。</description><pubDate>Mon, 07 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;欢迎来到 Java 世界！本教程将带你从零开始，系统学习 Java 编程语言的核心基础语法。内容涵盖环境搭建、基本语法、数据类型、运算符、流程控制、数组、方法等，但不涉及面向对象（类、对象、继承、多态等）的深入内容。每个知识点都配有详细说明、代码示例和常见注意事项，力求让初学者扎实掌握。&lt;/p&gt;
&lt;h2&gt;目录&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;#1-java-%E6%A6%82%E8%BF%B0&quot;&gt;Java 概述&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#2-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA&quot;&gt;开发环境搭建&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#3-%E7%AC%AC%E4%B8%80%E4%B8%AA-java-%E7%A8%8B%E5%BA%8F&quot;&gt;第一个 Java 程序&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#4-%E5%9F%BA%E6%9C%AC%E8%AF%AD%E6%B3%95%E8%A6%81%E7%B4%A0&quot;&gt;基本语法要素&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;4.1 &lt;a href=&quot;#41-%E6%B3%A8%E9%87%8A&quot;&gt;注释&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;4.2 &lt;a href=&quot;#42-%E6%A0%87%E8%AF%86%E7%AC%A6%E5%92%8C%E5%85%B3%E9%94%AE%E5%AD%97&quot;&gt;标识符和关键字&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;4.3 &lt;a href=&quot;#43-%E5%8F%98%E9%87%8F%E4%B8%8E%E5%B8%B8%E9%87%8F&quot;&gt;变量与常量&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#5-%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B&quot;&gt;数据类型&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;5.1 &lt;a href=&quot;#51-%E5%9F%BA%E6%9C%AC%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B&quot;&gt;基本数据类型&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;5.2 &lt;a href=&quot;#52-%E5%BC%95%E7%94%A8%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E7%AE%80%E4%BB%8B&quot;&gt;引用数据类型（简介）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;5.3 &lt;a href=&quot;#53-%E7%B1%BB%E5%9E%8B%E8%BD%AC%E6%8D%A2&quot;&gt;类型转换&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#6-%E8%BF%90%E7%AE%97%E7%AC%A6&quot;&gt;运算符&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;6.1 &lt;a href=&quot;#61-%E7%AE%97%E6%9C%AF%E8%BF%90%E7%AE%97%E7%AC%A6&quot;&gt;算术运算符&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;6.2 &lt;a href=&quot;#62-%E5%85%B3%E7%B3%BB%E8%BF%90%E7%AE%97%E7%AC%A6&quot;&gt;关系运算符&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;6.3 &lt;a href=&quot;#63-%E9%80%BB%E8%BE%91%E8%BF%90%E7%AE%97%E7%AC%A6&quot;&gt;逻辑运算符&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;6.4 &lt;a href=&quot;#64-%E8%B5%8B%E5%80%BC%E8%BF%90%E7%AE%97%E7%AC%A6&quot;&gt;赋值运算符&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;6.5 &lt;a href=&quot;#65-%E4%BD%8D%E8%BF%90%E7%AE%97%E7%AC%A6%E4%BA%86%E8%A7%A3&quot;&gt;位运算符（了解）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;6.6 &lt;a href=&quot;#66-%E4%B8%89%E5%85%83%E8%BF%90%E7%AE%97%E7%AC%A6&quot;&gt;三元运算符&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;6.7 &lt;a href=&quot;#67-%E5%85%B6%E4%BB%96%E8%BF%90%E7%AE%97%E7%AC%A6&quot;&gt;其他运算符&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#7-%E6%B5%81%E7%A8%8B%E6%8E%A7%E5%88%B6&quot;&gt;流程控制&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;7.1 &lt;a href=&quot;#71-%E9%A1%BA%E5%BA%8F%E7%BB%93%E6%9E%84&quot;&gt;顺序结构&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;7.2 &lt;a href=&quot;#72-%E6%9D%A1%E4%BB%B6%E5%88%A4%E6%96%ADifif%E2%80%91elseswitch&quot;&gt;条件判断（if、if‑else、switch）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;7.3 &lt;a href=&quot;#73-%E5%BE%AA%E7%8E%AF%E7%BB%93%E6%9E%84forwhiledo%E2%80%91while&quot;&gt;循环结构（for、while、do‑while）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;7.4 &lt;a href=&quot;#74-%E8%B7%B3%E8%BD%AC%E8%AF%AD%E5%8F%A5breakcontinuereturn&quot;&gt;跳转语句（break、continue、return）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#8-%E6%95%B0%E7%BB%84&quot;&gt;数组&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;8.1 &lt;a href=&quot;#81-%E4%B8%80%E7%BB%B4%E6%95%B0%E7%BB%84&quot;&gt;一维数组&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;8.2 &lt;a href=&quot;#82-%E5%A4%9A%E7%BB%B4%E6%95%B0%E7%BB%84&quot;&gt;多维数组&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;8.3 &lt;a href=&quot;#83-arrays-%E5%B7%A5%E5%85%B7%E7%B1%BB%E5%B8%B8%E7%94%A8%E6%96%B9%E6%B3%95&quot;&gt;Arrays 工具类常用方法&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#9-%E6%96%B9%E6%B3%95%E5%87%BD%E6%95%B0&quot;&gt;方法（函数）&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;9.1 &lt;a href=&quot;#91-%E6%96%B9%E6%B3%95%E7%9A%84%E5%AE%9A%E4%B9%89%E4%B8%8E%E8%B0%83%E7%94%A8&quot;&gt;方法的定义与调用&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;9.2 &lt;a href=&quot;#92-%E5%8F%82%E6%95%B0%E4%B8%8E%E8%BF%94%E5%9B%9E%E5%80%BC&quot;&gt;参数与返回值&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;9.3 &lt;a href=&quot;#93-%E6%96%B9%E6%B3%95%E9%87%8D%E8%BD%BD&quot;&gt;方法重载&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;9.4 &lt;a href=&quot;#94-%E9%80%92%E5%BD%92&quot;&gt;递归&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;9.5 &lt;a href=&quot;#95-%E5%8F%AF%E5%8F%98%E5%8F%82%E6%95%B0&quot;&gt;可变参数&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;9.6 &lt;a href=&quot;#96-%E5%8F%98%E9%87%8F%E4%BD%9C%E7%94%A8%E5%9F%9F&quot;&gt;变量作用域&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#10-%E8%BE%93%E5%85%A5%E4%B8%8E%E8%BE%93%E5%87%BA&quot;&gt;输入与输出&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;10.1 &lt;a href=&quot;#101-%E6%A0%87%E5%87%86%E8%BE%93%E5%87%BAsystemout&quot;&gt;标准输出（System.out）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;10.2 &lt;a href=&quot;#102-%E6%A0%87%E5%87%86%E8%BE%93%E5%85%A5scanner&quot;&gt;标准输入（Scanner）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#11-%E5%B8%B8%E7%94%A8%E7%B1%BB%E7%AE%80%E5%8D%95%E4%BD%BF%E7%94%A8&quot;&gt;常用类简单使用&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;11.1 &lt;a href=&quot;#111-string-%E7%B1%BB&quot;&gt;String 类&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;11.2 &lt;a href=&quot;#112-math-%E7%B1%BB&quot;&gt;Math 类&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;11.3 &lt;a href=&quot;#113-%E5%8C%85%E8%A3%85%E7%B1%BB%E7%AE%80%E7%95%A5&quot;&gt;包装类（简略）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#12-%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86%E5%9F%BA%E7%A1%80&quot;&gt;异常处理基础&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#13-%E6%80%BB%E7%BB%93%E4%B8%8E%E5%BB%BA%E8%AE%AE&quot;&gt;总结与建议&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;1. Java 概述&lt;/h2&gt;
&lt;p&gt;Java 是一种面向对象、跨平台、健壮安全的高性能编程语言，由 Sun Microsystems（现 Oracle）于 1995 年发布。其核心思想是 &lt;strong&gt;Write Once, Run Anywhere&lt;/strong&gt;（一次编写，到处运行），这得益于 Java 虚拟机（JVM）机制。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;JVM&lt;/strong&gt;（Java Virtual Machine）：负责执行 Java 字节码，屏蔽底层操作系统差异。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JRE&lt;/strong&gt;（Java Runtime Environment）：运行 Java 程序所需的环境，包含 JVM 和核心类库。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JDK&lt;/strong&gt;（Java Development Kit）：开发工具包，包含 JRE 以及编译、调试等工具（如 &lt;code&gt;javac&lt;/code&gt;、&lt;code&gt;java&lt;/code&gt;、&lt;code&gt;jar&lt;/code&gt;）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;版本演进：目前主流是 Java 8（长期支持）、Java 11、Java 17 等。本教程基于 Java 17 语法，但基础部分兼容多数版本。&lt;/p&gt;
&lt;h2&gt;2. 开发环境搭建&lt;/h2&gt;
&lt;h3&gt;2.1 下载 JDK&lt;/h3&gt;
&lt;p&gt;访问 Oracle 官网或 AdoptOpenJDK（现 Eclipse Temurin）下载适合操作系统的 JDK 安装包。推荐使用 LTS 版本。&lt;/p&gt;
&lt;h3&gt;2.2 安装与配置环境变量（Windows 示例）&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;双击安装包，按提示安装（建议路径不含空格，如 &lt;code&gt;C:\Java\jdk-17&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;配置环境变量：
&lt;ul&gt;
&lt;li&gt;新建系统变量 &lt;code&gt;JAVA_HOME&lt;/code&gt;，值为 JDK 安装根目录。&lt;/li&gt;
&lt;li&gt;编辑 &lt;code&gt;Path&lt;/code&gt; 变量，添加 &lt;code&gt;%JAVA_HOME%\bin&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;验证：打开命令行（cmd），输入 &lt;code&gt;java -version&lt;/code&gt; 和 &lt;code&gt;javac -version&lt;/code&gt;，若显示版本信息则成功。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;2.3 开发工具选择&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;文本编辑器：Notepad++、Sublime Text、VS Code（需安装 Java 扩展）。&lt;/li&gt;
&lt;li&gt;集成开发环境（IDE）：IntelliJ IDEA（推荐）、Eclipse、NetBeans。初学者建议先用文本编辑器 + 命令行编译运行，以熟悉底层过程。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;3. 第一个 Java 程序&lt;/h2&gt;
&lt;h3&gt;3.1 编写源代码&lt;/h3&gt;
&lt;p&gt;新建一个文本文件，命名为 &lt;code&gt;HelloWorld.java&lt;/code&gt;，输入以下代码：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;public class HelloWorld {
    public static void main(String[] args) {
        System.out.println(&quot;Hello, World!&quot;);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;3.2 编译与运行&lt;/h3&gt;
&lt;p&gt;打开终端 / 命令行，进入文件所在目录。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;编译：&lt;code&gt;javac HelloWorld.java&lt;/code&gt; → 生成 &lt;code&gt;HelloWorld.class&lt;/code&gt; 字节码文件。&lt;/li&gt;
&lt;li&gt;运行：&lt;code&gt;java HelloWorld&lt;/code&gt; → 控制台输出 &lt;code&gt;Hello, World!&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3.3 代码解析&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public class HelloWorld&lt;/code&gt;：定义了一个公共类，类名必须与文件名一致（大小写敏感）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public static void main(String[] args)&lt;/code&gt;：程序入口，固定写法（目前可理解为模板）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;System.out.println(&quot;Hello, World!&quot;);&lt;/code&gt;：输出字符串并换行。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;注意点&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Java 是大小写敏感的，&lt;code&gt;class&lt;/code&gt; 和 &lt;code&gt;Class&lt;/code&gt; 不同。&lt;/li&gt;
&lt;li&gt;文件名与公共类名必须完全一致（&lt;code&gt;.java&lt;/code&gt; 后缀除外）。&lt;/li&gt;
&lt;li&gt;每个 Java 程序至少有一个类，且包含 &lt;code&gt;main&lt;/code&gt; 方法才能独立运行。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. 基本语法要素&lt;/h2&gt;
&lt;h3&gt;4.1 注释&lt;/h3&gt;
&lt;p&gt;注释是对代码的解释，不会被编译执行。Java 支持三种注释：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;单行注释：&lt;code&gt;// 注释内容&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;多行注释：&lt;code&gt;/* 注释内容 */&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;文档注释：&lt;code&gt;/** 注释内容 */&lt;/code&gt;（用于生成 API 文档）&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;// 这是单行注释
/*
    这是多行注释
    可以跨行
 */
/**
 * 这是文档注释，通常用于方法或类说明
 */
public class CommentDemo {
    public static void main(String[] args) {
        // 单行注释示例
        System.out.println(&quot;注释不会影响程序&quot;);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;4.2 标识符和关键字&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;标识符&lt;/strong&gt;：用于命名类、方法、变量等的名称。规则：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;由字母、数字、下划线 &lt;code&gt;_&lt;/code&gt;、美元符 &lt;code&gt;$&lt;/code&gt; 组成。&lt;/li&gt;
&lt;li&gt;不能以数字开头。&lt;/li&gt;
&lt;li&gt;不能是 Java 关键字（如 &lt;code&gt;public&lt;/code&gt;、&lt;code&gt;class&lt;/code&gt;、&lt;code&gt;int&lt;/code&gt; 等）。&lt;/li&gt;
&lt;li&gt;区分大小写，长度不限。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;关键字&lt;/strong&gt;：Java 预定义的具有特殊含义的单词，如 &lt;code&gt;abstract&lt;/code&gt;、&lt;code&gt;class&lt;/code&gt;、&lt;code&gt;if&lt;/code&gt;、&lt;code&gt;for&lt;/code&gt; 等。全部小写。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;命名规范（建议遵守）&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;类名：大驼峰（PascalCase），如 &lt;code&gt;HelloWorld&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;方法名 / 变量名：小驼峰（camelCase），如 &lt;code&gt;userName&lt;/code&gt;、&lt;code&gt;getAge&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;常量：全部大写，下划线分隔，如 &lt;code&gt;MAX_VALUE&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.3 变量与常量&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;变量&lt;/strong&gt;：在程序运行过程中值可以改变的量。必须先声明后使用。
声明格式：&lt;code&gt;数据类型 变量名 [= 初始值];&lt;/code&gt;
示例：&lt;code&gt;int age = 25;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;常量&lt;/strong&gt;：值不可变的量，使用 &lt;code&gt;final&lt;/code&gt; 关键字修饰。
声明格式：&lt;code&gt;final 数据类型 常量名 = 值;&lt;/code&gt;
示例：&lt;code&gt;final double PI = 3.14159;&lt;/code&gt;（通常命名全部大写）&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;public class VariableDemo {
    public static void main(String[] args) {
        int num = 10;          // 变量
        num = 20;              // 可重新赋值
        final double PI = 3.14;
        // PI = 3.15;          // 编译错误，常量不能修改
        System.out.println(&quot;num=&quot; + num + &quot;, PI=&quot; + PI);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;注意：局部变量在使用前必须初始化，否则编译报错。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;5. 数据类型&lt;/h2&gt;
&lt;p&gt;Java 是强类型语言，每个变量都必须声明其数据类型。数据类型分为两大类：&lt;strong&gt;基本数据类型&lt;/strong&gt; 和 &lt;strong&gt;引用数据类型&lt;/strong&gt;。&lt;/p&gt;
&lt;h3&gt;5.1 基本数据类型（8 种）&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;类型关键字&lt;/th&gt;
&lt;th&gt;占用字节&lt;/th&gt;
&lt;th&gt;取值范围&lt;/th&gt;
&lt;th&gt;默认值&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;byte&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;-128 ~ 127&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;short&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;-32768 ~ 32767&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;-2³¹ ~ 2³¹‑1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;long&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;-2⁶³ ~ 2⁶³‑1&lt;/td&gt;
&lt;td&gt;0L&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;float&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;±3.4E‑38 ~ ±3.4E+38&lt;/td&gt;
&lt;td&gt;0.0f&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;double&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;±1.8E‑308 ~ ±1.8E+308&lt;/td&gt;
&lt;td&gt;0.0d&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;char&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;0 ~ 65535（Unicode 字符）&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&apos;\u0000&apos;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;boolean&lt;/td&gt;
&lt;td&gt;视虚拟机实现&lt;/td&gt;
&lt;td&gt;&lt;code&gt;true / false&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;整数字面量默认是 &lt;code&gt;int&lt;/code&gt;，超大长整型要加后缀 &lt;code&gt;L&lt;/code&gt;：&lt;code&gt;long big = 30000000000L;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;浮点字面量默认是 &lt;code&gt;double&lt;/code&gt;，&lt;code&gt;float&lt;/code&gt; 需要后缀 &lt;code&gt;F&lt;/code&gt;：&lt;code&gt;float f = 3.14F;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;char&lt;/code&gt; 使用单引号包裹单个字符，支持 Unicode 转义 &lt;code&gt;&apos;\u0041&apos;&lt;/code&gt; 代表 &lt;code&gt;A&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;public class DataTypeDemo {
    public static void main(String[] args) {
        byte b = 100;
        short s = 10000;
        int i = 100000;
        long l = 10000000000L;   // 必须加L
        float f = 3.14159F;      // 必须加F
        double d = 3.1415926535;
        char c = &apos;A&apos;;
        boolean flag = true;

        System.out.println(b + &quot;, &quot; + s + &quot;, &quot; + i + &quot;, &quot; + l);
        System.out.println(f + &quot;, &quot; + d + &quot;, &quot; + c + &quot;, &quot; + flag);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;5.2 引用数据类型（简介）&lt;/h3&gt;
&lt;p&gt;引用类型指向一个对象，而不是直接存储值本身。包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;类（Class）：&lt;code&gt;String&lt;/code&gt;、&lt;code&gt;Scanner&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;接口（Interface）&lt;/li&gt;
&lt;li&gt;数组（Array）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;引用类型默认值为 &lt;code&gt;null&lt;/code&gt;，本教程仅简单使用 &lt;code&gt;String&lt;/code&gt; 和数组。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;String str = &quot;Hello&quot;;   // 字符串是类
int[] arr = new int[5]; // 数组是引用类型
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;5.3 类型转换&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;自动类型转换（隐式）&lt;/strong&gt;：小范围 → 大范围，自动转换
转换链：&lt;code&gt;byte → short → int → long → float → double&lt;/code&gt;；&lt;code&gt;char → int&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;强制类型转换（显式）&lt;/strong&gt;：大范围 → 小范围，手动强转，存在精度丢失、溢出风险
语法：&lt;code&gt;(目标类型) 值&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;public class TypeCastDemo {
    public static void main(String[] args) {
        // 自动转换
        int i = 100;
        long l = i;
        double d = l;

        // 强制转换
        double pi = 3.14159;
        int intPi = (int) pi;    // 截断小数
        System.out.println(intPi);

        int big = 130;
        byte b = (byte) big;     // 溢出
        System.out.println(b);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;boolean 不能和任何类型互相转换；混合运算时，变量会自动提升为取值范围更大的类型。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;6. 运算符&lt;/h2&gt;
&lt;h3&gt;6.1 算术运算符&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;+ - * / % ++ --&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;public class ArithmeticDemo {
    public static void main(String[] args) {
        int a = 10, b = 3;
        System.out.println(a + b);  // 13
        System.out.println(a - b);  // 7
        System.out.println(a * b);  // 30
        System.out.println(a / b);  // 3（整数整除）
        System.out.println(a % b);  // 1（取余）

        int x = 5;
        System.out.println(x++);    // 先输出5，再加1
        System.out.println(++x);    // 先自增，再输出7
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;整数相除结果为整数，如果需要小数，至少一个操作数为浮点型。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;6.2 关系运算符&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;== != &amp;gt; &amp;lt; &amp;gt;= &amp;lt;=&lt;/code&gt;，运算结果一定是 &lt;code&gt;boolean&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;int a = 5, b = 8;
System.out.println(a == b);  // false
System.out.println(a != b);  // true
System.out.println(a &amp;lt; b);   // true
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;6.3 逻辑运算符&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;&amp;amp;&amp;amp; || ! &amp;amp; | ^&lt;/code&gt;，操作布尔值&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;、&lt;code&gt;||&lt;/code&gt;：&lt;strong&gt;短路运算&lt;/strong&gt;，左边已经可以确定结果时，右边不再执行&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;boolean p = true, q = false;
System.out.println(p &amp;amp;&amp;amp; q);  // false
System.out.println(p || q);  // true
System.out.println(!p);      // false

int i = 0;
if (false &amp;amp;&amp;amp; (i++ &amp;gt; 0)) {}
System.out.println(i);       // 0，短路导致i不会自增
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;6.4 赋值运算符&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;= += -= *= /= %=&lt;/code&gt;
&lt;code&gt;a += 3&lt;/code&gt; 等价于 &lt;code&gt;a = a + 3&lt;/code&gt;（自带隐式类型转换）&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;int a = 10;
a += 5;   // a = 15
a %= 4;   // a = 3
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;6.5 位运算符（了解）&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;&amp;amp; | ^ ~ &amp;lt;&amp;lt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&lt;/code&gt;，作用于整数的二进制位&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;int a = 5;   // 0101
int b = 3;   // 0011
System.out.println(a &amp;amp; b);  // 1
System.out.println(a | b);  // 7
System.out.println(a ^ b);  // 6
System.out.println(a &amp;lt;&amp;lt; 1); // 10
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;6.6 三元运算符&lt;/h3&gt;
&lt;p&gt;格式：&lt;code&gt;条件 ? 表达式1 : 表达式2&lt;/code&gt;
条件为 true 返回表达式 1，否则返回表达式 2&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;int age = 18;
String status = age &amp;gt;= 18 ? &quot;成年&quot; : &quot;未成年&quot;;
System.out.println(status);
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;6.7 其他运算符&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;instanceof&lt;/code&gt;：判断对象类型（面向对象）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;()&lt;/code&gt;：提升运算优先级&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7. 流程控制&lt;/h2&gt;
&lt;h3&gt;7.1 顺序结构&lt;/h3&gt;
&lt;p&gt;代码从上至下逐行执行，是程序默认执行方式。&lt;/p&gt;
&lt;h3&gt;7.2 条件判断（if、if‑else、switch）&lt;/h3&gt;
&lt;h4&gt;if&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;if (条件) {
    // 条件为true执行
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;if‑else&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;if (条件) {
} else {
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;if‑else if‑else&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;int score = 85;
if (score &amp;gt;= 90) {
    System.out.println(&quot;优秀&quot;);
} else if (score &amp;gt;= 80) {
    System.out.println(&quot;良好&quot;);
} else if (score &amp;gt;= 60) {
    System.out.println(&quot;及格&quot;);
} else {
    System.out.println(&quot;不及格&quot;);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;switch&lt;/h4&gt;
&lt;p&gt;适合等值匹配，&lt;code&gt;break&lt;/code&gt; 防止穿透；Java14+ 支持箭头语法&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;int day = 3;
switch (day) {
    case 1:
        System.out.println(&quot;Monday&quot;);
        break;
    case 2:
        System.out.println(&quot;Tuesday&quot;);
        break;
    case 3:
        System.out.println(&quot;Wednesday&quot;);
        break;
    default:
        System.out.println(&quot;Other day&quot;);
}

// Java14+ 简化写法
switch (day) {
    case 1 -&amp;gt; System.out.println(&quot;Mon&quot;);
    case 2 -&amp;gt; System.out.println(&quot;Tue&quot;);
    case 3 -&amp;gt; System.out.println(&quot;Wed&quot;);
    default -&amp;gt; System.out.println(&quot;Other&quot;);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;7.3 循环结构（for、while、do‑while）&lt;/h3&gt;
&lt;h4&gt;for&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;for (初始化; 判断条件; 迭代语句) {
    循环体;
}
// 1~10打印
for (int i = 1; i &amp;lt;= 10; i++) {
    System.out.print(i + &quot; &quot;);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;while（先判断，后执行）&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;int sum = 0, i = 1;
while (i &amp;lt;= 100) {
    sum += i;
    i++;
}
System.out.println(&quot;sum=&quot; + sum);
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;do‑while（先执行一次，再判断，至少运行一次）&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;do {
    //循环体
} while (条件);
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;7.4 跳转语句（break、continue、return）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;break&lt;/code&gt;：跳出当前循环 /switch&lt;/li&gt;
&lt;li&gt;&lt;code&gt;continue&lt;/code&gt;：跳过本次循环剩余代码，直接进入下一轮循环&lt;/li&gt;
&lt;li&gt;&lt;code&gt;return&lt;/code&gt;：结束整个方法&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;// break
for (int i = 1; i &amp;lt;= 100; i++) {
    if (i % 7 == 0) {
        System.out.println(i);
        break;
    }
}

// continue，输出奇数
for (int i = 1; i &amp;lt;= 10; i++) {
    if (i % 2 == 0) {
        continue;
    }
    System.out.print(i + &quot; &quot;);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;8. 数组&lt;/h2&gt;
&lt;p&gt;数组是&lt;strong&gt;固定长度、存放相同类型元素&lt;/strong&gt;的容器，属于引用类型。&lt;/p&gt;
&lt;h3&gt;8.1 一维数组&lt;/h3&gt;
&lt;h4&gt;声明初始化&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;// 动态初始化：指定长度，默认值填充
int[] arr1 = new int[5];
// 静态初始化
int[] arr2 = new int[]{1,2,3};
int[] arr3 = {4,5,6};
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;遍历访问&lt;/h4&gt;
&lt;p&gt;索引从 &lt;code&gt;0&lt;/code&gt; 开始；&lt;code&gt;数组名.length&lt;/code&gt; 获取数组长度&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;int[] arr = {10,20,30,40};
System.out.println(arr[0]);
arr[2] = 99;

//普通for遍历
for(int i = 0;i &amp;lt; arr.length;i++){
    System.out.println(arr[i]);
}
//增强for循环 for‑each（只读）
for(int num : arr){
    System.out.println(num);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;示例求最大值&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;int[] scores = {85,92,78,88,96};
int max = scores[0];
for(int s : scores){
    if(s &amp;gt; max) max = s;
}
System.out.println(&quot;最高分：&quot;+max);
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;8.2 多维数组（二维数组）&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;//固定行列
int[][] matrix = new int[3][4];
//静态初始化
int[][] matrix2 = {
    {1,2,3},
    {4,5,6},
    {7,8,9}
};
//不规则数组
int[][] jagged = new int[2][];
jagged[0] = new int[3];
jagged[1] = new int[5];

//双层循环遍历
for(int i = 0;i &amp;lt; matrix2.length;i++){
    for(int j = 0;j &amp;lt; matrix2[i].length;j++){
        System.out.print(matrix2[i][j]+&quot; &quot;);
    }
    System.out.println();
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;8.3 Arrays 工具类&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;java.util.Arrays&lt;/code&gt; 提供数组排序、打印、复制、填充等静态方法&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import java.util.Arrays;

public class ArraysDemo {
    public static void main(String[] args) {
        int[] nums = {5,3,8,1,9};
        Arrays.sort(nums);
        System.out.println(Arrays.toString(nums));

        int idx = Arrays.binarySearch(nums,5);
        System.out.println(&quot;索引：&quot;+idx);

        int[] copy = Arrays.copyOf(nums,3);
        System.out.println(Arrays.toString(copy));

        Arrays.fill(nums,0);
        System.out.println(Arrays.toString(nums));
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;数组一旦创建长度不可修改；索引越界抛出 &lt;code&gt;ArrayIndexOutOfBoundsException&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;9. 方法（函数）&lt;/h2&gt;
&lt;p&gt;方法是封装一段可重复执行的代码块，本章节全部使用 &lt;code&gt;static&lt;/code&gt; 静态方法。&lt;/p&gt;
&lt;h3&gt;9.1 方法的定义与调用&lt;/h3&gt;
&lt;p&gt;语法格式：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[修饰符] 返回值类型 方法名(形参列表){
    方法体;
    [return 返回值;]
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;示例：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;public class MethodDemo {
    public static int add(int a,int b){
        return a + b;
    }
    public static void main(String[] args) {
        int res = add(10,20);
        System.out.println(&quot;结果：&quot;+res);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;返回值类型写 &lt;code&gt;void&lt;/code&gt; 代表无返回值，&lt;code&gt;return&lt;/code&gt; 可以省略或者单独写 &lt;code&gt;return;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;9.2 参数与返回值&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;形参&lt;/strong&gt;：方法定义时的变量&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实参&lt;/strong&gt;：调用方法时传入的真实数据&lt;/li&gt;
&lt;li&gt;&lt;code&gt;return&lt;/code&gt; 用来结束方法并返回结果，类型必须匹配声明&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;public static double circleArea(double radius){
    return 3.14 * radius * radius;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;9.3 方法重载（Overload）&lt;/h3&gt;
&lt;p&gt;同一个类中，&lt;strong&gt;方法名相同，参数列表不同（个数 / 类型 / 顺序）&lt;/strong&gt;，返回值不能作为重载区分条件&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;public static int sum(int a,int b){return a+b;}
public static int sum(int a,int b,int c){return a+b+c;}
public static double sum(double a,double b){return a+b;}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;9.4 递归&lt;/h3&gt;
&lt;p&gt;方法&lt;strong&gt;自己调用自己&lt;/strong&gt;，必须设置终止条件，否则栈溢出 &lt;code&gt;StackOverflowError&lt;/code&gt;
阶乘示例：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;public static long factorial(int n){
    if(n == 0 || n == 1) return 1;
    return n * factorial(n-1);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;9.5 可变参数&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;类型...变量名&lt;/code&gt;，本质是数组；可变参数只能放在参数列表最后，一个方法最多一个可变参数&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;public static int sumAll(int... nums){
    int sum = 0;
    for(int x : nums) sum += x;
    return sum;
}
//调用 sumAll(1,2,3,4,5)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;9.6 变量作用域&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;局部变量&lt;/strong&gt;：定义在方法 / 代码块内部，只能在对应 &lt;code&gt;{}&lt;/code&gt; 中使用，使用前必须初始化&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;public static void scopeDemo(){
    int x = 10;
    if(x &amp;gt; 0){
        int y = 20;
        System.out.println(x+y);
    }
    //System.out.println(y); //编译报错，y已经失效
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;10. 输入与输出&lt;/h2&gt;
&lt;h3&gt;10.1 标准输出 System.out&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;System.out.print()&lt;/code&gt;：输出不换行&lt;/li&gt;
&lt;li&gt;&lt;code&gt;System.out.println()&lt;/code&gt;：输出并换行&lt;/li&gt;
&lt;li&gt;&lt;code&gt;System.out.printf(&quot;格式字符串&quot;,参数)&lt;/code&gt;：格式化输出&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;System.out.printf(&quot;姓名：%s，年龄：%d\n&quot;,&quot;张三&quot;,25);
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;10.2 标准输入 Scanner&lt;/h3&gt;
&lt;p&gt;使用步骤：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;import java.util.Scanner;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;创建对象 &lt;code&gt;Scanner sc = new Scanner(System.in);&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;调用 &lt;code&gt;nextInt()&lt;/code&gt; / &lt;code&gt;nextDouble()&lt;/code&gt; / &lt;code&gt;nextLine()&lt;/code&gt; 获取输入&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sc.close()&lt;/code&gt; 关闭资源&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;import java.util.Scanner;

public class ScannerDemo {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print(&quot;请输入名字：&quot;);
        String name = scanner.nextLine();
        System.out.print(&quot;请输入年龄：&quot;);
        int age = scanner.nextInt();
        System.out.println(&quot;你好，&quot;+name+&quot;，今年&quot;+age+&quot;岁&quot;);
        scanner.close();
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;nextInt()&lt;/code&gt; 读取数字之后会遗留换行符，如果后面使用 &lt;code&gt;nextLine()&lt;/code&gt; 需要额外读取一行吃掉换行符。输入类型不匹配抛出 &lt;code&gt;InputMismatchException&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;11. 常用类简单使用&lt;/h2&gt;
&lt;h3&gt;11.1 String 类&lt;/h3&gt;
&lt;p&gt;字符串是&lt;strong&gt;不可变字符序列&lt;/strong&gt;，修改会生成新对象&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;String s1 = &quot;Hello&quot;;
String s2 = &quot;World&quot;;
String s3 = s1 + &quot; &quot; + s2;

int len = s1.length();
char ch = s1.charAt(1);
String sub = s3.substring(0,5);
int index = s1.indexOf(&apos;l&apos;);
boolean eq = s1.equals(&quot;Hello&quot;);
boolean ignoreCase = &quot;HELLO&quot;.equalsIgnoreCase(s1);
String upper = s1.toUpperCase();
String replaceStr = s1.replace(&apos;l&apos;,&apos;L&apos;);
String[] splitArr = &quot;one,two,three&quot;.split(&quot;,&quot;);
String trimStr = &quot;  abc  &quot;.trim();
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;判断字符串内容相等&lt;strong&gt;必须使用 &lt;code&gt;.equals()&lt;/code&gt;，不要直接用 &lt;code&gt;==&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;11.2 Math 类&lt;/h3&gt;
&lt;p&gt;全部静态数学工具方法&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;double pi = Math.PI;
double abs = Math.abs(-5.5);
double ceil = Math.ceil(3.2);
double floor = Math.floor(3.9);
long round = Math.round(3.5);
double max = Math.max(10,20);
double min = Math.min(10,20);
double pow = Math.pow(2,3);
double sqrt = Math.sqrt(9);
double random = Math.random(); // [0.0 , 1.0)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;11.3 包装类（简略）&lt;/h3&gt;
&lt;p&gt;8 种基本类型对应的对象类型，支持&lt;strong&gt;自动装箱 / 拆箱&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Integer i = 10;         //自动装箱 int → Integer
int num = i;            //自动拆箱 Integer → int

int parseNum = Integer.parseInt(&quot;123&quot;);
String str = Integer.toString(456);
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;缓存范围 &lt;code&gt;-128 ~ 127&lt;/code&gt;，超出缓存区间比较值请使用 &lt;code&gt;.equals()&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;12. 异常处理基础&lt;/h2&gt;
&lt;p&gt;异常是程序运行时发生的错误事件，&lt;code&gt;try‑catch‑finally&lt;/code&gt; 捕获处理异常
常见异常：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ArithmeticException&lt;/code&gt;：算术异常（除 0）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ArrayIndexOutOfBoundsException&lt;/code&gt;：数组越界&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NullPointerException&lt;/code&gt;：空指针&lt;/li&gt;
&lt;li&gt;&lt;code&gt;InputMismatchException&lt;/code&gt;：输入格式错误&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;语法结构：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;try{
    //可能报错的代码
}catch(异常类型 e){
    //捕获异常后的处理逻辑
}finally{
    //无论是否异常，一定会执行（释放资源）
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;示例代码：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import java.util.Scanner;

public class ExceptionDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        try {
            System.out.print(&quot;输入整数：&quot;);
            int num = sc.nextInt();
            int res = 100 / num;
            System.out.println(&quot;结果：&quot; + res);
        } catch (ArithmeticException e) {
            System.out.println(&quot;除数不能为0！&quot;);
        } catch (InputMismatchException e) {
            System.out.println(&quot;输入不是整数！&quot;);
        } finally {
            sc.close();
            System.out.println(&quot;资源释放完成&quot;);
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;手动抛出异常 &lt;code&gt;throw&lt;/code&gt;；方法声明异常列表使用 &lt;code&gt;throws&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;public static void checkAge(int age){
    if(age &amp;lt; 0){
        throw new IllegalArgumentException(&quot;年龄不能为负数&quot;);
    }
    System.out.println(&quot;合法年龄&quot;);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;13. 总结与建议&lt;/h2&gt;
&lt;p&gt;恭喜你完成 Java 基础语法的学习！你已经掌握：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Java 环境搭建，编译运行流程（JDK/JRE/JVM）&lt;/li&gt;
&lt;li&gt;变量、8 大基本数据类型、运算符、类型转换&lt;/li&gt;
&lt;li&gt;if‑else / switch、for / while / do‑while、break / continue&lt;/li&gt;
&lt;li&gt;一维、二维数组，Arrays 工具类&lt;/li&gt;
&lt;li&gt;方法定义调用、重载、递归、可变参数、变量作用域&lt;/li&gt;
&lt;li&gt;Scanner 输入输出、String / Math / 包装类基础用法&lt;/li&gt;
&lt;li&gt;try‑catch 简单异常捕获处理&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;下一阶段：面向对象编程（类、对象、封装、继承、多态、抽象类、接口）&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;学习建议&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;动手敲每一段示例代码，拒绝只看视频读文档&lt;/li&gt;
&lt;li&gt;读懂控制台报错信息，学会简单调试&lt;/li&gt;
&lt;li&gt;练习小型项目：简易计算器、成绩管理系统巩固语法&lt;/li&gt;
&lt;li&gt;学会查阅官方文档、合理搜索解决 bug&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;附录常见问题&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Q：编译提示找不到符号？
A：检查拼写大小写，变量是否提前定义，类库是否导入。&lt;/li&gt;
&lt;li&gt;Q：&lt;code&gt;==&lt;/code&gt; 和 &lt;code&gt;equals()&lt;/code&gt; 的区别？
A：基本类型 &lt;code&gt;==&lt;/code&gt; 判断值；引用类型 &lt;code&gt;==&lt;/code&gt; 判断内存地址，&lt;code&gt;equals()&lt;/code&gt; 判断对象内容（String 重写过 equals）。&lt;/li&gt;
&lt;li&gt;Q：如何终止循环？
A：&lt;code&gt;break&lt;/code&gt; 跳出单层循环；&lt;code&gt;return&lt;/code&gt; 直接结束整个方法。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;祝你学习愉快，在 Java 的世界里探索无限可能！&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;📚 后续学习笔记&lt;/h2&gt;
&lt;p&gt;后面还有一些 Java 学习笔记和实战代码，&lt;strong&gt;欢迎大家来看&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;👉 &lt;a href=&quot;https://gitee.com/xiaohg1218/java-notes&quot;&gt;https://gitee.com/xiaohg1218/java-notes&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;里面整理了更深入的 Java 知识、项目实战以及常见面试题，希望对你有帮助！&lt;/p&gt;
</content:encoded></item><item><title>对 I 人与 E 人的深度理解：没有固定人格，只有不同环境下的状态</title><link>https://xiao12hhh.github.io/sunshine/posts/ie-personality/</link><guid isPermaLink="true">https://xiao12hhh.github.io/sunshine/posts/ie-personality/</guid><description>世界上从来没有绝对的 I 人与 E 人，不存在一成不变的性格属性，每个人的人格表现，都是环境与身边人群共同塑造的临时状态。</description><pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;在当下的日常交流中，I 人与 E 人早已成为大家定义社交性格的常用标签。大众普遍刻板地认为，E 人就是天生外向、爱热闹、擅长社交，I 人就是天生内向、喜安静、惧怕人群。但在我看来，&lt;strong&gt;世界上从来没有绝对的 I 人与 E 人，不存在一成不变的性格属性，每个人的人格表现，都是环境与身边人群共同塑造的临时状态&lt;/strong&gt;。所谓内向与外向，从来不是与生俱来的固定人设，而是我们适配不同场景的社交方式。&lt;/p&gt;
&lt;p&gt;很多人对 I、E 人格的最大误区，就是将其定义为永久的性格特质，把人简单粗暴地归类。但事实上，每个人的性格都具备极强的可塑性与适应性，会随着环境氛围、人际关系、场景需求发生彻底的转变。没有永远社恐沉默的 I 人，也没有永远活泼外放的 E 人，环境，是切换人格状态的核心开关。&lt;/p&gt;
&lt;p&gt;生活中随处可见这样的状态转变。众人眼中典型的 I 人，平时安静内敛、不喜热闹，在陌生的社交场合会局促拘谨、沉默寡言，习惯性保持独处。但当他们身处熟悉、松弛、有归属感的环境，和志同道合、无比信任的朋友、家人相处时，就会彻底卸下防备。平日里沉默的他们会主动分享想法、侃侃而谈，变得开朗健谈、主动热情，展现出十足的 E 人特质。比如不善交际的学生，在陌生的班级集体中安静低调，但和三五挚友相聚时，也会嬉笑打闹、主动破冰，完全褪去内向的标签。&lt;/p&gt;
&lt;p&gt;反之，看似天生开朗、擅长社交的 E 人，也会在特定环境中切换为 I 人状态。日常里他们擅长破冰、乐于交友，在熟悉的圈子里永远是氛围担当。可一旦身处陌生、压抑、陌生感极强的环境，或是面对三观不合、氛围尴尬的人群时，他们会瞬间收敛锋芒。不再主动社交、不再活跃气氛，变得沉默寡言、习惯独处，不愿与人交流，展现出极致的内向状态。就像常年活跃在各类活动中的开朗的人，身处喧闹陌生的陌生人聚会时，也会选择独自静坐、默默旁观。&lt;/p&gt;
&lt;p&gt;究其根本，I 人与 E 人的核心区别，从来不是性格的内外向，而是&lt;strong&gt;人在不同环境中的安全感与适配感&lt;/strong&gt;。当环境舒适、人群熟悉、氛围松弛，我们内心充满安全感，就会解锁外放、主动、乐于交流的 E 人状态；当环境陌生、氛围压抑、人群疏离，我们缺乏归属感，出于自我保护，就会收起表达欲，进入安静、内敛、独处的 I 人状态。&lt;/p&gt;
&lt;p&gt;同时，人格的切换也和场景需求息息相关。在需要协作、交流、表达的场景中，即便性格偏内敛的人，也会主动突破自我，变得外向大方；在需要沉淀、独处、安静休整的场景中，再活泼的人，也会选择安静独处、减少社交。人格表现始终在为环境服务，而非被固有标签束缚。&lt;/p&gt;
&lt;p&gt;总而言之，I 人和 E 人从来不是用来定义人的固定标签，只是描述人&lt;strong&gt;当下社交状态&lt;/strong&gt;的临时词汇。每个人都是兼具内向与外向的综合体，环境塑造状态，场景改变性格。我们不必被 I 人、E 人的刻板印象束缚，更不必用单一标签定义自己和他人。接纳人格的流动性，理解环境对人的改变，才能更客观、包容地看待每一种社交状态，真正读懂人与人性格的本质。&lt;/p&gt;
</content:encoded></item><item><title>雪落皆空，人间尽是温柔徒劳</title><link>https://xiao12hhh.github.io/sunshine/posts/snow-country/</link><guid isPermaLink="true">https://xiao12hhh.github.io/sunshine/posts/snow-country/</guid><description>读完《雪国》，心里久久萦绕着一种安静的怅然。人世间大多数执念与奔赴，原来皆是徒劳——但徒劳，从来不代表无用。</description><pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;读完《雪国》，心里久久萦绕着一种安静的怅然。没有揪心的剧情，没有大悲大喜的跌宕，只有一片无边无际的白雪，清冷的夜色，和一场场抓不住、留不下的美好。川端康成的文字克制又温柔，像深夜无声飘落的雪花，轻轻覆在心上，让人慢慢读懂，人世间大多数执念与奔赴，原来皆是徒劳。&lt;/p&gt;
&lt;p&gt;整本书的底色，是清冷的虚无。一条长长的隧道，隔开了世俗喧嚣，通往纯白静谧的雪国，也通往一场注定幻灭的温柔幻境。主人公岛村本就是带着松弛、虚无的心态来到这里，他看透世间浮华，对一切人事都保持着疏离与淡然。也正因如此，他旁观着雪国里所有人的执着与热烈，却始终置身事外。&lt;/p&gt;
&lt;p&gt;驹子是雪国最鲜活、最滚烫的存在。身处泥泞的境遇里，她依然认真生活、执着热爱。她努力摆脱命运的桎梏，真诚待人，倾尽所有去奔赴一份真心。她的爱意热烈、纯粹且偏执，倾尽温柔，毫无保留。可这份拼尽全力的赤诚，在淡漠的世事和疏离的人心面前，显得格外单薄。在岛村眼中，这份滚烫的真心，从头到尾，都只是一场美丽却没有结果的徒劳。她越热烈，越执着，就越衬出这场相遇的荒芜与落空。&lt;/p&gt;
&lt;p&gt;如果说驹子是烟火般鲜活的现实，那叶子就是雪国转瞬即逝的月光。她干净、温柔、澄澈，带着不食人间烟火的纯粹，是藏在风雪里最极致的美好。她遥远、易碎、不可触碰，只能远远凝望，永远无法真正拥有。她是所有人心中理想化的温柔，是虚无又惊艳的幻影。故事最后的火光撕碎寂静的雪夜，幻影骤然坠落，漫天银河轰然倾泻而下，落在空旷的天地间。那一刻，所有的期待、眷恋、憧憬与温柔，尽数崩塌，归于空无。&lt;/p&gt;
&lt;p&gt;年少的时候，我始终相信，真心一定换真心，奔赴一定会有回响，所有认真珍惜的人和事，最终都会圆满落幕。我们总习惯性执着于结果，执着于双向的奔赴，执着于有始有终的故事。我们小心翼翼珍藏生活里细碎的温柔，为一点心动满心欢喜，为一份相遇满怀期待，固执地想要留住所有美好的瞬间。&lt;/p&gt;
&lt;p&gt;可年岁渐长，再读《雪国》，终于慢慢释怀。
人间常态，本就是缺憾与落空。
青春里的心动与相遇，大多都是如此。干净纯粹，毫无杂质，却大多难逃无疾而终的结局。很多温柔的相遇，没有争吵，没有辜负，没有轰轰烈烈的离别，只是被时间推着渐行渐远。从无话不谈，到沉默疏离，最后悄悄退出彼此的生活，安静落幕。&lt;/p&gt;
&lt;p&gt;从前会不甘，会遗憾，会反复回想如果当初。可如今终于明白，世间太多人事，从来不由人意。不是所有喜欢都能相守，不是所有相遇都能久伴，不是所有热烈奔赴，都能迎来圆满结局。&lt;/p&gt;
&lt;p&gt;但川端康成笔下的 &quot;徒劳&quot;，从来不是彻底的悲凉。
徒劳不代表无用，落空不代表浪费。&lt;/p&gt;
&lt;p&gt;驹子的深情没有归宿，可她坦荡热烈地爱过、认认真真地活过，这份赤诚本身就足够珍贵；那些停留在青春里的温柔心动，纵然没有结局，也曾温柔过漫长的岁月，装点过最纯粹的年少时光。所有悄悄珍藏的美好，默默付出的温柔，小心翼翼的心动，都是青春最真实、最干净的痕迹。&lt;/p&gt;
&lt;p&gt;雪国的风雪年年往复，洁白如初，却留不住任何一瞬的美好。星河璀璨一时，终究会隐入沉沉夜色。世间所有极致的温柔与美好，生来短暂，注定留白。&lt;/p&gt;
&lt;p&gt;成长大抵就是慢慢接受这种徒劳。
接受世事无常，接受遗憾常态，接受有些人只能路过，有些故事只能定格在曾经。不再执着于圆满，不再纠结于结局，学会珍藏相遇的温柔，坦然接受离别的落空。&lt;/p&gt;
&lt;p&gt;雪落无声，风月依旧。
那些藏在时光里的温柔与遗憾，那些无人知晓的心动与奔赴，终会像雪国的落雪一样，悄然消融，沉淀心底。
看似空空如也，实则温柔满程。
这大概就是人间最温柔的徒劳，也是青春最动人的底色。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./snow-1.jpg&quot; alt=&quot;雪国书籍内页 · 雪国两字与男子剪影&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./snow-2.jpg&quot; alt=&quot;驹子与叶子的车站场景 · 银河哗啦一声&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>钟表匠的课</title><link>https://xiao12hhh.github.io/sunshine/posts/clockmakers-lesson/</link><guid isPermaLink="true">https://xiao12hhh.github.io/sunshine/posts/clockmakers-lesson/</guid><description>一首小诗。游丝、齿轮与锈，都是时间落下的刻度。</description><pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;钟表匠的课&lt;/p&gt;
&lt;p&gt;午后，他打磨铜制机芯，&lt;br /&gt;
指腹与齿轮共享同一种沉默。&lt;br /&gt;
游丝在玻璃罩内练习呼吸，&lt;br /&gt;
教我们如何用静止对抗消逝。&lt;/p&gt;
&lt;p&gt;后来才懂：季节搬运着铁砧，&lt;br /&gt;
把春天锤打成薄如蝉翼的锈。&lt;br /&gt;
而锈，在雨水里翻身，&lt;br /&gt;
缓缓拓印出更深的刻度。&lt;/p&gt;
&lt;p&gt;尘埃也有螺旋的路径，&lt;br /&gt;
向上飘移，或向光坠落。&lt;br /&gt;
我们在各自的表盘画圆，&lt;br /&gt;
边缘总与中心存在轻微偏移。&lt;/p&gt;
&lt;p&gt;当铜针并拢成岛屿，&lt;br /&gt;
无人知晓，那个孩子何时拆解了&lt;br /&gt;
所有坚固的计时。&lt;br /&gt;
只余下钟盒里，光斑缓慢移动的折痕。&lt;/p&gt;
&lt;p&gt;永恒在齿轮间隙中，退让成&lt;br /&gt;
一道纤细的影。&lt;/p&gt;
</content:encoded></item><item><title>你好，Sunshine</title><link>https://xiao12hhh.github.io/sunshine/posts/hello-sunshine/</link><guid isPermaLink="true">https://xiao12hhh.github.io/sunshine/posts/hello-sunshine/</guid><description>第一篇博客，站点正式开张。</description><pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;第一篇博客，站就这么开起来了。&lt;/p&gt;
&lt;h2&gt;写新文章&lt;/h2&gt;
&lt;p&gt;在项目根目录跑一条命令就行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pnpm new-post 文章文件名
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;它会在 &lt;code&gt;src/content/posts/&lt;/code&gt; 下生成一个带好 frontmatter 的 Markdown 文件，改完保存，&lt;code&gt;pnpm dev&lt;/code&gt; 里就能实时看到。&lt;/p&gt;
&lt;h2&gt;常用命令&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;命令&lt;/th&gt;
&lt;th&gt;作用&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pnpm dev&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;本地预览，地址 localhost:4321&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pnpm build&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;构建，产物在 dist/&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pnpm preview&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;预览构建结果&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pnpm new-post &amp;lt;名字&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;新建一篇文章&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;想改点什么&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;站名、头像、个人简介、主题色：&lt;code&gt;src/config.ts&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;域名和部署路径：&lt;code&gt;astro.config.mjs&lt;/code&gt; 里的 &lt;code&gt;site&lt;/code&gt; 和 &lt;code&gt;base&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;首页顶部大图：换掉 &lt;code&gt;src/assets/images/demo-banner.png&lt;/code&gt;，或把新图放进去改 &lt;code&gt;banner.src&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;关于页：&lt;code&gt;src/content/spec/about.md&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item></channel></rss>