Android零基礎入門第83節:Activity間數據傳遞方法匯總

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

? ?在Activity間傳遞的數據一般比較簡單,但是有時候實際開發中也會傳一些比較復雜的數據,本節一起來學習更多Activity間數據的傳遞。

0HkVmFfmECm

?

?

一、常用數據類型

?

????在前面幾節我們只學習了一些常用類型的數據傳遞,主要是以下這些重載方法:

  • putExtra(String name, boolean value)

  • putExtra(String name, byte value)

  • putExtra(String name, char value)

  • putExtra(String name, short value)

  • putExtra(String name, int value)

  • putExtra(String name, long value)

  • putExtra(String name, float value)

  • putExtra(String name, double value)

  • putExtra(String name, String value)

  • putExtra(String name, CharSequence value)

  • putExtras(Intent src)

  • putExtras(Bundle extras)

  • putExtra(String name, Bundle value)

  • getBooleanExtra(String name, boolean defaultValue)

  • getByteExtra(String name, byte defaultValue)

  • getCharExtra(String name, char defaultValue)

  • getShortExtra(String name, short defaultValue)

  • getIntExtra(String name, int defaultValue)

  • getLongExtra(String name, long defaultValue)

  • getFloatExtra(String name, float defaultValue)

  • getDoubleExtra(String name, double defaultValue)

  • getStringExtra(String name)

  • getCharSequenceExtra(String name)

  • getExtras()

  • getBundleExtra(String name)

????可以發現主要包括boolean、byte、char、short、int、long、float、double、String、CharSequence幾個,當然也可以先將數據打包為Bundle或Intent對象再傳遞。

?

?

二、數組、列表類型數據

?

????然而在實際開發中經常會遇見以上常用類型的數組或列表的組合型數據,其實也非常簡單。

1、數組

????認真的同學可能已經發現了,每一個基本數據類型都有對應數組數據的重載方法,分別如下:

  • putExtra(String name, boolean[] value)

  • putExtra(String name, byte[] value)

  • putExtra(String name, short[] value)

  • putExtra(String name, char[] value)

  • putExtra(String name, int[] value)

  • putExtra(String name, long[] value)

  • putExtra(String name, float[] value)

  • putExtra(String name, double[] value)

  • putExtra(String name, String[] value)

  • putExtra(String name, CharSequence[] value)

  • getBooleanArrayExtra(String name)

  • getByteArrayExtra(String name)

  • getShortArrayExtra(String name)

  • getCharArrayExtra(String name)

  • getIntArrayExtra(String name)

  • getLongArrayExtra(String name)

  • getFloatArrayExtra(String name)

  • getDoubleArrayExtra(String name)

  • getStringArrayExtra(String name)

  • getCharSequenceArrayExtra(String name)

???putExtra()方法的參數簡單替換為數組類型的即可,然后使用數組的專用方法獲取,使用起來也非常簡單。

?

2、列表?

????在傳遞列表型數據的時候稍微有一些不同了,Intent還提供了以下這幾個重載方法:

  • putIntegerArrayListExtra(String name, ArrayList<Integer> value)

  • putStringArrayListExtra(String name, ArrayList<String> value)

  • putCharSequenceArrayListExtra(String name, ArrayList<CharSequence> value)

  • getIntegerArrayListExtra(String name)

  • getStringArrayListExtra(String name)

  • getCharSequenceArrayListExtra(String name)

????從以上幾個方法可以知道,Intent自帶傳遞Integer、String、CharSequence三種類型的列表數據,如果需要傳遞到額數據是這幾種類型,或能夠轉換為這幾種類型,那么數據的傳遞也變得很順利了。

?

?

三、對象

?

????前面學習的幾個方法使用起來還是比較簡單的,但是會發現一個問題,以上學習的方法無法傳輸對象(如圖片)、對象的數組或集合,那就需要用到以下這些方法了。

????intent還有以下這些重載方法:

  • putExtra(String name, Serializable value)

  • putExtra(String name, Parcelable value)

  • putExtra(String name, Parcelable[] value)

  • putParcelableArrayListExtra(String name, ArrayList<? extends Parcelable> value)

  • getSerializableExtra(String name)

  • getParcelableExtra(String name)

  • getParcelableArrayExtra(String name)

  • getParcelableArrayListExtra(String name)

????可能你已經發現了,這里提到的Serializable類型和Parcelable類型數據到底是什么呢?接下來分別來學習。

1、序列化對象Serializable

????Serializable接口是啟用其序列化功能的接口,實現java.io.Serializable 接口的類是可序列化的,沒有實現此接口的類將不能使它們的任一狀態被序列化或逆序列化(如果不懂序列化,建議復習鞏固Java部分的序列化知識模塊)。

????Serializable實現序列化的方法也很簡單,將需要序列化的類實現Serializable接口,Serializable接口中沒有任何方法,只需在類中指定serialVersionUID的值,該值可以任意指定一個值。可以理解為一個標記,即表明這個類可以序列化。

????假如需要使用Intent傳遞一個Person對象,就先要將其序列化,如下示例代碼:

package com.jinyu.cqkxzsxy.android.activity.equipmentupdate.entity;import java.io.Serializable;/*** @創建者 鑫鱻* @描述 Android零基礎入門到精通系列教程* 首發微信公眾號分享達人秀(ShareExpert)*/
public class Person implements Serializable {private static final long serialVersionUID = 1L; // 序列化IDprivate String name; // 姓名private int age; // 年齡public Person() {this.name = "未知";this.age = 18;}public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}

????然后即可調用前面的put和get方法來傳遞復雜對象數據了。

?

2、序列化對象Parcelable?

? ? 由于Serializable在序列化的時候會產生大量的臨時變量,從而引起頻繁的GC,會影響持續性能。在使用內存的時候,Parcelable比Serializable性能高,所以推薦使用Parcelable。

????實現Parcelable接口稍微復雜一些,但效率更高,推薦用這種方法提高性能。實現步驟如下:

  1. 將需要序列化的類實現Parcelable接口。

  2. 重寫writeToParcel方法,將對象序列化為一個Parcel對象。

  3. 重寫describeContents方法,描述內容接口,默認返回0。實例化靜態內部對象CREATOR實現接口Parcelable.Creator。其中public static final一個都不能少,內部對象CREATOR的名稱也不能改變,必須全部大寫。需重寫本接口中的兩個方法:

    • createFromParcel(Parcel in) 實現從Parcel容器中讀取傳遞數據值,封裝成Parcelable對象返回邏輯層。

    • newArray(int size) 創建一個類型為T,長度為size的數組,僅一句話即可(return new T[size]),供外部類反序列化本類數組使用。

????接下來將上面的Person類進行改造,代碼如下:

package com.jinyu.cqkxzsxy.android.activity.equipmentupdate.entity;import android.os.Parcel;
import android.os.Parcelable;/*** @創建者 鑫鱻* @描述 Android零基礎入門到精通系列教程* 首發微信公眾號分享達人秀(ShareExpert)*/
public class Person implements Parcelable {private String name; // 姓名private int age; // 年protected Person(Parcel in) {// 在讀取Parcel容器里的數據時,必須按成員變量聲明的順序讀取數據,不然會出現獲取數據出錯name = in.readString();age = in.readInt();}public static final Creator<Person> CREATOR = new Creator<Person>() {// 再通過createFromParcel將Parcel對象映射成原對象@Overridepublic Person createFromParcel(Parcel in) {return new Person(in);}// 供外部類反序列化本類數組使用@Overridepublic Person[] newArray(int size) {return new Person[size];}};// 內容接口描述,默認返回0即可@Overridepublic int describeContents() {return 0;}// 按照聲明順序打包數據到Parcel對象中,既將數據打包到Parcel容器中@Overridepublic void writeToParcel(Parcel dest, int flags) {dest.writeString(name);dest.writeInt(age);}public Person() {this.name = "未知";this.age = 18;}public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}

? ? 然后即可調用前面的put和get方法來傳遞復雜對象數據了,當然也可以是對象的數組或列表型數據。

????在使用中需要注意的是,Parcelable不能使用在要將數據存儲在磁盤上的情況,因為Parcelable不能很好的保證數據的持續性在外界有變化的情況下。盡管Serializable效率低點,但此時還是建議使用Serializable。

?

?

四、全局Application

?

????如果需要將一個對象在多個Activity之間傳遞,或者要連續傳遞好幾層,這種情況下如果使用以上方法就需要重復多次,使用起來就特別別扭,這種情況就可以考慮使用全局Application。

????Android系統在每個程序運行的時候都會創建一個Application對象,而且只會創建一個,所以Application 是單例(singleton)模式的一個類,而且Application對象的生命周期是整個程序中最長的,他的生命周期等于這個程序的生命周期。如果想存儲一些值,使用 Application就需要自定義類實現Application類,然后在AndroidManifest.xml中使用我們自定義的Application 而非系統默認的。

????這里簡單使用一個示例來學習,這里簡化為全局保存一個狀態值,可以方便在各Activity中進行傳遞。首先自定義Application類,代碼如下:

package com.jinyu.cqkxzsxy.android.activity.equipmentupdate;import android.app.Application;/*** @創建者 鑫鱻* @描述 Android零基礎入門到精通系列教程* 首發微信公眾號分享達人秀(ShareExpert)*/
public class MyApplication extends Application {private int state;public int getState() {return state;}public void setState(int state) {this.state = state;}
}

????然后在AndroidManifest.xml中聲明,為application標簽添加android:name屬性,代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.jinyu.cqkxzsxy.android.activity.equipmentupdate"><applicationandroid:name=".MyApplication"android:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application>
</manifest>

????最后在需要使用定義的全局變量的地方即可調用,核心代碼如下:

package com.jinyu.cqkxzsxy.android.activity.equipmentupdate;import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;public class TestActivity extends AppCompatActivity {protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_shop);// ...MyApplication app = (MyApplication) getApplicationContext();// 保存數據app.setState(1);// ...// 讀取數據int state = app.getState();// ...}
}

????這樣就非常方便的在各Activity之間進行數據傳遞了。如果想要在整個應用程序中任何位置都能使用,可以對MyApplication類進行適當的改造,這里不做過多說明。

????但是需要注意的是,當由于某些原因(比如系統內存不足),我們的app會被系統強制殺死,此時再次點擊進入應用時,系統會直接進入被殺死前的那個界面,制造一種從來沒有被殺死的假象。那么問題來了,系統強制停止了應用,進程死了,那么再次啟動時Application自然新的,那里邊的數據自然木有啦,如果直接使用很可能報空指針或者其他錯誤。

????所以在使用時一定要做好非空判斷,如果數據為空可以考慮邏輯上讓應用直接返回到最初的Activity。

?

?

五、單例模式

?

????上面的Application就是基于單例的,單例模式的特點就是可以保證系統中一個類有且只有一個實例。

????這里做一個簡單的示例,如定義一個數據持有者類,代碼如下:

package com.jinyu.cqkxzsxy.android.activity.equipmentupdate.entity;/*** @創建者 鑫鱻* @描述 Android零基礎入門到精通系列教程* 首發微信公眾號分享達人秀(ShareExpert)*/public class DataHolder {private String data;public String getData() {return data;}public void setData(String data) {this.data = data;}private static final DataHolder holder = new DataHolder();public static DataHolder getInstance() {return holder;}
}

????然后在使用的地方即可直接調用,如下所示:

  1. ? ?// 更新數據

  2. ? ?DataHolder.getInstance().setData(data);

  3. ?

  4. ? ?// 獲取數據

  5. ? ?Stringdata=DataHolder.getInstance().getData();

????這樣使用起來也非常簡單。

?

?

六、靜態變量

?

????這個可以直接在Activity中完成單獨一個數據結構,和單例差不多。

????這里將上面的單例模式類簡單修改,代碼如下:

package com.jinyu.cqkxzsxy.android.activity.equipmentupdate.entity;/*** @創建者 鑫鱻* @描述 Android零基礎入門到精通系列教程* 首發微信公眾號分享達人秀(ShareExpert)*/public class DataHolder {private static String data;public static String getData() {return data;}public static void setData(String strData) {data = strData;}
}

????這樣就可以在啟動Activity之前設置數據,新的Activity中獲取數據。

  1. ? ?// 更新數據

  2. ? ?DataHolder.setData(data);

  3. ?

  4. ? ?// 獲取數據

  5. ? ?Stringdata=DataHolder.getData();

????需要注意的是,如果數據很大很多(如bitmap),處理不當是很容易導致內存泄露或者內存溢出的,可以考慮使用WeakReferences 將數據包裝起來。

????除了以上介紹的幾種方式,還可以使用持久化數據等方法,這里先不做過多介紹,在后續的學習中會陸續接觸到。

?

????今天就先到這里,如果有問題歡迎留言一起探討,也歡迎加入Android零基礎入門技術討論微信群,共同成長!

????如果該系列分享對你有幫助,就動動手指關注、點贊、留言吧,你的互動就是對我最大的鼓勵!

? ?此文章版權為微信公眾號分享達人秀(ShareExpert)——鑫鱻所有,若需轉載請聯系作者授權,特此聲明!

?

往期總結回顧:

Android零基礎入門第1節:Android的前世今生

Android零基礎入門第2節:Android 系統架構和應用組件那些事

Android零基礎入門第3節:帶你一起來聊一聊Android開發環境

Android零基礎入門第4節:正確安裝和配置JDK, 高富帥養成第一招

Android零基礎入門第5節:善用ADT Bundle, 輕松邂逅女神

Android零基礎入門第6節:配置優化SDK Manager, 正式約會女神

Android零基礎入門第7節:搞定Android模擬器,開啟甜蜜之旅

Android零基礎入門第8節:HelloWorld,我的第一趟旅程出發點

Android零基礎入門第9節:Android應用實戰,不懂代碼也可以開發

Android零基礎入門第10節:開發IDE大升級,終于迎來了Android Studio

Android零基礎入門第11節:簡單幾步帶你飛,運行Android Studio工程

Android零基礎入門第12節:熟悉Android Studio界面,開始裝逼賣萌

Android零基礎入門第13節:Android Studio個性化配置,打造開發利器

Android零基礎入門第14節:使用高速Genymotion,跨入火箭時代

Android零基礎入門第15節:掌握Android Studio項目結構,揚帆起航

Android零基礎入門第16節:Android用戶界面開發概述

Android零基礎入門第17節:文本框TextView

Android零基礎入門第18節:輸入框EditText

Android零基礎入門第19節:按鈕Button

Android零基礎入門第20節:復選框CheckBox和單選按鈕RadioButton

Android零基礎入門第21節:開關組件ToggleButton和Switch

Android零基礎入門第22節:圖像視圖ImageView

Android零基礎入門第23節:圖像按鈕ImageButton和縮放按鈕ZoomButton

Android零基礎入門第24節:自定義View簡單使用,打造屬于你的控件

Android零基礎入門第25節:簡單且最常用的LinearLayout線性布局

Android零基礎入門第26節:兩種對齊方式,layout_gravity和gravity大不同

Android零基礎入門第27節:正確使用padding和margin

Android零基礎入門第28節:輕松掌握RelativeLayout相對布局

Android零基礎入門第29節:善用TableLayout表格布局

Android零基礎入門第30節:兩分鐘掌握FrameLayout幀布局

Android零基礎入門第31節:少用的AbsoluteLayout絕對布局

Android零基礎入門第32節:新推出的GridLayout網格布局

Android零基礎入門第33節:Android事件處理概述

Android零基礎入門第34節:Android中基于監聽的事件處理

Android零基礎入門第35節:Android中基于回調的事件處理

Android零基礎入門第36節:Android系統事件的處理

Android零基礎入門第37節:初識ListView

Android零基礎入門第38節:初識Adapter

Android零基礎入門第39節:ListActivity和自定義列表項

Android零基礎入門第40節:自定義ArrayAdapter

Android零基礎入門第41節:使用SimpleAdapter

Android零基礎入門第42節:自定義BaseAdapter

Android零基礎入門第43節:ListView優化和列表首尾使用

Android零基礎入門第44節:ListView數據動態更新

Android零基礎入門第45節:網格視圖GridView

Android零基礎入門第46節:列表選項框Spinner

Android零基礎入門第47節:自動完成文本框AutoCompleteTextView

Android零基礎入門第48節:可折疊列表ExpandableListView

Android零基礎入門第49節:AdapterViewFlipper圖片輪播

Android零基礎入門第50節:StackView卡片堆疊

Android零基礎入門第51節:進度條ProgressBar

Android零基礎入門第52節:自定義ProgressBar炫酷進度條

Android零基礎入門第53節:拖動條SeekBar和星級評分條RatingBar

Android零基礎入門第54節:視圖切換組件ViewSwitcher

Android零基礎入門第55節:ImageSwitcher和TextSwitcher

Android零基礎入門第56節:翻轉視圖ViewFlipper

Android零基礎入門第57節:DatePicker和TimePicker選擇器

Android零基礎入門第58節:數值選擇器NumberPicker

Android零基礎入門第59節:常用三大Clock時鐘組件

Android零基礎入門第60節:日歷視圖CalendarView和定時器Chronometer

Android零基礎入門第61節:滾動視圖ScrollView

Android零基礎入門第62節:搜索框組件SearchView

Android零基礎入門第63節:值得借鑒學習的選項卡TabHost

Android零基礎入門第64節:揭開RecyclerView廬山真面目

Android零基礎入門第65節:RecyclerView分割線開發技巧

Android零基礎入門第66節:RecyclerView點擊事件處理

Android零基礎入門第67節:RecyclerView數據動態更新

Android零基礎入門第68節:RecyclerView添加首尾視圖

Android零基礎入門第69節:ViewPager快速實現引導頁

Android零基礎入門第70節:ViewPager打造TabHost效果

Android零基礎入門第71節:CardView簡單實現卡片式布局

Android零基礎入門第72節:SwipeRefreshLayout下拉刷新

Android零基礎入門第73節:Activity創建和配置

Android零基礎入門第74節:Activity啟動和關閉

Android零基礎入門第75節:Activity狀態和生命周期

Android零基礎入門第76節:Activity數據保存和橫豎屏切換

Android零基礎入門第77節:Activity任務棧和啟動模式

Android零基礎入門第78節:四大組件的紐帶——Intent

Android零基礎入門第79節:Intent 屬性詳解(上)

Android零基礎入門第80節:Intent 屬性詳解(下)

Android零基礎入門第81節:Activity數據傳遞

Android零基礎入門第82節:Activity數據回傳

0HiFzWJNRXU

0HiFzQZN6zg

轉載于:https://my.oschina.net/u/3598984/blog/1555970

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

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

相關文章

mysql gz 安裝_Linux下安裝mysql 5.7.17.tar.gz的教程詳解

1.創建MySQL組和mysql用戶groupadd mysqluseradd -r -g mysql mysql2.拷貝&#xff1a;cp -R mysql-5.7.16-linux-glibc2.5-i686 /usr/local/mysql3.創建data目錄mkdir /usr/local/mysql/data3.安裝數據庫切換到/usr/loca/mysql目錄下cd /usr/local/mysql修改當前目錄的所有者為…

02-c#基礎之01-基礎語法(一)

1.注釋符 1&#xff09;注銷 2) 解釋 2.C#中的3種注釋符 1&#xff09;單行注釋// 2)多行注釋/*要注釋的內容*/ 3)文檔注釋///多用來解釋類或者方法 2.VS中的快捷鍵 轉載于:https://www.cnblogs.com/yoyo-524/p/6502827.html

day01_初識python

編譯型&#xff1a;一次性將所有的代碼編譯呈二進制文件。C/C 優點&#xff1a;執行效率高 缺點&#xff1a;開發速度慢&#xff0c;不能跨平臺 解釋型&#xff1a;當程序運行時&#xff0c;從上到下一行一行的解釋為二進制文件 優點&#xff1a;開發效率快&#xff0c;可以跨平…

leetcode1414. 和為 K 的最少斐波那契數字數目(貪心算法)

給你數字 k &#xff0c;請你返回和為 k 的斐波那契數字的最少數目&#xff0c;其中&#xff0c;每個斐波那契數字都可以被使用多次。 斐波那契數字定義為&#xff1a; F1 1 F2 1 Fn Fn-1 Fn-2 &#xff0c; 其中 n > 2 。 數據保證對于給定的 k &#xff0c;一定能找…

四五六年級計算機教學計劃,五六年級信息技術教學計劃

五六年級信息技術教學計劃一、大綱對本冊教材的要求作為小學階段的信息技術課程&#xff0c;應以學生對計算機的學習心理、學習行為和學習方法為背景&#xff0c;把計算機基礎知識和計算機最新應用融于一體&#xff0c;使之既體現信息技術學科的教學理論&#xff0c;又吸收現代…

ios 跨域_如何在iOS和Android中建立跨域通信橋

ios 跨域I was working on a certain project at work, in which I needed to connect several varying components via messages. Each had its own logic and code language. This made me want to understand all the ways different platforms enable communication.我正在…

阿里巴巴旗下平臺口碑推出無人收銀技術,改造便利店市場;重慶法院運用 AI 探索“智能判案”...

阿里巴巴旗下平臺口碑推出無人收銀技術&#xff0c;改造便利店市場 雷鋒網消息 阿里巴巴旗下本地生活服務平臺口碑今日宣布在上海新興便利店品牌24鮮上線無人收銀技術。消費者只要打開支付寶&#xff0c;掃一掃想要購買的商品的條形碼&#xff0c;就可以自助提交訂單完成支付。…

如何使用射手影音尋找字幕

我們以"理智與情感"Sense and Sensibility為例&#xff0c;在迅雷搜索了下載&#xff0c;結果到了99%就不動了&#xff0c;由于是字幕文件&#xff0c;不能直接把TD的后綴去掉看影片&#xff0c;但是影片已經下載完成&#xff0c;所以我們使用射手影音播放該電影。&a…

mysql 表分區優缺點_Mysql分區表局限性總結

本文測試的版本XML/HTML代碼mysql>select version();------------| version() |------------| 5.1.33-log |------------1 row in set (0.00 sec)一、關于Partitioning Keys, Primary Keys, and UniqueKeys的限制在5.1中分區表對唯一約束有明確的規定&#xff0c;每一個唯一…

C# PagedList 真分頁

一&#xff1a;nuget 下載 PagedList 二&#xff1a;前端頁面 1.需要的數據 model PagedList.IPagedList<DeviceModel>  using PagedList.Mvc 2.使用數據 foreach (var item in Model)   {    <tr> <td>item.Name</td>       <td>…

leetcode1497. 檢查數組對是否可以被 k 整除

給你一個整數數組 arr 和一個整數 k &#xff0c;其中數組長度是偶數&#xff0c;值為 n 。 現在需要把數組恰好分成 n / 2 對&#xff0c;以使每對數字的和都能夠被 k 整除。 如果存在這樣的分法&#xff0c;請返回 True &#xff1b;否則&#xff0c;返回 False 。 示例 1…

計算機頁面設置代碼,計算機二級考試Access輔導:頁面設置模塊代碼分享

Dim up, dn, le, ri, si, liAs Single , co As string’定義邊距及頁面函數Sub ymszmk(strName As String) ’頁面設置模塊On Error GoTo Err_ymszmkIf Nz(DCount("*", "REPORTLIP", "REPORT’" & strName & "’")) 0 ThenMs…

讓我們了解Set及其在JavaScript中的獨特功能

by Asif Norzai通過Asif Norzai 讓我們了解Set及其在JavaScript中的獨特功能&#x1f3b2; (Lets learn about Set and its unique functionality in JavaScript &#x1f3b2;) 設置&#x1f3b2; (SET &#x1f3b2;) ES2015/ES6 gave us a lot of useful tools and feature…

C語言第二次博客作業---分支結構

一、PTA實驗作業 題目1&#xff1a;計算分段函數[2] 本題目要求計算下列分段函數f(x)的值&#xff1a; 1.實驗代碼 double x,result;scanf("%lf",&x);if(x>0){resultsqrt(x);}else{resultpow(x1,2)2*x1/x;}printf("f(%.2f) %.2f",x,result); 2 設計…

oracle+數據到+mysql數據庫亂碼_oracle數據mysql數據庫亂碼

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云數據庫專家保駕護航&#xff0c;為用戶…

ajax 不執行

1、get形式訪問&#xff1a; 一個相同的URL 只有一個結果&#xff0c;所以 第二次訪問的時候 如果 URL字符串沒變化 瀏覽器是 直接拿出了第一次訪問的結果&#xff0c;post則不會 解決辦法: 1、urlnew Date(); &#xff08;每次訪問時url不同&#xff09; 2、 type : get,   …

leetcode870. 優勢洗牌(貪心算法)

給定兩個大小相等的數組 A 和 B&#xff0c;A 相對于 B 的優勢可以用滿足 A[i] > B[i] 的索引 i 的數目來描述。 返回 A 的任意排列&#xff0c;使其相對于 B 的優勢最大化。 示例 1&#xff1a; 輸入&#xff1a;A [2,7,11,15], B [1,10,4,11] 輸出&#xff1a;[2,11,…

Mysql中行轉列和列轉行

一、行轉列即將原本同一列下多行的不同內容作為多個字段&#xff0c;輸出對應內容。建表語句DROP TABLE IF EXISTS tb_score; CREATE TABLE tb_score( id INT(11) NOT NULL auto_increment, userid VARCHAR(20) NOT NULL COMMENT 用戶id, subject VARCHAR(20) COMMENT…

OSChina 周四亂彈 ——妹子喜歡的是程序員 這是標準……

2019獨角獸企業重金招聘Python工程師標準>>> Osc亂彈歌單&#xff08;2017&#xff09;請戳&#xff08;這里&#xff09; 【今日歌曲】 一葉孤鴻 &#xff1a;分享Nanaka的單曲《いのちの名前&#xff08;Cover 木村弓&#xff09;》 《いのちの名前&#xff08;C…

阿里薪資談判技巧_如何像專業人士一樣處理技術職業中的薪資談判

阿里薪資談判技巧by Aline Lerner通過艾琳勒納(Aline Lerner) 如何像專業人士一樣處理技術職業中的薪資談判 (How to handle salary negotiations in your tech career like a pro) 確切地談薪水時要說些什么 (Know exactly what to say when negotiating your salary) There …