Spring 裝配Bean詳解

一、簡介

? Spring容器負責創建應用程序中的bean并通過DI來協調這些對象之間的關系。Spring具有非常大的靈活性,它提供了三種主要的裝配機制:

  • 在XML中進行顯示配置;
  • 在Java中進行顯示配置;
  • 隱式的bean發現機制和自動裝配。

二、在XML中進行顯示配置

1. 聲明一個簡單的bean

1. 創建CD接口

public interface CompactDisc {void play();
}

2. 創建NowAndThen類

public class NowAndThen implements CompactDisc{private String title = "Now And Then.";private String artist = "The Beatles";@Overridepublic void play() {System.out.println("Playing " + title + " by " + artist);}}

3. 在bean.xml文件中配置

<!--  通過class屬性來聲明一個簡單的bean,此時因為沒有指定ID,bean的ID將會是com.shiftycat.soundsystem.NowAndThen#0  -->
<bean class="com.shiftycat.soundsystem.NowAndThen"/>
<!--  使用id屬性可以用來指定ID  -->
<bean id="CompactDisc" class="com.shiftycat.soundsystem.NowAndThen"/>

4. 進行測試

@Test
public void compactDiscTest() {ClassPathXmlApplicationContext classPathXmlApplicationContext =new ClassPathXmlApplicationContext("bean.xml");CompactDisc compactDisc = classPathXmlApplicationContext.getBean(CompactDisc.class);compactDisc.play();
}

5. 測試結果

Playing Now And Then. by The Beatles

2. 借助構造器注入初始化bean

? 構造器注入有兩種方案:

  • constructor-arg元素
  • 使用Spring 3.0所引入的c-命名空間

1. 創建CD接口

public interface CompactDisc {void play();
}

2. 創建NowAndThen類

public class NowAndThen implements CompactDisc{private String title = "Now And Then.";private String artist = "The Beatles";@Overridepublic void play() {System.out.println("Playing " + title + " by " + artist);}}

3. 創建MediaPlayer接口

public interface MediaPlayer {void play();
}

4. 創建CDPlayer類

public class CDPlayer implements MediaPlayer{private CompactDisc cd;// 構造器注入public CDPlayer(CompactDisc cd) {this.cd = cd;}@Overridepublic void play() {System.out.println("Loading...");cd.play();}
}

5. 在bean.xml文件中配置

<bean id="CompactDisc" class="com.shiftycat.soundsystem.NowAndThen"/>\
<!--  第一種配置方案:`constructor-arg`元素  -->
<bean id="cdPlayer" class="com.shiftycat.soundsystem.CDPlayer"><constructor-arg ref="CompactDisc"/>
</bean>
<!--  第二種配置方案:使用Spring 3.0所引入的c-命名空間  -->
<!--  c:構造器參數名-ref=“要注入的bean的ID”  -->
<bean id="cdPlayer" class="com.shiftycat.soundsystem.CDPlayer" c:cd-ref="CompactDisc"/>
<!--  或者將參數的名稱替換為"_0"或者"_"  -->
<bean id="cdPlayer" class="com.shiftycat.soundsystem.CDPlayer" c:_0-ref="CompactDisc" />
<bean id="cdPlayer" class="com.shiftycat.soundsystem.CDPlayer" c:_-ref="CompactDisc" />

6. 進行測試

@Test
public void cdPlayerTest() {ClassPathXmlApplicationContext classPathXmlApplicationContext =new ClassPathXmlApplicationContext("bean.xml");CDPlayer cdPlayer = classPathXmlApplicationContext.getBean(CDPlayer.class);cdPlayer.play();}

7. 測試結果

Loading...
Playing Now And Then. by The Beatles
將字面量注入到構造器中

1. 創建BlackDisc類

public class BlackDisc implements CompactDisc{private String title;private String artist;public BlackDisc(String title, String artist) {this.title = title;this.artist = artist;}@Overridepublic void play() {System.out.println("Playing " + title + " by " + artist);}
}

2. 在bean.xml中進行配置

<bean id="blackDisc" class="com.shiftycat.soundsystem.BlackDisc"><constructor-arg value="Now And Then." /><constructor-arg value="The Beatles" />
</bean><bean id="blackDisc" class="com.shiftycat.soundsystem.BlackDisc"c:title="Now And Then."c:artist="The Beatles"
/><bean id="blackDisc" class="com.shiftycat.soundsystem.BlackDisc"c:_0="Now And Then."c:_1="The Beatles"
/>

3. 進行測試

@Test
public void blackDiscTest() {ClassPathXmlApplicationContext classPathXmlApplicationContext =new ClassPathXmlApplicationContext("bean.xml");BlackDisc blackDisc = classPathXmlApplicationContext.getBean(BlackDisc.class);blackDisc.play();
}

4. 測試結果

Playing Now And Then. by The Beatles

P.S. 裝配集合

public class BlackDisc implements CompactDisc {private String title;private String artist;private List<String> tracks;public BlackDisc(String title, String artist, List<String> tracks) {this.title = title;this.artist = artist;this.tracks = tracks;}@Overridepublic void play() {System.out.println("Playing " + title + " by " + artist);for (String track : tracks) {System.out.println("-Track: " + track);}}
}
<bean id="blackDisc" class="com.shiftycat.soundsystem.BlackDisc"><constructor-arg value="Now And Then." /><constructor-arg value="The Beatles" /><constructor-arg><list><value>I know it's true</value><value>It's all because of you</value><value>And if I make it through</value><value>It's all because of you</value><value>And now and then</value></list></constructor-arg>
</bean>
Playing Now And Then. by The Beatles
-Track: I know it's true
-Track: It's all because of you
-Track: And if I make it through
-Track: It's all because of you
-Track: And now and then

3. 設置屬性初始化bean

一般而言,對于強依賴使用構造器注入,對可選性的依賴使用屬性注入。

1. 在CDPlayer類中設置setter方法

public class CDPlayer implements MediaPlayer{private CompactDisc cd;public void setCompactDisc(CompactDisc cd) {this.cd = cd;}@Overridepublic void play() {System.out.println("Loading...");cd.play();}
}

2. 在bean.xml文件中進行配置

<!--  可以使用property進行配置-->
<bean id="cdPlayer" class="com.shiftycat.soundsystem.CDPlayer"><property name="compactDisc" ref="compactDisc"/>
</bean>
<!--  或者使用p-命名空間性配置-->
<bean id="cdPlayer" class="com.shiftycat.soundsystem.CDPlayer"p:compactDisc-ref="compactDisc"/>

3. 進行測試

@Test
public void cdPlayerTest() {ClassPathXmlApplicationContext classPathXmlApplicationContext =new ClassPathXmlApplicationContext("bean.xml");CDPlayer cdPlayer = classPathXmlApplicationContext.getBean(CDPlayer.class);cdPlayer.play();
}

4. 測試結果

Loading...
Playing Now And Then. by The Beatles
將字面量注入到屬性中

1. 在WhiteDisc類中設置setter方法

public class WhiteDisc implements CompactDisc{private String title;private String artist;private List<String> tracks;public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getArtist() {return artist;}public void setArtist(String artist) {this.artist = artist;}public List<String> getTracks() {return tracks;}public void setTracks(List<String> tracks) {this.tracks = tracks;}@Overridepublic void play() {System.out.println("Playing " + title + " by " + artist);for (String track : tracks) {System.out.println("-Track: " + track);}}
}

2. 在bean.xml文件中進行配置

<bean id="whileDisc" class="com.shiftycat.soundsystem.WhiteDisc"><property name="artist" value="Now And Then."/><property name="title" value="The Beatles" /><property name="tracks"><list><value>I know it's true</value><value>It's all because of you</value><value>And if I make it through</value><value>It's all because of you</value><value>And now and then</value></list></property>
</bean>
<!--或者-->
<bean id="whileDisc" class="com.shiftycat.soundsystem.WhiteDisc"p:artist="Now And Then."p:title="The Beatles"><property name="tracks"><list><value>I know it's true</value><value>It's all because of you</value><value>And if I make it through</value><value>It's all because of you</value><value>And now and then</value></list></property>
</bean>
<!--或者-->
<bean id="whileDisc" class="com.shiftycat.soundsystem.WhiteDisc"p:artist="Now And Then."p:title="The Beatles"p:tracks-ref="tracks"
>
</bean><util:list id="tracks"><value>I know it's true</value><value>It's all because of you</value><value>And if I make it through</value><value>It's all because of you</value><value>And now and then</value>
</util:list>

3. 進行測試

@Test
public void whiteDiscTest() {ClassPathXmlApplicationContext classPathXmlApplicationContext =new ClassPathXmlApplicationContext("bean.xml");WhiteDisc whiteDisc = classPathXmlApplicationContext.getBean(WhiteDisc.class);whiteDisc.play();
}

4. 測試結果

Playing The Beatles by Now And Then.
-Track: I know it's true
-Track: It's all because of you
-Track: And if I make it through
-Track: It's all because of you
-Track: And now and then

三、在Java中進行顯式配置

1. 聲明簡單的bean

1. 創建配置類

@Configuration
public class CDPlayerConfig {}

2. 聲明簡單的bean

@Configuration
public class CDPlayerConfig {@Beanpublic CompactDisc nowAndThen() {return new nowAndThen();}}

2. 借助JavaConfig實現注入

@Configuration
//@ComponentScan(basePackages = "com.shiftycat.soundsystem") //在Spring中啟動組件掃描,默認掃描該類所在包及這個包下的所有子包
public class CDPlayerConfig {@Beanpublic CompactDisc nowAndThen() {return new nowAndThen();}// 方法一: 最簡單的方法是引用創建bean的方法@Beanpublic CDPlayer cdPlayer() {return new CDPlayer(nowAndThen());}// 方法二: 請求一個CompactDisc作為參數,將CompactDisc注入到CDPlayer的構造器中,// 而且不用明確引用CompactDisc的@Bean方法。@Beanpublic CDPlayer cdPlayer(CompactDisc compactDisc) {return new CDPlayer(compactDisc);}// 方法三: 通過setter方法注入CompactDisc@Beanpublic CDPlayer cdPlayer(CompactDisc compactDisc) {CDPlayer  cdPlayer = new CDPlayer();cdPlayer.setCd(compactDisc);return cdPlayer;}
}

四、隱式的bean發現機制和自動裝配

1. 自動化裝配bean

? Spring通過兩個方面實現自動化裝配:

  • 組件掃描(component scanning):Spring會自動發現應用上下文所創建的bean。
  • 自動裝配(autowiring):Spring自動滿足bean之間的依賴。

2. 步驟

1. 創建可被發現的bean

public interface CompactDisc {void play();
}public class nowAndThen implements CompactDisc{private String title = "Now And Then.";private String artist = "The Beatles";@Overridepublic void play() {System.out.println("Playing " + title + " by " + artist);}
}public interface MediaPlayer {void play();
}

2. 開啟組件掃描

@Configuration
@ComponentScan(basePackages = "com.shiftycat.soundsystem") //在Spring中啟動組件掃描,默認掃描該類所在包及這個包下的所有子包
public class CDPlayerConfig {}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd><context:component-scan base-package="com.shiftycat.soundsystem" />
</beans>
@Autowired
private CompactDisc compactDisc;@Test
public void compactDiscTest() {compactDisc.play();
}
Playing Now And Then. by The Beatles

3. 通過為bean添加注解實現自動裝配

不管是構造器、Setter方法還是其他的方法,Spring都會嘗試滿足方法參數上所聲明的依賴。假如有且只有一個bean匹配以來需求的話,那么這個bean將會被裝配進來。
@Component
public class CDPlayer implements MediaPlayer{private CompactDisc cd;@Autowiredpublic CDPlayer(CompactDisc cd) {this.cd = cd;}@Autowiredpublic void setCd(CompactDisc cd) {this.cd = cd;}@Overridepublic void play() {System.out.println("Loading...");cd.play();}
}
@Autowired
private CDPlayer cdPlayer;
@Test
public void cdPlayerTest() {cdPlayer.play();
}
Loading...
Playing Now And Then. by The Beatles

五、導入和混合配置

1. 在JavaConfig中引用XML配置

? 假如現存由兩個config文件和一個XML文件,如何實現在一個JavaConfig文件中引用兩個config文件并且在其中引入XML配置文件。

1. 配置文件1

public interface CompactDisc {void play();
}@Component
public class NowAndThen implements CompactDisc {private String title = "Now And Then.";private String artist = "The Beatles";@Overridepublic void play() {System.out.println("Playing " + title + " by " + artist);}
}@Configuration
public class CDConfig {@Beanpublic CompactDisc compactDisc() {return new NowAndThen();}
}

2. 配置文件2

public interface MediaPlayer {void play();
}@Component
public class CDPlayer implements MediaPlayer {private CompactDisc cd;public CDPlayer(CompactDisc cd) {this.cd = cd;}@Overridepublic void play() {System.out.println("Loading...");cd.play();}
}@Configuration
//@Import(CDConfig.class)
public class CDPlayerConfig {@Beanpublic CDPlayer cdPlayer(CompactDisc compactDisc) {return new CDPlayer(compactDisc);}
}

3. 配置文件3

public class BlackDisc implements CompactDisc {private String title;private String artist;private List<String> tracks;public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getArtist() {return artist;}public void setArtist(String artist) {this.artist = artist;}public List<String> getTracks() {return tracks;}public void setTracks(List<String> tracks) {this.tracks = tracks;}@Overridepublic void play() {System.out.println("Playing " + title + " by " + artist);for (String track : tracks) {System.out.println("-Track: " + track);}}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:c="http://www.springframework.org/schema/c"xmlns:p="http://www.springframework.org/schema/p"xmlns:util="http://www.springframework.org/schema/util"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util.xsd"><bean id="blackDisc" class="com.shiftycat.importAndBlend.BlackDisc"p:artist="Now And Then."p:title="The Beatles"p:tracks-ref="tracks"></bean><util:list id="tracks"><value>I know it's true</value><value>It's all because of you</value><value>And if I make it through</value><value>It's all because of you</value><value>And now and then</value></util:list></beans>

4. 主要的Config文件

@Configuration
@Import({CDConfig.class, CDPlayerConfig.class})
@ImportResource("classpath:cd-config.xml")
public class SoundSystemConfig {}

5. 進行測試

@Test
public void JavaConfigTest() {AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();context.register(SoundSystemConfig.class);context.refresh();System.out.println("BlackDisc: ");CompactDisc blackDisc = context.getBean(BlackDisc.class);blackDisc.play();System.out.println("\nnowAndThen: ");CompactDisc nowAndThen = context.getBean(NowAndThen.class);nowAndThen.play();System.out.println("\nCDPlayer: ");CDPlayer player = context.getBean(CDPlayer.class);player.play();
}

6. 測試結果

BlackDisc: 
Playing The Beatles by Now And Then.
-Track: I know it's true
-Track: It's all because of you
-Track: And if I make it through
-Track: It's all because of you
-Track: And now and thennowAndThen: 
Playing Now And Then. by The BeatlesCDPlayer: 
Loading...
Playing Now And Then. by The Beatles

2. 在XML配置中引用JavaConfig

? 與在JavaConfig中引用XML配置一樣,我們可以使用更高層次的配置文件,這個文件不聲明任何的bean,只是負責將兩個或更多的配置組合起來。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--  用來導入JavaConfig類配置到Xml文件中  --><bean class="com.shiftycat.importAndBlend.CDConfig" /><!--  用來導入xml文件配置  --><import resource="cd-config.xml"/></beans>

《Spring實戰(第4版)》

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/208243.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/208243.shtml
英文地址,請注明出處:http://en.pswp.cn/news/208243.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

代碼隨想錄 62. 不同路徑

題目 一個機器人位于一個 m x n 網格的左上角 &#xff08;起始點在下圖中標記為 “Start” &#xff09;。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角&#xff08;在下圖中標記為 “Finish” &#xff09;。 問總共有多少條不同的路徑&#xff1f; 示例…

支付寶小程序接口傳參會默認排序

一&#xff1a;問題 描述&#xff1a;最近項目中的接口都加了簽名&#xff0c;在同步到支付寶小程序上時&#xff0c;發現有些接口報錯&#xff0c;經過排查&#xff0c;導致報錯的原因是因為傳參順序被支付寶小程序默認排序了&#xff0c;比如&#xff1a; 設置的原始參數&a…

當下流行視頻剪輯軟件會聲會影2024,讓你的視頻制作更精彩

大家好呀&#xff01;今天小編給大家介紹一款超贊的視頻編輯軟件——會聲會影2024&#xff01; 當下流行視頻剪輯軟件會聲會影2024&#xff0c;讓你的視頻制作更精彩&#xff0c;會聲會影2024不僅提供了各種酷炫的特效和濾鏡&#xff0c;還有更多令人驚嘆的功能等待著你的發掘…

【STM32】藍牙氛圍燈

Docs 一、項目搭建和開發流程 一、項目需求和產品定義 1.需求梳理和產品定義 一般由甲方公司提出&#xff0c;或由本公司市場部提出 需求的重點是&#xff1a;這個產品究竟應該做成什么樣&#xff1f;有哪些功能&#xff1f;具體要求和參數怎樣&#xff1f;此外還要考慮售價…

MongoDB SASL 鑒權方式 SCRAM-SHA-1步驟

轉載于 MongoDB SCRAM-SHA-1 over SASL 文章目錄 OverviewStep 1Step 2Step 3Edits I recently implemented SCRAM-SHA-1 over SASL for Fantom’s MongoDB driver so it could authenticate against MongoDB v3 databases. Much to my surprise, for such a massive breaking…

C++函數模板案例

利用函數模板封裝一個排序的函數&#xff0c;可以對不同數據類型數組進行排序排序規則從大到小&#xff0c;排序算法為選擇排序分別利用char數組和int數組進行測試 #include<iostream> using namespace std;template<class T> void myswap(T& a, T& b) {T…

[Python從零到壹] 七十三.圖像識別及經典案例篇之圖像去霧ACE算法和暗通道先驗去霧算法實現

十月太忙&#xff0c;還是寫一篇吧&#xff01;祝大家1024節日快樂O(∩_∩)O 歡迎大家來到“Python從零到壹”&#xff0c;在這里我將分享約200篇Python系列文章&#xff0c;帶大家一起去學習和玩耍&#xff0c;看看Python這個有趣的世界。所有文章都將結合案例、代碼和作者的經…

java中什么是守護線程?

在 Java 中&#xff0c;線程分為兩種類型&#xff1a;用戶線程&#xff08;User Thread&#xff09;和守護線程&#xff08;Daemon Thread&#xff09;。 用戶線程&#xff08;User Thread&#xff09;&#xff1a; 用戶線程是應用程序中的主要線程&#xff0c;當所有的用戶線程…

實例分割網絡:Mask RCNN

文章目錄 網絡結構Mask 分支RoIAlignRoIPooling的精度問題RoIAlign方法Mask RepresentationMask R-CNNNetwork Architecture實現細節實驗結果與其他的實例分割網絡的對比對比實驗不同backbone的對比實驗不同的激活函數的對比實驗RoiAli

更多內窺鏡維修技能學習與交流可關注西安彩虹

內窺鏡結構及光學成像原理 眾多品牌的硬鏡其內部結構基本相似&#xff08;如下圖&#xff09;&#xff0c;最關鍵的在于不同用途的硬鏡在其結構上發生變化&#xff0c;包括光學成像系統和機械結構。光學成像系統由物鏡系統、轉像系統、目鏡系統三大系統組成。 工作原理 被觀察…

1文件+2個命令,無需安裝,單機離線運行70億大模型

1文件2個命令&#xff0c;無需安裝&#xff0c;單機離線運行70億大模型 大家好&#xff0c;我是老章 最近蘋果發布了自己的深度學習框架--MLX&#xff0c;專門為自家M系列芯片優化。看了展示視頻&#xff0c;這個框架還能直接運行Llama 7B的大模型&#xff0c;在M2 Ultral上運…

計算三位數每位上數字的和

分數 10 作者 python課程組 單位 福州大學至誠學院 補充程序實現計算&#xff1a; 輸入一個三位的整數&#xff08;不接受實數&#xff09;&#xff0c;求這個三位數每一位上數字的和是多少&#xff1f;例如&#xff1a;輸入&#xff1a;382&#xff0c;輸出&#xff1a;和為…

用gdal正射校正遙感影像

目錄 代碼示例有相應的RPC文件用gdal命令行校正 使用 gdal.Warp函數可以非常方便對遙感影像進行正射校正&#xff0c;這個過程需要我們確定目標影像的幾何信息&#xff0c;包括坐標系、分辨率以及需要配準到的區域或基準影像 代碼示例 以下是一個使用gdal.Warp配準影像的基本…

MySQL中是如何insert數據的

正常insert數據&#xff0c;MySQL并不會顯式加鎖&#xff0c;而是通過聚簇索引的trx_id索引作為隱式鎖來保護記錄的。比如兩個事務對一個非唯一的索引情況添加&#xff0c;會造成幻讀 但在某些特殊情況下&#xff0c;隱式鎖會轉變為顯式鎖&#xff1a; 記錄之間有間隙鎖inser…

Channel Attention前言——一二階統計量

統計量 簡述 ? 一階統計量和二階統計量是統計學中常用的兩類統計量。一階統計量是指只考慮隨機變量本身的統計量&#xff0c;而二階統計量則是指考慮隨機變量之間關系的統計量。 一階統計量 一階統計量是指只考慮隨機變量本身的統計量&#xff0c;通常包括以下幾種&#x…

二叉樹的非遞歸遍歷(詳解)

二叉樹非遞歸遍歷原理 使用先序遍歷的方式完成該二叉樹的非遞歸遍歷 通過添加現有項目的方式將原來編寫好的棧文件導入項目中 目前項目存在三個文件一個頭文件&#xff0c;兩個cpp文件&#xff1a; 項目頭文件的代碼截圖&#xff1a;QueueStorage.h 項目頭文件的代碼&#xff…

達夢(主備)搭建

一、服務器配置 1.擴展基礎盤 磁盤分區 /sbin/fdisk /dev/vda<<EOF &> /dev/null p n 4p w EOF 硬盤刷新 partx -s /dev/vda echo "Disk Partition /dev/vda4 Create OK!" pvcreate /dev/vda4 rootlvnamedf -h|grep "\-root"|awk {prin…

全電動注塑機市場分析:全球市場規模將達到223.23億美元

注射成型機(簡稱注射機或注塑機)是將熱塑性塑料或熱固性料利用塑料成型模具制成各種形狀的塑料制品的主要成型設備。 注射成型是通過注塑機和模具來實現的。 注塑機通常由注射系統、合模系統、液壓傳達動系統、電氣控制系統、潤滑系統、加熱及冷卻系統、安全監測系統等組成。 注…

如何運用gpt改寫出高質量的文章 (1)

大家好&#xff0c;今天來聊聊如何運用gpt改寫出高質量的文章 (1)&#xff0c;希望能給大家提供一點參考。 以下是針對論文重復率高的情況&#xff0c;提供一些修改建議和技巧&#xff1a; 如何運用GPT改寫出高質量的文章 一、引言 隨著人工智能技術的飛速發展&#xff0c;自然…

大一C語言作業 12.8

1.C 對一維數組初始化時&#xff0c;如果全部元素都賦了初值&#xff0c;可以省略數組長度。 這里沒有指定數組長度&#xff0c;編譯器會根據初始化列表的元素個數來確定數組長度。 2.C 在C語言中&#xff0c;字符數組是不能用賦值運算符直接賦值的。 3.C 在二維數組a中&#x…