1. Java语言跨平台原理
1.1 Java语言的特点
- 完全面向对象: Java语言支持封装、继承、多态,面向对象编程,让程序更好达到
高内聚
,低耦合
的标准。 - 支持分布式: Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
- 健壮型: Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。
- 安全: Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。如:安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查。
- 跨平台性: Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。
1.2 Java语言的跨平台原理
- 跨平台:任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系统上,这个特性称为Java语言的跨平台特性。该特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM运行在操作系统上。
- JVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的运行环境之一,也是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在JVM 之上。
如图所示,Java的虚拟机本身是不具备跨平台功能的,每个操作系统下都有不同版本的虚拟机。
- JRE (Java Runtime Environment) :是Java程序的运行时环境,包含
JVM
和运行时所需要的核心类库
。 - JDK (Java Development Kit):是Java程序开发工具包,包含
JRE
和开发人员使用的工具。
如果运行一个已有的Java程序,那么只需安装JRE
即可。
如果开发一个全新的Java程序,那么必须安装JDK
,其内部包含JRE
。
2. Java基础知识
2.1 注释(annotation)
-
注释:就是对代码的解释和说明。其目的是让人们能够更加轻松地了解代码。为代码添加注释,是十分必须要的,它不影响程序的编译和运行。
-
Java中有
单行注释
、多行注释
和文档注释
-
单行注释以
//
开头,以换行
结束,格式如下:// 注释内容
-
多行注释以
/*
开头,以*/
结束,格式如下:/*注释内容*/
-
文档注释以
/**
开头,以*/
结束/**注释内容*/
-
2.2 关键字(keyword)
关键字:是指在程序中,Java已经定义好的单词,具有特殊含义。
- HelloWorld案例中,出现的关键字有
public
、class
、static
、void
等,这些单词已经被Java定义好 - 关键字的特点:全部都是
小写字母
。 - 关键字比较多,不需要死记硬背,学到哪里记到哪里即可。
关键字一共50个,其中const和goto是保留字。
true,false,null看起来像关键字,但从技术角度,它们是特殊的布尔值和空值。
2.3 标识符( identifier)
简单的说,凡是程序员自己命名的部分都可以称为标识符。
即给类、变量、方法、包等命名的字符序列,称为标识符。
1、标识符的命名规则(必须遵守)
(1)Java的标识符只能使用26个英文字母大小写,0-9的数字,下划线_,美元符号$
(2)不能使用Java的关键字(包含保留字)和特殊值
(3)数字不能开头
(4)不能包含空格
(5)严格区分大小写
2、标识符的命名规范(遭受鄙视)
(1)见名知意
(2)类名、接口名等:每个单词的首字母都大写,形式:XxxYyyZzz,
例如:HelloWorld,String,System等
(3)变量、方法名等:从第二个单词开始首字母大写,其余字母小写,形式:xxxYyyZzz,
例如:age,name,bookName,main
(4)包名等:每一个单词都小写,单词之间使用点.分割,形式:xxx.yyy.zzz,
例如:java.lang
(5)常量名等:每一个单词都大写,单词之间使用下划线_分割,形式:XXX_YYY_ZZZ,
例如:MAX_VALUE,PI
2.4 初识数据类型(data type)
数据类型分类
Java的数据类型分为两大类:
- 基本数据类型:包括
整数
、浮点数
、字符
、布尔
。 - 引用数据类型:包括
类
、数组
、接口
。
基本数据类型
四类八种基本数据类型:
Java中的默认类型:整数类型是
int
、浮点类型是double
。
2.5 常量(constant)
-
常量:在程序执行的过程中,其值不可以发生改变的量
-
常量的分类:
-
自定义常量:通过final关键字定义(后面在面向对象部分讲解)
-
字面值常量:
字面值常量 举例 字符串常量 ”HelloWorld“ 整数常量 12,-23 浮点常量 12.34 字符常量 ‘a’,‘0’,‘我’ 布尔常量 true,false 空常量 null public class ConstantDemo {public static void main(String[] args) {//字符串常量System.out.println("HelloWorld");//整数常量System.out.println(12);System.out.println(-23);//小数常量System.out.println(12.34);//字符常量System.out.println('a');System.out.println('0');System.out.println('我');//布尔常量System.out.println(true);System.out.println(false);} }
注意事项:
字符常量,单引号里面有且仅有一个字符
空常量,不可以在输出语句中直接打印
-
2.6 变量(variable)
2.6.1 变量的概念
变量:在程序执行的过程中,其值可以发生改变的量
变量的作用:用来存储数据,代表内存的一块存储区域,这块内存中的值是可以改变的。
2.6.2 变量的三要素
1、数据类型
2、变量名
3、值
2.6.3 变量的使用应该注意什么?
1、先声明后使用
如果没有声明,会报“找不到符号”错误
2、在使用之前必须初始化
如果没有初始化,会报“未初始化”错误
3、变量有作用域
如果超过作用域,也会报“找不到符号”错误
4、在同一个作用域中不能重名
2.6.4 变量的声明和赋值、使用的语法格式?
1、变量的声明的语法格式:
数据类型 变量名;
例如:
int age;
String name;
double weight;
char gender;
boolean isMarry;
2、变量的赋值的语法格式:
变量名 = 值;
例如:
age = 18;
name = "古力娜扎"; //字符串的值必须用""
weight = 44.4;
gender = '女';//单字符的值必须使用''
isMarry = true;
3、变量的使用的语法格式:
通过变量名直接引用例如:
(1)输出变量的值
System.out.println(age);
System.out.println(name);
System.out.println(weight);
System.out.println(gender);
System.out.println(isMarry);(2)计算
age = age + 1;//年龄增加1岁
2.6.7 练习:定义所有基本数据类型的变量和字符串变量并输出
public class VariableDemo {public static void main(String[] args){// 定义字节型变量byte b = 100;System.out.println(b);// 定义短整型变量short s = 1000;System.out.println(s);// 定义整型变量int i = 123456;System.out.println(i);// 定义长整型变量long l = 12345678900L;System.out.println(l);// 定义单精度浮点型变量float f = 5.5F;System.out.println(f);// 定义双精度浮点型变量double d = 8.5;System.out.println(d);// 定义布尔型变量boolean bool = false;System.out.println(bool);// 定义字符型变量char c = 'A';System.out.println(c);// 定义字符串变量String s = "HelloWorld";System.out.println(s);}
}
long类型:如果赋值的常量整数超过int范围,那么需要在数字后面加L。
float类型:如果赋值为常量小数,那么需要在小数后面加F。
char类型:使用单引号’’
String类型:使用双引号""
2.7 两种常见的输出语句
-
换行输出语句:输出内容,完毕后进行换行,格式如下:
System.out.println(输出内容);
-
直接输出语句:输出内容,完毕后不做任何处理,格式如下
System.out.print(输出内容);
示例代码:
String name = "古力娜扎";
int age = 18;对比如下两组代码:
System.out.println(name);
System.out.println(age);System.out.print(name);
System.out.print(age);对比如下两组代码:
System.out.print("姓名:" + name +",");//""中的内容会原样显示
System.out.println("年龄:" + age);//""中的内容会原样显示System.out.print("name = " + name + ",");
System.out.println("age = " + age);
注意事项:
换行输出语句,括号内可以什么都不写,只做换行处理
直接输出语句,括号内什么都不写的话,编译报错
如果()中有多项内容,那么必须使用 + 连接起来
如果某些内容想要原样输出,就用"“引起来,而要输出变量中的内容,则不要把变量名用”"引起来