1、JDK与JRE
JDK:Java Development Kit
JRE:Java Runtime Environment
它提供一层壳,包裹操作系统。
JVM:Java Virtual Machine
一台在JRE中运行的虚拟电脑。
jdk文件夹比jre文件夹,多了一个javac.exe的文件。
编译:翻译。将用类似英语的自然语言书写的文字(程序)翻译成电脑所能识别的0和1(机器语言)。
2、java的特点
- 面向对象
- 跨平台(Write Once, Run anywhere)
3、开发java程序3步曲
- xx.java
- javac xx.java
- java xx
4、常用格式控制符
5、数据类型
用来确定要存储在内存单元中的数据的类型。
(1)原始数据类型 / 基本数据类型
(2)引用数据类型
数组、String、使用class定义的类型
6、变量命名规则
7、类型转换(Type Convert)
(1)自动类型转换
条件:
- 两种类型兼容。
例如:int和double兼容 - 目标类型大于源类型
例如:double型大于int型
对于表达式而言,如果一个操作数为double型,则整个表达式都提升为double型。
(2)强制类型转换
条件:
- 两种类型兼容。
例如:int和double兼容 - 目标类型小于源类型
例如:int型小于double型
8、逻辑运算符
Java提供了两个在其它计算机语言中没有的逻辑运算符,这就是逻辑与和逻辑或的短路版本。
9、控制流语句
(1)break
用于do-while、while、for等循环语句中时,可跳出循环而执行循环后面的语句。
(2)continue
只能用在循环里。用于跳过循环体中剩余的语句而执行下一次循环。
10、数组
数组是一个变量,存储相同数据类型的一组数据。
(1)数组使用4步曲
-
声明数组:告诉计算机数据类型是什么。
int[] a; 数据类型[] 数组名 int a[]; 数据类型 数组名[]
-
分配空间:告诉计算机分配几个格子
a = new int[5]; int a = new int[5]; 数据类型[] 数组名 = new 数据类型[大小];
-
赋值:向分配的格子里放数据
a[0] = 8;
-
处理数据
a[0] = a[0] * 10;
(2)关于数组长度
C语言不检查数组的边界,数组索引完全由程序员掌握。
而在Java中,程序员可以不再关注数组的长度,数组自带的length属性将负责保管数组的长度;
Java对数组下标越界情况强加约束。如果试图访问不在有效索引以内的元素,将会引发运行错误。
(3)new关键字
在C语言中,从存储方式上讲,声明数组有两种情况:
在栈内存中分配空间,如:
int arr[10]; //声明有10个整型元素的数组
在堆内存中分配空间,如:
int *p = NULL; //声明整型指针
p = (int*)malloc(10 * sizeof(int)); //指针指向堆空间
C语言允许有栈数组,也允许有堆数组。
在Java中,数组是引用数据类型,不允许将数组分配在栈内存中,只能分配在堆内存中。
Java中没有类似于malloc、calloc、realloc和free等函数,取而代之的是new关键字。
new是Java中内置的操作符。
new操作符用来从堆中分配指定类型的内存空间,并返回相应类型的引用。其作用类似于malloc函数。
11、main函数的命令行参数
在命令行使用java命令执行程序时,可以将一些参数传递给main函数;可以从命令行传递任意多个字符串给main函数,其间使用空格隔开,也可以不传递任何参数;这些传递进来的多个字符串最后以字符串数组的形式,供main函数中加以使用。
main函数携带的String[](字符串数组)类型的形参args正是为了接收这些来自命令行的参数。
例:
public class ArgumentDemo
{
public static void main(String[] args)
{
int len = args.length; //获得命令行参数的个数
if (len > 0) //判断是否有命令行参数
{
//如果有,将其逐一打印到控制台
System.out.println(len + "个命令行参数,具体如下:");
for (int i = 0; i < args.length; i++)
{
System.out.println(args[i]);
}
}
else
{
//否则给出提示信息
System.out.println("您没有传递任何命令行参数。");
}
}
}
12、输入与输出
(1)从命令行接收输入
Scanner scan = new Sanner(System.in);
例:
public class ArgumentDemo
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in); //定义一个引用变量
int num = scan.nextInt();
System.out.println(num);
}
}
(2)打印到屏幕上
System.out.println():换行输出
System.out.print():输出但不换行
无论输出什么类型的数据,只需将数据作为参数传递给它们即可,而无需像C语言中那样,使用%s、%d之类的控制字符,如:
int a = 10;
float f = 3.14f;
System.out.println(a);
System.out.print(f);
System.out.println('X');