Java
Nicoolidu
从事手机本地化自动化测试方面,致力于研究Android 系统以及自动化测试
展开
-
Javacv实现自动化读取验证码
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2020-12-24 09:32:51 · 744 阅读 · 0 评论 -
深入理解类加载器笔记
目录类加载器的详细介绍类加载器作用类加载器层次结构是树状结构:类加载器的代理模式类加载器的详细介绍类加载器作用类的加载阶段,将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区中的运行时数据结构,在堆中生成一个代表这个类的java.lang.Class对象,作为方法区内数据的访问入口。 类缓存:一个类一旦被加载后,会被加载器缓存一段时间,直到J...原创 2019-11-22 14:49:53 · 167 阅读 · 0 评论 -
类加载过程笔记总结
类的加载过程包含:类的加载-链接(验证,准备,解析)-初始化加载:将java类的字节码加载到内存中,在内存的方法区中生成类的运行时数据,堆中生成该类的class 对象作为该类的运行入口。运行时数据包含:静态变量,静态方法,常量池,类的代码。链接:验证:检查代码是否符合jvm的编码规范,进行安全检查。准备:为静态变量分配内存并且初始化默认值。解析:将代码中的符号引用变成直接引用。...原创 2019-11-20 16:48:25 · 154 阅读 · 0 评论 -
JUnit 中IntinializationError 的问题解决
今天遇到了InitializationError 的问题,百度百科给出了可能造成这个问题的多种原因以及解决方案https://jingyan.baidu.com/article/fedf0737918d9235ad897770.html如果上面的解决方案仍然不能解决问题,请看下面如果你的library包中同时包含anroid.jar 和junit 包,请把android.jar在jun...原创 2019-06-27 15:50:46 · 287 阅读 · 0 评论 -
模板方法模式
模板方法模式 –实现要素准备一个抽象类,将部分逻辑以具体方法的形式实现,然后声明一些抽象方法交由子类实现剩余逻辑,用钩子方法给予子类最大的灵活性。最后将方法汇总构成一个不可改变的模板方法。使用场景:算法或操作遵循相似的逻辑重构时(把相同的代码抽取到父类中)重要,复杂的算法,核心算法设计为模板算法抽象基类包含: 基类基本方法 : 提供所有子类都需要的且实现一...原创 2019-07-01 15:32:32 · 215 阅读 · 0 评论 -
解析XML 之JDOM 方法
要使用JDOM 解析xml 需要下载JDOM jar包 ( 下载地址:http://jdom.org/downloads/index.html)JDOM是Jdom是用Java语言读、写、操作XML的新API函数的一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。JDOM 直接为JAVA编程服务。它利用更为强有力的JAVA语言的诸多特性(方法...原创 2019-06-17 16:13:13 · 267 阅读 · 0 评论 -
生成XML 文件之JDOM 方法
请参考解析XML文件之JDOM 来详细了解JDOM,这里只提供案例代码代码如下: Element rootElement = new Element("bookstore"); Element book = new Element("book"); book.setAttribute("id", "1"); Element name = new Element...原创 2019-06-20 11:14:50 · 181 阅读 · 0 评论 -
解析XML专题之SAX方式
解析XML专题之SAX方式SAX和DOM解析的不同原理DOM解析: 是一次性加载文件所有内容到内存中,并构建一个驻留在内存的树状结构(节点数),如果需要解析的xml文档过大,或我们只需要对文档部分内容感兴趣,会引起性能问题SAX解析: 是逐行扫描文档,一边扫描,一边解析。与DOM相比, SAX方法更快速,更有效,可以在解析的任何时刻停止解析,但是它的缺点就是实现太复杂。...原创 2019-06-10 15:48:44 · 256 阅读 · 0 评论 -
生成XML之DOM4J
这里只提供案例,也可参考解析xml之DOM4J,详细了解DOM4J代码如下: //首先创建一个Document对象 Document document = DocumentHelper.createDocument(); Element bookstore = document.addElement("bookstore"); Element bo...原创 2019-06-19 15:35:02 · 353 阅读 · 0 评论 -
解析XML 之 DOM解析节点属性名,属性值
DOM是java 官方提供,无需导入额外包。DOM解析的流程如下:创建DocumentBuilderFactory 的对象 创建 DocumentBuilder 对象 通过DocumentBuilder对象的parse方法将要解析的xml文件加载到当前项目中test.xml<?xml version="1.0" encoding="UTF-8" standalone="n...原创 2019-06-05 17:23:46 · 3284 阅读 · 1 评论 -
模拟LinkedList底层实现的示例
这个示例的目的是模拟链表的实现方式,与ArrayList的底层实现相比查询慢,增删改快的优缺点。package test;public class DesignLinkedList { private int size; private Node first; private Node last; public void add(Object obj) { No...原创 2018-11-12 17:07:34 · 277 阅读 · 0 评论 -
ArrayList 底层实现的模拟实例
该实例模拟实现了底层ArrayList的添加,删除,获取对象,还有扩容等的实现方法。 package test;import java.util.Date;public class TestArrayList { private Object[] elementData; private int size; // 标记元素个数。默认值为0 public TestArrayL...原创 2018-11-12 15:09:08 · 291 阅读 · 0 评论 -
解析XML 之DOM4J方法
dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。在IBM developerWorks上面还可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,所以可以知道dom4j无论在哪个方面都是非常出色的。如今可以看到越来越多...原创 2019-06-18 14:46:02 · 1256 阅读 · 0 评论 -
生成XML 文件 之DOM 方法
可以参考解析xml 之DOM 文章了解DOM的介绍,这篇只简单附上DOM生成xml 的案例:public DocumentBuilder getDocumentBuilder() { DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docume...原创 2019-06-18 15:50:48 · 359 阅读 · 0 评论 -
Map 中能够排序的实现类
如果没有排序要求选择HashMap 和HashTable,如果有排序要求可以选择TreeMap 和LinkedHashMap,TreeMap :按照key值升序排列LinkedHashMap: 按照数据的输入顺序实现排序。...原创 2019-09-24 16:42:46 · 488 阅读 · 0 评论 -
操作PNG图片的Chunks
在学习如何向png图片中插入metaData 时候,发现了一个工具包,很好用,commons-imaging-1.0, 可以到网上搜索下载jar包。这里写了一个简短的练习类,来学习, 实现的功能是读取图片的metadata,并插入到新图片中。public static byte[] imageWriteExample(final File file) throws Image...原创 2019-09-06 17:57:00 · 847 阅读 · 0 评论 -
java IO - 文件的拆分与合并
文件的拆分与合并package io;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java....原创 2019-08-07 14:52:59 · 240 阅读 · 0 评论 -
Java 如何实现动态编译和动态运行
动态编译可以通过两种方式实现:通过Runtime调用javac,启动新的进程去操作 Runtime runtime = Runtime.getRuntime(); try { Process process = runtime .exec("javac -cp /User/test/ helloWorld.java"); ...原创 2019-07-10 21:01:41 · 1029 阅读 · 0 评论 -
反射都可以做哪些事
目录反射可以获取构造函数,创建类对象反射可以获取类中的方法,并调用反射可以操作私有属性反射可以获取指定方法参数泛型信息反射可以获取指定方法返回值泛型信息反射可以操作注解反射可以获取构造函数,创建类对象 Class<User> clazz = (Class<User>) Class.forName( "reflection...原创 2019-07-10 14:37:19 · 406 阅读 · 0 评论 -
五种单例模式如何选择适合的
了解单例模式之前先理解一个概念:延时加载延时加载是指只有当对象在真正使用的时候才会被加载到内存中创建实例,不使用时不会创建。从速度和反应时间角度来讲,非延迟加载(即饿汉式)好,从资源利用率上说,延迟加载(又称懒汉式)好单例模式的实现方式有五种,如下所示:主要:饿汉式 - 线程安全,调用效率高,但是不支持延迟加载。 懒汉式 - 线程安全,调用效率不高,可以支持延时加载。其他:...原创 2019-07-08 19:13:25 · 1241 阅读 · 3 评论 -
Javac 和 java 编译运行的命令
经常使用eclipse 编译运行java 程序,从没有考虑后台怎么编译和运行,现在需要做自动化框架,使用ant 来编译和运行,一下子就发现这块是个问题,命令行javac 和 java 需要更深的了解和使用,下面是多次错误尝试后总结的正确命令和错误点。详细了解Javac 的使用方式, 命令行中输入javac,回车就可以知道:javac [options] [source files] @fi...原创 2019-06-27 11:34:24 · 717 阅读 · 0 评论 -
生成xml 文件之SAX 方法
通过解析Xml 之SAX 方法可以详细了解SAX,这里不做介绍,只提供代码:案例如下: //1生成一个SAXTransformFacotry 对象 SAXTransformerFactory transformerFactory = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); try {...原创 2019-06-18 16:58:04 · 335 阅读 · 0 评论 -
基本类型的包装类
java 5.0之前包装类均位于java.lang包,不需要手动导入,八种基本类型各自对应八种相应的包装类。Integer 类主要的方法Field Summary:Integer.MAX_VALUE Integer.MIN_VALUE将基本类型或者字符串自动转化为相对应包装类型 通过以下两种方式以Integer为例:eg:构造函数构建Integer类型 Inte...原创 2018-11-05 15:29:07 · 213 阅读 · 0 评论 -
案例详解Try, catch, finally 语句块中加入return 的执行顺序
这个案例是以文件读取来测试Try catch finally 语句块的执行顺序,以及在各自从句中加入return 语句来观察执行顺序的改变:代码案例如下:public static String testTryCatch() { File file = new File("C:\\Users\\mdrk73\\Downloads\\test\\test.txt"); FileRe...原创 2018-11-07 14:53:20 · 433 阅读 · 0 评论 -
java代码输出菱形图案
public class TestDiamond { public static void main(String[] args) { /* * *** ***** ******* ******************** ********* ******* ***** *** *layer:总行数 按照一半一半的计算n原创 2016-11-14 14:33:17 · 16596 阅读 · 0 评论 -
使用java代码输出图片指定的*字塔
public static void main(String[] args) { /********************** */ int layer =6; for(int i=1; i<=layer;i++){ for(int j=1;j<=i;j++){ System.out.print("*"); } System.原创 2016-11-11 15:49:30 · 1579 阅读 · 0 评论 -
判断一个范围内的哪些是质数
int start = 296; int end = 353; for(int i=start; i boolean isprime = true; for(int j=2; j if(i%j==0){ isprime=false;原创 2016-11-11 14:33:43 · 679 阅读 · 0 评论 -
java的基础知识回顾---2
运算符的优先级 - 括号优先级最大原创 2016-11-09 17:02:32 · 324 阅读 · 0 评论 -
二进制换算成十进制
一个字节八位1111 1111 = 2551000 0000 =1281100 0000 = 1921110 0000 = 2241111 0000 = 2401111 1000 = 2481111 1100 = 2521111 1110 = 254--------------------------------------1000 0000原创 2016-11-03 15:59:26 · 902 阅读 · 0 评论 -
Java Annotation 的基础知识
此帖转发于: http://www.open-open.com/lib/view/open1423558996951.html从JDK5开始,Java增加了Annotation(注解),Annotation是代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。通过使用Annotation,开发人员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充的信息。转载 2016-08-29 15:05:27 · 498 阅读 · 0 评论 -
Java Properties类以及读写操作
本文转载于http://www.cnblogs.com/bakari/p/3562244.htmlJava中Properties类的操作 知识学而不用,就等于没用,到真正用到的时候还得重新再学。最近在看几款开源模拟器的源码,里面涉及到了很多关于Properties类的引用,由于Java已经好久没用了,而这些模拟器大多用Java来写,外加一些脚本语言Python转载 2016-07-01 16:01:53 · 323 阅读 · 0 评论 -
Java 读写文件的三种流介绍
FileOutputStream和FileInputStream第一种是FileOutputStream和FileInputStream,一些平台一次只允许一个 FileOutputStream(或其他文件写入对象)打开文件进行写入。在这种情况下,则此类中的构造方法将失败。FileOutputStream是适用于写入诸如图像数据之类的原始字节的流。要写入字符流,请考虑使用 FileWriter原创 2016-06-30 17:10:24 · 1286 阅读 · 0 评论 -
Java pattern & Matcher 的使用详解
Java Pattern的中文参考手册http://www.apihome.cn/api/java/Pattern.html以下内容转载http://blog.csdn.net/cclovett/article/details/12448843结论:Pattern与Matcher一起合作.Matcher类提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持.转载 2016-06-29 15:11:04 · 523 阅读 · 0 评论 -
java的基础知识回顾---1
变量存在的意义: 变量可以有效提高代码的灵活性,将可能变的东西提取出来定义成变量。变量的类型:原创 2016-11-08 10:38:05 · 339 阅读 · 0 评论 -
通过扫描图片获取pattern图形的九个点的坐标
public void testMain() { UiObject ptnView = mDevice.findObject(new UiSelector().resourceId("com.android.settings:id/lockPattern")); Rect curPoint; ...原创 2016-11-25 15:39:58 · 844 阅读 · 0 评论 -
Regular Expression Syntax
Copy:Regular Expression SyntaxHere is the table listing down all the regular expression metacharacter syntax available in Java −SubexpressionMatches^Matches the beginni原创 2017-05-08 16:39:10 · 484 阅读 · 0 评论 -
多态的三种表现形式以及案例分析
首先多态的三种表现形式:继承,重写,父类引用指向子类对象。下面案例介绍和分析:父类- HttpServletpublic class HttpServlet { public void service() { System.out.println("HttpServlet - service"); doGet(); } public void doGet()...原创 2018-08-30 11:26:59 · 12244 阅读 · 0 评论 -
Java 虚拟机 (JVM)的内存分析(栈,堆,方法区)
JVM内存分为三个区域:栈 (stack),堆 (heap),方法区 (method area)栈 (stack):是方法执行的内存模型。每一个方法被调用的时候都会创建一个栈帧 (栈帧存储局部变量,操作数,方法出口等)。 JVM 为每一个线程创建一个栈,用来存放该线程执行方法的信息。栈是依赖线程存在,跟线程生命周期一样。 栈是线程私有的,线程间不共享。 栈的特点: 先进后出,后进先出...原创 2018-08-29 15:46:14 · 430 阅读 · 0 评论 -
Java 构造方法4大要点
构造方法要点:1. 通过new 关键字调用!!2. 构造器虽然有返回值,但是不能定义返回值类型(返回值类型只能并且肯定是本类),不能在构造器里使用return返回某个值。3. 如果我们没有定义构造器,则编译器会自动定义一个无参的构造函数。如果已定义则编译器不会自动添加。4. 构造器方法名称必须和类名称保持一致。...原创 2018-08-29 14:24:09 · 841 阅读 · 0 评论 -
简单两句教你类和对象的联系
对象和类之间的关系两个定义:对象是具体的个体如张三,李四,在内存中表现为一个内存块,这个内存块包含很多数据:如姓名,性别,行为方式等等....类是对象的抽象(抽取相像的部分,简称抽象),是对象的模板。两者之间的关联:通过的对对象的分析抽取相像部分,得到类。在程序运行过程中通过类这个模板,创建具体的对象。 -- 结束 ...原创 2018-08-28 14:30:59 · 300 阅读 · 0 评论