🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Git 常用命令 ~~~ 1、从远程获取代码 git clone git clone ssh://git@git.sankuai.com/~duoshilin/test.git 2、查看本地文件状态 git status 绿色:添加到了暂存区 红色:修改过但未添加到暂存区 3、提交代码到远程 ①添加到暂存区 git add filename1,filename2 git add . 撤销添加到暂存区 git reset HEAD filename ②提交到本地代码仓库 git commit -m "注释必填" ③提交到远程代码仓库 git push origin 本地分支名:远程分支名(没有可自动创建) 附:可进行强制提交覆盖上次的分支 git commit --amend git push origin 本地分支名:远程分支名 --force 本地撤销为push前的版本,一般用于push后发现多提交 git reset --soft HEAD~1 git status 修改 git commit -m "" git push origin 本地分支名:远程分支名 --force 4、分支管理 ①创建并切换到新分支 git checkout -b newBranchName //checkout 的-b参数表示创建并切换,相当于以下两句话 git branch newBranchName git checkout newBranchName ②查看分支 git branch 5、将本地代码放到一个空的仓库中 cd existing-project git init git add --all git commit -m "Initial Commit" git remote add origin ssh://git@git.sankuai.com/~duoshilin/test.git git push origin master ~~~ 也可见我的另一篇wiki: [Git](https://km.sankuai.com/page/110154314 "Git") # ADB 命令 | command | description | 描述 | example | | --- | --- | --- | --- | | adb devices | List of devices attached | 查看已连接的设备 | adb devices | | adb install *apk\_path* | install app | 安装APP | adb install /user/xxx/xxx.apk | | adb push *local remote* | copy file to origin | 将本地文件复制到连接的模拟器或真机 | adb push foo.txt /scard/foo.txt | | adb pull *remote local* | copy file from origin | 将模拟器或真机的文件复制到本地 | adb pull /scard/foo.txt foo.txt | | adb kill-server | kill adb server if adb command no response | 停止adb服务,一般用于重启服务,其他任意命令可唤醒adb服务 | | | adb start-server | start adb server if it is not started | 检测adb服务是否正在运行,如果没有运行,则启动它 | | > 资源链接: > > [使用WiFi链接设备](https://developer.android.com/studio/command-line/adb#wireless "使用WiFi链接设备") > > [](https://developer.android.com/studio/command-line/adb#wireless)[adb命令参考](https://developer.android.com/studio/command-line/adb#issuingcommands "adb命令参考") > > [adb shell 命令](https://developer.android.com/studio/command-line/adb#shellcommands "adb shell 命令") # Java中的JSON解析 ### 1 FastJson ### 2 Gson ### 3 JackSon # Java中的XML解析 ### 1 DOM解析(官方提供,与平台无关) DOM(Document Object Model 文档对象模型)解析的基本原理是:**将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个对象模型的操作,来实现对XML文档数据的操作** * **优点:** > * **形成了树结构,有助于更好的理解和掌握** > > * **解析过程中,树结构保存在内存中,方便修改,且效率较高** > * **缺点:** > * 一次性读取整个文件,对大文件不友好,读取较慢 > > * 如果要读取的xml文件过大,很容易影响解析性能且可能造成内存溢出 > ### 2 SAX解析(官方提供,与平台无关) SAX(Simple APIs for XML),即XML解析的简单API(Application Program Interface 应用程序接口),采用了**事件驱动**的方式来解析XML;**与DOM不同,SAX提供的访问模式是一种顺序模式,这是一种快速读写XML数据的方式** * **优点:** > * **采用事件驱动,对内存的消耗比较小** > > * **适用于只处理xml文件中的数据** > * **缺点:** > * 很难在同一时间内访问到xml的多处不同的数据 > ### ~3 JDOM解析~~(Java版)~ \-- 不常用 ### 4 DOM4J解析(Java版) **1、JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能。** **2、它使用接口和抽象基本类方法。** **3、具有性能优异、灵活性好、功能强大和极端易用的特点。** **4、是一个开放源码的文件** ~~~ public class DOM4JTest { private static ArrayList<Book> bookList = new ArrayList<Book>(); public static void main(String[] args) { // 解析books.xml文件 // 创建SAXReader的对象reader SAXReader reader = new SAXReader(); try { // 通过reader对象的read方法加载books.xml文件,获取docuemnt对象。 Document document = reader.read(new File("src/res/books.xml")); // 通过document对象获取根节点bookstore Element bookStore = document.getRootElement(); // 通过element对象的elementIterator方法获取迭代器 Iterator it = bookStore.elementIterator(); // 遍历迭代器,获取根节点中的信息(书籍) while (it.hasNext()) { System.out.println("=====开始遍历某一本书====="); Element book = (Element) it.next(); // 获取book的属性名以及 属性值 List<Attribute> bookAttrs = book.attributes(); for (Attribute attr : bookAttrs) { System.out.println("属性名:" + attr.getName() + "--属性值:" + attr.getValue()); } Iterator itt = book.elementIterator(); while (itt.hasNext()) { Element bookChild = (Element) itt.next(); System.out.println("节点名:" + bookChild.getName() + "--节点值:" + bookChild.getStringValue()); } System.out.println("=====结束遍历某一本书====="); } } catch (DocumentException e) { e.printStackTrace(); } } } DOM4J ~~~ ### 总结 * **DOM4J性能最好,连Sun的JAXM也在用DOM4J。目前许多开源项目中大量采用DOM4J,例如大名鼎鼎的Hibernate也用DOM4J来读取XML配置文件。如果不考虑可移植性,那就采用DOM4J。** * **DOM仍是一个非常好的选择。DOM实现广泛应用于多种编程语言。它还是许多其它与XML相关的标准的基础,因为它正式获得W3C推荐(与基于非标准的Java模型相对),所以在某些类型的项目中可能也需要它(如在JavaScript中使用DOM)。** * **SAX表现较好,这要依赖于它特定的解析方式-事件驱动。一个SAX检测即将到来的XML流,但并没有载入到内存(当然当XML流被读入时,会有部分文档暂时隐藏在内存中)。** * **JDOM和DOM在性能测试时表现不佳,在测试10M文档时内存溢出。在小文档情况下还值得考虑使用DOM和JDOM。虽然JDOM的开发者已经说明他们期望在正式发行版前专注性能问题,但是从性能观点来看,它确实没有值得推荐之处。** > 参考文章:[https://www.cnblogs.com/longqingyang/p/5577937.html](https://www.cnblogs.com/longqingyang/p/5577937.html "https://www.cnblogs.com/longqingyang/p/5577937.html")