「这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战」。
Java基本语法
关键字、保留字
关键字指被Java语言赋予特殊含义,用作专门用途的字符串(单词)(关键字中的所有字母都为小写)
保留字指现有Java版本尚未使用,但以后可能会作为关键字,标识符命名时避开(goto 、const)
标识符
Java中各种变量、方法、类的命名时使用的字符序列为标识符(自己取名的地方)
命名规则:
- 26个英文字母(大小写)、数字、_ 、$组成并严格区分大小写
- 数字不能开头、不能包含空格
- 不能使用关键字、保留字,但可包含关键字、保留字
public class text {//单行注释,类名一般首字母大写,方法和变量的标识符第二个单词首字母大写(驼峰原则)eatFood
int $45=100;
//int 3ash=20;//字母不能作为标识符开头
int 年龄=21;//汉字可以作为标识符,与c不同,但一般不建议
//int class;
int _gdeu$=100;//_可以开头
public static void main(String[] args) {
System.out.println("第一个Java程序,hello world");
}
}
命名规范(不强制,建议)
包名:多单词组成时都小写:xxxyyyzzz
类名、接口名:多单词组成时每个单词首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时首个个单词首字母小写,其他单词首字母大写:xxxYyyZzz
常量名:所有字母都大写,多单词组成时下划线连接:XXX_YYY_ZZZ
注意:起名时尽量做到见明知意
汉字可以作为标识符,但一般不建议
常量
/**
* 常量指一个固定的值1,2,3或'a''0',true false "hello world"
* 不能被修改
* final可以用来修饰一个符号常量,不可被修改
* 符号常量命名大写和下划线NAME_MY
*整型常量,默认是int,比如说下方的21,8,都是int型
*浮点型常量默认类型是double型
*/
public class text {
public static void main(String[] args) {
int age=21;//21是常量age是变量
String name="AHA";//AHA是常量,name是变量,name可以被修改
name="AHFJFJA";
final int x=8;
//x=10;//报错,符号常量,不可被修改
}
}
变量
变量是内存中的一个存储区域,可以变化,变量是程序中最基本的存储单元
作用:在内存中保存数据
注意:必须先定义在使用
注意变量的作用域
分类:成员变量:类里定义的变量(存在于堆内存中,和类一起创建)
局部变量:在方法(类似于C中的函数)中定义(存在于栈内存中,当方法执行完成,让出内存,让其他方法来使用内存)。
public class VariateTxet{
int a;//此处是成员变量(从属于对象)需要创建对象// ,成员变量无初始化会自动赋值
static int b;//静态变量,从属于类,类在它就在
//变量未定义,不能使用
public static void main(String[] args){
int age=100;
int print=50;
System.out.println(print);//java可以直接输出变量的值,不需要%d之类的,以及双引号,但可能只能输出一个
}
public void text(){
int big;//变量的作用域是从属于方法/语句块(大括号)上面的大括号及与其匹配的括号
//big=big+5;//报错,未进行初始化,所有局部变量使用前都必须初始化
}
//big=100;超出了big的作用域
}
基本数据类型
-
数据类型:
-
基本:数值——short、int、long、byte (|bait|) 占用字节(2、4、8、1)都表示整型、范围不一样
-
float、double占用字节(4、8)
-
字符:char(2个字节、非一个)
-
布尔:boolean(一位)
-
引用(对象): 类——class(字符串是一个类 类型)
(引用四个字节)数组——array
接口——interface
整型
public class datetype {
public static void main(String[] args) {
/**byte正负128(除128)short 65535/2 =(32768) int 21亿
* 整型:十进制
* 八进制:以0开头 015
* 十六进制:以0x/0X开头
* 二进制0b/0B开头
*/
int a=15;
int b=015;
int c=0x15;
int d=0b1101;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
long y=12345;//可以不加L,因为小于int,自动看成int,long进行了自动类型提升(下面有讲解)
long x=7000000000L;/*L,l都可以,x是长整型变量、但7000000000是常量,整形常量默认是int不够常量加L,l*/
//声明long型变量,超过int型必须以‘l’,‘L’结尾
}
}
浮点型
import java.math.BigDecimal;
/**
* java中float精确到7位,double精度时float的两倍
* float中赋值3.14后需要加F/f
*float表示的数值比long还大(和科学计数法表示有关系)
*一般用double
*/
public class floatdouble {
public static void main(String[] args) {
float y=3.14F;
double z=6.28D;//D可加可不加
System.out.println(y);
System.out.println(z);
//浮点数不精确、一定不要用于比较
float o=0.1f;
double p=1.0/10;
System.out.println(o==p);//结果为false
float a=42343242F;
float b=a+1;
System.out.println(a==b);//结果是相等
System.out.println("***************");
BigDecimal bd = BigDecimal.valueOf(1.0);
bd = bd.subtract(BigDecimal.valueOf(0.1));
bd = bd.subtract(BigDecimal.valueOf(0.1));
bd = bd.subtract(BigDecimal.valueOf(0.1));
bd = bd.subtract(BigDecimal.valueOf(0.1));
bd = bd.subtract(BigDecimal.valueOf(0.1));
System.out.println(bd);//0.5
System.out.println(1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1);//0.5000000000000001
BigDecimal bd2 = BigDecimal.valueOf(0.1);
BigDecimal bd3 = BigDecimal.valueOf(1.0/10);
System.out.println(bd2.equals(bd3));
}
/**
* java.math包下面的两个有用的类:BigInteger和BigDecimal,这两个类可以处理任意长度的数值。
* BigInteger实现了任意精度的整数运算。BigDecimal实现了任意精度的浮点运算。
*/
}
字符型
/**
* 占两个字节unicode编码表
* ‘a'是一个字符
*/
public class cha {
public static void main(String[] args) {
char cchar='A';
char echar='中';//单引号是字符,双引号是字符串(其他国家语言也可以)
/*也可以用0——65536之间的编码‘\u0000’到'\FFFF'十六进制形式表示*/
char b='\u0061';
System.out.println(b);
//转义字符
System.out.println('a'+'b');//+使a,b变成数字(对应ASCⅡ码值)
System.out.println(""+'a'+'b');//“”用字符串使a,b输出
System.out.println(""+'a'+'\n'+'b');//\n换行
System.out.println(""+'a'+'\t'+'b');
System.out.println(""+'a'+'\''+'b');
//char x="abc";//char不能赋字符串
String x="abc";//String是字符序列
}
}
布尔类型
/**
* boolean在字节中占一位,不是一个字节
* 只有true和false两类,不能用0/1代替
*/
public class bool {
public static void main(String[] args) {
boolean man=true;//必须赋初值
if(man) {//也可以是man==true,但不推荐,可能会出错(少输入一个=)
System.out.println("男性");
}
}
}