侧边栏壁纸
博主头像
牧之

道阻且长、行则将至

  • 累计撰写 55 篇文章
  • 累计创建 32 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

00003_Java基础语法

牧之
2022-08-19 / 0 评论 / 0 点赞 / 118 阅读 / 4,698 字

注释

// 单行注释
/*
多行注释
*/

/**
文档注释
*/

单行注释和多行注释用于解释说明代码功能实现过程创建时间创建者等信息或使代码暂时不生效,文档注释用于生成javadoc文档。

public 关键字 修饰 class

  1. class可以用public关键字修饰。
  2. 如果class用public修饰,文件名必须与类名一致。
  3. 如果class没有用public修饰,文件名可以不与类名一致,编译时生成对应类名的字节码文件,可以正常运行这个类。
  4. 如果一个源文件中编写了多个类,编译成功后自动生成对应个数的字节码文件,可以分别运行这些字节码文件。
  5. 如果一个源文件中编写了多个类,最多只能有一个类可以使用public修饰,这个public所修饰的类只能是与文件名一致的类。

实际项目开发中,class要使用public修饰,且一份Java源文件只创建一个类。

Java关键字

序号 Java关键字类别 Java关键字 关键字含义
1 访问控制 private 一种访问控制方式:私用模式,访问控制修饰符,可以应用于类、方法或字段(在类中声明的变量)
2 访问控制 protected 一种访问控制方式:保护模式,可以应用于类、方法或字段(在类中声明的变量)的访问控制修饰符
3 访问控制 public 一种访问控制方式:共用模式,可以应用于类、方法或字段(在类中声明的变量)的访问控制修饰符。
4 类、方法和变量修饰符 abstract 表明类或者成员方法具有抽象属性,用于修改类或方法
5 类、方法和变量修饰符 class 声明一个类,用来声明新的Java类
6 类、方法和变量修饰符 extends 表明一个类型是另一个类型的子类型。对于类,可以是另一个类或者抽象类;对于接口,可以是另一个接口
7 类、方法和变量修饰符 final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量
8 类、方法和变量修饰符 implements 表明一个类实现了给定的接口
9 类、方法和变量修饰符 interface 接口
10 类、方法和变量修饰符 native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
11 类、方法和变量修饰符 new 用来创建新实例对象
12 类、方法和变量修饰符 static 表明具有静态属性
13 类、方法和变量修饰符 strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范
14 类、方法和变量修饰符 synchronized 表明一段代码需要同步执行
15 类、方法和变量修饰符 transient 声明不用序列化的成员域
16 类、方法和变量修饰符 volatile 表明两个或者多个变量必须同步地发生变化
17 程序控制 break 提前跳出一个块
18 程序控制 continue 回到一个块的开始处
19 程序控制 return 从成员方法中返回数据
20 程序控制 do 用在do-while循环结构中
21 程序控制 while 用在循环结构中
22 程序控制 if 条件语句的引导词
23 程序控制 else 用在条件语句中,表明当条件不成立时的分支
24 程序控制 for 一种循环结构的引导词
25 程序控制 instanceof 用来测试一个对象是否是指定类型的实例对象
26 程序控制 switch 分支语句结构的引导词
27 程序控制 case 用在switch语句之中,表示其中的一个分支
28 程序控制 default 默认,例如:用在switch语句中,表明一个默认的分支。Java8 中也作用于声明接口函数的默认实现
29 错误处理 try 尝试一个可能抛出异常的程序块
30 错误处理 catch 用在异常处理中,用来捕捉异常
31 错误处理 throw 抛出一个异常
32 错误处理 throws 声明在当前定义的成员方法中所有需要抛出的异常
33 包相关 import 表明要访问指定的类或包
34 包相关 package
35 基本类型 boolean 基本数据类型之一,声明布尔类型的关键字
36 基本类型 byte 基本数据类型之一,字节类型
37 基本类型 char 基本数据类型之一,字符类型
38 基本类型 double 基本数据类型之一,双精度浮点数类型
39 基本类型 float 基本数据类型之一,单精度浮点数类型
40 基本类型 int 基本数据类型之一,整数类型
41 基本类型 long 基本数据类型之一,长整数类型
42 基本类型 short 基本数据类型之一,短整数类型
43 基本类型 null 空,表示无值,不能将null赋给原始类型(byte、short、int、long、char、float、double、boolean)变量
44 基本类型 TRUE 真,boolean变量的两个合法值中的一个
45 基本类型 FALSE 假,boolean变量的两个合法值之一
46 变量引用 super 表明当前对象的父类型的引用或者父类型的构造方法
47 变量引用 this 指向当前实例对象的引用,用于引用当前实例
48 变量引用 void 声明当前成员方法没有返回值,void可以用作方法的返回类型,以指示该方法不返回值
49 保留字 goto 保留关键字,没有具体含义
50 保留字 const 保留关键字,没有具体含义,是一个类型修饰符,使用const声明的对象不能更新

标识符

指用来标识某个实体的一个符号。

标识符的命名规则

  • 标识符可以由 字母、 数字、 _$、 构成
  • 数字不能开头
  • 区分大小写
  • 不能使用关键字

标识符的命名规范

  • 见名知意
  • 驼峰命名
  • 类名、接口名首字母大写,后面每个单词首字母大写
  • 变量名、方法名、首字母小写,后面每个单词首字母大写
  • 常量名全部大写,下划线分割

注意:中文的标识符是可以使用的,但是开发中千万不要使用中文的标识符。

变量

字面量

字面量就是数值。例如:1234、true、“abc”、“中国”、3.14。现实生活中能接触的数据。

变量

用于存放数据切数据可变

  • 变量是用来存放的字面量的容器
  • 存放的数据可变,所以叫做变量

变量的操作步骤

int i;
int j;
int i = 10;
int j;
j = 10;

优化变量的操作步骤

同时声明多个变量

int i;
int j;
int k;  

int i,j,k;

需要注意的是:赋值时不能写为int i,j,k = 10; 只有最后一个变量被赋值

变量的分类

变量按声明的位置(作用范围)分为:

  • 局部变量:在方法中声明的,出了方法就用不了了
  • 成员变量:在方法外声明的,也就是在类中声明的变量,用法:面向对象

变量按数据类型分为

  • 基本数据类型变量:在内存中存放真正的值,如:int、double、char……… (共有8种)
  • 引用数据类型变量:在内存中存放的是地址,如:String……

连接符的使用:
+

  1. 当作加号使用:两侧数据是数字相关的数据类型
  2. 当作字符串的拼接符使用:两侧是字符串类型

字符串数据类型可以与任意数据类型做拼接,拼接完都转化为字符串的一部分(转化为字符串类型?)

如果表达式中有多个加号,那么按照从左到右的顺序依次运算,先算左面的加号,后算右面的加号(结合顺序)

int i = 10;
int j = 20;
System.out.println("两个数字的和为:" + i + j);

/*
输出语句中,先执行的操作是:
  "两个数字的和为:" + i
结果是:
  “两个数字的和未:10”
后执行的操作是:
  “两个数字的和为:10” + j
结果是:
  “两个数字的和为:1020”
*/

基本数据类型

基本数据类型概述:
Java 中的数据类型就包括两大类,一类是基本数据类型,另一类是引用数据类型(引用数据类型后面学习)

基本数据类型分类:

4 类 8 种:

  • 第 1 类:整数型(不带小数的数字):byte,short,int,long
  • 第 2 类:浮点型(带小数的数字):float,double
  • 第 3 类:字符型(文字,单个字符):char
  • 第 4 类:布尔型(真和假):boolean
数据类型 占字节数 取值范围1 取值范围2 缺省默认值
byte 1 -27~27-1 -128~127 0
short 2 -2^15 ~ 2^15-1 -32768 ~ 32767 0
int 4 -2^31 ~ 2^31-1 -2147483648~2147483647 0
long 8 -2^63 ~ 2^63-1 - 0L
float 4 -2^31 ~ 2^31-1 -2147483648~2147483647 0.0f
double 8 -2^63 ~ 2^63-1 - 0.0
boolean 1 -27~27-1 -128~127 false
chat 2 -2^15 ~ 2^15-1 -32768 ~ 32767 ‘\u0000’

字符编码简介

对于以上的八种基本数据类型来说,其中七种类型 byte,short,int,long,float,double,boolean计算机表示起来是很容易的,因为这七种类型底层直接就是数字,十进制的数字和二进制之间有固定的转换规则,所以计算机可直接表示和处理。但是除了以上的七种数据类型之外,还有一种类型叫做字符型char,

最初的时候美国标准协会制定了ASCII 码,ASCII 码采用1 个字节编码,1 个字节可以表示256 种不同的形式,对于英文来说这个足够了,因为英文单词就是由26 个英文字母拼凑而成,大小写全部才52 个,再加上数字和标点符号也不会超过256 个。但ASCII 码对于中文来说那就不够了,因为汉字不止256个。

常见的 ASCII 码需要大家能够记住几个,在 ASCII 码中规定

'a’对应 97,'b’对应98,以此类推,'A’对应65,'B’对应66,以此类推,'0’字符对应48,'1’字符对应49,以此类推,这些常见的编码还是需要大家记住的。

在字符编码当中,有这样两个常见的术语需要大家了解一下:编码和解码,它们都是什么,我们拿字符’a’来解释一下:'a’是97,97 对应的二进制是01100001,那么从’a’到二进制01100001的转换过程称为编码,从二进制 01100001 到’a’的转换过程称为解码。大家一定要注意:编码和解码要采用同一种字符编码方式(要采用同一个对照表),不然会出现乱码。这也是乱码出现的本质原因。

在上世纪90 年代初,国际组织制定了一种字符编码方式,叫做Unicode 编码,这种编码方式统一了全球所有国家的文字,具体的实现包括:UTF-8,UTF-16,UTF-32 等。

Java 为了国际化,为了支持所有国家的语言,所以Java 采用的编码方式为Unicode 编码。例如字符’中’对应的 Unicode 码是’\u4e2d’。在实际开发中几乎所有的团队都会使用 Unicode 编码方式,因为这种方式更通用,兼容性更好。

Java 采用 unicode 编码,目前在实际的开发中大部分团队都会选择UTF-8 的编码方式。

注意:

在未来的实际项目开发中,我们所使用的字符编码就是UTF-8,所有开发和运行的环境,都需要将字符编码设置为UTF-8编码。

常见的 ASCII 码需要大家能够记住几个,在 ASCII 码中规定

'a’对应 97,'b’对应98,以此类推,'A’对应65,'B’对应66,以此类推,'0’字符对应48,'1’字符对应49,以此类推,这些常见的编码还是需要大家记住的。

数据类型详解

字符类型

字符型char 在 Java 语言中占用 2 个字节,char 类型的字面量必须使用半角的单引号括起来,取值范围为[0-65535],char 和short 都占用2 个字节,但是char 可以取到更大的正整数,因为char 类型没有负数。

char c1 = ‘a’;

char c2 = 97;

char c3 = ‘\”’;

整数类型

整数类型包括:byte、short、int、long

浮点数类型

浮点类型包括:float、double

注意:浮点型数据实际上在内存中存储的时候大部分情况下都是存储了数据的近似值,因为在现实世界中存在无穷的数据,例如:3.333333333333333333…,数据是无穷的,但是内存是有限的,所以只能存储近似值。

布尔类型

布尔数据类型:boolean

在Java 语言中布尔类型的值只包括true 和false,没有其他值

true:真

false:假

例如:

出门前需要先判断外面有没有下雨,我们就可以使用boolean类型,并且需要做相关约定,取值true表示下雨了,取值false表示没下雨。

boolean isRain = true; //表示下雨了

boolean isRain = false; //表示没下雨

值得大家注意的是,boolean类型需要根据实际业务需求去判断真假,或者是搭配分支相关语法去使用。本节同学们只是需要掌握boolean类型赋值的方式就可以了。

基本数据类型转换

以上操作我们涉及了很多类型转换相关的问题。

基本数据类型之间是存在固定的转换规则的,现总结出以下6 条规则,无论是哪个程序,将这6 个规则套用进去,问题迎刃而解:

(1)八种基本数据类型中,除boolean 类型不能转换,剩下七种类型之间都可以进行转换;

(2)如果整数型字面量没有超出 byte,short,char 的取值范围,可以直接将其赋值给byte,short,char 类型的变量;

(3)小容量向大容量转换称为自动类型转换,容量(以及转换规则)从小到大的排序为:byte < short(char) < int < long < float < double,其中short 和char 都占用两个字节,但是char 可以表示更大的正整数;

(4)大容量转换成小容量,称为强制类型转换,编写时必须添加“强制类型转换符”(类型),但运行时可能出现精度损失,谨慎使用;

(5)byte,short,char 类型混合运算时,先各自转换成int 类型再做运算:

未来的实际项目开发,不会出现byte,short,char的混合运算,对于整型的计算,一般我们直接将变量的类型声明为int就可以了,如果需求分析中确定int不够用,我们会使用long类型。

(6)多种数据类型混合运算,各自先转换成容量最大的那一种再做运算;

package包

为什么使用包:

  1. 将java资源进行分类管理
  2. 区分重名的资源

包的创建:

  • 包存放在src目录下或者指定的包中

创建包有两种方式:

第一种方式:先创建包,再创建类

第二种方式:可以在创建类的同时建立包

包名建议编写单词,并且全部小写

如果一个类在指定的包中存放,则类中的第一行必须是包的声明,否则该类就存放在src目录下

声明包的语法格式:package 包名;

包名也可以编写为域名反写,每一个”.”表示一层路径

注意:

未来的实际项目开发,肯定会伴随着创建N多个java资源,我们一定是建立包结构去管理这些资源的。所以从今天开始,同学们一定要先建立包,在包中建立类。

包的导入:

正在开发中的当前类,很有可能会使用到其他包下的类,那么我们就必须要对其他包下的类进行导包操作。

导入包的方式有如下:

  • 第一种方式:import 包名.类名;

  • 第二种方式:import 包名.*;

  • 第三种方式:在使用时编写完整类名,也就是 包名.类名

我们常用的是前两种方式

注意:在一个类中如果有包的声明也有导入包,则声明必须位于导入的前面

0

评论区