初识Java

一,Java语言特性

  • 简单性

Java语法是C++语法的一个“纯净版本”,相当于对C++做了一个减法。这里没有头文件、指针运(甚至指针语法)、结构、联合、操作符重载、虚基类等等。不仅如此,Java开发环境远远超出大多数其他编程语言的开发
环境。

  • 面向对象

什么是面向对象?
在Java的世界里,一切皆对象。比如:人、狗、手机、电脑等都是对象。所谓面向对象,就是依靠对象之间的交互来完成事情,比如:人用手机网上购物,狗吃骨头...
Java的面向对象特性与C++旗鼓相当,与C++的主要不同点在于多重继承。在Java中,取而代之的是更简单的接口概念。而且与C++相比,Java提供了更丰富的运行时自省功能。

  • 分布式(微服务)

Java有丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的对象,其便捷程度就好像访问本地文件一样。

  • 健壮性

Java与C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性(对于曾经花费几个小时来检查由于指针bug而引起内存冲突的人来说,一定很喜欢Java的这一特性)。不仅如此,Java编译器能够检测许多在其他语言中仅在运行时才能够检测出来的问题。

  • 安全性

Java适用于网络/分布式环境。为了达到这个目标,在安全性方面投入了大量的精力。使用Java可以构建防病毒、防篡改的系统。
从一开始,Java就设计成能够防范常见的各种攻击:
运行时堆栈溢出。蠕虫和病毒常用的攻击手段。
破坏自己进程空间之外的内存。
 

  • 体系结构中立

编译器生成一个体系结构中立的目标文件格式,按照该中规范生成的文件,只要有Java运行时系统,这些编译后的代码就可以在许多处理器上运行。Java编译器通过生成与特定计算机体系结构无关的字节码指令来实现这一特性。精心设计的字节码不仅可以很容易的在任何机器上解释执行,而且还可以动态地翻译成本地机器代码。这就是为什么可以:“Write once,Run anywhere”。
而且其他语言编写的程序,在编译后如果能够严格按照字节码文件的规范生成.class文件,也可以在JVM上运行。

  • 可移植性

与C/C++不同,Java规范中没有“依赖具体实现的地方”。基本数据类型的大小以及有关运算都做了明确的说明。
例如,Java中的int永远是32位的整数,而在C/C++中,int可能是16位整数、32位整数,也可能是编译器提供商
指定的其他大小。在Java中,数据类型具有固定的大小,这消除了代码移植时令人头疼的主要问题。

  • 解释性

Java为了实现与平台无关,自己维护了一套基于栈架构的指令集,Java源代码经过编译之后,字节码文件中的指令就是按照自己的指令集来组织的,但是在具体硬件环境中运行时,系统并不能识别,因为Java程序在执行时,Java解释器会逐条的将字节码文件中的指令翻译成CPU的指令集。

  • 高性能

边解释边执行,有人会说等导致了Java代码运行效率偏低,但近年来JVM也在不断的优化,比如:JIT(即时编译器),热点代码探测,让Java程序的执行效率大幅提高,在有些场合不亚于C/C++。

  • 多线程

Java在当时很超前。它是第一个支持并发程序设计的主流语言。多线程可以带来更好的交互响应和实时行为。并发程序设计绝非易事,但是Java在这方面表现出色,可以很好的管理这个工作。

  • 动态性

Java与C/C++相比更加具有动态性。它能够适应不断发展的环境。库中可以自由的添加新方法和实例变量,而对客户端没有任何影响。在Java中找出运行时类型信息十分简单(反射的特性,后续会学到)
因此:Java不仅仅是一门编程语言,也是一个由一些列计算机软件和规范组成的技术体系。


二,Java的结构

  1. 源文件(扩展名为*.java):源文件带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个类。类的内容必须包含在花括号里面。
  2. 类:类中带有一个或多个方法。方法必须在类的内部声明。
  3. 方法:在方法的花括号中编写方法应该执行的语句。

总结一下:类存在于源文件里面;方法存在于类中;语句存在于方法中。

注意:在一个源文件中只能有一个public修饰的类,而且源文件名字必须与public修饰的类名字相同。


三,Java标识符 

 【硬性规则】
标识符中可以包含:字母、数字以及 下划线和 $ 符号等等。
注意:标识符不能以数字开头,也不能是关键字,且严格区分大小写。
 【软性建议】

  • 类名:每个单词的首字母大写(大驼峰)
  • 方法名:首字母小写,后面每个单词的首字母大写(小驼峰)
  • 变量名:与方法名规则相同

 例如:下面那些标识符是合法的?
A:class B:HelloWorld C:main D:123abc E:ARRAY_SIZE F: $name G: name:jim

  • A中class 是关键字,环境自动识别,不能进行编译的,不合法。
  • B合法
  • C中main是主函数名,不合法。
  • D中标识符不能以数字开头,不合法。
  • E合法
  • F合法但不建议
  • G合法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值