欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java基本语法(一)

程序员文章站 2022-04-04 20:02:49
...

一.概述

今天我们开始讲解Java的基本语法(一),我们首先从上一篇运行的HelloWorld程序讲解,以后的程序我会用idea工具编写,主要还是能提升编写文章的效率,不过还是像上一篇说的那样,希望新手多用一下记事本编写程序,并使用控制台的命令运行。等基本操作熟练后可以再使用IDE集成开发工具编写。

二.HelloWorld程序

/**
 1. public:访问修饰符,主要用于控制其它部分对这段代码的访问权限。
 2. class:表明Java程序中的全部内容必须包含在类中,类就是作为一个加载程序逻辑的容器。
 3. HelloWorld:程序的文件名,也称为类名,两个名称必须保持一致。并且Java区分大小写。
 */
public class HelloWorld {
	/**
	 * Java虚拟机将从指定类中的main方法(函数)开始执行,任何完整的程序都存在一个入口方法(函数)。
	 * static:静态标识符,表示main方法是静态方法,可以通过类名调用。
	 * void:表示main方法的返回值为空。
	 * 		当程序正常退出的时候,退出代码为0,非正常为-1。
	 * String[] args:表示java运行时所添加的参数都会放在这个数组中。
	 * {}:表示代码块的开始与结束。
	 */
	public static void main(String[] args) {
		/*
		*  此方法暂时理解为打印方法即可,将你想要打印的内容放在括号中,就可以将内容输出到控制台中。
		*  System.out.println()的效果是打印输入内容后换行。如果不想换行,可以使用System.out.printf()方法
		*  语句以分号结束
		*  .操作符:指的是方法调用操作符
		*/
		System.out.println("HelloWorld!");
	}
}

下面我们说一说命名规范的问题:

  1. 类名:我们采取的是大驼峰命名法,例如ClassName。每个单词的首字母大写。
  2. 变量名:我们采取的是小驼峰命名法,例如className。除了第一个单词的首字母小写其余的单词首字母大写。
  3. 方法名:同变量名。

三.基本语法

1.注释:

Java有三种注释

  • 行注释:以//开头。表示从本行的开始到本行的结束都是注释内容。
  • 块注释:以/*开始,以 */结束。表示整段内容都是注释内容。
  • 文档注释:以/**开始,以 */结束。这段注释可以利用java命令来生成文档。

2.基本数据类型:

Java中一共有8种数据类型,其中4种整型,2种浮点型,1种字符类型char,1种表示真值的boolean类型。我们按照顺序讲解一下每种类型的表示范围,以及使用方法。

(1)整型:
类型 存储需求 取值范围
int(整型) 4字节 -2147483648~2147483647
short(短整型) 2字节 -32768~32767
long(长整型) 8字节 -9223372036854775808~9223372036854775807
byte(字节) 1字节 -128~127
/**
 * 整型数据类型
 */
public class IntType {
	public static void main(String[] args) {
		// 整型变量是我们最常使用的数据类型。
		int  intVariable = 1;
		// 十六进制变量 以0x开始
		int  sixVariable = 0x1000;
		// 二进制变量 Java7开始 可以以0b开始
		int twoVariable = 0b1010;
		// 用下划线表示数字进位 Java7开始 用户看起来更直观,Java编译器会忽略这些下划线
		int variable = 100_000_000;
		// 字节变量
		byte byteVariable = 1;
		// 短整型变量
		short shorVariable = 1;
		// 长整型变量 推荐在数字后面添加L,用于与其他数据类型进行区分
		long longVariable = 1L;

		// 分别打印出各自的值
		System.out.println(intVariable);
		System.out.println(sixVariable);
		System.out.println(twoVariable);
		System.out.println(variable);
		System.out.println(byteVariable);
		System.out.println(shorVariable);
		System.out.println(longVariable);
	}

}
(2)浮点类型:
类型 存储需求 取值范围
float(单精度浮点型) 4字节 大约 ± 3.402 823 47E+38F(有效位数为6~7位)
double(双精度浮点型) 8字节 大约± 1.797 693 134 862 315 70E+308(有效位数为15位)
/**
 * 浮点数据类型
 */
public class DoubleType {
	public static void main(String[] args) {
		// 单精度浮点型数据类型 在数字的末尾推荐使用大写F
		float floatVariable = 1.0F;
		// 双精度浮点型 我们最常用使用这种表示。虽然可以不写后缀名,但是推荐使用大写D表示以做区分
		double doubleVariable = 1.0D;
		// 打印
		System.out.println(floatVariable);
		System.out.println(doubleVariable);
	}
}

注意:不要使用浮点类型的数据做比较。因为1.0 - 0.1的结果不是 0.9 具体的原因可以去网上查询一下具体细节。

(3)char类型:
/**
 * 字符类型char
 */
public class CharType {
	public static void main(String[] args) {
		// 可以输入单个字符
		char charVariable = 'A';
		// 可以输入Unicode的编码
		char charVariable1 = '\u0200';
		// 可以输入转译字符
		char charVariable2 = '\"';
		// 可以输入数字 但是输出的内容是表示数字对应的ASCII码值
		char charVariable3 = 65;

		// 打印
		System.out.println(charVariable);
		System.out.println(charVariable1);
		System.out.println(charVariable2);
		System.out.println(charVariable3);
	}
}
(4)真值boolean类型
/**
 * 真值 boolean类型
 */
public class BooleanType {
	public static void main(String[] args) {
		// 一个真值变量 而且 它的值只有 true 和 false两个。
		boolean booleanVariable = true;
		
		// 打印
		System.out.println(booleanVariable);
	}
}

3.变量:

在前面的例子中我们已经看到了如何声明变量的方法。下面我们解释一下:

/**
 * 变量
 */
public class Variavble {
	public static void main(String[] args) {
		// 声明一个整型变量
		// 变量的命名 要符合规范,以字母开头,不能使用关键字。尽量要保持语义化可以让人能明白 变量的意思 比如int a; 就是一个不好的变量命名。
		int variable;
		// 变量初始化
		variable = 1;
		// 也可以将声明和初始化放在一起。推荐使用
		int variable1 = 1;
		
		// 表示声明一个常量,并且此变量一旦赋值便不可以进行修改。推荐常量名全部使用大写
		final int VARIABLE2 = 2;
	}
}

4.运算符

(1)常用运算符:+ - * / % += -= /= %=等。
(2)数学函数
/**
 * 数学函数
 */
public class MathMethod {
	public static void main(String[] args) {
		// 计算一个数的平方根
		System.out.println(Math.sqrt(4));
		// 如果被除数是 正数则是 3 % 5 如果是负数 则是 (-3 + 5)% 5
		System.out.println(Math.floorMod(3,5));
		// 计算一个数的sin,cos,tan等
		System.out.println(Math.sin(5));
		System.out.println(Math.cos(5));
		System.out.println(Math.tan(5));
		// 还有一下其他比较常用的数学函数可以自己查看API手册
	}
}
(3)数值类型转换

在做运算时首先会将两个操作数转换成同一种类型,然后在进行计算。

  • 如果两个操作数中有一个是double类型,另一个操作数就会转换为double类型。
  • 如果其中一个操作数是float类型,另一个操作数将转换为float类型。
  • 如果其中一个操作数是long类型,另一个操作数将会转换为long类型。
  • 如果是短整型,字节型将会转换成int类型计算。

实线表示无精度损失,虚线表示存在精度损失
Java基本语法(一)
当我们需要把精度大的转换成精度小的时候,就叫做强制类型转换。

/**
 * 强制类型转换
 */
public class TypeChange {
	public static void main(String[] args) {
		// 声明一个double变量
		double doubleVairable = 1.0D;
		// 强制转换成int类型
		int intVairable = (int) doubleVairable;
		// 声明一个boolean类型变量
		boolean isFlag = true;
		// 当我们想要把boolean类型强制转换成int类型时 用三目运算符进行转换不要用上面的方法。
		int booleanChange = isFlag ? 1 : 0;
	}
}
(4)自增和自减元算符 – 和 ++

注意:

  • 变量++ 表示当前变量使用完毕后将变量自增1
  • ++变量 表示先将当前变量进行自增1在进行运算。
(5)关系运算符

常用的就是 > 、=、 <、 <=、 >=、==
还有就是 && || !=
注意:
&& 和 ||:会存在逻辑短路现象。
比如:1 > 2 && 1 < 0 当第一次判断的时候如果为假后面的判断就不会在进行了。
2 > 1 || 1 > 2 当第一次判断的时候如果为真后面的判断就不会在进行了。

三目运算符: 1 > 2 ? 0 : 1 表示如果前面的判断为真 则会得到第一个值,为假得到后面一个值。

(6)位运算符

& | ^ ~ ,<<(左移) >>(右移)这些运算符不经常会用到,我也就不会讲解了,有兴趣的可以去查下资料。

(7)运算符的优先级
运算符 结核性
[] . () (方法调用) 从左向右
!~ ++ – +(一元运算符) - (一元运算符)()(强制类型转换) 从右向左
* / % 从左向右
+ - 从左向右
<< >> >>> 从左向右
< <= > >= instanceof 从左向右
= = != 从左向右
& 从左向右
^ 从左向右
从左向右
&& 从左向右
|| 从左向右
?: 从右向左
= += -= *= /= %= &= |= ^= <<= >>= >>>= 从右向左
(8)枚举类型

后面会讲解

四.结束语

下一篇我们讲解Java基本语法(二)。

有些可能我理解的不够深刻,大家如果觉得我说的不够详细可以参考我的推荐书,详细的看一下。欢迎大家评论。第一时间我会回复大家。谢谢!