提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
1.java语言概述
1.1 java是什么?
Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义。
不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。
1.2 java语言的工作领域
Java语言目前在IT领域的应用是非常广泛的,掌握Java语言可以从事不少IT行业的相关开发岗位,具体包括:
企业级系统
比如大型复杂的企业级软件系统,Java的安全机制以及跨平台性的优势,其在分布式系统领域开发中有广泛应用,涉及到金融、电信、交通、电子商务、ERP系统等。
web开发领域
Java语言在设计初期,赶上了互联网发展的风口,当时就瞄准了互联网开发,凭借稳定的性能表现和较好的扩展性,Java语言一直是大型互联网平台的重要解决方案。
android平台应用
Android是一种智能手机操作系统,Java是一门非常流行的编程语言。Android上的应用程序就是大多是用Java编写的,Android的SDK大部分就是直接将Java SDK翻译过来的,所以具有Java基础,也可以快速上手Android开发。
大数据平台开发
大数据相关的各类框架,比如:Hadoop、spark、storm、flink等,以及各种中间件flume、kafka、sqoop等,这些框架以及工具等大多数是用Java语言开发的,随着大数据技术的落地应用,Java在大数据领域的应用前景也是比较广阔的。
1.3 java语言发展
Java 语言源于 1991 年 4 月,Sun 公司 James Gosling博士 领导的绿色计划(Green Project) 开始启动,此计划最初的目标是开发一种能够在各种消费性电子产品(如机顶盒、冰箱、收音机等)上运行的程序架构。这个就是Java的前身: Oak (得名与Java创始人James Gosling办公室外的一棵橡树),但由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。
随着1995年代互联网的发展,Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布,并提出“Write once, Run anywhere" 的口号。
1.4 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编译器通过生成与特定计算机体系结构无关的字节码指令来实现这 一特性。精心设计的字节码不仅可以很容易的在任何机器上解释执行,而且还可以动态地翻译成本地机器代 码。这就是为什么可以:“Wrice 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不仅仅是一门编程语言,也是一个由一些列计算机软件和规范组成的技术体系。
1.5 如何配置java开发环境
JDK安装
idea安装
切记:先装jdk再安装idea(集成开发环境)
2.初识java的main方法
2.1 main方法示例
public class HelloWorld(){
public static void main(string[] arg){
System.out.println("helloworld");
}
}
通过上述代码,我们可以看到一个完整的Java程序的结构,Java程序的结构由如下三个部分组成:
-
源文件(扩展名为*.java):源文件带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个类。类的内容必须包含在花括号里面。 -
类:类中带有一个或多个方法。方法必须在类的内部声明。对于上面的代码来说 就是HelloWorld方法。 -
方法:在方法的花括号中编写方法应该执行的语句。也就是 main ,在java当中,方法就相当于c语言的函数。 总结一下:类存在于源文件里面;方法存在于类中;语句存在于方法中。
**注意:在一个源文件中只能有一个public修饰的类,而且源文件名字必须与public修饰的类名字相同。 **
2.2编译java程序
Java是一门半编译型、半解释型语言。先通过javac编译程序把源文件进行编译,编译后生成的.class文件是由字节码组成的平台无关、面向JVM的文件。最后启动java虚拟机来运行.class文件,此时JVM会将字节码转换成平台能够理解的形式来运行。
如何生成.class文件呢
创建一个记事本,用命令行的方式编译java程序
创建一个 txt文件 并把后缀名改为.java 做到如图所示
然后用sublime Text(需要下载,是一个记事本类似的软件)打开。做到如图所示:
写入代码: 代码如下:
public class HelloWorld{
public static void main(String[] args){
System.out.println("helloworld");
}
}
然后win+R系统操作 ,输入 cmd进入命令窗口 如图所示:
接下来按如图所示操作一遍:
如果你的文件在c盘则按 c:
.class文件是什么? 接下来输入: java + 文件名
从最后的图中我们可以看到 我们的语句helloworld被运行成功了
当然也可能出现各种奇奇怪怪的错误
-
操作都正确 但是没有生成.class文件 原因:没有对记事本进行保存,也就是crt+s -
接下来的其他错误的出现: 主要原因: ? JDK环境没有配置好,操作系统不能识别javac或者java命令 次要原因:
- 源文件名后缀不是.java
- 类名与文件名不一致
- main方法名字写错:mian
- 类没有使用public修饰
- 方法中语句没有以分号结尾
- 中文格式的分号
2.3:解析一下第一个java程序代码
public class HelloWorld{
public static void main(String[] args){
System.out.println("helloworld");
}
}
1、public:访问修饰限定符【权限】-》类和对象介绍
2、class:定义类的关键字-》-》类和对象介绍
3、HelloWorld:类名,紧跟在class关键字后面的。
1、public:访问修饰限定符【权限】-》类和对象介绍2、class:定义类的关键字-》-》类和对象介绍 3、HelloWorld:类名,紧跟在class关键字后面的。 如果这个类是public修饰的,那么这个类名需要和文件名是一样的。
2.4 重点: JDK,JRE,JVM之间的关系
JDK(Java Development Kit):Java开发工具包,提供给Java程序员使用,包含了JRE,同时还包含了编译器javac与自带的调试工具Jconsole、jstack等。
JRE(Java Runtime Environment):Java运行时环境,包含了JVM,Java基础类库。是使用Java语言编写程序运行的所需环境。
JVM:Java虚拟机,运行Java代码
他们的关系如图:
3.注释
3.1 java的注释方式
Java中的注释主要分为以下三种:
1.单行注释:// 注释内容(用的最多)
2.多行注释:/* 注释内容*/(不推荐)
3.文档注释: /** 文档注释 */(常见于方法和类之上描述方法和类的作用),可以被javadoc工具解析,生成一套以网页文件形式体现的程序说明文档
3.2 java的注释规范
-
内容准确: 注释内容要和代码一致, 匹配, 并在代码修改时及时更新 -
篇幅合理: 注释既不应该太精简, 也不应该长篇大论 -
使用中文: 一般中国公司都要求使用中文写注释 -
积极向上: 注释中不要包含负能量(例如骂人等)
4.标识符
4.1 java标识符的合法性
? 标识符中可以包含:字母、数字以及 下划线和 $ 符号等等,注意:标识符不能以数字开头,也不能是关键字,且严格区分大小写。
即如果出现上面情况的代码:会出现报错
4.2 java标识符的合理性
类名:每个单词的首字母大写(大驼峰) 方法名:首字母小写,后面每个单词的首字母大写(小驼峰) 变量名:与方法名规则相同
参考书籍: 阿里巴巴《java开发手册》
为什么要按规定写代码呢?
大型的工程,是由多名工程师协同开发的,为了实现代码的可读性,所以公司会有一定的代码规范
5.java的关键字
关键字是由Java语言提前定义好的,有特殊含义的标识符,或者保留字。
注意:用户不能使用关键字定义标识符。
1.用于定义访问权限修饰符的关键字
private,protected,public
2.用于定义类,函数,变量修饰符的关键字
abstract,final,static,synchronized
3.用于定义访问权限修饰符的关键字
private protected public 4.用于定义类,函数,变量修饰符的关键字
abstract final static synchronized
5.用于定义类与类之间关系的关键字
extends implements
6.用于定义建立实例及引用实例,判断实例的关键字
new this super instanceof
7.用于异常处理的关键字
try catch finally throw throws
8.用于包的关键字
package import
9.其他修饰符关键字 native strictfp transient volatile assert
总结
通过了解java的语言特性以及学习java语言的过程中,了解到java语言的强大。也希望自己可以坚持住吧,与在座各位互勉互励!!!
|