JAVA的基本语法
注释、标识符、关键字
注释
注释不会被执行,是给我们写代码的人看的
JAVA中的注释有三种
- 单行注释
- 多行注释
- 文档注释
/**
* @Louis Restart
* @date 2022/5/31 0031 23:41
*/
public class HelloWorld {
public static void main(String[] args) {
//单行注释 //
//输出一个HelloWorld
System.out.println("Hello,World");
//多行注释
/*
* 这是多行注释
* 这是多行注释
* 这是多行注释
* 这是多行注释
*/
//文档注释
/**
*
*
*
*/
}
}
标识符
关键字
Java 所有的组成部分都需要名字。类名、变量名、方法名都被成为标识符
- 所有的标识符都应该以字母(A-Z/a-z),美元符号($),或者下划线(_)开始
- 首字符之后可以是字母(A-Z/a-z),美元符号($),或者下划线(_)或任意数字组合
- 不能使用关键字作为变量名或方法名
- 标识符是大小写敏感的
- 合法的标识符:age、$salary、_value、__1_value
- 非法标识符:12ad、-salary、#abc
数据类型
Java是一门强类型语言:要求变量的使用严格符合规定,所有的变量都必须先定义后才能使用。
(安全性)
Java的数据类型分为基本类型(primitive type)和引用类型(reference type)
基本类型
数值类型
整数类型 | 占字节 | 范围 |
---|---|---|
byte | 1 | -128 - 127 |
short | 2 | -32768 - 32767 |
int | 4 | -2147483648 - 2147483647 |
long | 8 |
浮点类型 | 占字节 |
---|---|
float | 4 |
double | 8 |
字符类型(字母、数字、符号、字) | 占字节 |
---|---|
char | 2 |
boolean类型
boolean | 占位 | 范围 |
---|---|---|
boolean | 1 | false/true |
/**
* @Louis Restart
* @date 2022/6/1 0001 0:49
*/
public class Demo02 {
public static void main(String[] args) {
//八大基本数据类型
//整数
int num1 = 10;//最常用
byte num2 = 127;
short num3 = 30;
long num4 = 30L;//Long类型要在数字后面加个L
//浮点数
float num5 = 50.1F;// float=类型要在数字后面加个F
double num6 = 3.14159265358979323842643;
//字符
char name = 'L';
//字符串 String不是关键字
//String name1 = "Louis";
//布尔值
boolean flag = true;
}
}
引用数据类型
- 类
- 接口
- 数组
什么是字节
位(bit)是计算机内部数据存储的最小单位,11001100是一个八位的二进制数
字节(byte)是计算机中数据处理的基本单位,习惯上用大写B来表示,
1B(byte,字节)= 8bit(位)
1B = 8b
1024B = 1KB
1024KB = 1M
1024M = 1G
1024G = 1T
类型转换
Java是强类型语言,所以要进行运算的时候,需要用到类型转换
低---------------------------------------------------------->高
byte,short,char->int->long->float->double
强制类型转换
高-->低
public class Demo04 {
public static void main(String[] args) {
int i = 128;
byte b = (byte)i;//内存溢出
//强制转换 (类型)变量名
System.out.println(i);
System.out.println(b);
}
}
自动类型转换
低-->高
不同类型数值之间计算的时候会自动转换成大的类型
public class Demo04 {
public static void main(String[] args) {
int i = 128;
double b = i;//内存溢出
//强制转换 (类型)变量名
System.out.println(i);
System.out.println(b);
}
}
注意点
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 在把高容量转换成低容量的时候,强制转换
- 转换的时候可能存在内存溢出,或者精度问题
变量
变量是可以变化的量
Java是一种强类型语言,每个变量都必须声明其类型
Java中变量是程序中最基本的储存单元,要素包括变量名,变量类型和作用域
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
变量的作用域
- 类变量(static,从属于某个类)
- 实例变量(从属于对象)
- 局部变量(必须声明和初始化值)
public class Variable{
static int allClicks = 0; //类变量 static
String str = "hello world";//实例变量 从属于对象;如果不初始化,这个类型的默认值 0 0.0;布尔值:默认是false 0 除了基本数据类型,其余都是null;
public void method(){
int i = 0;//局部变量 必须声明和初始化值
}
}
变量的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写驼峰原则:monthSalary,除了第一个单词外,后面的单词首字母大写
- 局部变量:首字母小写驼峰原则
- 常量:大写字母和下划线 MAX_VALUE
- 类名:首字母大写和驼峰原则 Man,GoodBoy
- 方法名:首字母小写驼峰原则:run(),runRun()
常量
常量(Constant):初始化(initialize)后不再改变的值
且不允许被改变
final 修饰符,不存在先后顺序
定义方式
final 常量名 = 值
final double PI = 3.14;
运算符
算数运算符:+,-,*,/,%,++,--
public class Demo04 {
public static void main(String[] args) {
//++ -- 自增 自减 一元运算符
int a = 3;
int b = a++;//a先赋值给b,再自增
int c = ++a;//a先自增,再赋值给c
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
赋值运算符 =
关系运算符>,<,>=,<=,==,!=,instanceof
逻辑运算符 &&,||,! 与或非
短路与&&
int c = 5;
boolean d = ((c < 4)&&(c++<4));//c++没执行
System.out.println(d);
System.out.println(c);
短路或||
位运算符&,|,^,>>,<<,>>>(了解)
左移乘 右移除
位运算效率高
/*
*A = 0011 1100
*B = 0000 1101
*
*A&B = 0000 1100
*A|B = 0011 1101
*A^B = 0011 0001
*~B = 1111 0010
* 2 * 8 = 2 * 2 * 2 * 2
* <<
* >>
* 2 * 8 = 2 << 3
* 0000 0000 0
* 0000 0001 1
* 0000 0010 2
* 0000 0011 3
* 0000 0100 4
* 0000 1000 8
* 0001 0000 16
*/
条件运算符: ?:
//x ? y : z
//如果 x == true ,结果为y,否则为z
public class Demo08 {
public static void main(String[] args) {
//x ? y : z
//如果 x == true ,结果为y,否则为z
int score = 89;
String grade = score < 60 ?"不及格":"及格";
System.out.println(grade);
}
}
扩展赋值运算符 +=,-=,*=,/=
a += b;// a = a + b
a -= b;//a = a - b
字符串链接符 + , String
int a = 10;
int b = 20;
System.out.println("" + a+b);//1020
System.out.println(a+b + "");//30
运算优先级
()的最大,从左到右
包机制
一般利用公司域名倒置作为包名;com.louis666.www
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包 使用"import"语句可完成此功能
import package1[.package2...].(classname|*);
package com.louis666.operator;//必须置顶
import com.louis666.base.Demo01;
import com.louis666.*;//导入这个包下所有的类
Java Doc
javadoc命令是用来生成自己API文档的