最近因为公司项目要由.net平台转到java平台的原因,之前一直用.net的我不得不开始学习java了,刚开始听到说要转java的时候很抗拒,因为我想专注在.net平台上,不过这样也并不完全是坏事,通过接触java开发也许能拓展我的开发思想和知识面,所以这也许是个学习java的机会。

因为之前从来没有做过java开发,所以现在不得不从最基础的开始,而且因为做.net已经有几年了,习惯了VS的良好的操作体验,所以刚开始接触Eclipse有很多的不适应。这个系列我想通过与.net比较的方式来学习,一来分清java与c#的区别,二来也许能加深对.net的理解,第三是希望想转java的朋友能通过这个系列少走弯路。

工欲善其事,必先利其器。所以这个系列的第一篇我想总结的是它们开发环境以及常用的调试技巧的比较。我想从以下几点来进行总结。

1,开发工具

2,常用操作快捷键

3,常用调试技巧

一,开发工具

.net的开发IDE工具就不用我多说了,就是“全球最牛的IDE” Visual Studio(下称VS),而java开发一般选择Eclipse,当然Eclipse是免费的。下面通过一张图来说明它们之间界面和布局上的差异。

VS:

Eclipse:

我们可以看到,从界面布局上,两者没有太多差异,只是VS的项目管理在右边,而Eclipse的项目管理在左边,当然,这些窗口也是可以拖拽的,依据自己的操作习惯来。

二,常用操作快捷键

为了对比更加清晰,下面我用一张表格来分别列出VS和Eclipse常用操作的快捷键。

注:我这里用的VS版本是2010,Eclipse版本是Juno SR2

这份表格是基于我之前写的一篇博客进行提炼修改的,原文章地址:提高vs操作效率,vs 2008与vs 2010快捷键总结。各位朋友如果有一些好的操作技巧也欢迎提出。

  Visual Studio Eclipse 操作
编辑      
  CTRL+E+C CTRL+/ 注释,注释选中的代码(如果没有选中任何行,则默认注释当前行代码)
  CTRL+E+U CTRL+/(再按) 取消注释,取消注释选中的代码
  CTRL+E+D CTRL+SHIFT+F 格式化整个文档
  CTRL+J ALT+/ 列出成员
  CTRL + SHIFT + 空格 ALT+/ 提示鼠标所在方法的参数类型和个数
  CTRL+M+L CTRL+O 快速OutLine
  CTRL+. 不适用 自动using命名空间
       
导航      
  F12 F3 转到定义
  CTRL + TAB CTRL+E 快速切换活动窗口
  CTRL + SHIFT + F CTRL+F 显示在文件中查找和替换对话框
  SHIFT+ALT+ENTER CTRL+M 全屏无干扰模式
  CTRL+(→或←) 同VS 以单词为单位进行左,右跳转
  SHIFT+CTRL+(↑或↓) 暂无 跳转到该单词上次或下次出现的地方
  CTRL+SHIFT+] CTRL+SHIFT+P 匹配括号移动(包括(),{},[],””)
  SHIFT+F12(查找所有引用) CTRL+T 转到接口的实现类
       
调试      
  F5 F11 调试运行
  CTRL+F5 CTRL+F11 非调试运行
  F6 不适用 编译整个解决方案
  SHIFT+F6 不适用 编译当前选择的工程
  SHIFT+F5 CTRL+F2 停止调试
  F9 CTRL+SHIFT+B(break) 插入或取消断点
  CTRL+SHIFT+F9 暂无 取消所有断点
  F10 F6 单步执行,但直接执行函数中调用部分而不分步
  F11 F5 单步执行,并且单步执行函数中调用部分
  SHIFT+F11 F7(继续运行为F8) 执行当前函数剩余部分代码
  CTRL+F10 CTRL+R 运行到光标处

另外,Eclipse有一些自己独特的快捷键,也非常好用,如下:

CTRL+SHIFT+R(resource):快速打开资源

ALT+SHIFT+R(rename):快速重命名方法和属性

CTRL+.和CTRL+1:定位到错误及快速修改

三,常用调试技巧

之所以把调试技巧单独列出来总结,是因为调试技巧对于我们程序员来说非常重要,运用得好的话可以大大提高我们的开发效率。其实对于VS的调试技巧,我相信我们做.net开发的大部分都已经很熟悉了,下面我把VS中非常常用的几个调试技巧拿出来与Eclipse进行比较,看看Eclipse有没有相应的解决方法。

1,断点

说起调试,首先肯定是设置断点了,所以断点是所有调试的基础。当然断点又分很多种不同的类型,比较常用的就是条件断点和断点过滤器了。首先来看普通断点吧。

1)普通断点

设置断点,VS为F9,而Eclipse为CTRL+SHIFT+B(break)

命中断点后,接下来我们可以选择F10单步运行,F11进入调用函数内部,或Shift+F11从调用函数返回到函数调用处。而对于Eclipse,单步运行是F6,进入调用函数内部是F5,返回到函数调用处是F7。

2)条件断点

条件断点一般用在for循环中,如下图:

3) 断点过滤器

断点过滤一般用在调试多线程程序的时候,能过断点过滤我们可以指定调试哪个线程,如下图:

2,运行到指针

这个调试技巧也非常有用,当我们在调试一个很长的方法,我们不关心中间的逻辑,我希望断点直接运行到某一行的时候,这个技巧就派上用场了。如下图。

注意,这个技巧在VS中是快捷键CTRL+F10,而在Eclipse中我还没有发现怎么去实现这个技巧,希望知道的朋友可以补充一下。

3,即时窗口

这个也用得非常多,它即可以查看变量的值,也可以直接在里边写代码执行。如下图。

 

不过,Eclipse里的即时窗口没有VS的好用。

4,附加进程

附加进程有两个好处,第一,提高调试效率,我一般习惯先以非调试模式运行(VS中快捷键是CTRL+F5),此时页面已经打开,等到想调试的时候就选择附加进程进行调试,不想调试的时候我停止调试就行了,这样比按F5要快很多。第二个好处是,当程序已经发布了,本地也有源代码的情况下,那么就可以直接附加到进程就可以调试了。下面是图示。

注:Eclipse中我还不知道怎么实现这个功能,希望知道的朋友补充一下。

5,数据提示

当我们在调式一段程序,需要反复查看某个变量的值的时候,我们可以把这个变量钉在屏幕上,而且,我们还可以临时去修改变量的值,这对我们去模拟一些BUG的时候非常有用。

注:Eclipse中还不知道怎么弄,好像在变量声明的地方无法设置断点,希望熟悉的朋友补充一下。

另外,这篇文章参考了以下文章:

1) 学习之路三十二:VS调试的简单技巧

2) 那些VisualStudio隐藏的调试功能

文章出自:http://www.cnblogs.com/mcgrady/p/3389441.html

java与.net比较学习系列(1) 开发环境和常用调试技巧的更多相关文章

  1. java与.net比较学习系列开发环境和常用调试技巧常用操作快捷键

    调试         F5 F11 调试运行   CTRL+F5 暂无 非调试运行   F6 不适用 编译整个解决方案   SHIFT+F6 不适用 编译当前选择的工程   SHIFT+F5 CTRL ...

  2. Node.js实战项目学习系列(2) 开发环境和调试工具

    前言 上一节让我们对Node.js有一个初步的了解,那么现在可以开始正式学习下Node.js的开发了,但是任何一门语言要设计到开发,就必须先学习开发环境以及调试.本文将主要讲解这些内容. 本文涉及到的 ...

  3. Android+Jquery Mobile学习系列(1)-开发环境

    开发环境是老生常谈的问题了,网上有很多关于Android环境安装的文章,我这里也就简单说明一下,不做过多分析. 想了解详细的安装说明,可以参见[百度经验] Java环境安装直接跳过,说一下Androi ...

  4. [eShopOnContainers 学习系列] - 00 - 开发环境需求

    开发环境需求 https://github.com/dotnet-architecture/eShopOnContainers/wiki/00.-Dev-machine-requirements 我的 ...

  5. Android开发--环境搭建和调试技巧

    一:环境搭建 (1)我使用的环境是:window8+Java SDK+Eclipse+Android SDK+ADT 安装步骤:Java SDK-->Eclipse--->ADT---&g ...

  6. Java I/O系统学习系列二:输入和输出

    编程语言的I/O类库中常使用流这个抽象概念,它代表任何有能力产出数据的数据源对象或者是有能力接收数据的接收端对象.“流”屏蔽了实际的I/O设备中处理数据的细节. 在这个系列的第一篇文章:<< ...

  7. MyBatis学习系列一之环境搭建

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 学习一个新的知识,首先做一个简单的例子使用一下,然后再逐步深入.MyBat ...

  8. Redis学习系列一Linux环境搭建

    1.简介 Redis是互联网技术架构中在存储系统中用的最广泛的中间件,是中高级后端工程师技术面试中面试官最喜欢问的工程技能之一.所以Redis是.Net技术开发必须掌握的技能之一.所以通过这个系列的随 ...

  9. Django:学习笔记(1)——开发环境配置

    Django:学习笔记(1)——开发环境配置 Django的安装与配置 安装Django 首先,我们可以执行python -m django --version命令,查看是否已安装django. 如果 ...

随机推荐

  1. LoadRunner测试下载功能点脚本(方法二)

    在上一篇<LoadRunner下载功能点脚本(方法一)>中,实现的脚本仅是录制下载功能点的脚本,现在性能需求的场景更改如下: 性能需求:对系统某页面中,点击下载并将下载文件保存到本地电脑的 ...

  2. Hacker(23)----破解常见文件密码

    Win7中,office文档.压缩文件等都是常见的文件,这些文档含有重要的信息,即使用户为这些文件设置了密码,黑客也会有办法破解. 一.破解office文档密码 破解office文档密码常用工具是Ad ...

  3. 使用css3属性,大部分浏览器要识别前缀

    例如以下代码的解析 -ms-transform:rotate(7deg); -moz-transform:rotate(7deg); -webkit-transform:rotate(7deg); - ...

  4. (转)Javascript面向对象编程(三):非构造函数的继承(作者:阮一峰)

    不使用构造函数实现"继承". 一.什么是"非构造函数"的继承? 比如,现在有一个对象,叫做"中国人". var Chinese = { na ...

  5. 使用kindeditor 注意

    ValidateRequest="false"引用编辑器要在最上端加入上面的话

  6. 《第一行代码》学习笔记18-广播接收器Broadcast_Receiver(1)

    1.网络通信原理,在一个IP网络范围内最大的IP地址是被保留作为广播地址来使用的.某个网络的IP 范围是192.168.0.XXX, 子网掩码是255.255.255.0,则该网络的广播地址是192. ...

  7. How to resolve the SQL error “cannot connect to WMI provider”

    当你试图打开SQL Server Configuation Manager时发现如下错误: “cannot connect to WMI provider. You do not have permi ...

  8. Asp.net中实现同一用户名同时登陆,注销先前用户(转)

    Web 项目中经常遇到的问题就是同一用户名多次登陆的问题,相应的解决办法也很多,总结起来不外乎这几种解决办法:将登陆后的用户名放到数据库表中:登陆后的用 户名放到Session中:登陆后的用户名放到A ...

  9. Mysql int(11) 和 int(1)

    Mysql 可以为整数类型制定宽度,例如:int(11) ,对大多数应用这是没有意义的:它不会限制值的合法范围,它只是规定了Mysql的一些交互工具(例如mysql命令行客户端)用来显示字符个数.对于 ...

  10. 在mac中导入hadoop2.6.0源代码至eclipse

    一.环境准备 1.安装jdk.maven等 2.下载hadoop源代码,并解压 3.将tools.jar复制到Classes中,具体原因见http://wiki.apache.org/hadoop/H ...