<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 93,  comments - 2,  trackbacks - 0
     
    1.流程
    2.規范化
    3.命名合理
    posted @ 2014-01-14 09:26 Terry Zou 閱讀(151) | 評論 (0)編輯 收藏
         摘要: oracle中imp命令詳解命令: exp 源庫usr/源庫pwd@源庫連接符 tables=dp_zyt_dgi,dp_zyt_file,dp_zyt_card file=d:\test2.dmp full=n; imp 目標庫usr/目標庫pwd@目標庫連接符 file=test.dmp log=test_imp.log...  閱讀全文
    posted @ 2014-01-13 20:04 Terry Zou 閱讀(209) | 評論 (0)編輯 收藏

       SharedPreferences是Android平臺上一個輕量級的存儲類,主要是保存一些常用的配置比如窗口狀態,一般在Activity中 重載窗口狀態onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平臺常規的Long長 整形、Int整形、String字符串型的保存,它是什么樣的處理方式呢?SharedPreferences類似過去Windows系統上的ini配置文件,但是它分為多種權限,可以全局共享訪問,android123提示最終是以xml方式來保存,整體效率來看不是特別的高,對于常規的輕量級而言比SQLite要好不少,如果真的存儲量不大可以考慮自己定義文件格式。xml 處理時Dalvik會通過自帶底層的本地XML Parser解析,比如XMLpull方式,這樣對于內存資源占用比較好。

    這種方式應該是用起來最簡單的Android讀寫外部數據的方法了。他的用法基本上和 J2SE(java.util.prefs.Preferences)中的用法一樣,以一種簡單、 透明的方式來保存一些用戶個性化設置的字體、顏色、位置等參數信息。一般的應用程序都會提供“設置”或者“首選項”的這樣的界面,那么這些設置最后就可以 通過Preferences來保存,而程序員不需要知道它到底以什么形式保存的,保存在了什么地方。當然,如果你愿意保存其他的東西,也沒有什么限制。只是在性能上不知道會有什么問題。

    在Android系統中,這些信息以XML文件的形式保存在 /data/data/PACKAGE_NAME /shared_prefs 目錄下。
        下面舉個例子如何高效的應用該類,比如QQ登錄
       

    public class SharePreferenceUtil {
     private SharedPreferences sp;
     private SharedPreferences.Editor editor;

     public SharePreferenceUtil(Context context, String file) {
      sp = context.getSharedPreferences(file, context.MODE_PRIVATE);
      editor = sp.edit();
     }

     // 用戶的密碼
     public void setPasswd(String passwd) {
      editor.putString("passwd", passwd);
      editor.commit();
     }

     public String getPasswd() {
      return sp.getString("passwd", "");
     }

     // 用戶的id,即QQ號
     public void setId(String id) {
      editor.putString("id", id);
      editor.commit();
     }

     public String getId() {
      return sp.getString("id", "");
     }

     // 用戶的昵稱
     public String getName() {
      return sp.getString("name", "");
     }

     public void setName(String name) {
      editor.putString("name", name);
      editor.commit();
     }

     // 用戶的郵箱
     public String getEmail() {
      return sp.getString("email", "");
     }

     public void setEmail(String email) {
      editor.putString("email", email);
      editor.commit();
     }

     // 用戶自己的頭像
     public Integer getImg() {
      return sp.getInt("img", 0);
     }

     public void setImg(int i) {
      editor.putInt("img", i);
      editor.commit();
     }

     // ip
     public void setIp(String ip) {
      editor.putString("ip", ip);
      editor.commit();
     }

     public String getIp() {
      return sp.getString("ip", Constants.SERVER_IP);
     }

     // 端口
     public void setPort(int port) {
      editor.putInt("port", port);
      editor.commit();
     }

     public int getPort() {
      return sp.getInt("port", Constants.SERVER_PORT);
     }

     // 是否在后臺運行標記
     public void setIsStart(boolean isStart) {
      editor.putBoolean("isStart", isStart);
      editor.commit();
     }

     public boolean getIsStart() {
      return sp.getBoolean("isStart", false);
     }

     // 是否第一次運行本應用
     public void setIsFirst(boolean isFirst) {
      editor.putBoolean("isFirst", isFirst);
      editor.commit();
     }

     public boolean getisFirst() {
      return sp.getBoolean("isFirst", true);
     }
    }


    應用如下所示:
    mAccounts = (EditText) findViewById(R.id.lgoin_accounts);
      mPassword = (EditText) findViewById(R.id.login_password);
      if (mAutoSavePassword.isChecked()) {
       SharePreferenceUtil util = new SharePreferenceUtil(
         LoginActivity.this, Constants.SAVE_USER);
       mAccounts.setText(util.getId());
       mPassword.setText(util.getPasswd());
      }

    posted @ 2014-01-11 12:51 Terry Zou 閱讀(155) | 評論 (0)編輯 收藏
    public static void hel(int[] a,int[] b,int[] c){
          System.arraycopy(a, 0, c, 0, a.length);
          System.arraycopy(b, 0, c, a.length, b.length);
     }
     public void testabc(){
          int[] str = new int[4];
          int[] a = new int[]{1,2};
          int[] b = new int[]{3,4};
          hel(a,b, str);
          for(int i=0;i<str.length;i++){
               System.out.println(str[i]);
          }
     }
    posted @ 2013-12-25 11:39 Terry Zou 閱讀(146) | 評論 (0)編輯 收藏
    1.字節數組取反
    public static byte[] backByte(byte[] buff){
      
    for (int i=0;i<buff.length;i++){
                
    int b=0;
                
    for (int j=0;j<8;j++){
                    
    int bit = (buff[i]>>j&1)==0?1:0;
                    b 
    += (1<<j)*bit;
                }

                buff[i]
    =(byte)b;
            }

      
    return buff;
     }
     

    2.查找字節數組中字數組的位置
    public static int indexOf(byte[] src,int offset,byte[] needFind){
            
    for(int i=offset;i<src.length-offset-needFind.length;i++){
                
    boolean isValid=true;
                
    for(int j=0;j<needFind.length;j++){
                    
    if(src[i+j]!=needFind[j]){
                        isValid
    =false;
                        
    break;
                    }

                }

                
    if(isValid){
                    
    return i;
                }

            }

            
    return -1;
        }



    3.字節數組轉換為16進制

    private static final byte[] HEX_CHAR_TABLE = { (byte) '0', (byte) '1',
    (
    byte) '2', (byte) '3', (byte) '4', (byte) '5', (byte) '6',
    (
    byte) '7', (byte) '8', (byte) '9', (byte) 'A', (byte) 'B',
    (
    byte) 'C', (byte) 'D', (byte) 'E', (byte) 'F' }
    ;

    public static String getHexString(byte[] raw, int len) {
    byte[] hex = new byte[2 * len];
    int index = 0;
    int pos = 0;
    for (byte b : raw) {
    if (pos >= len)
    break;
    pos
    ++;
    int v = b & 0xFF;
    hex[index
    ++] = HEX_CHAR_TABLE[v >>> 4];
    hex[index
    ++] = HEX_CHAR_TABLE[v & 0xF];
    }


    return new String(hex);
    }



    posted @ 2013-12-25 11:32 Terry Zou 閱讀(718) | 評論 (0)編輯 收藏

    java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener 

    1.出現這個問題的原因有可能的其中一點就是spring的jar包沒有被加載,有的時候沒有拷spring的jar包會出現這個錯誤,但是當你拷了以后這個錯誤并沒有消失的時候就說明jar包沒有被加載,切記spring的jar包一定要放在工程的lib下這樣才能避免這個錯誤的發生。
    2.使用了重復的類庫,且版本不一致。導致低版本的被優先使用。比如今天遇到一種情況在tomcat服務器使用了axis2.war包,當啟動tomcat的時候,axis2.war包會自動解壓,之后再該項目包里有相關的spring包,所以當有另外一個工程要到spring時,就有可能要到axis2的spring包,如果版本不一致就會導致該問題,解決的方法就是讓該項目不受axis2項目包的影響。

    posted @ 2013-07-01 11:54 Terry Zou 閱讀(1087) | 評論 (0)編輯 收藏

    https 雙向認證配置:

    1、生成服務器端密鑰庫 :
    keytool -genkey -keyalg RSA -dname "cn=rtsm.nfcstore.com.cn,ou=a,o=a,l=a,st=a,c=cn" -alias server -keypass 123456 -keystore rhg_server.keystore -storepass 123456 -validity 365

    2、導出服務端證書:

    keytool -export -alias server -file nxp.crt -keystore  rhg_server.keystore -storepass 123456  -rfc 

    3、生成瀏覽器(只能是PKCS12格式)證書
    keytool -genkey -keyalg RSA -dname "cn=abc,ou=a,o=a,l=a,st=a,c=cn" -alias mock -storetype PKCS12 -keypass 123456 -keystore mock.p12 -storepass 123456 -validity 365

    4. 導出瀏覽器證書
    keytool -export -alias mock -file mock.crt -keystore  mock.p12 -storepass 123456 -storetype PKCS12 -rfc 

    5、添加客戶端證書到服務器中
    keytool -import -v -alias mock -file mock.crt -keystore  rhg_server.keystore -storepass 123456

    6、添加服務端證書到客戶端中
    keytool -import -v -alias server -file nxp.crt -keystore  mockTrust -storepass 123456

    7. 查看證書內容
    keytool -list -v -keystore rkmsTrust.keystore -storepass 123456

    8. 刪除證書
    keytool -delete -alias xxx -keystore xxxx.keystore -storepass 123456

    9. 修改keypass
    keytool -keypasswd -alias xxx -keypass xxx -new 12345  -keystore xxx.keystore -storepass 123456

    10. 修改storepass
    keytool -storepasswd -keystore xxx.keystore -storepass 123456 -new xxx


    Android BKS 證書

    keytool -genkey -alias android -keypass 123456  -keyalg RSA -keysize 1024 -validity 365 -keystore android.keystore -storepass 123456 -dname "cn=android, ou=a, o=a, l=a, c=CN" -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider

    keytool -export -alias android -file android.crt -keystore android.keystore  -storetype BKS -storepass 123456 -provider org.bouncycastle.jce.provider.BouncyCastleProvider

    keytool -import -v -alias rhgkms -file rhgkms.crt -keystore  androidTrust.keystore  -storetype BKS -storepass 123456 -provider org.bouncycastle.jce.provider.BouncyCastleProvider

    posted @ 2013-07-01 09:40 Terry Zou 閱讀(363) | 評論 (0)編輯 收藏
    1.org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.axiom.om.OMException: com.ctc.wstx.exc.WstxIOException: Invalid UTF-8 middle byte 0xfa (at char #193, byte #127)

    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:488)

    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:431)

    javax.servlet.http.HttpServlet.service(HttpServlet.java:617)

    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)

    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)

    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)

    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)

    com.adtech.libraryunion.filter.LoginFilter.doFilter(LoginFilter.java:54)

    原因:調用接口的文件的編碼方式不是UTF-8
    解決:用記事本打開調用的文件,另存為UTF-8格式即可解決
    2.web.xml中
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:applicationContext.xml</param-value>
     </context-param>時
    applicationContext.xml文件的位置在tomcat6.0.35\webapps\axis2\WEB-INF\classes目錄下

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
    applicationContext.xml文件的位置在tomcat6.0.35\webapps\axis2\WEB-INF\目錄下
    posted @ 2013-06-25 17:01 Terry Zou 閱讀(360) | 評論 (0)編輯 收藏
         摘要: pull解析器     xml解析器有很多種,常見的有Jdom,dom4j等,pull解析xml為android系統所用到的解析器,是android自帶的解析器。 preparation     1.項目結構          2...  閱讀全文
    posted @ 2013-06-06 10:06 Terry Zou 閱讀(197) | 評論 (0)編輯 收藏

    下面這個異常導致的原因可能為:用子線程更新的UI控件的值,比如:在一個線程中執行了Toast.makeText(this,"richhouse",5000);
                                              UI控件畫面的重繪(更新)是由主線程負責的,如果在子線程中更新UI控件的值,更新后的值不會重繪到屏幕上,一定要在主線程里更新UI控件的值,這樣才能在屏幕上顯示出來,不能在子線程中更新UI控件的值。


     CRASH: com.richhouse.nfccenter (pid 2719)

    // Short Msg: java.lang.IllegalStateException

    // Long Msg: java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. [in ListView(2131230759, class android.widget.ListView) with Adapter(class android.widget.HeaderViewListAdapter)]

    // Build Label: HTC/m7cdwg/m7cdwg:4.1.2/JZO54K/eng.buildteam.20130530.092435:userdebug/test-keys

    // Build Changelist: eng.buildteam.20130530.092435

    // Build Time: 1369877182000

    // java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. [in ListView(2131230759, class android.widget.ListView) with Adapter(class android.widget.HeaderViewListAdapter)]

    //  at android.widget.ListView.layoutChildren(ListView.java:1734)

    //  at android.widget.ListView.setSelectionInt(ListView.java:2157)

    //  at android.widget.AbsListView.resurrectSelection(AbsListView.java:5608)

    //  at android.widget.AbsListView.resurrectSelectionIfNeeded(AbsListView.java:5497)

    //  at android.widget.ListView.commonKey(ListView.java:2319)

    //  at android.widget.ListView.onKeyDown(ListView.java:2243)

    //  at android.view.KeyEvent.dispatch(KeyEvent.java:2719)

    //  at android.view.View.dispatchKeyEvent(View.java:7147)

    //  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1365)

    //  at android.widget.ListView.dispatchKeyEvent(ListView.java:2228)

    //  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1369)

    //  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1369)

    //  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1369)

    //  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1369)

    //  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1369)

    //  at android.support.v4.view.ViewPager.dispatchKeyEvent(Unknown Source)

    //  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1369)

    //  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1369)

    //  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1369)

    //  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1369)

    //  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:2013)

    //  at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1490)

    //  at android.app.Activity.dispatchKeyEvent(Activity.java:2414)

    //  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1940)

    //  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1369)

    //  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1369)

    //  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1369)

    //  at android.widget.TabHost.dispatchKeyEvent(TabHost.java:298)

    //  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1369)

    //  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1369)

    //  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1369)

    //  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:2013)

    //  at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1490)

    //  at android.app.Activity.dispatchKeyEvent(Activity.java:2414)

    //  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1940)

    //  at android.view.ViewRootImpl.deliverKeyEventPostIme(ViewRootImpl.java:4093)

    //  at android.view.ViewRootImpl.handleImeFinishedEvent(ViewRootImpl.java:4063)

    //  at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3232)

    //  at android.os.Handler.dispatchMessage(Handler.java:99)

    //  at android.os.Looper.loop(Looper.java:155)

    //  at android.app.ActivityThread.main(ActivityThread.java:5536)

    //  at java.lang.reflect.Method.invokeNative(Native Method)

    //  at java.lang.reflect.Method.invoke(Method.java:511)

    //  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1074)

    //  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:841)

    //  at dalvik.system.NativeStart.main(Native Method)

    posted @ 2013-06-06 09:17 Terry Zou 閱讀(1279) | 評論 (0)編輯 收藏
    僅列出標題
    共8頁: 上一頁 1 2 3 4 5 6 7 8 下一頁 
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    收藏夾

    Java

    搜索

    •  

    最新隨筆

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲黄色免费观看| 免费人成网站在线观看不卡| 久久笫一福利免费导航| 亚洲视频欧洲视频| 精品无码AV无码免费专区| 亚洲国产精品自在在线观看 | 亚洲精品精华液一区二区| 亚洲免费福利视频| 亚洲ts人妖网站| 午夜视频免费观看| 白白色免费在线视频| 亚洲精品国产日韩无码AV永久免费网 | 亚洲av第一网站久章草| 国产免费一区二区三区VR| 高清免费久久午夜精品| 337p日本欧洲亚洲大胆裸体艺术| 久青草视频97国内免费影视| 亚洲V无码一区二区三区四区观看 亚洲αv久久久噜噜噜噜噜 | 国产亚洲情侣一区二区无码AV| 中文字幕免费在线看电影大全| 久久久亚洲精品无码| 亚洲高清中文字幕免费| 亚洲AV日韩综合一区| 亚洲精品成人网站在线观看| 777成影片免费观看| 亚洲av日韩av永久在线观看| 久久精品国产亚洲一区二区三区| a毛片免费观看完整| 亚洲 暴爽 AV人人爽日日碰| 免费人成视频在线观看不卡| 国产一精品一AV一免费| 久久精品国产亚洲AV久| 亚洲精品线路一在线观看| 69av免费观看| 免费VA在线观看无码| 亚洲国产精品久久久久久| 在线免费观看韩国a视频| 免费毛片在线看不用播放器| 亚洲人成小说网站色| 亚洲中文字幕无码不卡电影 | 一级黄色免费毛片|