这一篇从最基础的开始对比总结,说起基础语言要素,故名思义,就是学习语言的基础,主要内容包括标识符,关键字和注释。我想从以下几点进行总结,有区别的地方有都使用红色粗体字进行了总结。

1,标识符

2,关键字

3,注释

标识符

这个术语在java和C#中的定义是一样的,即标识符是程序员为自已定义的类,方法和变量所起的名字。

比较了java和C#对于标识符的定义和约定,规则基本相同。

1,标识符区分大小写。

2,标识符由字母,数字,下划线和美元符号组成,但是,不能以数字开头。

注意:在C#中方法名一般用pascal帕斯卡命名法,即每个单词首字母都大写,而在java中,方法名一般用camel骆驼命名法,即第一个单词首字母小写,后面的单词首字母都大写。

比如,定义一个人的类,可以命名为Person;定义一个获取人名的方法,可以命名为getPersonName(在C#中一般是GetPersonName)。

关键字

所谓关键字,就是语言特有的记号,我们不能用它来作为标识符,关键字只能由系统使用。

对关键字进行分类,大致包括以下几类:

1,访问修饰符关键字

访问修饰符包括以下几种:

1) public,公共的,可以被任何包中的类访问。注意包的概念后面会进行总结,在.net中一般叫程序集(dll)。

2) protected,受保护的,可以被同一包中的类或者子类访问,其它包的类或者子类不能访问它。

3) private,私有的,方法和变量只能被所在类访问。

可以看出,访问修饰符的概念java和C#差不多,只不过C#中不仅包括以下三种修饰符,还包括更多的修饰符比如internal等。另外,有一个概念的区别需要我们注意,java中的包(即jar包),在C#中一般称为程序集(即dll)。

2,类,接口,方法和变量修饰符关键字

1) class,声明类的关键字,比如我们声明一个人的类,可以这样,public class Person{}。

2) interface,声明接口,比如要声明人的接口,可以这样,public interface IPerson{}。

3) implements,类实现接口,比如要让人的类Person实现IPerson接口,可以这样实现,public class Person implements IPerson{}。

4) extends,用于继承,比如我们定义一个男孩Boy类继承Person类,可以这样,public class Boy extends Person{}。

5) abstract,抽象修饰符,比如我们要定义一个抽象类,可以这样,public abstract class Person{},

6) static,静态的,static可以修饰类,方法和变量。

7) new,实例化对象。一般在实例化某个类的对象的时候使用。

总结:需要注意的是,实现接口和继承的时候,java和.net的实现方式是不一样的,在java中类实现接口使用implements关键字,实现继承使用extends,而在.net中是用符号”:”来实现的。

3,流程控制语句关键字

流程控制语句包括if…else语句,for语句,switch…case…default语句,do…while语句,return语句,continue语句和break语句等。

总结:java中没有foreach语句关键字,但是有增强版的for循环实现了类似于.net中foreach的功能。具体的后面在讲集合的遍历的时候会总结到。

4,异常处理关键字

异常处理一般的结构是,try…catch…finally,当然还包括throw。这跟.net中是完全一样的。

5,包控制关键字

包控制关键字包含两个,分别是Package来定义包,并将类定义到这个包中。还有一个是import关键字,import是将包或者类导入到程序中。

总结:Package这个是java独有的,而import有点类似于.net中的using。

6,数据类型关键字

java中共有八种基本数据类型,每一个基本数据类型都需要一个关键字来定义。

分别是short短整型,int整型,long长整型,float单精度浮点型,double双精度浮点型,byte字节型,char字符型和boolean布尔型。这些与.net类似。

7,特殊类型的关键字

主要有两个,这两个也比较常用。

1) this,引用当前类对象。

2) super,引用父类。

3) void,用于定义没有返回值的方法。

总结:java与.net不同的是,在java中引用父类用super,而在C#中则使用base。

注释

关于注释,主要有以下三种类型的注释。

1) 单行注释,使用//

2) 多行注释,使用/* */

3) 文档注释,使用/** */

总结:在单行注释和多行注释上,java与C#是一样的。但是,在文档注释上是不同的,java文档注释使用/** */符号,而C#是///符号。

文章摘自:http://www.cnblogs.com/mcgrady/p/3390746.html

java与.net比较学习系列(2) 基础语言要素的更多相关文章

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

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

  2. Java后端高频知识点学习笔记1---Java基础

    Java后端高频知识点学习笔记1---Java基础 参考地址:牛_客_网 https://www.nowcoder.com/discuss/819297 1.重载和重写的区别 重载:同一类中多个同名方 ...

  3. java与.net比较学习系列(3) 基本数据类型和类型转换

    在Java中,数据类型分为两类,一类是基本数据类型,另外一类是引用类型. 而在C#中,数据类型分为三类,分别是基元类型,值类型和引用类型.其中基元类型是.net framework框架中预定义的类型, ...

  4. 【转】java与.net比较学习系列(3) 基本数据类型和类型转换

    原文地址:https://www.cnblogs.com/mcgrady/p/3397874.html 阅读目录 一,整数类型 二,浮点数类型 三,字符类型 四,布尔类型 五,类型转换之自动转换 六, ...

  5. java与.net比较学习系列(1) 开发环境和常用调试技巧

    最近因为公司项目要由.net平台转到java平台的原因,之前一直用.net的我不得不开始学习java了,刚开始听到说要转java的时候很抗拒,因为我想专注在.net平台上,不过这样也并不完全是坏事,通 ...

  6. Java I/O系统学习系列一:File和RandomAccessFile

    I/O系统即输入/输出系统,对于一门程序语言来说,创建一个好的输入/输出系统并非易事.因为不仅存在各种I/O源端和想要与之通信的接收端(文件.控制台.网络链接等),而且还需要支持多种不同方式的通信(顺 ...

  7. java与.net比较学习系列(4) 运算符和表达式

    上一篇总结了java的数据类型,得到了冰麟轻武等兄弟的支持,他们提出并补充了非常好的建议,在这里向他们表示感谢.在后面的文章中,我会尽力写得更准确和更完善的,加油! 另外,因为C#是在java之后,也 ...

  8. MVC3+EF4.1学习系列(二)-------基础的增删改查和持久对象的生命周期变化

    上篇文章中 我们已经创建了EF4.1基于code first的例子  有了数据库 并初始化了一些数据  今天这里写基础的增删改查和持久对象的生命周期变化 学习下原文先把运行好的原图贴来上~~ 一.创建 ...

  9. Java 7 源码学习系列(一)——String

    String表示字符串,Java中所有字符串的字面值都是String类的实例,例如“ABC”.字符串是常量,在定义之后不能被改变,字符串缓冲区支持可变的字符串.因为 String 对象是不可变的,所以 ...

随机推荐

  1. c++11 线程:让你的多线程任务更轻松

      介绍 本文旨在帮助有经验的Win32程序员来了解c++ 11线程库及同步对象 和 Win32线程及同步对象之间的区别和相似之处. 在Win32中,所有的同步对象句柄(HANDLE)是全局句柄.它们 ...

  2. windows服务器性能监控工具、方法及关键指标

    原文:http://www.cnblogs.com/liulun/p/3543777.html 监控方法 推荐使用windows自带的“性能监视器”(老版本的windows叫性能计数器)来监控服务器的 ...

  3. 在IIS集成管道中使用OWIN Middleware

    在Katana中启用Windows Authorization OWIN的架构: Host 管理OWIN pipeline上运行的进程 Server 打开一个network socket,,监听请求 ...

  4. 《第一行代码》学习笔记2-Android开发特色

    1.四大组件:活动(Activity),服务(Service),广播接收器(Broadcast Receiver),内容提供器(Content Provider). Activity:应用中看得到的东 ...

  5. angular 指令梳理 —— checkBox

    checkBox 持久化数据为 逗号分割 /** * 功能说明: * htCheckbox 指令用于收集checkbox数据. * 在页面中使用 * 属性指令:ht-checkbox * 对应的值为s ...

  6. mysqlbinlog详解

    mysqlbinlog用于处理二进制日志文件的实用工具详解mysqlbinlog从二进制日志读取语句的工具.在二进制日志文件中包含的执行过的语句的日志可用来帮助从崩溃中恢复. binlog日志打开方法 ...

  7. 【Solr初探】Solr安装,启动,查询,索引

    1. 安装&启动 官网:http://lucene.apache.org/solr/ 下载源代码,解压,进入根目录(我把solr放在/usr/local/solr下) 在/usr/local/ ...

  8. CAS单点登录原理以及debug跟踪登录流程

    CAS 原理和协议 基础模式 基础模式 SSO 访问流程主要有以下步骤: 1. 访问服务: SSO 客户端发送请求访问应用系统提供的服务资源. 2. 定向认证: SSO 客户端会重定向用户请求到 SS ...

  9. Hadoop高可用平台搭建

    文章概览: 1.机器规划和预配置 2.软件安装 3.集群文件配置 4.启动集群 5.HA验证 6.注意事项 7.小结   机器规划和预配置 主机/进程 NN DN RM NM ZK(QP) ZKFC ...

  10. ueditor 百度编辑器 自定义图片上传路径和格式化上传文件名

    今天项目中需要自定义图片上传的保存路径,并且不需要按照日期自动创建存储文件夹和文件名,我的ueditor版本是1.3.6.下面记录一下我配置成功的方法,如果有什么不对的地方欢迎指出,共同学习: 1:我 ...