【攻克Android (40)】JSON解析

阅读更多
本文围绕以下三个部分展开:

一、JSON解析
二、Gson
三、Fast-json





一、JSON解析

        1. 基本概念

        JSON: JavaScript Object Notation,是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。

        它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。

        JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。它通用于C, C++, C#, Java, JavaScript, Perl, Python, PHP等编程语言的数据交换传输。


        2. JSON基本结构

        (1)对象

        名值对的集合(A collection of name/value pairs)。

        一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号)。名值对之间使用“,”(逗号)分隔。

var myobj ={"name":"Tom","age":20};


        (2)数组

        值的有序列表(An ordered list of values)。


        3. JSON具有以下这些形式:对象 (object)、数组 (array)、值 (value)、字符串(string)、数值  (number)。



JSON解析案例

        创建测试类:JsonTest,继承自InstrumentationTestCase类,用于单元测试。

【攻克Android (40)】JSON解析_第1张图片


package com.android.dataparsing;

import android.test.InstrumentationTestCase;

/**
 * Created by Xiangdong on 2015/9/5.
 */
public class JsonTest extends InstrumentationTestCase {
    
}



        1. 将 java对象 转化为 JSON 对象/数组

package com.android.dataparsing;

import android.test.InstrumentationTestCase;
import android.util.Log;

import org.json.JSONArray;
import org.json.JSONObject;

/**
 * Created by Xiangdong on 2015/9/5.
 */
public class JsonTest extends InstrumentationTestCase {
    private static final String TAG = "MainActivity";

    /**
     * 将 java对象 转化为 JSON 对象/数组
     *
     * @throws Exception
     */
    public void testObject2Json() throws Exception {
        // 情况1:java对象 -> JSON对象
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("name", "段誉");
        jsonObject.put("age", 16);
        // 输出:{"name":"段誉","age":16}
        Log.v(TAG, jsonObject.toString());

        // 情况2:JSON对象中嵌套JSON对象
        JSONObject addressObj = new JSONObject();
        addressObj.put("city", "长沙");
        addressObj.put("street", "南阳街");
        // 嵌套
        jsonObject.put("address", addressObj);
        // 输出:{"name":"段誉","age":16,"address":{"city":"长沙",""street","南阳街"}}
        Log.v(TAG, jsonObject.toString());

        // 情况3:java对象 -> JSON数组
        JSONArray ja = new JSONArray();
        ja.put("130");
        ja.put("155");
        ja.put("188");
        // 输出:["130","155","188"]
        Log.v(TAG, ja.toString());

        // 情况4:JSON对象中嵌套JSON数组
        jsonObject.put("phone", ja);
        // 输出:{"name":"段誉","age":16,"address":{"city":"长沙","street":"南阳街"},"phone":["130","155","188"]}
        Log.v(TAG, jsonObject.toString());
    }
}





        2. JSON格式的字符串 转换为 JSON对象;JSON对象 转换为 字符串。

package com.android.dataparsing;

import android.test.InstrumentationTestCase;
import android.util.Log;

import org.json.JSONObject;

/**
 * Created by Xiangdong on 2015/9/5.
 */
public class JsonTest extends InstrumentationTestCase {
    private static final String TAG = "MainActivity";

    /**
     * JSON格式的字符串 转换为 JSON对象;
     * JSON对象 转换为 字符串
     *
     * @throws Exception
     */
    public void testJson2Object() throws Exception {
        String json = "{'name':'Tom','age':20}";
        // 情况1:将 JSON格式的字符串 转为 JSON对象
        JSONObject jsonObj = new JSONObject(json);
        // 输出:{"name":"Tom","age":"20"} - 引号就没有了。
        Log.v(TAG, jsonObj.toString());

        // 情况2:将JSON对象转换为 字符串
        String name = jsonObj.getString("name");
        int age = jsonObj.getInt("age");
        String text = String.format("%s,%d", name, age);
        // 输出:String->JSON: Tom,20
        Log.v(TAG, "JSON->String: " + text);
    }
}





        3. JSON数组格式的字符串 转换为 JSON数组;JSON数组中的每一项 转换为 字符串。

package com.android.dataparsing;

import android.test.InstrumentationTestCase;
import android.util.Log;

import org.json.JSONArray;

/**
 * Created by Xiangdong on 2015/9/5.
 */
public class JsonTest extends InstrumentationTestCase {
    private static final String TAG = "MainActivity";

    /**
     * JSON数组格式的字符串 转换为 JSON数组;
     * JSON数组中的每一项 转换为 字符串
     *
     * @throws Exception
     */
    public void testArray2Object() throws Exception {
        String json = "[jack,tom,rose]";
        JSONArray array = new JSONArray(json);
        for (int i = 0; i < array.length(); i++) {
            String s = String.format("%s", array.get(i));
            // jack
            // tom
            // rose
            Log.v(TAG, s);
        }
    }
}





        4. 读取 JSON 格式的文本文件,并进行解析。

        (1)先创建/导入 json.txt/json.json(是一个json格式 文本文件) 到 java目录下面。

【攻克Android (40)】JSON解析_第2张图片


[
 {"name":"段誉","age":"16","sex":"男","address":"大理"},
 {"name":"王语嫣","age":"17","sex":"女","address":"姑苏"},
 {"name":"乔峰","age":"32","sex":"男","address":"契丹"},
 {"name":"Tom","age":"20","sex":"M","address":"New York"}
]


        (2)将json.txt打包成jar包,并放到libs目录下,这样才能读取。

【攻克Android (40)】JSON解析_第3张图片


        (3)读取 JSON 格式的文本文件,并进行解析。

package com.android.dataparsing;

import android.test.InstrumentationTestCase;
import android.util.Log;

import org.json.JSONArray;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

/**
 * Created by Xiangdong on 2015/9/5.
 */
public class JsonTest extends InstrumentationTestCase {
    private static final String TAG = "MainActivity";

    /**
     * 读取 JSON 格式的文本文件,并进行解析
     *
     * @throws Exception
     */
    public void testReadFile() throws Exception {
        // 读取文件到缓冲
        InputStream in = getClass().getClassLoader()
                .getResourceAsStream("json.txt");
        // 用 BufferedReader 包装(因为要用文件的内容,因此要通过这个流去读)
        BufferedReader reader = new BufferedReader(new InputStreamReader(in));

        // 情况1:文件内容 转换为 字符串
        // 方法(1):使用 StringBuilder。
        // StringBuilder 类似于 StringBuffer,用来拼接字符串
        StringBuilder builder = new StringBuilder();
        String line;
        while ((line = reader.readLine()) != null) {
            builder.append(line);
        }
        // json.txt文件的内容
        String data = builder.toString();
        Log.v(TAG, data);

        // 方法(2):使用 String。
        String s = "";
        String line2;
        while ((line2 = reader.readLine()) != null) {
            s += line2;
        }
        // json.txt文件的内容
        Log.v(TAG, s);


        // 情况2:将JSON数组格式的字符串 转换为 JSON数组
        JSONArray ja = new JSONArray(data);

        // 情况3:从 JSON数组 中取出每个 JSON对象
        for (int i = 0; i < ja.length(); i++) {
            JSONObject jsonObj = ja.getJSONObject(i);

            // 情况4:将 JSON对象 转换为 字符串
            String name = jsonObj.getString("name");
            String age = jsonObj.getString("age");
            String sex = jsonObj.getString("sex");
            String address = jsonObj.getString("address");

            String text = String.format("%s,%s,%s,%s",
                    name, age, sex, address);
            Log.v(TAG, text);
        }
    }
}






二、Gson

        1. 概念

        Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。

        可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。

        也可以通过Simple转换XML。


        2. 特点

        (1)快速、高效

        (2)代码量少、简洁

        (3)面向对象

        (4)数据传递和解析方便


        3. jar和源码下载地址:http://code.google.com/p/google-gson/downloads/list


        4. 基本用法

        (1)定义实体类

        (2)根据需要可以将JSON生成单个实体或列表实体集合


Gson解析案例



        1. 将 gson-2.2.2.jar 包和 simple-xml-2.6.9.jar 包放到libs下面。

【攻克Android (40)】JSON解析_第4张图片



        2. 在java目录下创建com.android.gson目录,里面创建三个类:Book、BookList和BookService。

        (1)Book.java:

package com.android.gson;


import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;

/**
 * 创建1本书的pojo类。
 *
 *
 * 对应的XML结构:
 * 
 *   
 *   
 *   <author>
 *   <image>
 * </Book>
 *
 *
 * Created by XiangdongLee on 2015/9/7
 */
@Root   // 此处Root后面没有起名字,因此默认的根元素为:类名(Book)
public class Book {

    @Element
    private String isbn; // 编号

    @Element
    private String title;

    @Element
    private String author;

    @Element(required = false)  // 允许没有图片
    private String image;

    public Book() {
    }

    public Book(String isbn, String title, String author, String image) {
        this.isbn = isbn;
        this.title = title;
        this.author = author;
        this.image = image;
    }

    @Override
    public String toString() {
        return "Book [isbn=" + isbn + ", title=" + title + ", author=" + author
                + ", image=" + image + "]";
    }

    public String getIsbn() {
        return isbn;
    }

    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }
}
</pre> 
 <br> 
 <br>        
 <span style="font-size: medium;"><strong>(2)</strong>BookList.java:</span> 
 <br> 
 <br> 
 <pre name="code" class="java">package com.android.gson;


import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root;

import java.util.LinkedList;

/**
 * 创建多本书(集合)的pojo类。
 *
 *
 * 对应的XML结构:
 * <book-list>
 *   <Book>
 *     <isbn>
 *     <title>
 *     <author>
 *     <image>
 *   </Book>
 *
 *   <Book>
 *     <isbn>
 *     <title>
 *     <author>
 *     <image>
 *   </Book>
 * </book-list>
 *
 *
 * Created by XiangdongLee on 2015/9/7
 */

@Root(name = "book-list")  // 此处Root后面根元素重新起了名字,因此根元素名字为:book-list
public class BookList {

    @ElementList(inline = true)  // 元素列表
    private LinkedList<Book> list;

    public BookList() {
        list = new LinkedList<Book>();  // 构造方法中创建出集合
    }

    public LinkedList<Book> getList() {
        return list;
    }

    public void setList(LinkedList<Book> list) {
        this.list = list;
    }

    public void addBook(Book book) {
        list.add(book);
    }

    public int size() {
        return list.size();
    }

    public void set(int index, Book element) {
        list.set(index, element);
    }

    public Book get(int index) {
        return list.get(index);
    }

    @Override
    public String toString() {
        return "BookList [list=" + list + "]";
    }
}
</pre> 
 <br> 
 <br>        
 <span style="font-size: medium;"><strong>(3)</strong>BookService.java:</span> 
 <br> 
 <br> 
 <pre name="code" class="java">package com.android.gson;

/**
 * Created by XiangdongLee on 2015/9/7
 */
public class BookService {
    private static BookList list = new BookList();

	// 放在 static静态块中:只要应用程序不结束,就一直存在
    // 这些数据相当于来自数据库的数据
    static {
        list.addBook(new Book("9787506287081", "认识电影", "路易斯·贾内梯", "/images/1.jpg"));
        list.addBook(new Book("9787513300711", "失控", "凯文·凯利", "/images/2.jpg"));
        list.addBook(new Book("9787115293800", "算法", "Robert", "/images/3.jpg"));
        list.addBook(new Book("9787544704007", "悲剧的诞生", "尼采", "/images/4.jpg"));
        list.addBook(new Book("9787506285728", "社会学与生活", "理查德.谢弗", "/images/5.jpg"));
        list.addBook(new Book("9787544707206", "万有引力之虹", "托马斯·品钦", "/images/6.jpg"));
        list.addBook(new Book("9787229042066", "地球往事", "刘慈欣", "/images/7.jpg"));
        list.addBook(new Book("9787229047221", "冰与火之歌", "乔治·马丁", "/images/8.jpg"));
    }

    public static BookList getBookList() {
        return list;
    }

    public static void addBook(Book book) {
        list.addBook(book);
    }
}
</pre> 
 <br> 
 <br> 
 <br>        
 <span style="font-size: medium;"><strong>3. 创建测试类:GsonTest,继承自InstrumentationTestCase类,进行单元测试。</strong></span> 
 <br> 
 <br> 
 <pre name="code" class="java">package com.android.dataparsing;

import android.test.InstrumentationTestCase;

import com.android.gson.Book;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import org.simpleframework.xml.core.Persister;

import java.lang.reflect.Type;
import java.util.List;

/**
 * Created by XiangdongLee on 2015/9/7.
 */
public class GsonTest extends InstrumentationTestCase {
    private static final String TAG = "MainActivity";
    private Gson gson;
    private Type bookListType;

    private Persister persister;

    /**
     * 重写测试案例中的初始化方法:用来初始化 Gson
     *
     * @throws Exception
     */
    @Override
    protected void setUp() throws Exception {
        gson = new Gson();
        bookListType = new TypeToken<List<Book>>(){
        }.getType();
        persister = new Persister();
    }
}
</pre> 
 <br> 
 <br> 
 <br>        
 <span style="font-size: medium;"><strong>4. Gson解析</strong></span> 
 <br> 
 <br>        
 <span style="font-size: medium;">使用 Gson 把 集合数据 转换为 json格式的字符串,然后再把 json格式的字符串 转换为 java对象。</span> 
 <br> 
 <br> 
 <pre name="code" class="java">package com.android.dataparsing;

import android.test.InstrumentationTestCase;
import android.util.Log;

import com.android.gson.Book;
import com.android.gson.BookList;
import com.android.gson.BookService;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import org.json.JSONArray;
import org.json.JSONObject;
import org.simpleframework.xml.core.Persister;

import java.lang.reflect.Type;
import java.util.List;

/**
 * Created by XiangdongLee on 2015/9/7.
 */
public class GsonTest extends InstrumentationTestCase {
    private static final String TAG = "MainActivity";
    private Gson gson;
    private Type bookListType;

    private Persister persister;

    /**
     * 重写测试案例中的初始化方法:用来初始化 Gson
     *
     * @throws Exception
     */
    @Override
    protected void setUp() throws Exception {
        gson = new Gson();
        bookListType = new TypeToken<List<Book>>(){
        }.getType();
        persister = new Persister();
    }

    /**
     * 使用 Gson 把 集合数据 转换为 json格式的字符串,
     * 然后再把 json格式的字符串 转换为 java对象。
     */
    public void testToJsonFromList() throws Exception{
        BookList list = BookService.getBookList();
        Log.v(TAG, list.toString());

        // 情况1:使用 Gson 把集合数据转换为 json格式的字符串
        String json = gson.toJson(list.getList(), bookListType);
        Log.v(TAG,json);

        // 情况2:使用 Gson把 json格式的字符串 转换为 java对象
        Book book = gson.fromJson(json, Book.class);
        //  Book [isbn=9787506287081, title=认识电影, author=路易斯·贾内梯, image=/images/1.jpg]
        Log.v(TAG,book.toString());

        // 情况2.1:也可以通过JSON把 json格式的字符串 转换为 json数组
        JSONArray ja = new JSONArray(json);
        for(int i=0;i<ja.length();i++){
            // 拿到 json对象中的 某一个值("title")。
            JSONObject jsonObj = ja.getJSONObject(i);
            // Log.v(TAG,jsonObj.toString());
            Log.v(TAG,jsonObj.getString("title"));
        }
    }
}
</pre> 
 <br> 
 <br> 
 <br> 
 <br> 
 <strong><span style="font-size: large;">三、Fast-json</span></strong> 
 <br> 
 <br>        
 <span style="font-size: medium;"><strong>1. 概念</strong></span> 
 <br> 
 <br>        
 <span style="font-size: medium;">Fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。它具有极快的性能,宣称超越任其他的Java Json parser。</span> 
 <br> 
 <br> 
 <br>        
 <span style="font-size: medium;"><strong>2. 特点</strong></span> 
 <br> 
 <br>        
 <span style="font-size: medium;"><strong>(1)</strong>快速:比其它任何基于Java的解析器和生成器更快,包括jackson。</span> 
 <br> 
 <br>        
 <span style="font-size: medium;"><strong>(2)</strong>强大:支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum。</span> 
 <br> 
 <br>        
 <span style="font-size: medium;"><strong>(3)</strong>零依赖:没有依赖其它任何类库除了JDK。</span> 
 <br> 
 <br>        
 <span style="font-size: medium;"><strong>(4)</strong>支持注解、支持全类型序列化。</span> 
 <br> 
 <br> 
 <br>        
 <span style="font-size: medium;"><strong>3. 基本用法</strong></span> 
 <br> 
 <br>        
 <span style="font-size: medium;"><strong>(1)</strong>定义实体类</span> 
 <br> 
 <br>        
 <span style="font-size: medium;"><strong>(2)</strong>根据需要可以将JSON生成单个实体或列表实体集合</span> 
 <br> 
 <br> 
 <br> 
 <strong><span style="font-size: large;">Fast-json解析案例</span></strong> 
 <br> 
 <br>        
 <span style="font-size: medium;"><span style="color: red;">以后补充</span></span> 
 <br> 
 <br> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1176702490465349632"></div>
                    <script type="text/javascript" src="/views/front/js/chanyan.js"></script>
                    <!-- 文章页-底部 动态广告位 -->
                    <div class="youdao-fixed-ad" id="detail_ad_bottom"></div>
                </div>
                <div class="col-md-3">
                    <div class="row" id="ad">
                        <!-- 文章页-右侧1 动态广告位 -->
                        <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_1"> </div>
                        </div>
                        <!-- 文章页-右侧2 动态广告位 -->
                        <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_2"></div>
                        </div>
                        <!-- 文章页-右侧3 动态广告位 -->
                        <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_3"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="container">
        <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(Android,JSON解析,Gson解析,Fast-json解析,数据解析)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1835513699826233344.htm"
                           title="android系统selinux中添加新属性property" target="_blank">android系统selinux中添加新属性property</a>
                        <span class="text-muted">辉色投像</span>

                        <div>1.定位/android/system/sepolicy/private/property_contexts声明属性开头:persist.charge声明属性类型:u:object_r:system_prop:s0图12.定位到android/system/sepolicy/public/domain.te删除neverallow{domain-init}default_prop:property</div>
                    </li>
                    <li><a href="/article/1835504217729626112.htm"
                           title="Python教程:一文了解使用Python处理XPath" target="_blank">Python教程:一文了解使用Python处理XPath</a>
                        <span class="text-muted">旦莫</span>
<a class="tag" taget="_blank" href="/search/Python%E8%BF%9B%E9%98%B6/1.htm">Python进阶</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>目录1.环境准备1.1安装lxml1.2验证安装2.XPath基础2.1什么是XPath?2.2XPath语法2.3示例XML文档3.使用lxml解析XML3.1解析XML文档3.2查看解析结果4.XPath查询4.1基本路径查询4.2使用属性查询4.3查询多个节点5.XPath的高级用法5.1使用逻辑运算符5.2使用函数6.实战案例6.1从网页抓取数据6.1.1安装Requests库6.1.2代</div>
                    </li>
                    <li><a href="/article/1835495517774245888.htm"
                           title="python八股文面试题分享及解析(1)" target="_blank">python八股文面试题分享及解析(1)</a>
                        <span class="text-muted">Shawn________</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>#1.'''a=1b=2不用中间变量交换a和b'''#1.a=1b=2a,b=b,aprint(a)print(b)结果:21#2.ll=[]foriinrange(3):ll.append({'num':i})print(11)结果:#[{'num':0},{'num':1},{'num':2}]#3.kk=[]a={'num':0}foriinrange(3):#0,12#可变类型,不仅仅改变</div>
                    </li>
                    <li><a href="/article/1835494258262503424.htm"
                           title="【JS】执行时长(100分) |思路参考+代码解析(C++)" target="_blank">【JS】执行时长(100分) |思路参考+代码解析(C++)</a>
                        <span class="text-muted">l939035548</span>
<a class="tag" taget="_blank" href="/search/JS/1.htm">JS</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a>
                        <div>题目为了充分发挥GPU算力,需要尽可能多的将任务交给GPU执行,现在有一个任务数组,数组元素表示在这1秒内新增的任务个数且每秒都有新增任务。假设GPU最多一次执行n个任务,一次执行耗时1秒,在保证GPU不空闲情况下,最少需要多长时间执行完成。题目输入第一个参数为GPU一次最多执行的任务个数,取值范围[1,10000]第二个参数为任务数组长度,取值范围[1,10000]第三个参数为任务数组,数字范围</div>
                    </li>
                    <li><a href="/article/1835491353451130880.htm"
                           title="【华为OD技术面试真题 - 技术面】- python八股文真题题库(4)" target="_blank">【华为OD技术面试真题 - 技术面】- python八股文真题题库(4)</a>
                        <span class="text-muted">算法大师</span>
<a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>华为OD面试真题精选专栏:华为OD面试真题精选目录:2024华为OD面试手撕代码真题目录以及八股文真题目录文章目录华为OD面试真题精选**1.Python中的`with`**用途和功能自动资源管理示例:文件操作上下文管理协议示例代码工作流程解析优点2.\_\_new\_\_和**\_\_init\_\_**区别__new____init__区别总结3.**切片(Slicing)操作**基本切片语法</div>
                    </li>
                    <li><a href="/article/1835490218845761536.htm"
                           title="Python爬虫解析工具之xpath使用详解" target="_blank">Python爬虫解析工具之xpath使用详解</a>
                        <span class="text-muted">eqa11</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>文章目录Python爬虫解析工具之xpath使用详解一、引言二、环境准备1、插件安装2、依赖库安装三、xpath语法详解1、路径表达式2、通配符3、谓语4、常用函数四、xpath在Python代码中的使用1、文档树的创建2、使用xpath表达式3、获取元素内容和属性五、总结Python爬虫解析工具之xpath使用详解一、引言在Python爬虫开发中,数据提取是一个至关重要的环节。xpath作为一门</div>
                    </li>
                    <li><a href="/article/1835484420023349248.htm"
                           title="18、架构-可观测性之聚合度量" target="_blank">18、架构-可观测性之聚合度量</a>
                        <span class="text-muted">大树~~</span>
<a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a>
                        <div>聚合度量聚合度量是指对系统运行时产生的各种指标数据进行收集、聚合和分析,以了解系统的健康状况和性能表现。聚合度量是可观测性的关键组成部分,通过对度量数据的分析,可以及时发现系统中的异常和瓶颈。以下是对聚合度量各个方面的详细解析,并结合具体的数据案例和技术支撑。指标收集收集系统运行时产生的各种指标数据是聚合度量的基础。常见的指标包括CPU使用率、内存使用率、请求处理时间、请求数、错误率等。以下是指标</div>
                    </li>
                    <li><a href="/article/1835481396408315904.htm"
                           title="如何选择最适合你的项目研发管理软件?TAPD卓越版全面解析" target="_blank">如何选择最适合你的项目研发管理软件?TAPD卓越版全面解析</a>
                        <span class="text-muted">北京云巴巴信息技术有限公司</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%A7%E5%93%81%E7%BB%8F%E7%90%86/1.htm">产品经理</a><a class="tag" taget="_blank" href="/search/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/1.htm">需求分析</a>
                        <div>在当今快速发展的科技时代,项目研发管理软件已成为企业不可或缺的重要工具。面对市场上琳琅满目的产品,如何选择一款适合自己团队的项目研发管理软件呢?本文将围绕项目研发管理软件的选择标准,重点介绍TAPD卓越版的特点、优势以及使用体验,让你更好地理解和选择适合自己的项目研发管理软件。项目研发管理软件的选择标准在选择项目研发管理软件时,我们需要考虑以下几个方面的因素:功能全面性:软件是否覆盖了从需求管理、</div>
                    </li>
                    <li><a href="/article/1835480289204334592.htm"
                           title="剧本杀《鲸鱼马戏团》剧本杀剧透+真相答案复盘解析攻略" target="_blank">剧本杀《鲸鱼马戏团》剧本杀剧透+真相答案复盘解析攻略</a>
                        <span class="text-muted">VX搜_奶茶剧本杀</span>

                        <div>本文为剧本杀《鲸鱼马戏团》剧本杀测评+部分真相复盘,获取完整真相复盘只需两步:①、关注微信公众号【奶茶剧本杀】→②、回复剧本杀《鲸鱼马戏团》即可获取查看剧本杀《鲸鱼马戏团》剧本杀真相答案复盘+凶手剧透:以下是玩家评测+部分关键证据,凶手,时间线,复盘解析,推理逻辑--------------------------------------------------------------------</div>
                    </li>
                    <li><a href="/article/1835470119195734016.htm"
                           title="2.2.6 通知类控件 Toast、Menu" target="_blank">2.2.6 通知类控件 Toast、Menu</a>
                        <span class="text-muted">常思行</span>

                        <div>本文例程下载:WillFlow_Toast、WillFlowMenu一、什么是Toast?Toast也被叫做吐司,是Android系统提供的一种非常好的提醒方式,在程序中可以使用它将一些短小的信息通知给用户,它有如下两个特点:Toast是没有焦点的Toast显示的时间有限过一定的时间就会自动消失所以一般来讲Toast的使用并不会影响我们的正常操作,并且它通常不会占用太大的屏幕空间,有着良好的用户体</div>
                    </li>
                    <li><a href="/article/1835457442260021248.htm"
                           title="ArrayList 源码解析" target="_blank">ArrayList 源码解析</a>
                        <span class="text-muted">程序猿进阶</span>
<a class="tag" taget="_blank" href="/search/Java%E5%9F%BA%E7%A1%80/1.htm">Java基础</a><a class="tag" taget="_blank" href="/search/ArrayList/1.htm">ArrayList</a><a class="tag" taget="_blank" href="/search/List/1.htm">List</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/1.htm">架构设计</a><a class="tag" taget="_blank" href="/search/idea/1.htm">idea</a>
                        <div>ArrayList是Java集合框架中的一个动态数组实现,提供了可变大小的数组功能。它继承自AbstractList并实现了List接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入null元素,底层通过数组实现。除该类未实现同步外,其余跟Vector大致相同。每个ArrayList都有一个容量capacity,表示底层数组的实际大小,容器内存储元素的个数不能多于当前容量。当向容器中添</div>
                    </li>
                    <li><a href="/article/1835456308095053824.htm"
                           title="Kafka是如何保证数据的安全性、可靠性和分区的" target="_blank">Kafka是如何保证数据的安全性、可靠性和分区的</a>
                        <span class="text-muted">喜欢猪猪</span>
<a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a>
                        <div>Kafka作为一个高性能、可扩展的分布式流处理平台,通过多种机制来确保数据的安全性、可靠性和分区的有效管理。以下是关于Kafka如何保证数据安全性、可靠性和分区的详细解析:一、数据安全性SSL/TLS加密:Kafka支持SSL/TLS协议,通过配置SSL证书和密钥来加密数据传输,确保数据在传输过程中不会被窃取或篡改。这一机制有效防止了中间人攻击,保护了数据的安全性。SASL认证:Kafka支持多种</div>
                    </li>
                    <li><a href="/article/1835454921990828032.htm"
                           title="Java爬虫框架(一)--架构设计" target="_blank">Java爬虫框架(一)--架构设计</a>
                        <span class="text-muted">狼图腾-狼之传说</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E4%BB%BB%E5%8A%A1/1.htm">任务</a><a class="tag" taget="_blank" href="/search/html%E8%A7%A3%E6%9E%90%E5%99%A8/1.htm">html解析器</a><a class="tag" taget="_blank" href="/search/%E5%AD%98%E5%82%A8/1.htm">存储</a><a class="tag" taget="_blank" href="/search/%E7%94%B5%E5%AD%90%E5%95%86%E5%8A%A1/1.htm">电子商务</a>
                        <div>一、架构图那里搜网络爬虫框架主要针对电子商务网站进行数据爬取,分析,存储,索引。爬虫:爬虫负责爬取,解析,处理电子商务网站的网页的内容数据库:存储商品信息索引:商品的全文搜索索引Task队列:需要爬取的网页列表Visited表:已经爬取过的网页列表爬虫监控平台:web平台可以启动,停止爬虫,管理爬虫,task队列,visited表。二、爬虫1.流程1)Scheduler启动爬虫器,TaskMast</div>
                    </li>
                    <li><a href="/article/1835450889452744704.htm"
                           title="mac 备份android 手机通讯录导入iphone,iphone如何导出通讯录(轻松教你iPhone备份通讯录的方法)..." target="_blank">mac 备份android 手机通讯录导入iphone,iphone如何导出通讯录(轻松教你iPhone备份通讯录的方法)...</a>
                        <span class="text-muted">weixin_39762838</span>
<a class="tag" taget="_blank" href="/search/mac/1.htm">mac</a><a class="tag" taget="_blank" href="/search/%E5%A4%87%E4%BB%BDandroid/1.htm">备份android</a><a class="tag" taget="_blank" href="/search/%E6%89%8B%E6%9C%BA%E9%80%9A%E8%AE%AF%E5%BD%95%E5%AF%BC%E5%85%A5iphone/1.htm">手机通讯录导入iphone</a>
                        <div>在日新月异的手机更替中,换手机已经成为一个非常稀松平常的事情,但将旧手机上面的通讯录导入到新手机还是让不少小伙伴为难,本篇将给大家详细讲解这方面的知识:“苹果手机通讯录怎么导入到新手机”及“安卓手机通讯录导入到新手机”的方法。一、苹果手机通讯录导入到新手机常用方法(SIM卡导入)在苹果手机主频幕上找到“设置”,单击进入设置菜单,下拉菜单列表,点击“邮件、通讯录、日历”,然后找到“导入SIM卡通讯录</div>
                    </li>
                    <li><a href="/article/1835450511071997952.htm"
                           title="android 更改窗口的层次,浮窗开发之窗口层级" target="_blank">android 更改窗口的层次,浮窗开发之窗口层级</a>
                        <span class="text-muted">Ms.Bu</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E6%9B%B4%E6%94%B9%E7%AA%97%E5%8F%A3%E7%9A%84%E5%B1%82%E6%AC%A1/1.htm">更改窗口的层次</a>
                        <div>最近在项目中遇到了这样的需求:需要在特定的其他应用之上悬浮自己的UI交互(拖动、输入等复杂的UI交互),和九游的浮窗类似,不过我们的比九游的体验更好,我们越过了很多授权的限制。浮窗效果很多人都知道如何去实现一个简单的浮窗,但是却很少有人去深入的研究背后的流程机制,由于项目中浮窗交互比较复杂,遇到了些坑查看了很多资料,故总结浮窗涉及到的知识点:窗口层级关系(浮窗是如何“浮”的)?浮窗有哪些限制,如何</div>
                    </li>
                    <li><a href="/article/1835448619277316096.htm"
                           title="Android应用性能优化" target="_blank">Android应用性能优化</a>
                        <span class="text-muted">轻口味</span>
<a class="tag" taget="_blank" href="/search/Android/1.htm">Android</a>
                        <div>Android手机由于其本身的后台机制和硬件特点,性能上一直被诟病,所以软件开发者对软件本身的性能优化就显得尤为重要;本文将对Android开发过程中性能优化的各个方面做一个回顾与总结。Cache优化ListView缓存:ListView中有一个回收器,Item滑出界面的时候View会回收到这里,需要显示新的Item的时候,就尽量重用回收器里面的View;每次在getView函数中inflate新</div>
                    </li>
                    <li><a href="/article/1835448366310453248.htm"
                           title="光盘文件系统 (iso9660) 格式解析" target="_blank">光盘文件系统 (iso9660) 格式解析</a>
                        <span class="text-muted">穷人小水滴</span>
<a class="tag" taget="_blank" href="/search/%E5%85%89%E7%9B%98/1.htm">光盘</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F/1.htm">文件系统</a><a class="tag" taget="_blank" href="/search/iso9660/1.htm">iso9660</a><a class="tag" taget="_blank" href="/search/deno/1.htm">deno</a><a class="tag" taget="_blank" href="/search/GNU%2FLinux/1.htm">GNU/Linux</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a>
                        <div>越简单的系统,越可靠,越不容易出问题.光盘文件系统(iso9660)十分简单,只需不到200行代码,即可实现定位读取其中的文件.参考资料:https://wiki.osdev.org/ISO_9660相关文章:《光盘防水嘛?DVD+R刻录光盘泡水实验》https://blog.csdn.net/secext2022/article/details/140583910《光驱的内部结构及日常使用》ht</div>
                    </li>
                    <li><a href="/article/1835443569968640000.htm"
                           title="Spring MVC 全面指南:从入门到精通的详细解析" target="_blank">Spring MVC 全面指南:从入门到精通的详细解析</a>
                        <span class="text-muted">一杯梅子酱</span>
<a class="tag" taget="_blank" href="/search/%E6%8A%80%E6%9C%AF%E6%A0%88%E5%AD%A6%E4%B9%A0/1.htm">技术栈学习</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/mvc/1.htm">mvc</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>引言:SpringMVC,作为Spring框架的一个重要模块,为构建Web应用提供了强大的功能和灵活性。无论是初学者还是有一定经验的开发者,掌握SpringMVC都将显著提升你的Web开发技能。本文旨在为初学者提供一个全面且易于理解的学习路径,通过详细的知识点分析和实际案例,帮助你快速上手SpringMVC,让学习过程既深刻又高效。一、SpringMVC简介1.1什么是SpringMVC?Spri</div>
                    </li>
                    <li><a href="/article/1835441991391997952.htm"
                           title="崩坏星穹铁道哪个角色值得培养 崩坏星穹铁道新手角色优先级教学" target="_blank">崩坏星穹铁道哪个角色值得培养 崩坏星穹铁道新手角色优先级教学</a>
                        <span class="text-muted">会飞滴鱼儿</span>

                        <div>崩坏星穹铁道新手角色培养攻略:哪些角色值得投资?在《崩坏星穹铁道》中,角色的强度和培养一直是玩家们关心的焦点。要想体验更爽快的游戏过程,选对角色至关重要。那么,哪些角色值得投资培养呢?本篇教学文章将针对新手玩家,从T0到T1强度的角色中为你做出详尽解析。游戏豹官网现在的手游平台很多,但是在游戏界有这么一个传说:“喜欢肝的玩家不如氪金玩家,氪金玩家不如内部福利玩家”,这就是游戏界可悲的生物链,很多平</div>
                    </li>
                    <li><a href="/article/1835438028009598976.htm"
                           title="WebMagic:强大的Java爬虫框架解析与实战" target="_blank">WebMagic:强大的Java爬虫框架解析与实战</a>
                        <span class="text-muted">Aaron_945</span>
<a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>文章目录引言官网链接WebMagic原理概述基础使用1.添加依赖2.编写PageProcessor高级使用1.自定义Pipeline2.分布式抓取优点结论引言在大数据时代,网络爬虫作为数据收集的重要工具,扮演着不可或缺的角色。Java作为一门广泛使用的编程语言,在爬虫开发领域也有其独特的优势。WebMagic是一个开源的Java爬虫框架,它提供了简单灵活的API,支持多线程、分布式抓取,以及丰富的</div>
                    </li>
                    <li><a href="/article/1835435758844997632.htm"
                           title="【2022 CCF 非专业级别软件能力认证第一轮(CSP-J1)入门级 C++语言试题及解析】" target="_blank">【2022 CCF 非专业级别软件能力认证第一轮(CSP-J1)入门级 C++语言试题及解析】</a>
                        <span class="text-muted">汉子萌萌哒</span>
<a class="tag" taget="_blank" href="/search/CCF/1.htm">CCF</a><a class="tag" taget="_blank" href="/search/noi/1.htm">noi</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a>
                        <div>一、单项选择题(共15题,每题2分,共计30分;每题有且仅有一个正确选项)1.以下哪种功能没有涉及C++语言的面向对象特性支持:()。A.C++中调用printf函数B.C++中调用用户定义的类成员函数C.C++中构造一个class或structD.C++中构造来源于同一基类的多个派生类题目解析【解析】正确答案:AC++基础知识,面向对象和类有关,类又涉及父类、子类、继承、派生等关系,printf</div>
                    </li>
                    <li><a href="/article/1835424411616899072.htm"
                           title="绝招曝光!3小时高效利用ChatGPT写出精彩论文" target="_blank">绝招曝光!3小时高效利用ChatGPT写出精彩论文</a>
                        <span class="text-muted">kkai人工智能</span>
<a class="tag" taget="_blank" href="/search/chatgpt/1.htm">chatgpt</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/ai/1.htm">ai</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%AA%92%E4%BD%93/1.htm">媒体</a>
                        <div>在这份指南中,我将深入解析如何利用ChatGPT4.0的高级功能,指导整个学术研究和写作过程。从初步探索研究主题,到撰写结构严谨的学术论文,我将一步步展示如何在每个环节中有效运用ChatGPT。如果您还未使用PLUS版本,可以参考相关教程。**初步探索与主题的确定**起初,我处于庞大的知识领域中,寻找一个可深入研究的领域。ChatGPT如同灯塔,通过深入分析最新研究趋势和领域热点,帮助我在广阔的学</div>
                    </li>
                    <li><a href="/article/1835423399606841344.htm"
                           title="ERP企业资源规划系统" target="_blank">ERP企业资源规划系统</a>
                        <span class="text-muted">点滴~</span>
<a class="tag" taget="_blank" href="/search/%E6%95%99%E8%82%B2%E7%94%B5%E5%95%86/1.htm">教育电商</a>
                        <div>ERP企业资源规划系统ERP(EnterpriseResourcePlanning)企业资源规划系统是一种综合性的管理信息系统,旨在通过信息技术手段实现对企业内部资源的全面规划、管理和控制。以下是对ERP企业资源规划系统的详细解析:一、定义与核心思想ERP系统建立在信息技术基础上,以系统化的管理思想,为企业决策层及员工提供决策运行手段的管理平台。它不仅仅是一个软件,更重要的是一个管理思想,实现了企</div>
                    </li>
                    <li><a href="/article/1835420248896008192.htm"
                           title="使用由 Python 编写的 lxml 实现高性能 XML 解析" target="_blank">使用由 Python 编写的 lxml 实现高性能 XML 解析</a>
                        <span class="text-muted">hunyxv</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a>
                        <div>转载自:文章lxml简介Python从来不出现XML库短缺的情况。从2.0版本开始,它就附带了xml.dom.minidom和相关的pulldom以及SimpleAPIforXML(SAX)模块。从2.4开始,它附带了流行的ElementTreeAPI。此外,很多第三方库可以提供更高级别的或更具有python风格的接口。尽管任何XML库都足够处理简单的DocumentObjectModel(DOM</div>
                    </li>
                    <li><a href="/article/1835415332831981568.htm"
                           title="每日OJ_牛客_马戏团(模拟最长上升子序列)" target="_blank">每日OJ_牛客_马戏团(模拟最长上升子序列)</a>
                        <span class="text-muted">GR鲸鱼</span>
<a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E7%89%9B%E5%AE%A2/1.htm">牛客</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a>
                        <div>目录牛客_马戏团(模拟最长上升子序列)解析代码牛客_马戏团(模拟最长上升子序列)马戏团__牛客网搜狐员工小王最近利用假期在外地旅游,在某个小镇碰到一个马戏团表演,精彩的表演结束后发现团长正和大伙在帐篷前激烈讨论,小王打听了下了解到,马戏团正打算出一个新节目“最高罗汉塔”,即马戏团员叠罗汉表演。考虑到安全因素,要求叠罗汉过程中,站在某个人肩上的人应该既比自己矮又比自己瘦,或相等。团长想要本次节目中的</div>
                    </li>
                    <li><a href="/article/1835412764722556928.htm"
                           title="Android实现监听事件的方法" target="_blank">Android实现监听事件的方法</a>
                        <span class="text-muted">Amy木婉清</span>

                        <div>1.通过内部类实现2.通过匿名内部类实现3.通过事件源所在类实现4.通过外部类实现5.布局文件中onclick属性(针对点击事件)1.通过内部类实现代码:privateButtonmBtnEvent;//oncreate中mBtnEvent.setOnClickListener(newOnClick());//内部类实现监听classOnClickimplementsView.OnClickLis</div>
                    </li>
                    <li><a href="/article/1835402227448115200.htm"
                           title="APQP,ASPICE,敏捷,功能安全,预期安全,这些汽车行业的一堆标准" target="_blank">APQP,ASPICE,敏捷,功能安全,预期安全,这些汽车行业的一堆标准</a>
                        <span class="text-muted">二大宝贝</span>
<a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E6%9E%B6%E6%9E%84/1.htm">安全架构</a>
                        <div>前言APQP,ASPICE,敏捷,功能安全,预期安全,PMP,PRICE2汽车行业的有这样一堆标准。我是半路出家来到汽车行业做项目经理的,对几个标准的感觉是,看了文档和各种解析之后还是一头雾水,不知道到底说了个啥,别人问我还是一脸懵逼。APQP(TS16949的最重要工具),ASPICE(软件)这些是质量标准,是优化整个公司体系的,但这套体系对项目管理有要求;敏捷,PMP这些是项目管理的标准;项目</div>
                    </li>
                    <li><a href="/article/1835400203130204160.htm"
                           title="高级UI<第二十四篇>:Android中用到的矩阵常识" target="_blank">高级UI<第二十四篇>:Android中用到的矩阵常识</a>
                        <span class="text-muted">NoBugException</span>

                        <div>(1)定义在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合。由m×n个数aij排成的m行n列的数表称为m行n列的矩阵,简称m×n矩阵。记作:图片.png这m×n个数称为矩阵A的元素,简称为元,数aij位于矩阵A的第i行第j列,称为矩阵A的(i,j)元,以数aij为(i,j)元的矩阵可记为(aij)或(aij)m×n,m×n矩阵A也记作Amn。元素是实数的矩阵称为实矩阵,元素是复</div>
                    </li>
                    <li><a href="/article/1835398694636187648.htm"
                           title="RK3229_Android9.0_Box 4G模块EC200A调试" target="_blank">RK3229_Android9.0_Box 4G模块EC200A调试</a>
                        <span class="text-muted">suifen_</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>0、kernel修改这部分完全可以参考Linux的移植:RK3588EC200A-CN【4G模块】调试_rkec200a-cn-CSDN博客1、修改device/rockchip/rk322xdiff--gita/device.mkb/device.mkindexec6bfaa..e7c32d1100755---a/device.mk+++b/device.mk@@-105,6+105,8@@en</div>
                    </li>
                    <li><a href="/article/1835391382567612416.htm"
                           title="Shell脚本中sed使用" target="_blank">Shell脚本中sed使用</a>
                        <span class="text-muted">jcrhl321</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>目录一、sed编辑器1、sed概述2、sed的工作流程3、sed命令的常见格式4、sed命令常用操作二、sed常用命令使用1、sed打印2、sed删除3、sed替换4、sed插入与增加4、sed剪切粘贴与复制粘贴一、sed编辑器sed(StreamEDitor)是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除、替换、添加、移动等),最后输出所有行或者仅输出</div>
                    </li>
                                <li><a href="/article/44.htm"
                                       title="Enum 枚举" target="_blank">Enum 枚举</a>
                                    <span class="text-muted">120153216</span>
<a class="tag" taget="_blank" href="/search/enum/1.htm">enum</a><a class="tag" taget="_blank" href="/search/%E6%9E%9A%E4%B8%BE/1.htm">枚举</a>
                                    <div>原文地址:http://www.cnblogs.com/Kavlez/p/4268601.html Enumeration 
于Java 1.5增加的enum type...enum type是由一组固定的常量组成的类型,比如四个季节、扑克花色。在出现enum type之前,通常用一组int常量表示枚举类型。比如这样: 
public static final int APPLE_FUJI = 0</div>
                                </li>
                                <li><a href="/article/171.htm"
                                       title="Java8简明教程" target="_blank">Java8简明教程</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jdk1.8/1.htm">jdk1.8</a>
                                    <div>        Java 8已于2014年3月18日正式发布了,新版本带来了诸多改进,包括Lambda表达式、Streams、日期时间API等等。本文就带你领略Java 8的全新特性。  
一.允许在接口中有默认方法实现 
        Java 8 允许我们使用default关键字,为接口声明添</div>
                                </li>
                                <li><a href="/article/298.htm"
                                       title="Oracle表维护 快速备份删除数据" target="_blank">Oracle表维护 快速备份删除数据</a>
                                    <span class="text-muted">cuisuqiang</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E7%B4%A2%E5%BC%95/1.htm">索引</a><a class="tag" taget="_blank" href="/search/%E5%BF%AB%E9%80%9F/1.htm">快速</a><a class="tag" taget="_blank" href="/search/%E5%A4%87%E4%BB%BD/1.htm">备份</a><a class="tag" taget="_blank" href="/search/%E5%88%A0%E9%99%A4/1.htm">删除</a>
                                    <div>我知道oracle表分区,不过那是数据库设计阶段的事情,目前是远水解不了近渴。 
当前的数据库表,要求保留一个月数据,且表存在大量录入更新,不存在程序删除。 
为了解决频繁查询和更新的瓶颈,我在oracle内根据需要创建了索引。但是随着数据量的增加,一个半月数据就要超千万,此时就算有索引,对高并发的查询和更新来说,让然有所拖累。 
为了解决这个问题,我一般一个月会进行一次数据库维护,主要工作就是备</div>
                                </li>
                                <li><a href="/article/425.htm"
                                       title="java多态内存分析" target="_blank">java多态内存分析</a>
                                    <span class="text-muted">麦田的设计者</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%86%85%E5%AD%98%E5%88%86%E6%9E%90/1.htm">内存分析</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E6%80%81%E5%8E%9F%E7%90%86/1.htm">多态原理</a><a class="tag" taget="_blank" href="/search/%E6%8E%A5%E5%8F%A3%E5%92%8C%E6%8A%BD%E8%B1%A1%E7%B1%BB/1.htm">接口和抽象类</a>
                                    <div>      “  时针如果可以回头,熟悉那张脸,重温嬉戏这乐园,墙壁的松脱涂鸦已经褪色才明白存在的价值归于记忆。街角小店尚存在吗?这大时代会不会牵挂,过去现在花开怎么会等待。 
      但有种意外不管痛不痛都有伤害,光阴远远离开,那笑声徘徊与脑海。但这一秒可笑不再可爱,当天心</div>
                                </li>
                                <li><a href="/article/552.htm"
                                       title="Xshell实现Windows上传文件到Linux主机" target="_blank">Xshell实现Windows上传文件到Linux主机</a>
                                    <span class="text-muted">被触发</span>
<a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a>
                                    <div>经常有这样的需求,我们在Windows下载的软件包,如何上传到远程Linux主机上?还有如何从Linux主机下载软件包到Windows下;之前我的做法现在看来好笨好繁琐,不过也达到了目的,笨人有本方法嘛; 
我是怎么操作的: 
1、打开一台本地Linux虚拟机,使用mount 挂载Windows的共享文件夹到Linux上,然后拷贝数据到Linux虚拟机里面;(经常第一步都不顺利,无法挂载Windo</div>
                                </li>
                                <li><a href="/article/679.htm"
                                       title="类的加载ClassLoader" target="_blank">类的加载ClassLoader</a>
                                    <span class="text-muted">肆无忌惮_</span>
<a class="tag" taget="_blank" href="/search/ClassLoader/1.htm">ClassLoader</a>
                                    <div>类加载器ClassLoader是用来将java的类加载到虚拟机中,类加载器负责读取class字节文件到内存中,并将它转为Class的对象(类对象),通过此实例的 newInstance()方法就可以创建出该类的一个对象。 
  
其中重要的方法为findClass(String name)。 
  
如何写一个自己的类加载器呢? 
首先写一个便于测试的类Student</div>
                                </li>
                                <li><a href="/article/806.htm"
                                       title="html5写的玫瑰花" target="_blank">html5写的玫瑰花</a>
                                    <span class="text-muted">知了ing</span>
<a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a>
                                    <div><html>  
<head>  
<title>I Love You!</title>  
<meta charset="utf-8" />  
</head>  
<body>  
<canvas id="c"></canvas>  
</div>
                                </li>
                                <li><a href="/article/933.htm"
                                       title="google的ConcurrentLinkedHashmap源代码解析" target="_blank">google的ConcurrentLinkedHashmap源代码解析</a>
                                    <span class="text-muted">矮蛋蛋</span>
<a class="tag" taget="_blank" href="/search/LRU/1.htm">LRU</a>
                                    <div>原文地址: 
http://janeky.iteye.com/blog/1534352 
简述 
ConcurrentLinkedHashMap 是google团队提供的一个容器。它有什么用呢?其实它本身是对 
 
ConcurrentHashMap的封装,可以用来实现一个基于LRU策略的缓存。详细介绍可以参见 
 
http://code.google.com/p/concurrentlinke</div>
                                </li>
                                <li><a href="/article/1060.htm"
                                       title="webservice获取访问服务的ip地址" target="_blank">webservice获取访问服务的ip地址</a>
                                    <span class="text-muted">alleni123</span>
<a class="tag" taget="_blank" href="/search/webservice/1.htm">webservice</a>
                                    <div>1. 首先注入javax.xml.ws.WebServiceContext, 
@Resource 
 private WebServiceContext context; 
 
 
2. 在方法中获取交换请求的对象。 
 
 
javax.xml.ws.handler.MessageContext mc=context.getMessageContext();
com.sun.net.http</div>
                                </li>
                                <li><a href="/article/1187.htm"
                                       title="菜鸟的java基础提升之道——————>是否值得拥有" target="_blank">菜鸟的java基础提升之道——————>是否值得拥有</a>
                                    <span class="text-muted">百合不是茶</span>

                                    <div>1,c++,java是面向对象编程的语言,将万事万物都看成是对象;java做一件事情关注的是人物,java是c++继承过来的,java没有直接更改地址的权限但是可以通过引用来传值操作地址,java也没有c++中繁琐的操作,java以其优越的可移植型,平台的安全型,高效性赢得了广泛的认同,全世界越来越多的人去学习java,我也是其中的一员 
  
  
 java组成:</div>
                                </li>
                                <li><a href="/article/1314.htm"
                                       title="通过修改Linux服务自动启动指定应用程序" target="_blank">通过修改Linux服务自动启动指定应用程序</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>Linux中修改系统服务的命令是chkconfig (check config),命令的详细解释如下:  chkconfig

功能说明:检查,设置系统的各种服务。

语  法:chkconfig [ -- add][ -- del][ -- list][系统服务] 或 chkconfig [ -- level  <</SPAN></div>
                                </li>
                                <li><a href="/article/1441.htm"
                                       title="spring拦截器的一个简单实例" target="_blank">spring拦截器的一个简单实例</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E6%8B%A6%E6%88%AA%E5%99%A8/1.htm">拦截器</a><a class="tag" taget="_blank" href="/search/Interceptor/1.htm">Interceptor</a>
                                    <div>Purview接口 
package aop;

public interface Purview {
    void checkLogin();
} 
Purview接口的实现类PurviesImpl.java 
package aop;

public class PurviewImpl implements Purview {
	
    public void check</div>
                                </li>
                                <li><a href="/article/1568.htm"
                                       title="[Velocity二]自定义Velocity指令" target="_blank">[Velocity二]自定义Velocity指令</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/velocity/1.htm">velocity</a>
                                    <div>什么是Velocity指令 
在Velocity中,#set,#if, #foreach, #elseif, #parse等,以#开头的称之为指令,Velocity内置的这些指令可以用来做赋值,条件判断,循环控制等脚本语言必备的逻辑控制等语句,Velocity的指令是可扩展的,即用户可以根据实际的需要自定义Velocity指令 
  自定义指令(Directive)的一般步骤 
&nbs</div>
                                </li>
                                <li><a href="/article/1695.htm"
                                       title="【Hive十】Programming Hive学习笔记" target="_blank">【Hive十】Programming Hive学习笔记</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/programming/1.htm">programming</a>
                                    <div> 第二章 Getting Started 
1.Hive最大的局限性是什么?一是不支持行级别的增删改(insert, delete, update)二是查询性能非常差(基于Hadoop MapReduce),不适合延迟小的交互式任务三是不支持事务2. Hive MetaStore是干什么的?Hive persists table schemas and other system metadata.</div>
                                </li>
                                <li><a href="/article/1822.htm"
                                       title="nginx有选择性进行限制" target="_blank">nginx有选择性进行限制</a>
                                    <span class="text-muted">ronin47</span>
<a class="tag" taget="_blank" href="/search/nginx+%E5%8A%A8%E9%9D%99%E3%80%80%E9%99%90%E5%88%B6/1.htm">nginx 动静 限制</a>
                                    <div>http {
    limit_conn_zone $binary_remote_addr zone=addr:10m;
    limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;...

    server {...
       location ~.*\.(gif|png|css|js|icon)$ {
   </div>
                                </li>
                                <li><a href="/article/1949.htm"
                                       title="java-4.-在二元树中找出和为某一值的所有路径 ." target="_blank">java-4.-在二元树中找出和为某一值的所有路径 .</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>
/*
	 * 0.use a TwoWayLinkedList to store the path.when the node can't be path,you should/can delete it.
	 * 1.curSum==exceptedSum:if the lastNode is TreeNode,printPath();delete the node otherwise
</div>
                                </li>
                                <li><a href="/article/2076.htm"
                                       title="Netty学习笔记" target="_blank">Netty学习笔记</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/netty/1.htm">netty</a>
                                    <div>本文是阅读以下两篇文章时: 
 
http://seeallhearall.blogspot.com/2012/05/netty-tutorial-part-1-introduction-to.html 
 
http://seeallhearall.blogspot.com/2012/06/netty-tutorial-part-15-on-channel.html 
我的一些笔记 
 
===</div>
                                </li>
                                <li><a href="/article/2203.htm"
                                       title="js获取项目路径" target="_blank">js获取项目路径</a>
                                    <span class="text-muted">cngolon</span>
<a class="tag" taget="_blank" href="/search/js/1.htm">js</a>
                                    <div>//js获取项目根路径,如: http://localhost:8083/uimcardprj 
function getRootPath(){ 
    //获取当前网址,如: http://localhost:8083/uimcardprj/share/meun.jsp 
    var curWwwPath=window.document.locati</div>
                                </li>
                                <li><a href="/article/2330.htm"
                                       title="oracle 的性能优化" target="_blank">oracle 的性能优化</a>
                                    <span class="text-muted">cuishikuan</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/SQL+Server/1.htm">SQL Server</a>
                                    <div>   在网上搜索了一些Oracle性能优化的文章,为了更加深层次的巩固[边写边记],也为了可以随时查看,所以发表这篇文章。 
    1.ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。(这点本人曾经做过实例验证过,的确如此哦!</div>
                                </li>
                                <li><a href="/article/2457.htm"
                                       title="Shell变量和数组使用详解" target="_blank">Shell变量和数组使用详解</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/shell/1.htm">shell</a><a class="tag" taget="_blank" href="/search/%E5%8F%98%E9%87%8F/1.htm">变量</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E7%BB%84/1.htm">数组</a>
                                    <div>Shell 变量 
定义变量时,变量名不加美元符号($,PHP语言中变量需要),如: 
your_name="w3cschool.cc" 
注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则: 
 
 首个字符必须为字母(a-z,A-Z)。 
 中间不能有空格,可以使用下划线(_)。 
 不能使用标点符号。 
 不能使用ba</div>
                                </li>
                                <li><a href="/article/2584.htm"
                                       title="编程中的一些概念,KISS、DRY、MVC、OOP、REST" target="_blank">编程中的一些概念,KISS、DRY、MVC、OOP、REST</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/REST/1.htm">REST</a>
                                    <div>KISS、DRY、MVC、OOP、REST (1)KISS是指Keep It Simple,Stupid(摘自wikipedia),指设计时要坚持简约原则,避免不必要的复杂化。 (2)DRY是指Don't Repeat Yourself(摘自wikipedia),特指在程序设计以及计算中避免重复代码,因为这样会降低灵活性、简洁性,并且可能导致代码之间的矛盾。 (3)OOP 即Object-Orie</div>
                                </li>
                                <li><a href="/article/2711.htm"
                                       title="[Android]设置Activity为全屏显示的两种方法" target="_blank">[Android]设置Activity为全屏显示的两种方法</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/Activity/1.htm">Activity</a>
                                    <div>1. 方法1:AndroidManifest.xml 里,Activity的 android:theme  指定为" @android:style/Theme.NoTitleBar.Fullscreen" 示例:   <application      </div>
                                </li>
                                <li><a href="/article/2838.htm"
                                       title="solrcloud 部署方式比较" target="_blank">solrcloud 部署方式比较</a>
                                    <span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/solrCloud/1.htm">solrCloud</a>
                                    <div>solrcloud 的部署其实有两种方式可选,那么我们在实践开发中应该怎样选择呢? 第一种:当启动solr服务器时,内嵌的启动一个Zookeeper服务器,然后将这些内嵌的Zookeeper服务器组成一个集群。  第二种:将Zookeeper服务器独立的配置一个集群,然后将solr交给Zookeeper进行管理 
  
谈谈第一种:每启动一个solr服务器就内嵌的启动一个Zoo</div>
                                </li>
                                <li><a href="/article/2965.htm"
                                       title="Java synchronized关键字详解" target="_blank">Java synchronized关键字详解</a>
                                    <span class="text-muted">gqdy365</span>
<a class="tag" taget="_blank" href="/search/synchronized/1.htm">synchronized</a>
                                    <div>转载自:http://www.cnblogs.com/mengdd/archive/2013/02/16/2913806.html 
 
多线程的同步机制对资源进行加锁,使得在同一个时间,只有一个线程可以进行操作,同步用以解决多个线程同时访问时可能出现的问题。 
同步机制可以使用synchronized关键字实现。 
当synchronized关键字修饰一个方法的时候,该方法叫做同步方法。 
当s</div>
                                </li>
                                <li><a href="/article/3092.htm"
                                       title="js实现登录时记住用户名" target="_blank">js实现登录时记住用户名</a>
                                    <span class="text-muted">hw1287789687</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%B0%E4%BD%8F%E6%88%91/1.htm">记住我</a><a class="tag" taget="_blank" href="/search/%E8%AE%B0%E4%BD%8F%E5%AF%86%E7%A0%81/1.htm">记住密码</a><a class="tag" taget="_blank" href="/search/cookie/1.htm">cookie</a><a class="tag" taget="_blank" href="/search/%E8%AE%B0%E4%BD%8F%E7%94%A8%E6%88%B7%E5%90%8D/1.htm">记住用户名</a><a class="tag" taget="_blank" href="/search/%E8%AE%B0%E4%BD%8F%E8%B4%A6%E5%8F%B7/1.htm">记住账号</a>
                                    <div>在页面中如何获取cookie值呢? 
如果是JSP的话,可以通过servlet的对象request 获取cookie,可以 
参考:http://hw1287789687.iteye.com/blog/2050040 
如果要求登录页面是html呢?html页面中如何获取cookie呢? 
直接上代码了 
页面:loginInput.html 
代码: 
<!DOCTYPE html PUB</div>
                                </li>
                                <li><a href="/article/3219.htm"
                                       title="开发者必备的 Chrome 扩展" target="_blank">开发者必备的 Chrome 扩展</a>
                                    <span class="text-muted">justjavac</span>
<a class="tag" taget="_blank" href="/search/chrome/1.htm">chrome</a>
                                    <div>Firebug:不用多介绍了吧https://chrome.google.com/webstore/detail/bmagokdooijbeehmkpknfglimnifench 
ChromeSnifferPlus:Chrome 探测器,可以探测正在使用的开源软件或者 js 类库https://chrome.google.com/webstore/detail/chrome-sniffer-pl</div>
                                </li>
                                <li><a href="/article/3346.htm"
                                       title="算法机试题" target="_blank">算法机试题</a>
                                    <span class="text-muted">李亚飞</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E8%AF%95%E9%A2%98/1.htm">机试题</a>
                                    <div>       在面试机试时,遇到一个算法题,当时没能写出来,最后是同学帮忙解决的。 
       这道题大致意思是:输入一个数,比如4,。这时会输出: 
          &n</div>
                                </li>
                                <li><a href="/article/3473.htm"
                                       title="正确配置Linux系统ulimit值" target="_blank">正确配置Linux系统ulimit值</a>
                                    <span class="text-muted">字符串</span>
<a class="tag" taget="_blank" href="/search/ulimit/1.htm">ulimit</a>
                                    <div>在Linux下面部 署应用的时候,有时候会遇上Socket/File: Can’t open so many files的问题;这个值也会影响服务器的最大并发数,其实Linux是有文件句柄限制的,而且Linux默认不是很高,一般都是1024,生产服务器用 其实很容易就达到这个数量。下面说的是,如何通过正解配置来改正这个系统默认值。因为这个问题是我配置Nginx+php5时遇到了,所以我将这篇归纳进</div>
                                </li>
                                <li><a href="/article/3600.htm"
                                       title="hibernate调用返回游标的存储过程" target="_blank">hibernate调用返回游标的存储过程</a>
                                    <span class="text-muted">Supanccy2013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/DAO/1.htm">DAO</a><a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a><a class="tag" taget="_blank" href="/search/jdbc/1.htm">jdbc</a>
                                    <div>注:原创作品,转载请注明出处。 
 
 
    上篇博文介绍的是hibernate调用返回单值的存储过程,本片博文说的是hibernate调用返回游标的存储过程。 
    此此扁博文的存储过程的功能相当于是jdbc调用select 的作用。 
 
1,创建oracle中的包,并在该包中创建的游标类型。 
 
---创建oracle的程</div>
                                </li>
                                <li><a href="/article/3727.htm"
                                       title="Spring 4.2新特性-更简单的Application Event" target="_blank">Spring 4.2新特性-更简单的Application Event</a>
                                    <span class="text-muted">wiselyman</span>
<a class="tag" taget="_blank" href="/search/application/1.htm">application</a>
                                    <div>1.1 Application Event 
 
  Spring 4.1的写法请参考10点睛Spring4.1-Application Event  
  请对比10点睛Spring4.1-Application Event  
  使用一个@EventListener取代了实现ApplicationListener接口,使耦合度降低;  
  
1.2 示例 
 
 包依赖 
  
<p</div>
                                </li>
                </ul>
            </div>
        </div>
    </div>

<div>
    <div class="container">
        <div class="indexes">
            <strong>按字母分类:</strong>
            <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a
                href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a
                href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a
                href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a
                href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a
                href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a
                href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a
                href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a
                href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a>
        </div>
    </div>
</div>
<footer id="footer" class="mb30 mt30">
    <div class="container">
        <div class="footBglm">
            <a target="_blank" href="/">首页</a> -
            <a target="_blank" href="/custom/about.htm">关于我们</a> -
            <a target="_blank" href="/search/Java/1.htm">站内搜索</a> -
            <a target="_blank" href="/sitemap.txt">Sitemap</a> -
            <a target="_blank" href="/custom/delete.htm">侵权投诉</a>
        </div>
        <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.
<!--            <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>-->
        </div>
    </div>
</footer>
<!-- 代码高亮 -->
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script>
<link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/>
<script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script>





</body>

</html>