初步了解Java
Java概述
Java是目前最流行的编程语言,它以其强大的移植能力、多线程处理和网络处理能力成为研究人员与开发人员瞩目的焦点。
Java语言与C++语言的区别
Java语言是纯粹的面向对象语言,C++俗称“带类的C”既保留了C语言原有的所有优点还增加了面向对象的机制,那么Java与C++的区别如下所示:
- 运行过程不同 。Java源程序经过编译器编译成字节码文件然后由JVM解释执行,而C++/C经过编译、链接后生成可执行的二进制代码因此C++/C的执行速度比Java的执行速度快;
- 跨平台性。Java可以跨平台而C++/C不可以跨平台;
- Java没有指针而C++/C有指针;
- Java不支持多重继承,但是可以实现多个接口来达到类似的目的,C++支持多重继承;
- Java不需要对内存进行管理,有垃圾回收机制,C++/C需要对内存进行显示的管理;
- Java不支持运算重载,C++/C支持运算重载;
- Java中每个数据类型在不同的平台上所占字节数固定;
Java的特点
Java语言是一种高级编程语言,它具有简单、结构中立、面向对象、可移植、分布式、高性能、多线程、健壮、动态和安全等特点。
Java运行环境与开发环境
Java提供了一个免费的Java开发工具集(Java Development Kits,JDK),编程人员可以利用这些工具来开发或者调试Java程序。JDK式开发和运行Java程序的基本方法。
在安装好JDK后需要为计算机配置Java环境,配置环境方法如下所示:
- 打开计算机中的环境变量
- 点击环境变量,增加新的环境变量(JAVA_HOME、CLASSPATH)
注意:变量JAVA_HOME的值是JDK下载的路径。
变量CLASSPATH的值可直接复制:
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
变量值的第一个符号是小数点(.) - Path配置是在原有上添加,在最后添加时如果前面没有加分号,当前这条前要加。变量Path的值也可直接添加复制:
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; - 验证安装是否成功
按win键+R键输入cmd:
查看java版本:
执行java命令:
执行javac命令:
开发工具
eclipse、IntelliJ IDEA等软件,推荐使用idea因为它支持代码分析,可以更好的理解代码,如想要了解更多Java开发工具推荐看这位博主的博客:java程序员的必用的9款开发工具
Java基本数据类型与变量
一个Java程序是由一个或多个类组成的,类是由最基本的标识符、变量、运算符和语句等组成接下来将介绍Java的基本数据类型与变量。
Java基本数据类型
Java是一种强制类型的语言,要求每个变量、每个表达式都必须有确定的数据类型。Java编译器对所有的表达式和参数都要进行类型相容性的检查,以保证类型是兼容的。任何类型的不匹配都是错误的,在编译器完成编译以前,错误必须改正。Java不支持C/C++中指针类型、结构类型(struct)和联合类型(union)。
整型
数据类型 | 所占位数 | 数的范围 |
---|---|---|
byte | 8 | − 2 7 -2^7 −27~( 2 7 2^7 27-1) |
short | 16 | − 2 15 -2^{15} −215~( 2 15 2^{15} 215-1) |
int | 32 | − 2 31 -2^{31} −231~( 2 31 2^{31} 231-1) |
long | 64 | − 2 63 -2^{63} −263~( 2 63 2^{63} 263-1) |
一个整数数字隐含为int型,在表示long型常量时,需要在数字后面加上后缀L或l。3L表示一个long型的常量,而不是int型常量。在定义变量时,所赋值不能超过数据类型的表示范围。
浮点型
数据类型 | 所占位数 | 数的范围 |
---|---|---|
float(单精度浮点数) | 32 | 3.4e-038~3.4e+038 |
double(双精度浮点数) | 64 | 1.7e-308~1.7e+308 |
==一个浮点数字数默认为double型。==在一个浮点数后加字母F或f,表示float型。常量值3.14的类型是double;3.14F的类型是float。
字符类型
数据类型 | 所占位数 | 数的范围 |
---|---|---|
char | 16 | 0( \u0000)~65535(\uffff) |
char 类型是一个单一的 16 位 Unicode 字符,它可以存储任何字符。
注意:在Java的转义字符中:\ddd表示1 ~3位八进制数所表示的字符(ddd);\uxxxx表示1 ~4位十六进制数所表示的字符(xxxx)
布尔类型
布尔型数据类型用关键字boolean表示,只有true和false两个值,且它们不对应于任何整数值,经常在流程控制语句中使用。java默认是false。
变量
变量是Java程序中的基本存储单元,它的值可以修改。变量的定义包括类型、变量名和值等3个部分。其中,变量名必须是一个合法的标识符,变量的类型决定了变量的数据性质、范围和存储在内存中所占的字节数以及可以进行的合法操作。
变量的声明方式
int a,b,c;//声明了3个int类型的变量,声明后,系统将给变量分配内存空间
public int i=5,j=4;//在同一行中声明了两个public int 类型的变量,并将他们赋予了初始值,每个变量间用逗号分隔
byte z=13;//初始化byte类型的变量
String s="Hello";//声明并初始化字符串s
double d=3.14;//声明并初始化双精度浮点型变量d
char x='x';//声明并初始化字符x
声明变量时,前面什么都不写时默认为private类型
变量的分类
Java中有三类变量:
- 静态变量(类变量):有static修饰的且独立于方法之外的变量。
- 成员变量(实例变量):独立于方法之外但无static修饰的变量。
- 局部变量:在方法内部或代码块中声明的变量。
public class BookText {
int j=5;//成员变量
static String s="Hello Java!";//静态变量
{
System.out.println(j);
System.out.println(s);
}
public static void main(String[] args){
double j=10;//方法main的局部变量
System.out.println("Hello World!");
System.out.println(j);
BookText i=new BookText();//调用main方法外的BookText类
}
}
程序运行结果截图:
分析:第一个变量j定义在方法之外,因此首先打印的时main方法内j的值(10.0)当调用了方法外的类时,输出成员变量j(5)的值。
类型转换
- 若两个操作数其中一个时double类型,另一个操作数就会转换为double类型。
- 若其中一个是float类型,那么另一个也会转换为float类型。
- 若其中一个是long类型,那么另一个也会转换为long类型。
- 否则两个数都会转换为int类型。
- 强制类型转换实例:
double d=3.6415926;
int di=(int)d;
此时di的值为3(舍去小数点所有位数)
double d=3.6415926;
int di=(int)Math.round(d);
此时di的值为为4(对浮点数进行舍入运算)
常量
常量是在程序运行过程中不可被改变的量。在类型的前面个修饰符final关键字即可。例如:
final int MAX=100;
定义了一个int型的常量MAX,第一次赋值后,在程序中就不能再修改它了。
枚举类型
使用enum关键字来定义枚举类。具体可参照这位博主的文章:java枚举类的定义和使用
参考
[1]Java程序设计(第2版)清华大学出版社
[2]Java开源学习