Java环境搭建及语法入门
目录
Java基本概念介绍
Java是一门面向对象编程语言,不仅继承了C++语言的有点还摒弃了C++语言的一些繁琐的概念,所以Java具有功能强大和简单易用两个特征。
面向对象(Object Oriented)是软件开发的方法。面向对象的概念已经超越了程序设计和软件开发,扩展到了数据库系统、交互式界面、应用结构等等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。
Java是由Sun Microsystems公司在1995年5月推出的面向对象程序设计语言和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。
1995你那由Sun公司发布。
2010年被Oracle公司收购。
JVA(Java Virtual Machine),Java虚拟机,是Java凭条无关性实现的关键。
JDK(Java Development Kit),Java语言的软件开发工具包。
两个主要组成: javac 编译器,将源程序转成字节码。
java 运行编译后的java程序(.class后缀的)。
JRE(Java Runime Environment)包括Java虚拟机(JVM)、Java核心类库和支持文件,如果只需要运行Java程序,下载并安装JRE,即可,如果要开发Java软件,需要下载JDK,在JDK中附带有JRE。
JDK、JRE和JVM三者的关系
Java程序执行过程
Java主要分为三个体系
- JavaSE(J2SE)(Java2 Platform Standard Edition,Java平台标准版)
- JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)
- JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)
2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名以取消其中的数字"2":J2EE更名为Java EE, J2SE更名为Java SE,J2ME更名为Java ME。
Java程序的结构
class Hello{
public static void main(String[] args){
System.out.println(“Hello,我的第一个程序。”);
}
}
Windows下开发环境搭建
1、 下载地址
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
如图1所示,选中红框圈起来的单选钮,然后选中合适的版本进行下载,如果是 windows 7 系统,可以下载蓝框圈起来的版本。
注意:由于版本更新的问题,每次打开链接后所看到的 JDK 版本,可能与所给图片不一致,但操作步骤都一样。
2、 安装
下载后的 JDK 如图2所示。
双击 exe 文件进行安装,出现如图 3 所示的界面。
点击下一步,出现如图 4 所示界面。
可以点击更改按钮,来更改 JDK 的安装目录,然后点击下一步,出现如图 5 所示界面,进入安装状态。
图 5 中的安装状态将持续几分钟。中间会弹出如图 6 所示的界面。
图 6 中的界面是在安装 JRE,可以更改安装位置,然后点击下一步,会出现如图
7 所示页面,进行 JRE 安装。
当 JRE 安装完毕后,前面的窗口消失,重新回到 JDK 安装页面。出现如图 8 所示窗口,提示安装成功。
3、 环境变量配置
JDK 安装完成后,需要进行环境变量的配置,才能对程序进行编译和运行。
如图 9 所示,找到“计算机”图标,右击,选择属性。出现如图 10 所示的窗口。
选择“高级系统设置”,出现如图 11 所示窗口,选择环境变量,出现如图 12所示窗口。
如图 12 所示,在系统变量中找到变量 Path 所在的行,双击或选择“编辑”按钮,出现如图 13 所示的内容。
在变量值的末尾加上英文输入法状态下的分号;并添加 JDK 安装目录下的bin 文件夹路径。即:;C:\Program Files\Java\jdk 1.8.0_101\bin(注意:此路径根据自己的实际安装目录来决定,最好去找到路径后拷贝,然后再粘贴)。配置完环境变量后,一路点击确定就可以啦。
4、 测试
快捷键win+r,输入cmd回车,打开命令行工具,输入命令java -version
,输出结果如下图。
5、 错误
关于jdk安装配置问题,会出现在测试的时候。
尤其注意在配置系统变量时的地址和书写格式最为重要。有很多朋友看网络教程直接复制地址以防出错,但是复制不一定是全对的。win10和win7的默认显示对话框是不一样的。
这两者对话框体现的同一个东西实则大同小异,很多教程赋值末尾会自带“ ; ”号,当你在第一个对话框中输入时系统也会自动在末尾添加一个分号那么算上赋值上去的就是两个当你后面再添加是就可能会冲入,我自己就是吃了这个亏当时把键盘都砸了。
在添加变量地址时记得观察一下。
第一个Java程序
JDK安装配置完成后我们就可以编写程序了,做一个简单的小程序也好让我们彻底了解Java程序的执行流程。
- 首先创建一个记事本文件,在其中编写如下代码:
public class HelloJava(){ //创建一个类
public static void main(String[] args){ //创建一个main方法
System.out.println(“我的第一个Java程序。”);//编写一条输出语句
}
}
要记住所有符号都是英文的。
- 编写完成并保存后退出文件,将记事本文档的后缀名(.txt)改为(.java)。
- win+r输入cmd打开命令行窗口输入文件的地址。
- 使用javac命令将文件编译为字节码文件。
- 在使用java命令执行代码。
要注意编译文件时的编译方式是UTF-8(意思就是中文),不然就像上图一样,输出的中文就是乱码。
当学会了如何编写程序时就会出现一个问题,当我们的代码量很庞大的同时也就意味着需要大量繁重的编译和测试等等工作,这样使用记事本开发会大大降低开发效率,这时我们就需要一个助手一样的软件帮助我完成这些重复的工作。
MyEcilpse安装
话不多说上菜!
链接:https://pan.baidu.com/s/1XoCLcAOSUepzC4PO6I4G2Q 提取码:ulez
安装时注意安装地址和选择电脑32位还是64位。
其他的下一步就完了。
破解教程很简单网上一大片这里就不多描述了,所需要的的文件就在链接中。
数据类型、变量和常量的使用
认识数据类型之前必须要先了解标识符和关键字。
我们暂时所能接触到的就是类名,就是我们上一段代码中的Hello在class后面。同时还有变量名、数组名、接口名、方法名等等。
标识符的命名规则
- 标识符可以由字母、数字、下划线( _ )和美元符( $ )组成,不能由数字开头。
- 标识符严格区分大小写。
- 标识符不能是Java的关键字和保留字。(关键字和保留字在后面会讲到)。
- 标识符的命名最好能反应其作用,见名知意。
关键字
关键字就是Java中声明语法必不可少的字。电脑理解人类的语言本来挺难的,而关键字就像一个特定暗号,每个关键字都有他独特的意义和结构用法。
如果随意使用关键字,会让电脑更难区分你要它做什么,所以关键字是不能用作标识符。
保留字
保留字就是在后续的Java版本中可能会被用作关键字的字。
byValue,cast, const,false, future,generic, goto,inner,null,operator, outer,rest,true,var
数据类型
大家肯定了解电脑不管做什么都是要通过运算才能完成想要达成的目的。那么必须给他相应的数据才能进行相应的操作。就像人类一样你告诉你的手下要他去做一件事情,可是你都不告诉他要做什么他就没有办法做事。
数据类型分类
数值型就是字面意思数值嘛,数字的值。
字符型也就是字符,这里这个char型的值只能有一个字符比如一个字母、数字、符号或者中文不管是什么他就只能存放一个。
布尔型是只有两个值分别是true和false分别代表是与否的意思。大多在判断中使用。
引用数据类型就是引用一组其他来源的数据。其中还有一个String类型表示字符串类型,但它不是八大类型之一也是比较常用的。
最基本的八大数据类型
字节型:这个数值型的范围是[-128,127],默认值是0。
短整型:这个数值型的范围是[-215,215-1],默认值是0。
整型: 这个数值型的范围是[-231,231-1],默认值是0。
长整型:这个数值型的范围是[-263,263-1],默认值是0L。
单精度浮点型:这个数值型的范围是[-3.4E38,3.4E38],默认值是0.0F。
双精度浮点型:这个数值型的范围是[-1.8E308,1.8E308],默认值是0.0D。
字符型:这个字符型的范围是[0,216-1],默认值是‘\u0000’。
布尔型:Java没有明确说出他的范围毕竟他只有两个值,默认值是false。
字节是什么意思呢?
众所周知电脑只能识别0和1,可是还有其他的数字,中文、英文等等各种语言。字节就会在其中起到作用,用0和1组成不同的顺序就可以实现其他数字,而不同的数字就可以组成不同的字符编码。
这里进制表示就会显得尤为重要。
八进制:以0开头,包括0~7的数字。如:023、057
十六进制:以0x或0X开头,包括0~9的数字,及字母a~f、A~F。如:0x12、0XABCFF
在编程路中大家还会发现各种不同的进制表示,可以问问度娘,她一定比我还要清楚。
变量
变量就是存放数据的一个空间,声明一个变量就是在电脑中开辟一个空间来存放数据,声明也会被称为定义。
语法:数据类型 变量名;
存放什么类型的数据就用什么数据类型,由于开辟空间的地址是在难以记忆,就会用变量名俩代替也可以把它理解为代号。
而为一个变量赋值的过程就是将数据存放在空间中的过程。
语法: 数据类型 变量名; //先声明
变量名 = 变量值; //再赋值
这就是一个完成的变量嫌麻烦可以把这两行二合一。
语法:数据类型 变量名 = 变量值;
注意:变量必须先声明在使用。
转义字符
我们毕竟写的是代码,有很多字符在代码中有着特殊的意义不能随意使用,但是这些字符如果当我们必须用作数据的时候怎么办,这里就会用到转义字符。
类型转换
当任务中出现必须将一个类型的数据转换为另一个类型的时候类型转换就显得尤为重要。
类型转换分为两种,一种是自动类型转换用于数据类型的数据范围大转小,第二种就是强制类型转换用于数据类型的数据范围小转大,会丢失数据细节。
自动类型转换不需要操作直接转就好。
int num = 12; //定义一个int类型的变量并赋值
double sum = num; //将num赋值给sum类型自动转换
强制类型需要语法转换。
double num = 12.35; //定义一个double类型的变量并赋值
int sum = (int)num; //将num赋值给sum需要强制类型转换
总体类型转换图
常量
在大型项目中有很多数据是固定的不管任何时候都不会更改的,那么为了防止后期维护时的意外就会用到常量。
常量使用过final关键字实现的,当在一个变量前面加final关键字后这个变量将只能做一次赋值,不能更改。
final int = 123;
Java中多种运算符的应用
运算符
也叫操作符,运算符用来指明对操作数(就是你要进行运算的数据)的运算方式。运算符按照要求的操作数数目来凤,分别是单目运算符、双目运算符和三目运算符。运算符按照其功能分类,分别有算术运算符、赋值运算符、关系运算符、逻辑运算符、条件运算符和位运算符。
1、算术运算符
算数运算符主要用于基本的算数运算。
2、自增自减运算符
3、赋值运算符
赋值运算符就是“=”,它会将右边的数据赋值给左边,是从右往左运算的。
int sum = 3;
错误写法:double num;123.12 = num;
4、符合赋值运算符
5、关系运算符
比较运算符用于判断两个数据的大小,比较的结果是一个布尔值。
6、逻辑运算符
逻辑运算符常用于选择结构后面会讲到。
||运算符又叫短路运算符,如果第一个表达式()的值就能决定最后的结果,运算符有边的表达式就不再计算。
!运算符,对原条件进行取反。
int a = 1, b = 2;
boolean a = (a < b) && (a > b);
//两个比较必须都是对的结果就会为true,否则为false
boolean b = (a < b) || (a > b);
//两个比较只要有一个是对的结果就会为true,否则为false
boolean c = (a < b) ! (a > b);
//左边的对比结果不等于右边的比较结果结果就会为true,否则为false
7、条件运算符
Java中的条件运算符是三目运算符。
语法:布尔表达式?表达式1:表达式2
布尔表达式的值为true则返回表达式1的值,否则返回表达式2的值。
表达式
表达式是由运算符和操作数组成的。
运算符的优先级
越上面越为优先,自上而下。
选择结构的执行流程与应用
在学习选择结构前,我们先了解一下什么是流程控制。
程序在执行代码时是逐条依次执行的,任何代码的流程改变都会影响程序最后的结果。为了达到不同的目的我们就会需要改变程序的执行流程,就会用到流程控制语句。
三大流程控制语句:顺序、选择、循环。
其中顺序就是最基本的程序执行流程,也就是逐条依次执行。而选择就是通过不同的判断结果来决定要执行的代码。循环则是通过条件来决定其中代码不停执行循环的次数。
选择结构只是整个流程控制语句中的一个大类,在实现通过不同的判断结果来决定执行流程的时候也会使用不同的选择结构。
if结构
if(条件){
//语句;
}
条件的结果必须是一个布尔类型的值,如果条件结果为true那就会执行大括号中的语句,反之则不会执行直接跳过if结构继续执行后面的代码。
if结构中的大括号可以忽略不写的,但是为了后续的维护和可读性建议在代码量很少的情况可以忽略。
if-else结构
if(条件)
//语句1;
else
//语句2;
if-else和if结构一样的道理只是有了更多选择的余地,档条件的结果为false时就会执行语句2不会执行语句1,反之同理条件为true时执行语句1不会执行语句2。
多重if结构
if(条件1)
//语句1;
else if(条件2)
//语句2;
……
else
//语句3;
多重if结构就更容易理解但是逻辑性更强,依次判断条件1、2、3……满足条件结果就执行后面大括号中的语句,不会再执行多重if结构中的任何语句,如果所有条件都不满足则执行else中的语句,并结束结构。
嵌套if结构
if(表达式1)
if(表达式2)
if(表达式3)
//语句;
else
//语句;
理解了if结构的执行流程,嵌套if结构就会很轻松的明白,就是一个if结构套着一个if层层判断,但是当实际操作时会有很大的逻辑难度。
switch结构
但我们学会了if结构就可以完成基于判断的所有问题了,那为什么还要学习switch结构呢?
if结构与switch结构的区别
a、if结构
判断条件是布尔类型
判断条件是一个范围
b、switch结构
判断条件是常量值
现在明白为什么要学习switch结构了吧!
switch(表达式){
case 常量表达式1:
语句1;break;
case 常量表达式2:
语句2;break;
……
default;
语句3;
}
当表达式的结果是常量值中的任意一个就会执行后面的代码,如果结果不是任何一个常量时就会执行default后面的代码。