Java基本语法
Posted ice-point
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基本语法相关的知识,希望对你有一定的参考价值。
注释
Java代码种注释是不会被执行的,是解释代码用的。写注释是一个非常重要的习惯
注释有三种方法:
单行注释:使用“ // ”开头,之后为的单行内为注释内容
多行注释:使用“/”开头“/”结尾,在“/*“和“ */”之间为注释内容
文档注释:使用”/**”开头“*/”结尾,注释中包含一些说明性的文字及一些JavaDoc标签(后期写项目时,可以生成项目的API)
标识符
标识符是用来给类名、变量名、方法名、类型名、组名、文件名进行命名。
命名规则:
标识符必须由字母、下划线、美元符号$开头;
由字母、数字、下划线、美元符号组成;
Java标识符对字母大小写敏感,不能是java关键字;
使用规范:
表示类名的标识符:每个单词的首字母大写;
表示方法和变量的标识符:第一个单词小写,从第二个单词开始首字母大写(驼峰原则)
!注意!:Java不采用通常语言使用的ASCII字符集,而是采用Unicode这样标准的国际字符集。因此,这里字母的含义不仅仅是英文,还包括汉字等等。但是不建议大家使用汉字来定义标识符!
附录Java的关键词:
基本数据类型
由于Java是一种强类型语言,每个变量都必须先定义后使用
Java中定义了3类8种基本数据类型如图:
整数类型
整数类型的常/变量有四种表现形式:十进制、八进制、十六进制;
注意:Java语言的整型常数默认为int型,声明long类型的常量可以在后面加个“L”。
浮点类型
float类型又被称作单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。而double表示这种类型的数值精度约是float类型的两倍,又被称作双精度类型,绝大部分应用程序都采用double类型。浮点型常量默认类型也是double。
注意:浮点类型的数据不适合用在高精度的数据领域使用;如果需要进行不产生误差的精确数字计算,需要使用BigDecimal类;(BigInteger实现了任意精度的整数运算)
public class double_float {
public static void main(String[] args) {
float a = 0.1f;
double b =0.1;
System.out.println(a==b);
}
}
显示的结果为:false;
使用BigInteger的代码测试
import java.math.BigDecimal;
public class BigInteger {
public static void main(String[] args) {
BigDecimal a = BigDecimal.valueOf(1.0);
a =a.subtract(BigDecimal.valueOf(0.1));//减0.1
a =a.subtract(BigDecimal.valueOf(0.1));
a =a.subtract(BigDecimal.valueOf(0.1));
a =a.subtract(BigDecimal.valueOf(0.1));
a =a.subtract(BigDecimal.valueOf(0.1));
double d = 1.0;
d=d-0.1-0.1-0.1-0.1-0.1;
System.out.println(a);
System.out.println(d);
}
}
输出结果:
字符类型
所有的字符本质还是数字;在Java中使用单引号来表示字符常量。例如’A’是一个字符,它与”A”是不同的,”A”表示含有一个字符的字符串(使用String类定义,双引号就代表了字符串,字符串, char 类型用来表示在Unicode编码表中的字符,它占2个字节,可允许有65536个字符;
public class char_type {
public static void main(String[] args) {
char a =‘u0061‘;
char b =‘a‘;
System.out.println(a);
System.out.println(b);
}
}
运行结果
转义字符
布尔类型
boolean类型有两个常量值,true和false,在内存中占1位,不可以使用 0 或非 0 的整数替代 true 和 false ,这点和C语言不同。 boolean 类型用来判断逻辑条件,一般用于程序流程控制
小技巧:在if语句中if(flag == true),可以写成if(flag);推荐后者写法;
类型转换
类型转换有两种转换方式:自动类型转换和强制类型转换
自动类型转换
byte,short,char—> int —> long—> float —> double
自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型。实线表示无数据丢失的自动类型转换,而虚线表示在转换时可能会有精度的损失。
注意事项:
-
不能对布尔类型进行类型转换。
-
不能把对象类型转换成不相关类的对象。
-
在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
-
转换过程中可能导致溢出或损失精度,
-
浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
强制转换
强制类型转换,又被称为造型,用于显式的转换一个数值的类型。在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出;
格式
(type)var
int a= (char) 12;
例子:
public class type_conversion {
public static void main(String[] args) {
int money = 10_0000_0000;
int year = 20;
int total = money * year;
long total2 = money *year;
System.out.println(total);
System.out.println(total2);
}
}
输出结果:
解决办法:将其中一个变量强制转换为long型
public class type_conversion {
public static void main(String[] args) {
int money = 10_0000_0000;
int year = 20;
System.out.println((long)money*year);
}
}
变量
变量本质上就是代表一个”可操作的存储空间”,空间位置是确定的,但是里面放置什么值不确定。我们可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。变量的数据类型决定了变量占据存储空间的大小。 比如,int a=3; 表示a变量的空间大小为4个字节。
type varName [=value] [{,varName[=value]}];
//数据类型 变量名 =值;可以使用逗号来隔开同时声明多个同类型的变量
规范建议:不提倡一行声明多个变量,逐一声明每一变量可以提高程序的可读性;见名知意;驼峰原则;
变量的分类:
局部变量
是方法或语句块内部定义的变量;生命周期为声明位置开始到方法或语句块执行完毕为止;局部变量必须先声明、初始化(赋值)再使用
实例变量(成员变量)
是方法外部或类的内部定义的变量;生命周期伴随对象始终。如果不对其初始化,将自动初始化该类型的默认值(布尔值默认是False,除了基本类型其他输出都是null)。
类变量(静态变量)
使用static定义。属于类,生命周期伴随类始终,从类加载到卸载。
代码例子:
public class variable_classification {
static String C = "类变量";//类变量 static
String d = "实例变量1";//实例变量
String e = "实例变量2";//实例变量
//实例变量:从属与对象,如果不进行初始化,则值为该类型的默认值
public static void main(String[] args) {
String a = "局部变量";//局部变量;必须要声明和初始化值!
System.out.println(a);
System.out.println(C);
variable_classification vc =new variable_clCassification();
System.out.println(vc.d);
System.out.println(vc.e);
}
}
变量的命名规范
-
所有变量、方法、类名:见名知意
-
类成员变量:首字母小写和驼峰原则:monthSalary
-
局部变量:首字母小写和驼峰原则
-
常量:大写字母和下划线:MAX_VALUE
-
类名:首字母小写和驼峰原则
-
方法名:首字母小写和驼峰原则
常量
常量通常指的是一个固定的值,在Java语言中,利用关键字final来定义一个常量的常量为符号变量;
public class constant {
public static void main(String[] args) {
final double PI = 3.14;
double r =4;
double area =PI * r * r;
double circile = 2 * PI * r;
System.out.println("area="+area);
System.out.println("circle="+circile);
}
}
运算符
运算符的优先级
以上是关于Java基本语法的主要内容,如果未能解决你的问题,请参考以下文章