知识屋:更实用的电脑技术知识网站
所在位置:首页 > 科技

java语言概述、基本语法

发表时间:2022-03-26来源:网络

开始复习java基础

一、java语言概述

1. java语言概述

1.1 基础常识

软件:即一系列按照特定顺序组织的计算机数据和指令的集合。分为:系统软件 和 应用软件
系统软件:windows , mac os , linux ,unix,android,ios,…
应用软件:word ,ppt,画图板,…
人机交互方式: 图形化界面 vs 命令行方式
应用程序 = 算法 + 数据结构
常用DOS命令:

1.2 计算机语言的发展迭代史

​ 第一代:机器语言
​ 第二代:汇编语言
​ 第三代:高级语言

​ 面向过程:C,Pascal、Fortran
​ 面向对象:Java,JS,Python,Scala,…

1.3 Java语言应用的领域

Java Web开发:后台开发
大数据开发:
Android应用程序开发:客户端开发

1.4 Java语言的特点

面向对象性: 两个要素:类、对象 三个特征:封装、继承、多态 健壮性:① 去除了C语言中的指针 ②自动的垃圾回收机制 -->仍然会出现内存溢出、内存泄漏 跨平台型:write once,run anywhere:一次编译,到处运行

功劳归功于:JVM

2. 开发环境的搭建(重点)

2.1 JDK、JRE、JVM的关系

=

2.2 JDK的下载、安装

​ 下载:官网,github
安装:直接安装
注意问题:安装软件的路径中不能包含中文、空格。

2.3 path环境变量的配置

2.3.1 为什么配置path环境变量?

path环境变量:windows操作系统执行命令时所要搜寻的路径
为什么要配置path:希望java的开发工具(javac.exe,java.exe)在任何的文件路径下都可以执行成功。

2.3.2 如何配置?

3. 开发体验——HelloWorld

3.1 编写

创建一个java源文件:HelloWorld.java

class HelloChina{ public static void main(String[] args){ System.out.println("Hello,World!"); } }

3.2 编译

javac HelloWorld.java

3.3 运行

java HelloChina

3.4 总结第一个程序

1.java程序编写-编译-运行的过程
**编写:**我们将编写的java代码保存在以".java"结尾的源文件中
编译:使用javac.exe命令编译我们的java源文件。格式:javac 源文件名.java
运行:使用java.exe命令解释运行我们的字节码文件。 格式:java 类名
2.在一个java源文件中
可以声明多个class
。但是,只能最多有一个类声明为public的。而且要求声明为public的类的类名必须与源文件名相同。

3.程序的入口是main()方法。格式是固定的。

4.输出语句:

​ System.out.println():先输出数据,然后换行
​ System.out.print():只输出数据
5.每一行执行语句都以**";"**结束。
6.编译的过程:编译以后,会生成一个或多个字节码文件。字节码文件的文件名与java源文件中的类名相同。

3.6. 注释:Comment

分类:
单行注释://
多行注释:/* /
文档注释:/* */
作用:
① 对所写的程序进行解释说明,增强可读性。方便自己,方便别人
② 调试所写的代码
特点:
①单行注释和多行注释,注释了的内容不参与编译。
换句话说,编译以后生成的.class结尾的字节码文件中不包含注释掉的信息
② 注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。
③ 多行注释不可以嵌套使用
2.Java API 文档: 
API:application programming interface。习惯上:将语言提供的类库,都称为api.
API文档:针对于提供的类库如何使用,给的一个说明书。

习题:

1. JDK,JRE,JVM三者之间的关系,以及JDK、JRE包含的主要结构有哪些 JDK = JRE + Java的开发工具(javac.exe,java.exe,javadoc.exe) JRE = JVM + Java核心类库 2.Java变量按照数据类型怎么划分?并指出Java的基本数据类型有哪8byte short int long char float double boolean 引用数据类型:类、接口、数组 3.说明基本数据类型变量之间自动类型提升的运算规则。 byteshortchar -àint àlong àfloat àdouble

二、基本语法

2.1 关键字与标识符

2.1.1 java关键字的使用

​ 定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
​ 特点:关键字中所字母都为小写
具体哪些关键字:

2.1.2 保留字:

现Java版本尚未使用,但以后版本可能会作为关键字使用。
具体哪些保留字:goto 、const
注意:自己命名标识符时要避免使用这些保留字

2.1.3 标识符的使用

定义:凡是自己可以起名字的地方都叫标识符。
涉及到的结构:
包名、类名、接口名、变量名、方法名、常量名

规则:(必须要遵守。否则,编译不通过)

规范:(可以不遵守,不影响编译和运行。但是要求遵守)

2.2 变量的使用

2.2.1 按数据类型分类

详细说明:

1.2 按声明的位置分类(了解)

//1. 整型:byte(1字节=8bit) \ short(2字节) \ int(4字节) \ long(8字节)byte范围:-128 ~ 127 ② 声明long型变量,必须以"l""L"结尾 ③ 通常,定义整型变量时,使用int型。 ④ 整型的常量,默认类型是:int//2. 浮点型:float(4字节) \ double(8字节) ① 浮点型,表示带小数点的数值 ② float表示数值的范围比long还大 ③ 定义float类型变量时,变量要以"f""F"结尾 ④ 通常,定义浮点型变量时,使用double型。 ⑤ 浮点型的常量,默认类型为:double //3. 字符型:char (1字符=2字节) ① 定义char型变量,通常使用一对'',内部只能写一个字符 ② 表示方式:1.声明一个字符 2.转义字符 3.直接使用 Unicode 值来表示字符型常量 //4.布尔型:boolean ① 只能取两个值之一:truefalse ② 常常在条件判断、循环结构中使用

2.2.2 按声明的位置分类(了解)

2.2.3 定义变量的格式

数据类型 变量名 = 变量值; 或 数据类型 变量名; 变量名 = 变量值;

2.2.4 变量使用的注意点

① 变量必须先声明,后使用 ② 变量都定义在其作用域内。在作用域内,它是有效的。换句话说,出了作用域,就失效了 ③ 同一个作用域内,不可以声明两个同名的变量

2.2.5 基本数据类型变量间运算规则

1) 涉及到的基本数据类型:除了boolean之外的其他72) 自动类型转换(只涉及7种基本数据类型) 结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。 **bytecharshort --> int --> long --> float --> double** 特别的:当bytecharshort三种类型的变量做运算时,结果为int型 说明:此时的容量大小指的是,表示数的范围的大和小。比如:float容量要大于long的容量 3) 强制类型转换(只涉及7种基本数据类型):自动类型提升运算的逆运算。 1.需要使用强转符:() 2.注意点:强制类型转换,可能导致精度损失。 4)String与8种基本数据类型间的运算 1.String属于引用数据类型,翻译为:字符串 2.声明String类型变量时,使用一对"" 3.String可以和8种基本数据类型变量做运算,且运算只能是连接运算:+ 4.运算的结果仍然是String类型 避免: String s = 123;//编译错误 String s1 = "123"; int i = (int)s1;//编译错误

2.3 运算符

2.3.1 算术运算符

1.算术运算符: + - * / % (前)++ (后)++ (前)-- (后)-- +
【典型代码】

//除号:/ int num1 = 12; int num2 = 5; int result = num1 / num2; System.out.println(result);//2 // %:取余运算 //结果的符号与被模数的符号相同 //开发中,经常使用%来判断能否被除尽的情况。 int m1 = 12; int n1 = 5; System.out.println("m1 % n1 = " + m1 % n1); int m2 = -12; int n2 = 5; System.out.println("m2 % n2 = " + m2 % n2); int m3 = 12; int n3 = -5; System.out.println("m3 % n3 = " + m3 % n3); int m4 = -12; int n4 = -5; System.out.println("m4 % n4 = " + m4 % n4); //(前)++ :先自增1,后运算 //(后)++ :先运算,后自增1 int a1 = 10; int b1 = ++a1; System.out.println("a1 = " + a1 + ",b1 = " + b1); int a2 = 10; int b2 = a2++; System.out.println("a2 = " + a2 + ",b2 = " + b2); int a3 = 10; ++a3;//a3++; int b3 = a3; //(前)-- :先自减1,后运算 //(后)-- :先运算,后自减1 int a4 = 10; int b4 = a4--;//int b4 = --a4; System.out.println("a4 = " + a4 + ",b4 = " + b4);

【特别说明的】
1.//(前)++ : 先自增1,后运算
//(后)++ : 先运算,后自增1
2.//(前)-- : 先自减1,后运算
//(后)-- : 先运算,后自减1
3.连接符:+:只能使用在String与其他数据类型变量之间使用。

2.3.2 赋值运算符

2.赋值运算符:= += -= *= /= %=
【典型代码】

int i1,j1; //连续赋值 i1 = j1 = 10; //*************** int i2 = 10,j2 = 20; int num1 = 10; num1 += 2;//num1 = num1 + 2; System.out.println(num1);//12 int num2 = 12; num2 %= 5;//num2 = num2 % 5; System.out.println(num2);//2 short s1 = 10; //s1 = s1 + 2;//编译失败 s1 += 2;//结论:不会改变变量本身的数据类型 System.out.println(s1);

【特别说明的】
1.运算的结果不会改变变量本身的数据类型
2.
//开发中,如果希望变量实现+2的操作,有几种方法?(前提:int num = 10;)
//方式一:num = num + 2;
//方式二:num += 2; (推荐)

​ //开发中,如果希望变量实现+1的操作,有几种方法?(前提:int num = 10;)
​ //方式一:num = num + 1;
​ //方式二:num += 1;
​ //方式三:num++; (推荐)

2.3.3 比较运算符

3.比较运算符(关系运算符): == != > < >= < >= 0)){ System.out.println("我现在在北京");//我现在在北京 }else{ System.out.println("我现在在南京"); } System.out.println("num1 = " + num1);//num1 = 11 boolean b2 = true; b2 = false; int num2 = 10; if(b2 && (num2++ > 0)){ System.out.println("我现在在北京"); }else{ System.out.println("我现在在南京"); } System.out.println("num2 = " + num2);//num2 = 11 // 区分:| 与 || //相同点1:| 与 || 的运算结果相同 //相同点2:当符号左边是false时,二者都会执行符号右边的运算 //不同点3:当符号左边是true时,|继续执行符号右边的运算,而||不再执行符号右边的运算 //开发中,推荐使用|| boolean b3 = false; b3 = true; int num3 = 10; if(b3 | (num3++ > 0)){ System.out.println("我现在在北京"); }else{ System.out.println("我现在在南京"); } System.out.println("num3 = " + num3); boolean b4 = false; b4 = true; int num4 = 10; if(b4 || (num4++ > 0)){ System.out.println("我现在在北京"); }else{ System.out.println("我现在在南京"); } System.out.println("num4 = " + num4);

【特别说明的】
逻辑运算符操作的都是boolean类型的变量。而且结果也是boolean类型

2.3.5 位运算符

5.位运算符:> >>> & | ^ ~
【典型代码】

int i = 21; i = -21; System.out.println("i
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜