JAVA初级学习笔记
在很久以前,大概是大一的时候,刚进入大学那会,要放假回家了,就决定到图书馆借几本书回家看,到图书馆就找了一本Java开发游戏的书,因为在高中的时候就玩过java那种手机游戏,那时候的游戏还是诺基亚那种jar包的游戏,所以就想学习一下怎么开发,总想着开发一款自己的游戏是多么牛逼,现在想想,当时是多么天真,而我当时的专业是材料专业。后来回家那本书就在我的床头躺了一个假期。
后来上到大三了,慢慢对编程感兴趣了,就开始学习各种语言,学习了C++,PHP,Java,C++是在学校选修了计算机学院的课程,PHP是跟着传智博客的视频一直学习下来的。Java就是看看书,自己鼓捣鼓捣,所以没学出个大概。
最近,也是因为研究生期间的方向是大数据,就开始有学习起Java来了。为了全面掌握Java语言,我就从最基础的语法开始了,顺带就把自己的笔记发出来,以后也可以复习。
准本工作
每一本书的开始都是要讲一下java的发展史的,这个博主还真是记不住呀,这里就不记了。但是有一点需要说的。java是一门可移植性的语言,还是一门开源的语言。它的流行也是应该一部分归功于他的移植性强和开源性,大家一般也说跨平台性强。
(1)那么什么是跨平台?
就是针对不同的操作系统,我不用修改我的代码,只要提供不同的jvm来实现的。就是java宣称的一次编译,到处运行。
(2)那么什么又是jvm呢?
jvm是Java Virtual Machine(Java虚拟机)的缩写,是运行java程序的一个程序。
要开始java编程,首先我们需要配置java的开发环境。第一步,我们应该去他们的官方网站下载jdk。第二步,安装jdk,接着配置环境变量。第三步就可以开发了。下面我们具体说怎么实施。
(3)目前,java的jdk已经发布到8.0了。8.0以后新的特性更多。在java的发展过程中有几个版本需要注意:
第一个需要注意的是jdk1.4.2,这个版本当年在各大公司用了很久,也很火。
第二个版本是jdk5,在jdk5以后,java将原来的j2se,j2ee,j2me更名为javase,javaee,javame,这个版本中,将原来的1.4版本直接升级为5.0版本,这是因为在这一版本中,java做了大的修改和调整。
第三个是jdk7.0,这一版也作出了大的修改和修改。
最后一点要说的是:尽管java第8个版本已经出来了,但是一般的公司大部分在使用jdk1.4或者1.5。使用1.6的公司都很少。主要目的是为了稳定性。引得版本加入的新的特性还需要长时间的考验。
(4)Java语言的平台
前面说的三个改名字的就是java的三大平台。JavaSE是为后两个服务的基础平台;JavaME,博客一上来说的那个嵌入式java,目前可以认为是Android;JavaEE就是平时说的java web。
(5)先来看下载:
好了,不多说,怎么找到官网呢?java是sun公司开发的,所以可以使用官网http://www.sun.com。但是后来sun公司管理出现了大的问题,以74亿美金的价格卖给了Oracle公司(我们平时说的甲骨文公司)。所以也可以使用http://www.oracle.com。
我们一般会选择java7版本或者6版本在本地开发。如果去了公司,可能会要求更低版本。
找到下载页,如下图:
到达java for developer页面,不要选择java8,往下拉:
找到jdk7,点击打开:
可以看到页面上面的红框提示说是最后一个7的版本:
同意协议,选择你组要的版本,下载就可以。
(6)安装
这里就不多说了,傻瓜式安装,一直点击下一步就能完成。这里需要注意一点:java尽量不要安装在中文目录或者带有空格的目录,特别是Program Files (x86)或者Program Files这两个目录。
这里我们可能注意到一个东西jre,那么jdk和jre分别是什么呢?有什么关系?
jdk是java development kit ,java开发包,jre是Java Runtime Environment,Java运行环境。也就是说用前者开发程序,用后者运行程序。
这里要多说一句:其实在jdk中已经包含jre,后面的这个安装可以取消,当然也可以安装。都没有问题。
安装好之后,怎么来验证呢?打开你的电脑命令行窗口,在里面输入
>> java -version
出现下面的图像说明安装成功。
(7)path环境变量配置
环境变量path的作用是保证java的命令可以在任意目录下运行。也就是在系统中注册一下java命令的存在。这样使用命令时就能找到。
我们找到环境变量的位置,在系统变量里面新建:变量名:JAVA_HOME
变量值:D:\…… (这里是你的目录)
修改Path变量值:%JAVA_HOME%\bin;原来的内容,如下图:
到这里,准备工作就结束了,最后还需要一款编辑器。目前先推荐使用Notepad++。后面会专门开一个IDE文章。
第一个程序
HelloWorld案例
class HelloWorld { //java是完全面向对象的语言,后面会讲到,所以这里使用了类 public static void main(String[] args) { //定义了入口函数 System.out.println("HelloWorld"); //在控制台输出一句HelloWorld } }
写好后,我们应该将文件保存为HelloWorld.java文件。
接着我们编译Java程序,并运行。
打开命令窗,输入:
>> javac Helloworld.java //执行完毕会在当前目录生成一个编译文件HelloWorld.class >> java HelloWorld //这里执行生成文件,但是不要带后缀.class
初学者的常见问题
(1)文件扩展名被隐藏,一定要设置去除隐藏扩展名,具体操作:找到工具–文件夹选项–查看–去除隐藏扩展名的那个对号
(2)文件名称和类名一致。
(3)Java语言严格区分大小写,请注意。
(4)写程序标点符号一定注意全部是英文符号。
(5)括号一定要配对完整。
下面主要记录一下所有语言都有的一些基本概念。主要包括:关键字,标识符(包括变量名,常量名,类名,方法名等),还有注释,基本数据类型。
注释
首先我们说一下注释,无论在每一个语言中都会有注释,注释就是对程序进行解释说明的文字。大家都是程序是为机器看的,也是为人看的,机器能看懂,人更要能看懂,对人友好的代码才是好代码。那么我们先看一下注释在java语言中主要有三种格式:
- 单行注释:
//注释文字
- 多行注释:
/* 注释文字 */
- 文档注释:
/** 注释文字和一些标识 */
一会下面我们看昨天的那个例子。在程序中体会
为什么要有注释,上面已经说了,主要是给程序员看的。那么注释其实有多个功能:
- 解释说明程序,提高了代码的阅读性。
- 可以帮助我们调试程序。
关键字
任何一门语言都会定义几十甚至一百多个关键字,那么什么是关键字呢?
关键字就是一种有特定功能的词语或者词语组合来给语言定义某一语法规则或者功能的词语。那么,在Java中都有什么关键字呢?下面我来展示一张图:
关键字就是被Java语言赋予特定含义的单词,他们有一个共同的特点就是必须全部小写。这里面有两个关键字是需要注意的:
- goto,这是一个保留字,java没有用,我们也不能用。但是以后java用不用就不知道了。
- const,这也是一个关键字,与上面一致。
表中的关键子在IDE中是会变色的。这些字以特殊的颜色标注以防止程序员编写错误,提前预警。
标识符
什么事标识符?标识符就是使用一定的规则定义一个词组使得这个作为一种标识在程序语言中使用。通常在java中就是给类,接口,方法,变量等起名字的字符序列。
标识符组成规则:
- 英文大小写字母
- 数字
- $和_
这里需要注意的是:
- 不能以数字开头,举例错误的:123ab
- 不能是java中的关键字,举例错误的:public
- 严格区分大小写,举例:ABC和abc不同
在任何一门语言中,定义一个标识主要是为了在后面的程序中使用,这样我们应该起一个见名知意的标识。
对于不同的地方我们的命名规则有一些不同:
- 包名:全部小写(每一级之间用小圆点 . 分隔开)例如:www.tuluobo.java
- 类和接口:每一个你认为的单词首字母大写,其余小写。 例如:Test,MyTest
- 方法和变量:第一个单词小写,其余单词首字母大写,剩余部分小写。例如:add(),addTotal()
- final修饰的变量(java中称为常量):每一个字符全部大写,单词之间用下划线分开。例如:PI,MY_AGE
常量
我们把在程序执行的过程中,其值不发生改变的量称之为常量,在java语言中有两种常量:
- 字面值常量
- 字符串常量 “helloworld”
- 整数常量 123456
- 小数常量 78.654
- 字符常量‘a’,’A’,’0′
- 布尔常量 true,false
- 空常量 null
- 自定义常量
final修饰的变量,一般格式:public final float PI=3.14.5926;
其中在Java中针对整数常量提供了四种表现形式:
- 二进制 由0,1组成。以0b开头。
- 八进制 由0,1,…7组成。以0开头。
- 十进制 由0,1,…9组成。整数默认是十进制。
- 十六进制 由0,1,…9,a,b,c,d,e,f(大小写均可)组成。以0x开头。
他们之间是如何转换的,我准备专门写一个文章,详细说一下进制,这个就不只是java语言了,其他语言也适用。
变量
通过标识符规则定义的在程序的执行过程中,其值在某个范围内可以发生改变的量,变量的定义格式:
- 数据类型 变量名 = 初始化值;
- 数据类型 变量名;
变量名 = 初始化值;
可以在程序中使用一些自己定义的变量来存储数据。这里需要强调:一般变量的作用域为自己所在的花括号内部。
数据类型
Java是一种强类型语言,针对每种数据都提供了对应的数据类型。
- 引用数据类型(代替C语言的指针)
- 基本数据类型
基本数据类型主要分为八种基本类型,这八种类型又分为四类:
- 整数 占用字节数
byte 、 short 、 int 、 long
- 浮点数
float 、 double
- 字符
char
- 布尔
boolean
需要有下面注意:整数默认是int类型,浮点数默认是double。长整数需要加L或者l。单精度的浮点数要加F或者f。
数据类型转换
- boolean类型不参与转换
- 数据类型默认转换(从小到大):
A:byte,short,char 转到 int 转到 long 转到 float 转到 double
B:byte,short,char之间不相互转换,直接转成int类型参与运算。
- 强制转换(从大到小)
A:可能会造成精度的损失。
C:格式:目标数据类型 变量名 = (目标数据类型) (被转换的数据);
今天的知识代码解析:
/**
*
* 这是一个演示程序
* 这是一个文档注释
* @author tuluobo
* @version V1.0
*
*/
class HelloWorld { //java定义类名,符合标识符类名规则,这里是单行注释
/* 定义了入口函数,
函数即是方法,
符合标识符方法规则
这里是多行注释 */
public static void main(String[] args) {
int num = 100; //定义一个变量num,符合标识符变量规则
System.out.println("HelloWorld"+num); //在控制台输出一句HelloWorld100
}
}
今天主要引出java语言的基本语法概念,后面详细讲解语法规则。