Java的三大版本
计算机高级语言的类型主要有编译型和解释型两种,而Java语言是两种类型的结合
Java首先利用文本编辑器编写Java源程序,源文件的后缀名为 .Java;再利用编译器将 源文件编译成字节码文件,字节码文件的后缀名为 .class;最后利用虚拟机(解释器)解释执行
Java的三大版本
1. Java SE(Java Standard Edition):标准版,定位在个人计算机的应用(发展不好, Windows桌面应用一般不用Java SE开发)
2. (主流)Java EE(Java Enterprise Edition):企业版,定位在服务器端的应用
3. Java ME(Java Micro Edition):微型版,定位在消费电子产品的应用上(用的越来越少)
注意:Java ME不是安卓开发,两码事
JVM、JRE和JDK
JVM(Java Virtual Machine)就是一个虚拟的用于执行bytecode字节码的“虚拟计算机”。它也定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域。JVM负责将Java解释运行,边解释边运行,这样,速度就会受到一定的影响
不同的操作系统有不同的虚拟机。Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。Java虚拟机是实现跨平台的核心机制
JVM、JRE和JDK之间的关系
1. JVM(Java Virtual Machine)就是虚拟的用于执行bytecode字节码的“虚拟计算机”
2. Java Runtime Environment(JRE)包含:Java虚拟机、库函数、运行Java应用程序所必 须的文件
3. Java Development Kit(JDK)包含:包含JRE、以及增加编译器和调试器等用于程序开发的文件
下载并安装JDK
百度搜索JDK,进入官网进行下载,进入到下载界面选择java SE11.0.4(LTS,长期支持的意思)或者java SE 12.0.2都可以,这里下载java SE11.0.4(LTS)。
java的安装就是傻瓜式的安装,一直下一步就可以了,注意安装路径即可。
配置环境变量
找到环境变量,然后选择新建,变量名为JAVA_HOME,变量值时Java的目录,注意这块不需要带\bin。
找到系统变量的path,点击编辑/编辑文本,在变量的得最前面加上[%JAVA_HOME%\bin;]。
Path环境变量的作用
作用是指定命令搜索路径,在i命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。
第一个Java程序
编写编译执行代码
编写源代码: 新建Hello.java文件
编译源代码,在Hello.java文件目录下打开cmd,javac Hello.java
,编译Hello
执行源代码,在cmd中输入java Hello
,运行Hello,不要带后缀
代码详解
class 称为 类 ,是java中很重要的概念,类名要和文件名保持一致,要求首字母大写,例如文件名Hello,则class名称就是Hello。
public static void main(String[] args),称为主函数,也叫主方法,这是程序的入口。
System.out.print(“……”);用于输出一段内容,不换行。
System.out.println(“……”);输出一段内容后换行。
变量的声明与赋值
声明变量
Java语言就是表示人的语言
1. 变量:可变的值
2. 声明:说一下
声明变量
有个整数a:int a;(变量的声明)
有个整数a它的值为10:int a = 10;(声明一个变量,赋值为10)
例子:
int a = 30;
System.out.print("哈哈" + a);
输出:哈哈30
变量本质
变量本质上就是代表一个”可操作的储存空间”,空间位置是确定的,但是里面放什么值不确定。我们可以通过变量名来访问”对应的储存空间”,从而操纵这个”储存空间”储存的值
Java是一种强类型语言,每个变量都必须声明其数据类型。变量的数据类型决定了变量占据储存空间的大小,比如int a = 3;,表示a变量的储存空间的大小为4个字节
示例:不同数据类型的常量在内存中分配不同的空间
double a;
long b;
int c;
注意事项:
每个变量都有类型,类型可以是基本类型,也可以是引用类型
变量名必须是合法的标识符
变量声明是一条完整的语句,因此每一个声明必须以分号结束
常量(Constant)
常量通常指的是一个固定的值,例如:1、2、3、’a’、’b’、true、false、”helloWorld”等。
在Java语言中,主要是利用关键字final来定义一个常量。 常量一旦被初始化后不能再更改其值。
声明格式为:final type varName = value;
常量的声明及使用
public class TestConstant {
public static void main(String[] args) {
final double PI = 3.14;
//PI = 3.15 编译器报错,不能再被赋值
double r = 4; //变量
double area = PI * r * r;
double circle = 2 * PI * r;
System.out.println("area = " + area);
System.out.printf("circle = " + circle);
}
}
为了更好的区分和表述,一般将1、2、3、’a’、’b’、true、false、”helloWorld”等称为字面常量,而使用final修饰的PI等称为符号常量。
老鸟建议
1. 变量和常量命名规范(规范是程序员的基本准则,不规范会直接损害你的个人形象):
2. 所有变量、方法、类名:见名知意
3. 类成员变量:首字母小写和驼峰原则: monthSalary
4. 局部变量:首字母小写和驼峰原则
5. 常量:大写字母和下划线:MAX_VALUE
6. 类名:首字母大写和驼峰原则: Man, GoodMan
7. 方法名:首字母小写和驼峰原则: run(), runRun()
八种基本数据类型
基本介绍
Java是一种强类型语言,每个变量都必须声明其数据类型。 Java的数据类型可分为两大类:基本数据类型(primitive data type)和引用数据类型(reference data type)。
Java中定义了3类8种基本数据类型
数值型- byte、 short、int、 long、float、 double
字符型- char
布尔型-boolean
注意事项
引用数据类型的大小统一为4个字节,记录的是其引用对象的地址!
整型变量/常量
整型用于表示没有小数部分的数值,它允许是负数。整型的范围与运行Java代码的机器无关,这正是Java程序具有很强移植能力的原因之一。与此相反,C和C++程序需要针对不同的处理器选择最有效的整型。
Java 语言整型常量的四种表示形式
十进制整数,如:99, -500, 0
八进制整数,要求以 0 开头,如:015
十六进制数,要求 0x 或 0X 开头,如:0x15
二进制数,要求0b或0B开头,如:0b01110011
Java语言的整型常数默认为int型,声明long型常量可以后加‘ l ’或‘ L ’
【示例1】长整型常数的声明
long a = 55555555; //编译成功,在int表示的范围内(21亿内)。
long b = 55555555555;//不加L编译错误,已经超过int表示的范围。
//我们修改成long类型的常量即可:
long b = 55555555555L;
【示例2】
public class TestConstant {
public static void main(String[] args) {
//byte a = 30;
//int b = 15;
int c = 015; //八进制
int d = 0x15; //十六进制
int e = 0b1101; //二进制
//以十进制输出
System.out.println(c);
System.out.println(d);
System.out.println(e);
}
}
字符型变量/常量
字符型在内存中占2个字节,在Java中使用单引号来表示字符常量。例如’A’是一个字符,它与”A”是不同的,”A”表示含有一个字符的字符串。char 类型用来表示在Unicode编码表中的字符。Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符。
示例:字符型举例
char eChar = 'a';
char cChar ='中';
unicode具有从0到65535之间的编码,他们通常用从’\u0000’到’\uFFFF’之间的十六进制值来表示(前缀为u表示Unicode)
示例:字符型的十六进制值表示方法
char c = '\u0061';
Java 语言中还允许使用转义字符 ‘\’ 来将其后的字符转变为其它的含义。常用的转义字符及其含义和Unicode值如表
字符连接,在最前面加上双引号(空字符串)
示例:System.out.println(“” + ‘a’+’b’);
如果在最前面不加双引号,那则是uincode码值相加,并将加的值输出最前面必须是字符串,后面可以+字符串/字符
char e = 'a';
char f = 'b';
System.out.println("" + e + f);
System.out.println("字符是" + e);
输出结果为
ab
字符是a
char型(文本型)用于存放字符的数据类型,占用2个字节,采用unicode编码,它的前128字节编码与ASCII兼容。
字符的存储范围在\u0000~\uFFFF,在定义字符型的数据时候要注意加’’,比如’1’表示字符’1’而不是数值1,char c=’1’;我们试着输出c看看,System.out.println(c);结果就是1,而如果我们这样输出呢?System.out.println(c + 0);结果却变成了49。
如果我们这样定义c看看,charc=’\u0031’;输出的结果仍然是1,这是因为字符’1’对应着unicode编码就是\u0031。
浮点型
float和doub1e是表示浮点型的数据类型,他们之间的区别在于他们的精确度不同。
float 3.402823e+38~1.401298e-45(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方)占用个字节double 1.797693e+308~4.9000000e-324占用8个字节。
doub1e型比float型存储范围更大,精度更高,所以通常的浮点型的数据在不声明的情况下都是doub1e型的,如果要表示一个数据是float型的,可以在数据后面加上“F”。
浮点型的数据是不能完全精确的,所以有的时候在计算的时候可能会在小数点最后几位出现浮动,这是正常的。
boolean型(布尔型)
这个类型只有两个值,true和false(真和非真)boolean t=true;boolean f=false;
认识字符串类型(String)
利用关键字String定义
例如:String a = “我爱我的祖国”;
字符串的连接
String a = "我爱我的祖国";
String b = "祖国也爱我";
String c = a + "," + b + "。";
System.out.println(c);
空字符串也是字符串
例如:”” = 字符串
局部变量的字符串类型必须赋予初值;