Java程序的基本规则
- Java的类文件是Java程序的最小单位,一个Java项目包含若干个类文件
- Java类的文件名和类名要保持一致,类首字母大写,使用驼峰命名法,命名方法为 Hello World,扩展名为java
- main方法是Java程序运行的入口(开始),main方法的名称、参数、前面的修饰符都是固定的
(public static void main(String[] args){ }) - 每条(行)语句都是以分号结束
- 方法名、变量名、属性名都是以小写字母开头,后面的首字母大写,也是使用驼峰命名方法,目的是与类区分开
Java的组成成分
分隔符号
- ; 分号 语句结束的标志
- { } 大括号 都是成对出现,用在类、方法、判断和循环语句中,把多条语句作为一个整体(代码块)
- ( ) 小括号 方法的定义和调用,以及运算表达式的优先级
- [ ] 中括号 用于数组,通常在数组名之后出现
- . 圆点 用于对象的属性或方法的调用
- “ ” 双引号 用于字符串 直接输出内容(字符串)
- ‘ ’ 单引号 用于字符 直接输出内容(单个字符)
- 空格 用于分隔标识符和关键字
标识符
类、方法、属性、变量的名称
命名规则:
- 必须以字母、下划线(_)、美元符号($)开头
- 除首字母之外可以用字母、数字、下滑线、美元符号
- 不能跟关键字重名
- 区分大小写
- 不建议使用中文
关键字
Java中表示特定意义的单词(Java的关键字都是小写的),Java中有以下关键字:
- 48个关键字:abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while
- 访问修饰符的关键字(共3个)
- 定义类、接口、抽象类和实现接口、继承类的关键字、实例化对象(共6个)
- 包的关键字(共2个)
- 数据类型的关键字(共12个)
- 条件循环(流程控制)(共12个)
- 修饰方法、类、属性和变量(共9个)
- 错误处理(共5个)
- 其他(共2个)
- 2个保留字(Java语言的的保留字是指预留的关键字):goto、const
- const 释义:n. 常量,常数
用于修改字段或局部变量的声明。它指定字段或局部变量的值是常数,不能被修改
- goto 释义:vi. 转到
指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。 - 3个特殊直接量:true、false、null
注释
注释是代码中用于帮助程序员理解或者记忆代码的内容;暂时不用的代码也可以注释掉。
注意:注释的内容会被编译器忽略
- // 单行注释
快捷键:Ctrl + / 注释和取消相同 - /*
…
*/ 多行注释 中间…为注释内容
快捷键:Ctrl + Shift + / 注释和取消相同 - /**
…
*/ 文档注释 中间…为注释内容
快捷方式:/**回车
用于类、方法上的注释,能导出为API文档
JDK API 相关知识
API:应用程序的接口
JDK API 文档地址:
官方英文:https://docs.oracle.com/javase/8/docs/api/
中文:
IDEA导出文档注释为AP文档
- 创建一个目录存放API文档。比如:桌面上创建一个myapi目录
- 点击tools->generate JavaDoc.…
- 设置
- 点击ok,导出文档
变量
方便访问内存中的数据起的一个程序员容易记忆和理解的名字(代替计算机内存中的地址)
定义变量
语法: 类型 变量名;
类型 变量名 = 初始化的值
类型 变量名, 变量名
String stuName = "张三"; //=是赋值的意思, 把张三字符串赋给stuName这个变量
int stuAge = 22;
int i; //定义变量,不赋值(没有初始化)
int m, n;//一次定义多个变量,用逗号分割,多个变量必须是相同类型
int a = 3, b = 2; //一次定义多个变量,也可以在定义的同时赋值
变量初始化
可以在定义变量的时候初始化,也可以先定义在初始化
public class hello {
public static void main(String[] args) {
String stuName = "张三";
String stuSex = "男";
int stuAge = 21;
int a = 12;
int b;
b = 15;
System.out.println(stuName);
System.out.println(stuAge);
System.out.println(stuSex);
System.out.println(a);
System.out.println(a+b);
}
}
变量的赋值和使用
System.out.println("学生的姓名:" + stuName); //+字符串的拼接
System.out.println("学生的年龄:" + stuAge); //字符串和数字相加,也是拼接
System.out.println(i + j); //两个数字相加, 是加法运算
int k;
k = i; //给变量赋值可以用另外一个变量
k = 3 + 2; //变量赋值还可以用表达式
k = i - j; //变量赋值可以变量参与的表达式
System.out.println(k); //-2, int类型叫整形, 包括正整数,0, 负整数
注意
- 在同一个作用域不能重复定义变量
- 变量在使用前必须初始化(赋值)
练习:判断以下变量命名是否合法
int 123; //错误,变量不能用数字开头
int _123; //正确,一下划线开头
int $123; //正确,$开头
int _$; //正确,不推荐,无意义
int $; //正确,不推荐,无意义
int abc_134; //正确
int a$1; //正确
int _#$%; //错误,变量不能包含除_、$之外的特殊符号
int 华清远见; //正确,语法没有问题,但是不推荐
int StuName; //正确,但不符合命名规范,应改为 int stuName;
int stuname; //正确,但不符合命名规范,应改为 int stuName;
Java的基本数据类型
注:一个字节长度占8位
整形
- byte 字节型
- 占一个字节长度,取值范围 -27 ~ 27-1 (-128~127)
public class DataType {
public static void main(String[] args) {
// byte类型的使用
byte b1=10;
System.out.println(b1);
// byte b2=-129;//超过范围,报编泽异常
// byte b3=128;//超过范用,报编译异常
System.out.println(b1);
}
}
- short 短整型
- 占两个字节长度,取值范围 -215 ~ 215-1 (-32768~32767)
// byte类型的使用
short b1=-1000;
// short=-32769;//超过范围,报编泽异常
// short b3=32768;//超过范用,报编译异常
System.out.println(b1);
- int 整形
- 占四个字节长度,取值范围 -231 ~ 231-1 (-2147483648~2147483647)
- int的十进制数只有10位长度,不能存放手机号码
// int类型的使用
int a1=4000;
// int a2=-2147483649;//超过范围,报编泽异常
// int a3=2147483648;//超过范用,报编译异常
System.out.println(a1);
- long 长整型
- 占八个字节,取值范围 -263 ~ 263-1 19位的十进制
// long类型的使用
long l1=4000;
System.out.println(l1);
long l2=-1598754655455555577l;
//给long赋值的时候如果超过int的取值范围必须在最后加l,没超过的话可加可不加
// long l3=2147483648;//超过范用,报编译异常
System.out.println(l2);
//当前时间的时间戳(相对于1970.1.10时过去了多少毫秒)
System.out.println(System.currentTimeMiZllis());
注意:给整数赋值可以用十进制、八进制、十六进制
//java里可以用十进制、八进制、十六进制给整数赋值
int f = 100; //十进制
System.out.println(f);
f = 0144; //八进制,以0开头为八进制
System.out.println(f);
f = 0x64; //十六进制,以0x开头为十六进制
System.out.println(f);
浮点型(小数型)
- float
- 占四个字节 8位表示指数,23位表示底数位数 取值范围 10-38 ~ 1038 和 -1038 ~ -10-38
//float类型的使用
float f1 = 3.1415F; //Java里直接写一个小数,默认为 float类型
System.out.println(f1);
float f2 = 3.1F;
System.out.println(f1*f2);
- double
- 占八个字节 取值范围 10-308 ~ 10308 和 -10308 ~ -10-308
注意:Java里浮点数运算可能会损失精度(结果不精确),在实际项目中如果用到小数的运算(比如财务系统),建议使用BigDecimal
字符型
- char
- 字符用16位的unicode编码,可以表示各国语言文字
- 字符的标识方式
- 用单引号括起来
- 用unicode编码,格式 ‘\uxxxx’ ,中文汉字在unicode中的范围4E00~9FA5
- 用数字来标识字符
char a = 97; //常见的英文字符都对应一个数字编码,所以可以用数字给char类型赋值
System.out.println(a);
- 用转义符表示特殊字符
\" | 双引号 |
\’ | 单引号 |
\n | 换行 |
\r | 回车 |
| \t | 制表符 |
| \\ | 反斜杠 |
//字符的使用
char c1='a';
System.out.println(c1);
char c2 = '家';
System.out.println(c2);
char c3 = '\u4E01';
System.out.println(c3);
System.out.println("他说:\"你好\"。");
System.out.println("\"。");//双引号
System.out.println("\'");//单引号
System.out.println("\n");//换行
System.out.println("\r");//回车
System.out.println("\t");//制表符,补齐四个空格
System.out.println("\\");//反斜杠
- ascii码表规定每个字符对应的数字:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KthKoiou-1659345962034)(E:\Desktop\JavaEE笔记\02java基础第二天.assets\QQ图片20220721170419.jpg)]
布尔型
- boolen
- 占1位长度,只有两种值:true和fals,不能用数字给boolean类型赋值
- 一般用于判断或循环语句判断条件
//boolean类型的使用
boolean b2 = true;
boolean b3 = false;
System.out.println(b2);
System.out.println(b3);
基本类型相互转换
自动转换
- char不能自动转为short
- byte不能自动转为char
- 任何的基本类型都可以跟字符串进行拼接
//自动类型转换
byte by1 =10;
short s1 = by1;
int i1 = s1;
System.out.println(s1);
char c1 = 'a';
i1 = c1;
System.out.println(i1);
long l1 = i1;
System.out.println(l1);
float f1 = l1;
System.out.println(f1);
double d1 = f1;
System.out.println(d1);
强制转换
- 长度大的数据类型转小的类型不能自动转换,要用强制转换
- 小数转整数,会去掉小数
- 如果强转超过类型所能表示的范围,可能会出现不可预知的结果
//强制类型转换
double a = 3.14;
float b = (float) a;
System.out.println(b);
long l2 = (long)b;
System.out.println(l2);
int i2 = (int)l2;
System.out.println(i2);
char c2 = (char)i2;
System.out.println(c2);
short s2 = (short) c2;
System.out.println(s2);
byte b3 = (byte) s2;
System.out.println(b3);
int i3=169;
//超过目标类型范围的强制类型转换要谨慎,可能出现不可预料的结果
byte b4 =(byte) i3;
System.out.println(b4);//结果是-87
System.out.println(l2);
int i2 = (int)l2;
System.out.println(i2);
char c2 = (char)i2;
System.out.println(c2);
short s2 = (short) c2;
System.out.println(s2);
byte b3 = (byte) s2;
System.out.println(b3);
int i3=169;
//超过目标类型范围的强制类型转换要谨慎,可能出现不可预料的结果
byte b4 =(byte) i3;
System.out.println(b4);//结果是-87