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/
中文:https://tool.oschina.net/apidocs/apidoc?api=jdk-zh
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