软件测试人员需要精通的开发语言(4)--- Java
接下来说下,当下最火的语言 - Java。Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。最早接触Java,应该还是诺基亚手机打天下的时候,那个时候的塞班系统,多半的程序都是Java开发的,小游戏小工具等。Java从1995年开始被大家使用,而发展到如今,已成为每个公司必不可少的开发语言,电商网站、社交网站无一例外都会采用Java作为后台逻辑语言处理。不得不又说到面向对象的知识了,封装、继承和多态。正因如此的特征特性才成就了Java如此的盛行。当然最直接影响的就是money,钞票,so随之而然的成为了最赚钱的开发语言。侃了这么多废话,言归正传。
《Java编程思想第四版》很多朋友推荐这本书,但也有朋友说这本书内容过于多,有些内容过于深入,但有些内容而言还是很值得花时间去阅读的,当然任何语言离不开实践。通过视频教学学习,看书学习以及实际代码的积累,不出半年时间,Java基础内容应该基本可以掌握。
Java 工具 eclipse 不能不说,很好用而且基本都在用。
---------------------------------------------分隔符--------------------------------------------
【面向对象三大基本特性,五大基本原则】
透切理解面向对象三大基本特性是理解面向对象五大基本原则的基础.
三大特性是:封装,继承,多态
所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。
所谓继承是指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;
所谓多态就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。
五大基本原则
单一职责原则SRP(Single Responsibility Principle)
是指一个类的功能要单一,不能包罗万象。如同一个人一样,分配的工作不能太多,否则一天到晚虽然忙忙碌碌的,但效率却高不起来。
开放封闭原则OCP(Open-Close Principle)
一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。比如:一个网络模块,原来只服务端功能,而现在要加入客户端功能,
那么应当在不用修改服务端功能代码的前提下,就能够增加客户端功能的实现代码,这要求在设计之初,就应当将服务端和客户端分开,公共部分抽象出来。
替换原则(the Liskov Substitution Principle LSP)
子类应当可以替换父类并出现在父类能够出现的任何地方。比如:公司搞年度晚会,所有员工可以参加抽奖,那么不管是老员工还是新员工,
也不管是总部员工还是外派员工,都应当可以参加抽奖,否则这公司就不和谐了。
依赖原则(the Dependency Inversion Principle DIP) 具体依赖抽象,上层依赖下层。假设B是较A低的模块,但B需要使用到A的功能,
这个时候,B不应当直接使用A中的具体类: 而应当由B定义一抽象接口,并由A来实现这个抽象接口,B只使用这个抽象接口:这样就达到
了依赖倒置的目的,B也解除了对A的依赖,反过来是A依赖于B定义的抽象接口。通过上层模块难以避免依赖下层模块,假如B也直接依赖A的实现,那么就可能造成循环依赖。一个常见的问题就是编译A模块时需要直接包含到B模块的cpp文件,而编译B时同样要直接包含到A的cpp文件。
接口分离原则(the Interface Segregation Principle ISP)
模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来
1. ctrl+shift+r:打开资源
这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。
2. ctrl+o:快速outline
如果想要查看当前类的方法或某个特定方法,但又不想把代码拉上拉下,也不想使用查找功能的话,就用ctrl+o吧。它可以列出当前类中的所有方法及属性,你只需输入你想要查询的方法名,点击enter就能够直接跳转至你想去的位置。
3. ctrl+e:快速转换编辑器
这组快捷键将帮助你在打开的编辑器之间浏览。使用ctrl+page down或ctrl+page up可以浏览前后的选项卡,但是在很多文件打开的状态下,ctrl+e会更加有效率。
4. ctrl+2,L:为本地变量赋值
开发过程中,我常常先编写方法,如Calendar.getInstance(),然后通过ctrl+2快捷键将方法的计算结果赋值于一个本地变量之上。
这样我节省了输入类名,变量名以及导入声明的时间。Ctrl+F的效果类似,不过效果是把方法的计算结果赋值于类中的域。
5. alt+shift+r:重命名
重命名属性及方法在几年前还是个很麻烦的事,需要大量使用搜索及替换,以至于代码变得零零散散的。今天的Java
IDE提供源码处理功能,Eclipse也是一样。现在,变量和方法的重命名变得十分简单,你会习惯于在每次出现更好替代名称的时候都做一次重命名。要使
用这个功能,将鼠标移动至属性名或方法名上,按下alt+shift+r,输入新名称并点击回车。就此完成。如果你重命名的是类中的一个属性,你可以点击alt+shift+r两次,这会呼叫出源码处理对话框,可以实现get及set方法的自动重命名。
6. alt+shift+l以及alt+shift+m:提取本地变量及方法
源码处理还包括从大块的代码中提取变量和方法的功能。比如,要从一个string创建一个常量,那么就选定文本并按下alt+shift+l即可。如果同
一个string在同一类中的别处出现,它会被自动替换。方法提取也是个非常方便的功能。将大方法分解成较小的、充分定义的方法会极大的减少复杂度,并提
升代码的可测试性。
7. shift+enter及ctrl+shift+enter
Shift+enter在当前行之下创建一个空白行,与光标是否在行末无关。Ctrl+shift+enter则在当前行之前插入空白行。
8. Alt+方向键
这也是个节省时间的法宝。这个组合将当前行的内容往上或下移动。在try/catch部分,这个快捷方式尤其好使。
9. ctrl+m
大显示屏幕能够提高工作效率是大家都知道的。Ctrl+m是编辑器窗口最大化的快捷键。
10. ctrl+.及ctrl+1:下一个错误及快速修改
ctrl+.将光标移动至当前文件中的下一个报错处或警告处。这组快捷键我一般与ctrl+1一并使用,即修改建议的快捷键。新版Eclipse的修改建
议做的很不错,可以帮你解决很多问题,如方法中的缺失参数,throw/catch exception,未执行的方法等等。
更多快捷键组合可在Eclipse按下ctrl+shift+L查看。
-----------------------------------------分割线-------------------------------------------------------
【常用eclipse 快捷键】
程序代码自动排版: Ctrl+Shift+F ,会自动把代码进行格式化的排版,非常方便
快速执行程序: Ctrl + F11 第一次执行时,它会询问您执行模式,设置好后,以后只要按 这个热键,它就会快速执行 . Ctrl+Shift+/ 加上段注释 /**/ Ctrl+Shift+\ 取消段注释 /**/ Ctrl+/ 加上行注释或取消行注释
自动汇入所需要的类别: Ctrl+Shift+M Ctrl+Shift+O
Eclipse 中默认是输入 "." 后出现自动提示,用于类成员的自动提示,可是有时候我们希望 它能在我们输入类的首字母后就出现自动提示,可以节省大量的输入时间 ( 虽然按 alt + / 会出现提示,但还是要多按一次按键,太麻烦了 ).
从 Window -> preferences -> Java -> Editor -> Content assist -> Auto-Activation 下,我们可以在 "." 号后面加入我们需要自动提示的首字幕,比如 "ahiz".
然后我们回到 Eclipse 的开发环境,输入 "a" ,提示就出现了 .
但是我们可以发现,这个 Auto-Activation 下的输入框里最多只能输入 5 个字母,也许是 Eclipse 的开发人员担心我们输入的太多会影响性能,但计算机的性能不用白不用,所以我 们要打破这个限制 .
其实上面都是铺垫, 制造一下气氛, 以显得我们下面要做的事情很牛似的, 其实不然, 一切 都很简单 . 嘿嘿 :)
在 "." 后面随便输入几个字符, 比如 "abij" , 然后回到开发环境, File -> export -> general -> preferences -> 选一个地方保存你的首选项,比如 C:\a.epf
用任何文本编辑器打开 a.epf ,查找字符串“abij”,找到以后,替换成 “abcdefghijklmnopqrstuvwxyz”,总之就是你想怎样就怎样!!然后回到 Eclipse , File -> import -> general -> preferences -> 导入刚才的 a.epf 文件 . 此时你会发现输入任何 字幕都可以得到自动提示了 . 爽!!!
最后:自动提示弹出的时间最好改成 100 毫秒以下,这样会比较爽一点,不然你都完事了, 自动提示才弹出来 :) ,不过也要看机器性能 . myeclipse 自动提示背景颜色设置(再也不那么淡)
window--preference--java--editor- completion proposals Background 颜色推荐 85 , 90 , 205
Eclipse 常用快捷键
Eclipse 的编辑功能非常强大, 掌握了 Eclipse 快捷键功能, 能够大大提高开发效率。 Eclipse 中有如下一些和编辑相关的快捷键。
1.【 ALT+/ 】
此快捷键为用户编辑的好帮手, 能为用户提供内容的辅助, 不要为记不全方法和属性名称犯 愁,当记不全类、方法和属性的名字时,多体验一下【 ALT+/ 】快捷键带来的好处吧。
2.【 Ctrl+O 】
显示类中方法和属性的大纲,能快速定位类的方法和属性,在查找 Bug 时非常有用。
3.【 Ctrl+/ 】
快速添加注释, 能为光标所在行或所选定行快速添加注释或取消注释, 在调试的时候可能总
会需要注释一些东西或取消注释,现在好了,不需要每行进行重复的注释。
4.【 Ctrl+D 】
删除当前行,这也是笔者的最爱之一,不用为删除一行而按那么多次的删除键。
5.【 Ctrl+M 】
窗口最大化和还原, 用户在窗口中进行操作时, 总会觉得当前窗口小 (尤其在编写代码时) , 现在好了,试试【 Ctrl+M 】快捷键。
查看和定位快捷键
在程序中,迅速定位代码的位置,快速找到 Bug 的所在,是非常不容易的事, Eclipse 提供 了强大的查找功能,可以利用如下的快捷键帮助完成查找定位的工作。
1.【 Ctrl+K 】、【 Ctrl++Shift+K 】
快速向下和向上查找选定的内容,从此不再需要用鼠标单击查找对话框了。
2.【 Ctrl+Shift+T 】
查找工作空间( Workspace )构建路径中的可找到 Java 类文件, 不要为找不到类而痛苦,而 且可以使用“*”、“?”等通配符。
3.【 Ctrl+Shift+R 】
和【 Ctrl+Shift+T 】对应,查找工作空间( Workspace )中的所有文件(包括 Java 文件), 也可以使用通配符。
4.【 Ctrl+Shift+G 】
查找类、 方法和属性的引用。 这是一个非常实用的快捷键, 例如要修改引用某个方法的代码, 可以通过【 Ctrl+Shift+G 】快捷键迅速定位所有引用此方法的位置。
5.【 Ctrl+Shift+O 】
快速生成 import ,当从网上拷贝一段程序后,不知道如何 import 进所调用的类,试试 【 Ctrl+Shift+O 】快捷键,一定会有惊喜。
6.【 Ctrl+Shift+F 】
格式化代码, 书写格式规范的代码是每一个程序员的必修之课, 当看见某段代码极不顺眼时, 选定后按 【 Ctrl+Shift+F 】 快捷键可以格式化这段代码, 如果不选定代码则默认格式化当前 文件( Java 文件)。
7.【 ALT+Shift+W 】
查找当前文件所在项目中的路径, 可以快速定位浏览器视图的位置, 如果想查找某个文件所 在的包时,此快捷键非常有用(特别在比较大的项目中)。
8.【 Ctrl+L 】
定位到当前编辑器的某一行,对非 Java 文件也有效。
9.【Alt+←】、【Alt+→】
后退历史记录和前进历史记录, 在跟踪代码时非常有用, 用户可能查找了几个有关联的地方, 但可能记不清楚了,可以通过这两个快捷键定位查找的顺序。
10.【 F3 】
快速定位光标位置的某个类、方法和属性。
11.【 F4 】
显示类的继承关系,并打开类继承视图。
调试快捷键
Eclipse 中有如下一些和运行调试相关的快捷键。
1.【 Ctrl+Shift+B 】:在当前行设置断点或取消设置的断点。
2.【 F11 】:调试最后一次执行的程序。
3.【 Ctrl+F11 】:运行最后一次执行的程序。
4.【 F5 】:跟踪到方法中,当程序执行到某方法时,可以按【 F5 】键跟踪到方法中。
5.【 F6 】:单步执行程序。
6.【 F7 】:执行完方法,返回到调用此方法的后一条语句。
7.【 F8 】:继续执行,到下一个断点或程序结束。
常用编辑器快捷键
通常文本编辑器都提供了一些和编辑相关的快捷键, 在 Eclipse 中也可以通过这些快捷键进 行文本编辑。
1.【 Ctrl+C 】:复制。
2.【 Ctrl+X 】:剪切。
3.【 Ctrl+V 】:粘贴。
4.【 Ctrl+S 】:保存文件。
5.【 Ctrl+Z 】:撤销。
6.【 Ctrl+Y 】:重复。
7.【 Ctrl+F 】:查找。
其他快捷键
Eclipse 中还有很多快捷键,无法一一列举,用户可以通过帮助文档找到它们的使用方式, 另外还有几个常用的快捷键如下。
1.【 Ctrl+F6 】:切换到下一个编辑器。
2.【 Ctrl+Shift+F6 】:切换到上一个编辑器。
3.【 Ctrl+F7 】:切换到下一个视图。
4.【 Ctrl+Shift+F7 】:切换到上一个视图。
5.【 Ctrl+F8 】:切换到下一个透视图。
6.【 Ctrl+Shift+F8 】:切换到上一个透视图。
Eclipse 中快捷键比较多,可以通过帮助文档找到所有快捷键的使用,但要掌握所有快捷键 的使用是不可能的,也没有必要,如果花点时间熟悉本节列举的快捷键,必将会事半功倍
1. edit->content Assist - > add
Alt+/ 代码关联
2. Window -> Next Editor -> add
Ctrl+Tab 切换窗口
3. Run/Debug Toggle Line Breakpoint -> add Ctrl+` 在调试的时候 增删断点
4. Source-> Surround with try/catch Block -> Ctrl+Shift+v 增加 try catch 框框
5. Source -> Generate Getters and Setters -> Ctrl+Shift+. 增加 get set 方法
----------- 有用的快捷键 -----------
Alt+/ 代码助手完成一些代码的插入 ( 但一般和输入法有冲突 , 可以修改输入法的热键 , 也可 以暂用 Alt+/ 来代替 )
Ctrl+1: 光标停在某变量上, 按 Ctrl+1 键, 可以提供快速重构方案。 选中若干行, 按 Ctrl+1 键可将此段代码放入 for 、 while 、 if 、 do 或 try 等代码块中。
双击左括号(小括号、中括号、大括号),将选择括号内的所有内容。
Alt+Enter 显示当前选择资源 ( 工程 ,or 文件 or 文件 ) 的属性
-----------Ctrl 系列 -----------
Ctrl+K: 将光标停留在变量上,按 Ctrl+K 键可以查找到下一个同样的变量
Ctrl+Shift+K: 和 Ctrl+K 查找的方向相反
Ctrl+E 快速显示当前 Editer 的下拉列表 ( 如果当前页面没有显示的用黑体表示 )
Ctrl+Shift+E 显示管理当前打开的所有的 View 的管理器 ( 可以选择关闭 , 激活等操作 )
Ctrl+Q 定位到最后编辑的地方
Ctrl+L 定位在某行 ( 对于程序超过 100 的人就有福音了 )
Ctrl+M 最大化当前的 Edit 或 View ( 再按则反之 )
Ctrl+/ 注释当前行 , 再按则取消注释
Ctrl+T 快速显示当前类的继承结构
Ctrl+Shift-T: 打开类型( Open type )。如果你不是有意磨洋工,还是忘记通过源码树 ( source tree )打开的方式吧。
Ctrl+O: 在代码中打开类似大纲视图的小窗口
Ctrl+ 鼠标停留 : 可以显示类和方法的源码
Ctrl+H: 打开搜索窗口
Ctrl+/( 小键盘 ) 折叠当前类中的所有代码
Ctrl+×(小键盘 ) 展开当前类中的所有代码
-----------Ctrl+Shift 系列 -----------
Ctrl+Shift+F 格式化当前代码
Ctrl+Shift+X 把当前选中的文本全部变味小写
Ctrl+Shift+Y 把当前选中的文本全部变为小写
Ctrl+Shift+O: 快速地导入 import
Ctrl+Shift+R: 打开资源 open Resource
-----------F 快捷键
系列 -----------
F3: 打开声明该引用的文件
F4: 打开类型层次结构
F5: 单步跳入
F6: 单步跳过
F7: 单步跳出
F8: 继续,如果后面没有断点,程序将运行完
----------- 行编辑用 -----------
Ctrl+D: 删除当前行
Ctrl+Alt+↓ 复制当前行到下一行 ( 复制增加 )
Ctrl+Alt+↑ 复制当前行到上一行 ( 复制增加 )
Alt+↓ 当前行和下面一行交互位置 ( 特别实用 , 可以省去先剪切 , 再粘贴了 )
Alt+↑ 当前行和上面一行交互位置 ( 同上 )
Shift+Enter 在当前行的下一行插入空行 ( 这时鼠标可以在当前行的任一位置 , 不一定是最 后 )
Ctrl+Shift+Enter 在当前行插入空行 ( 原理同上条 )
----------------------------------------------分割线-------------------------------------------
《待续...》
软件测试人员需要精通的开发语言(4)--- Java的更多相关文章
- 软件测试人员需要精通的开发语言(1)--- VBScript
软件测试不局限于点点点的纯黑盒测试,提升自身的代码能力也是事关重要的.软件测试的发展,越来越多的公司对于测试人员的要求也日益提高,测试人员必备开发能力的优势也凸显出来.简单的介绍下部分开发语言的学习及 ...
- 软件测试人员需要精通的开发语言(3)--- Linux
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.不得不说下,中国产的红旗系统,牛的一逼,造价很贵,但具体何用处估 ...
- 软件测试人员需要精通的开发语言(2)--- SQL
简单的入门语言vbs,通过实例的练习以及简单的应用,基本可以掌握vbs脚本的使用.如果说vbs只是为了实际测试中开发脚本,便捷测试的目的.那SQL语言就是测试人员的必备技能了,任何系统都会用到数据库, ...
- 软件测试人员需要精通的开发语言(5)--- Python
Python语言,也算是后起之秀,多平台的应用也让它成为万能的脚本语言,应用于各种架构各种工具,得到广泛应用.而且如今比较火热的行业,软件爬虫,多半是用Python开发的.因为Python是一种开放源 ...
- 大数据全栈式开发语言 – Python
前段时间,ThoughtWorks在深圳举办一次社区活动上,有一个演讲主题叫做“Fullstack JavaScript”,是关于用JavaScript进行前端.服务器端,甚至数据库(MongoDB) ...
- 为什么说Python 是大数据全栈式开发语言
欢迎大家访问我的个人网站<刘江的博客和教程>:www.liujiangblog.com 主要分享Python 及Django教程以及相关的博客 交流QQ群:453131687 原文链接 h ...
- 【转载】谷歌酝酿将苹果Swift作为安卓APP主要开发语言
TNW中文站 4月8日报道 安卓操作系统的软件开发语言是Java,而在过去几年中,有关Java的版权,谷歌(微博)和甲骨文之间发生了长期的诉讼.最新外媒消息称,谷歌正在考虑将苹果开发的Swift作为未 ...
- 学习ios(必看经典)牛人40天精通iOS开发的学习方法
学习ios(必看经典)牛人40天精通iOS开发的学习方法 描述 这是一套从一个对iOS开发感兴趣的学员到iOS开发高手的系统.专业的课程体系.以培养企业开发真正需要的人才为目标,每个知识点都用案例来讲 ...
- 精通iOS开发(第5版)
<精通iOS开发(第5版)> 基本信息 原书名:Beginning ios 6 development:exploring the ios sdk 作者: (美)David Mark ...
随机推荐
- 洛谷——P1227 [JSOI2008]完美的对称
P1227 [JSOI2008]完美的对称 题目描述 在峰会期间,必须使用许多保镖保卫参加会议的各国代表.代表们除了由他自己的随身保镖保护外,组委会还指派了一些其他的特工和阻击手保护他们.为了使他们的 ...
- Light oj 1125 - Divisible Group Sums (dp)
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1125 题意: 给你n个数,q次询问,每次询问问你取其中m个数是d的整数倍的方案 ...
- luogu P1314 聪明的质监员
题目描述 小T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 n 个矿石,从 1到n 逐一编号,每个矿石都有自己的重量 wi 以及价值vi .检验矿产的流程是: 1 .给定m 个区间[L ...
- 【Salvation】——怪物角色动画&主角碰撞死亡动画
写在前面:这个动画功能同样也是使用JavaScript编写脚本,在Unity3D游戏引擎的环境中实现,在怪物的角色动画中,很多与人物相同,这里不再重复. 一.设计敌人 拖一个精英sprite到层次面板 ...
- 即将到来的Android N,将具备这些新特性
原文转自:http://www.leiphone.com/news/201602/pSRQAuAjMFJITqHe.html 原创 訾竣喆 即将到来的Android N,将具备这些新特 ...
- SGU 231 Prime Sum 求<=n内有多少对素数(a,b)使得a+b也为素数 规律题
题目链接:contest=0&problem=231">点击打开链接 题意: 求<=n内有多少对素数(a,b)使得a+b也为素数 思路: 我们发现全部素数间隔都是> ...
- scramble-string——两个字符串经过树化并旋转后是否一致、递归、动态规划
Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrin ...
- cocos2d-x 3.0 内存管理机制
***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...
- java jar包运行方法
http://java-beginner-liyun.iteye.com/blog/736752一.怎么打jar包 第一步:选中要打jar包的工程 第二步:鼠标右击,选择Export... 第三步:选 ...
- python thrift hbase安装连接
默认已装好 hbase,我的版本是hbase-0.98.24,并运行 python 2.7.x 步骤: sudo apt-get install automake bison flex g++ git ...