關於字符編碼,你所需要知道的(ASCII,Unicode,Utf-8,GB2312…)
關於字符編碼,你所需要知道的(ASCII,Unicode,Utf-8,GB2312…) 轉自 Kevin Yang 字符編碼的問題看似很小,經常被技術人員忽視,但是很容易導致一些莫名其妙的問題。這裏總結了一下字符編碼的一些普及性的知識,希望對大家有所幫助。 還是得從ASCII碼説起説到字符編碼,不得不説ASCII碼的簡史。計算機一開始發明的時候是用來解決數字計算的問題,後來人們發現,計算機還可以做更多的事,例如文本處理。但由於計算機只識“數”,因此人們必須告訴計算機哪個數字來代表哪個特定字符,例如65代表字母‘A’,66代表字母‘B’,以此類推。但是計算機之間字符-數字的對應關係必須得一致,否則就會造成同一段數字在不同計算機上顯示出來的字符不一樣。因此美國國家標準協會ANSI制定了一個標準,規定了常用字符的集合以及每個字符對應的編號,這就是ASCII字符集(Character Set),也稱ASCII碼。 當時的計算機普遍使用8比特字節作為最小的存儲和處理單元,加之當時用到的字符也很少,26個大小寫英文字母還有數字再加上其他常用符號,也不到100個,因此使用7個比特位就可以高效的存儲 ...
Java知識點複習(二)
面向對象程序設計(OOP)面向對象的程序由對象組成的,每個對象包含對用户公開的特定功能部分和隱藏的實現部分。oop將數據擺在第一位,然後考慮操作數據的算法。 對象要使用OOP,要瞭解對象的三個主要特性: 對象的行為(behavior) ———— 可以對對象施加哪些操作,或可以對對象施加哪些方法? 對象的狀態(state) ———— 當施加那些方法時,對象如何響應? 對象標識(identity) ———— 如何辨別具有相同行為與狀態的不同對象? 類之間的關係 依賴(“uses-a”)如果一個類的方法操作另一個類的對象,我們就説一個類依賴另一個類 聚合(“has-a”)聚合意味著類A的對象包含類B的對象 繼承(“is-a”)類A擴展類B,類A不但包含從類B繼承的方法,還會擁有一些額外的功能 使用預定義類對象與對象變量要想使用對象,就必須首先構造對象,並指定其初始狀態。然後,對對象應用方法。構造器(constructor)用來構造新實例。構造器是一種特殊的方法,用來構造並初始化對象。 構造器的名字應與類名相同。以Date類為例,Date類的構造器名為Date。構造一個Date對象 ...
Java知識點複習(一)
學習Java的一些筆記 注意事項 Java對大小寫很敏感 類名必須以字母開頭,後面可以跟字母和數字,也可以用 _和$ 兩種符號。不能使用Java保留字。(標準類名:以大寫字母開頭,如果類名由多個單詞組成,每個單詞首字母應該要大寫 源代碼文件名必須與公共類的名字相同 為了代碼能夠執行,必須包含一個main方法 Java中的三種註釋 單行註釋( // ) 多行註釋( /* */) 多行註釋 可以自動生成文檔( /** */) 數據類型 類型 儲存需求 取值範圍 boolean 1字節 (8 bit) true, false char 2字節(16 bit) 0 ~ 216-1 byte 整型 1字節 (8 bit) -128 ~ 127 short 整型 2字節 (16 bit) -32 768 ~ 32 767 (-215 ~ 215-1) int 整型 4字節 (32 bit) -2 147 483 648 ~ 2 147 483 647(-231 ~ 231-1) long 整型 8字節 (64 bit) -9 223 372 036 85 ...
Adapter
Adapter 只是一個接口,其派生了ListAdapter和SpinnerAdater兩個子接口。ListAdater為AbsListView提供列表項,SpinnerAdater為AbsSpinner提供列表項。以下是Adapter相關類的關係圖 Adapter常用的實現類: ArrayAdapter: 通常用於將數組或者List集合的多個值包裝成多個列表項。 SimpleAdapter: 用於將List集合的多個對象包裝成多個列表項。 SimpleCursorAdapter: 與SimpleAdapter基本相似,只是用於包裝Cursor提供的數據。 BaseAdapter: 通常用於被擴展。擴展BaseAdapter可以對各列表項進行最大限度地定製。 使用ArrayAdapter創建ListView修改activity_main.xml 123456789101112131415161718192021<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ...
9Patch 介紹
9Patch圖片介紹9Patch圖片是一種特殊的png圖片,以.9.png結尾,它在原始的圖片四周各添加一個寬度為1像素的像條,這4條線條決定了該圖片的縮放規則、內容顯示規則。 在Android Studio 上編輯.9.png,具體是在Android Studio上右鍵點擊你要編輯的照片,選擇Create 9-Patch file就可以進入編輯界面。 這就是9-Patch的編輯界面 Optional controls include: Zoom: Adjust the zoom level of the graphic in the drawing area. Patch scale: Adjust the scale of the images in the preview area. Show lock: Visualize the non-drawable area of the graphic on mouse-over. Show patches: Preview the stretchable patches in the drawing area (pink is ...
第一行代碼筆記-RecyclerView
RecyclerView是Android一個更強大的控件,其不僅可以實現和ListView同樣的效果,還有優化了ListView中的各種不足。其可以實現數據縱向滾動,也可以實現橫向滾動(ListView做不到橫向滾動)。接下來講解RecyclerView的用法。 RecyclerView 基本用法因為RecyclerView屬於新增的控件,Android將RecyclerView定義在support庫裏。若要使用RecyclerView,第一步是要在build.gradle中添加對應的依賴庫。 添加RecyclerView 依賴庫在app/build.gradle中的dependencies閉包添加以下內容: 1implementation 'com.android.support:recyclerview-v7:27.1.1' 然後點擊頂部的Sync Now進行同步 修改 activity_main.xml12345678910111213<LinearLayout xmlns:android="http://schemas.android.com ...
第一行代碼筆記-ListView
手機屏幕空間有限,能顯示的內容不多。可以藉助ListView來顯示更多的內容。ListView允許用户通過上下滑動來將屏幕外的數據滾動到屏幕內,同時屏幕內原有的數據滾動出屏幕,從而顯示更多的數據內容。 ListView的簡單用法修改activity_main.xml1234567891011<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <ListView ...
第一行代碼筆記-創建自定義控件
自定義控件 - 引入布局常見控件和布局的繼承結構所有的控件都是直接或者間接繼承於 View所有的布局都是直接或者間接繼承於 ViewGroupView 是 Android 中最基本的一種 UI 控件,它可以在屏幕上繪製一塊矩形區域,並能響應這塊區域的各種事件。ViewGroup 是特殊的一種 View,是一個用於放置控件和布局的容器 以添加 iPhone 風格的標題欄為例:當多個活動界面都要使用這個標題欄時,我們可以通過引入布局的方式,這樣可以避免每個活動界面都要寫一遍同樣的標題代碼,減少代碼重複。 創建布局文件新建一個 title.xml 12345678910111213141516171819202122232425262728293031323334353637<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android: ...
第一行代碼筆記-四大Layout
LinerLayout 線性布局LinerLayout, 中文名為線性布局。這個布局會將它所包含的控件在線性方向上依次排列。 我們可以通過android:orientation屬性來指定排列方向。 vertical為垂直方向,horizontal為水平方向 123456789101112131415161718192021<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <Button android:layout_width="wrap_content" android:layout_height=& ...
第一行代碼筆記-bulid.gradle 解析
外層的bulid.gradle文件123456789101112131415161718buildscript { repositories { jcenter() // 一個代碼托管倉庫 } dependencies { classpath 'com.android.tools.build:gradle:2.3.0' // 聲明一個gradle插件 // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }}allprojects { repositories { jcenter() }}task clean(type: Delete) { delete roo ...