博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaEE:Eclipse开发工具的相关使用和XML技术
阅读量:5052 次
发布时间:2019-06-12

本文共 9952 字,大约阅读时间需要 33 分钟。

Eclipse开发工具的知识点

1.工程的属性(properties)
1)Text file encoding  工程编码(在导入其他工程时,注意编码类型一致)
2)Java build path设置classpath位置,指定当前工程引入类库
source中指定.java文件和.class文件存放位置(Default output folder是存放.class的)
Libraries指定当前工程引用类库
3)Java Compiler指定.java采用哪个版本编译.class文件(指定编译器版本)
 当jre版本低于编译器版本:会抛出Bad version number in .class file的异常
4)快捷键
alt+/    Content Assist模板键   用于将代码快速补全
ctrl+1   Quick Fix快速修复    用于提供代码修改建议
模板配置方式:window->preferences->java->editor->templates
*使用alt+/等快捷键无反应时,应修改快捷键设置
修改方式window->preferences->general->keys
*设置代码保存时进行格式化 window->preferences->java->editor->save actions

程序的调试和运行

1)程序调试思路
1、当代吗出错了——查看错误信息——找到错误发生位置
*技巧:从上到下找第一行你写的程序
2、根据经验猜测错误原因
例如以下程序,当使用System.out.println((char)b);打印的时候会出现乱码,我们可以根据以往的经验,判断是用System.out.write(b);打印

package cn.it.lsl;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;public class HelloWorld {    public static void main(String[] args) throws IOException {        InputStream fi = new FileInputStream("info.txt");        int b;        while((b = fi.read()) != -1){            //System.out.println((char)b);            System.out.write(b);        }    }}

3.通过System.out或者日志技术打印关键数据信息到控制台

eg:以下程序将发生错误,我们可以将关键数据输出到控制台,以便判断错误

package cn.it.lsl;public class HelloWorld {    public static void main(String[] args) {        String data = "abc";        int d = convert(data);    }        public static int convert(String data){        //通过System.out将关键数据输出到控制台        System.out.println("data:" + data);        return Integer.parseInt(data);    }}

4.通过Eclipse自带断电调试功能,查看关键位置数据——断点调试 Break Point——程序通过Debug as运行

查看某变量的数值,右键——watch
F5和F7一般一起使用,查看具体代码实现
F6单独使用直接跳到代码下一行
F3查看类代码
F4查看类继承关系
open call Hierarchy查看调用关系

单体测试

1.关于代码测试有白盒测试和黑盒测试两种
白盒测试测试代码结构和逻辑(可见代码测试),黑盒测试测试代码功能和性能(不可见代码测试)
*白盒测试局限性1、白盒测试不可能测试所有代码;2、白盒测试难度比较高
单体测试是一种白盒测试,测试代码功能模块 —— 测试代码单个功能
2.junit是java的单体测试技术
1)编写junit在工程引用junit类库
Properties-->Java Build Path-->Libraries-->Add Library-->JUnit
2)编写单体测试用例
*创建public void无参数的方法、在方法前添加@Test注解
eg:

package cn.lsl.test;import org.junit.Test;public class JunitTest {    @Test    public void test1(){        System.out.println("HelloWorld");    }        @Test    public void test2(){        int sum=0;        for(int i=1; i<=100; i++){            sum += i;        }        System.out.println(sum);    }}

3)每个测试方法相当于以前编写main函数,每个测试方法可以单独执行

3.在使用junit进行测试当方法非常多,每个方法输出内容到控制台,人们无法通过人工进行检查
*自动化结果检查 --- 断言 Assert
断言原理:调用方法,调用方法前,准备测试数据,测试数据运行结果 ------ 比较实际结果与预期结果是否相同
*编写单体测试时,不要仅测试正确的数据和结果,测试不正确数据(非法数据)
4.一些@XXX的含义
@Test:测试方法
@Ignore:被忽略的测试方法
@Before:在每个测试方法执行之前都要执行一次
@After:在每个测试方法执行之后要执行一次
@BeforeClass:所有测试开始之前运行  static
@AfterClass:所有测试结束之后运行 static

package cn.lsl.test;public class Calculator {    public int add(int a, int b){        return a+b;    }    public int sub(int a, int b){        return a-b;    }    public int mul(int a, int b){        return a*b;    }    public int div(int a, int b){        if(b == 0){            throw new RuntimeException("除数不能为0");        }        return a/b;    }}
package cn.lsl.test;import junit.framework.Assert;import org.junit.After;import org.junit.AfterClass;import org.junit.Before;import org.junit.BeforeClass;import org.junit.Ignore;import org.junit.Test;public class CalcuatorTest {    @Before    public void before(){        System.out.println("before.....");    }    @After    public void after(){        System.out.println("after.....");    }    @BeforeClass    public static void beforeClass(){        System.out.println("before class...");    }    @AfterClass    public static void afterClass(){        System.out.println("after class...");    }    @Test    public void testAdd(){        System.out.println("testAdd....");        int a = 10;        int b = 20;        int expect = 30;        Calculator calculator = new Calculator();        int result = calculator.add(a, b);        //比较实际结果和预期结果的值        Assert.assertEquals(expect, result);    }        @Test    public void testSub(){        int a = 10;        int b = 20;        Calculator calculator = new Calculator();        int result = calculator.sub(a, b);    }        @Test    public void testMul(){        int a = 10;        int b = 20;        Calculator calculator = new Calculator();        int result = calculator.mul(a, b);    }            @Test    @Ignore    public void testDiv(){        System.out.println("testDiv....");        int a = 10;        int b = 20;        Calculator calculator = new Calculator();        int result = calculator.div(a, b);    }}

XML语言

1.XML技术:与数据相关技术,在企业中xml技术常用来存储数据和传输数据,且XML与任何编程语言无关,可用于php、java、.net等任何编程语言
*通过标签来标记数据
2.什么是标记语言?
例如<xxx>aaa</xxx>,典型标记语言HTML ---- 用标记修饰文本信息
3.XML是可扩展标记语言,XML标签没有被预定义 (XML标记随意定义 --- 可扩展)
在HTML中预定义了很多标记,每个标记都有相应显示效果,xml所有标记没有被预定义
在xml中<name>HLG</name> --- 想确定name标记含义,需要对xml添加约束
4.XML典型存储和传输应用:
1)XML充当数据库,保存数据信息
2)在AJAX传输数据、WebService 网络中传输数据时,格式采用xml
5.XML语法
1)文档声明
任何xml必须具备文档声明 <?xml version="1.0" ?>
没有指定xml编码集 --- 默认采用ISO-8859-1编码 (不支持中文数据)
*当xml指定encoding="utf-8"是浏览器查看编码集 --- 浏览器查看编码集必须和文件保存编码集一致
*新建记事本程序采用默认编码集 --- 默认编码集gbk --- 使用utf-8编码
例如以下程序若是采用记事本编写,应另存为utf-8
eg:

100
java编程思想

当声明standalone="yes"该xml是独立xml,不依赖外面其它文件,standalone="no"该xml依赖外部一些文件

2)元素
XML通过元素描述复杂关系模型数据
xml语法规范
(1)XML元素指XML文件中出现的标签,一个标签分为开始标签和结束标签,所有xml元素必须结束
<abc></abc> ---- 在xml文件中如果标签中没有内容也应该用自结束<abc />
格式良好的XML文档必须有且仅有一个根标签,其他标签都是这个根标签的子孙标签。
(2)标签不允许交叉嵌套
(3)有且仅有一个根元素
(4)xml文件中,空格和换行会被解析器进行解析的
例如:下面两段内容的意义是不一样的
第一段:

第二段

注意:由于在XML中,空格和换行都作为原始内容被处理,所以,在编写XML文件时,使用换行和缩进等方式来让文件中的内容清晰可读的“良好”书写习惯可能要被迫改变。

(5)严格区分大小写,元素和属性名称不能以数字开始
3)属性
属性的值必须用单引号或者双引号引起来
eg:

多学一招:在XML中,标签属性所代表的信息,也可以被改成用子元素的形式来描述,例如:

    
text

4)注释

xml注释与html注释相同<!-- -->注释不能嵌套
5)CDATA块
CDATA区域内保留不被解析器解析的内容 --- 通常存放特殊代码,这些代码造成xml格式混乱
eg:

测试一下大家HTML学的怎么样
link ]]>
hidden
测试一下大家HTML学的怎么样
<a>标记有什么作用
链接

6)处理指令

通过PI指令控制xml显示样式(指令之前不能有注释)
当xml使用pi指令引用CSS --- 效果等同于HTML,进行页面数据展示
*通过xml进行显示数据,通过XSLT修饰xml数据显示(类似CSS)
eg:

测试一下大家HTML学的怎么样
link ]]>
hidden
测试一下大家HTML学的怎么样
<a>标记有什么作用
链接

1.css

@CHARSET "UTF-8";subject{    font-size:30px;}answer{    color:red;}

DTD

1.DTD快速入门
1)编写数据xml --- books.xml
2)编写dtd文件
*为文档每一个元素(不同名称) 编写一个 <!ELEMENT
语法格式:<!ELEMENT 元素名称 子元素>
如果元素内部为文本,则应该写#PCDATA
3)将xml文件与dtd文件关联起来
eg:

books.xml

Java编程
50
books.dtd

2.DTD与XML三种关联方式

1)内部DTD ---- 语法 <!DOCTYPE 根元素 []>
eg:

]>
Java编程
50

2)外部DTD (引用本地DTD) ----  语法 <!DOCTYPE 根元素 SYSTEM "本地DTD文件位置">

3)公共DTD (引用网络上DTD)  ----  语法 <!DOCTYPE 文档根节点 PUBLIC "DTD名称" "DTD文件的URL">
3.DTD的语法细节
1)元素
<!ELEMENT 元素名称 声明内容>
(1)以下符号的含义
+:一个到多个
*:任意个(0到多个)
?:0或1个
|:多选一
eg:

]>
Java编程
Java编程
50

(2)元素内容

文类类型内容:#PCDATA
EMPTY:子元素内容如果为空,使用EMPTY
2)属性 (ATTLIST)定义
语法:<!ATTLIST 元素名称 属性列表>
属性列表:
属性名称 类型 约束
属性类型
(1)CDATA 文本类型属性
(2)(值1|值2|值3)三个选一个
(3)ID表示属性值唯一
约束:
(1)#REQUIERD 属性必须
(2)#IMPLED 属性可选
(3)fixed value 属性值固定
(4)default 默认值
3)实体
对于xml数据内容重复,可以抽取实体
语法:<!ENTITY 实体名称 "实体内容">
引用方式:&实体名称;

eg:

]>
神雕侠侣
&cbs;
Java
&cbs;

Schema

一些概念:
XML Schema文件本身就是一个XML文件,但它的扩展名通常为.xsd
和XML文档一样,一个XML Schema文档也必须有一个根节点,但这个根节点的名称为Schema
1.Schema原理
预先定义元素和属性--->Schema文档(模式、约束文档)--->XML实例(实例文档)
步骤:
1)引用W3C元素和属性的名称空间,为了使用W3C预定义元素和属性
xmlns="http://www.w3.org/2001/XMLSchema"
2)定义Schema元素
想让xml实例使用schema中定义定义元素,为定义元素指定名称空间
targetNamespace="http://www.lsl.com"
3)在xml实例文件中引用自定义schema名称空间
xmlns="http://www.lsl.com"
4)声明xml文件是一个应用schema技术实例
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5)指定schema文件位置
xsi:schemaLocation="http://www.lsl.com books.xsd"
名称空间:http://www.lsl.com
schema文件位置:books.xsd
2.Schema快速入门
1、编写数据xml文件
2、编写schema文件 .xsd
1) 引入 W3C 名称空间 xmlns="http://www.w3.org/2001/XMLSchema"
每一个元素 对应 <element>
区分复杂元素和简单元素
2) 为schema定义元素指定名称空间 URI (URI可以是任何路径)
3、在xml实例数据文件中 ,引用自定义Schema

eg:

books.xml

java
100

books.xsd

elementFormDefault="unqualified"

1.如果schema将elementFormDefault="unqualified",xml文档实例引用名称空间必须使用前缀 --- 前缀修饰根元素
2.当前xml实例文档所有子元素必须不能用前缀
名称空间的作用 --- 唯一标识schema当中定义元素
引用两个schema文件
company.xml

人力资源部
小刘

company.xsd

department.xsd

 

 

 

转载于:https://www.cnblogs.com/EvanLiu/p/3303037.html

你可能感兴趣的文章
自定义view实现阻尼效果的加载动画
查看>>
log4net介绍及使用
查看>>
CMS:文章管理之视图(3)
查看>>
清北学堂的小技巧和小收获
查看>>
模型压缩方向一个很牛的paper
查看>>
Android--AsyncTask异步加载详解
查看>>
YARN学习总结
查看>>
C#基础温习(2):温习控制台程序(二)
查看>>
一些文章
查看>>
注解@ResponseBody的作用
查看>>
java main函数不执行?
查看>>
iOS 更好用的打Log方式-显示文件名、行数
查看>>
从MS SQL删除大数据说开去
查看>>
NOVO SOP (SOP简介及历史)
查看>>
获取JNDI数据源
查看>>
java听课笔记(十)
查看>>
flash与字符串:替换表情
查看>>
Docker常用命令
查看>>
windows7+docker添加php扩展
查看>>
[UE4]多播代理实例
查看>>