java基础:java基础语法
注释[*]单行注释:对某一行进行注释,使用“/注释内容/”标识
[*]多行注释:可以书写多行,使用“/*注释内容*//”表示
[*]文档注释:这个内容对IDEA是有意义的,/**注释内容*/
https://img2023.cnblogs.com/blog/3081945/202302/3081945-20230204172421495-1689035267.png
public class Hello {
//单行注释
//注释后会被编译器忽略,不会作为语句编译
//每个单行注释只能写一行
/*
多行注释
这个注释可以写多行
*/
public static void main(String[] args){
/**
* @Description 这里是文档注释,这段会被IDEA识别
* @author Muling
*/
System.out.println("Hello,World!");//这句输出Hello,World!
}
}
标识符和关键字
[*]关键字
java定义的一些保留字,用于区分语法,不能用于标识符
https://img2023.cnblogs.com/blog/3081945/202302/3081945-20230204172652581-631863069.png
[*]标识符
标识符是所有组成部分的名称,如变量名、方法名、类名等等
数据类型
Java里的数据类型
JAVA是一种强类型语言,所有变量需要先声明后使用。
Java数据类型分为两个部分:基本类型和引用类型,这里主要说明基本类型。
https://img2023.cnblogs.com/blog/3081945/202302/3081945-20230204172704832-563699395.jpg
基本数据类型如下:
数据类型 占用空间(byte) 表示范围 整型 byte 1 -128~127 short 2 -32768~32767 int 4 -2147483648~2147483647 long 8 -9223372036854775808~9223372036854775807 浮点型 float 4 double 8 字符型 char 2 布尔型 boolean 1 bit //整型
int num = 10_000_000//数字中间可以使用_分隔(便于阅读)
byte num2 = 20;
short num3 = 30;
long num4 = 40L;//Long型后要加“L”
//浮点型
float num5 = 3.1F;//Float型后加“F”
double num6 = 3.1;
//字符
char c = 'a';
//布尔
boolean flag = true;
boolean flag = false;进制
[*]十进制
[*]二进制:0b
[*]八进制:0
[*]十六进制:0x
浮点数精度问题
浮点数有精度问题,如果需要精确计算,可以使用BigDecimal类。
字符
字符值
char型存储的数为Unicode值
如“a”为97,“A”为65,“好”为22909
值的范围为0~65535
转义字符
https://img2023.cnblogs.com/blog/3081945/202302/3081945-20230204172439777-1063112501.jpg
类型转换
Java是强类型语言,不同类型间运算的时候需要进行类型转换,换为同一类型后再计算。一般是从小向大进行转换,大向小转换会出现溢出。
[*]布尔类型不能进行转换!
[*]需要注意内存溢出和精度问题!
[*]浮点型向整型转换会进行向下取整(向0靠近)
https://img2023.cnblogs.com/blog/3081945/202302/3081945-20230204172514365-1084099582.png
强制类型转换
大到小转换需要使用强制类型转换
如
float a = 1.3F;
int b = (int)a;自由类型转换
小到大的转换是自由类型转换(自动转换)
变量、常量、作用域
变量
可以变化的量,变量使用前需要声明。
变量声明:
type varName[=value][,varName[=value]]
作用域
[*]类变量:加了static关键字修饰,可以直接在类内使用
[*]实例变量:需要调用类使用,不初始化的基本数据类型默认值为0,其余为null
[*]局部变量:在方法内部使用,使用前需要初始化
public class Hello {
//类变量:加了static修饰
static double salary = 5000;
//实例变量:从属于对象,不初始化的基本数据类型默认值为0,其余为null
String name;
public static void main(String[] args){
//局部变量,必须声明和初始化
char c = '好';
Hello hello = new Hello();
//System.out.println(name); //会报错
System.out.println(hello.name);
System.out.println(salary);//类变量直接可用
}
}
常量
与变量基本相同,需要使用final修饰,不可修改。
命名原则
https://img2023.cnblogs.com/blog/3081945/202302/3081945-20230204172529671-1335425359.png
类名首字母大写,其他小写,使用驼峰写法,常量全大写,下划线分隔
运算
运算符
https://img2023.cnblogs.com/blog/3081945/202302/3081945-20230204172548573-1535096245.png
Math类
内含非常多的数学运算方法,幂运算、绝对值等需要调用
包机制
包可以理解为文件夹,为了更好地组织类,用于区分类的命名空间
常用公司域名倒置作为包名,如com.baidu.www
包语句格式:
package pkg1[.pkg2[.pkg3...]]用文件夹的路径理解就是该文件属于pkg1\pkg2\pkg3...\文件名
导入类的格式为:
import pkg1[.pkg2[.pkg3...]].classname
[*]支持通配符,如*,表示一个包内的所有类
JavaDoc
可对类、方法进行说明
https://img2023.cnblogs.com/blog/3081945/202302/3081945-20230204172600413-1396827374.png
https://img2023.cnblogs.com/blog/3081945/202302/3081945-20230204172606883-928202783.png
在命令行使用javadoc -encoding UTF-8 -charset UTF-8 文件名
生成说明文档,打开index.html可以查看
也可以直接在IDEA 工具->生成javadoc
Scanner
包:java.util.Scanner,用于IO
基本语法:
Scanner s = new Scanner(System.in)使用Scanner类的next()与nextLine()获取输入的字符串,读取前使用hasNext()与hasNextLine()判断是否有输入
public static void main(String[] args){
//创建一个扫描器
Scanner scanner = new Scanner(System.in);
System.out.println("使用next接收");
if(scanner.hasNext()) {
//判断是否有输入
String in = scanner.next();//接收
System.out.println(in);
}
scanner.close();//关闭扫描器
}
[*]next()获取输入:输入从有效字符开始,空白符号之前的所有有效字符部分
[*]nextLine():获得换行符前所有内容
判断
[*]hasNext():是否有字符串
[*]hasNextLine():是否有字符串(与nextLine对应)
[*]hasNextInt():是否有整数
[*]hasNextByte():是否还有Byte
[*]hasNextFloat():是否还有Float
[*]...
输入
[*]next()
[*]nextLine()
[*]nextInt()
[*]nextFloat()
[*]...
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]