JAVA语法基础 标识符 关键字 注释 变量 数据类型与类型转换

本文介绍了Java编程的基础知识,包括标识符的规则,如不能以数字开头,区分大小写,不能是关键字;关键字的全小写特性,如`int`、`double`等;注释的种类,如单行、多行和文档注释;变量的声明与赋值,以及常量的概念。此外,还探讨了数据类型的范围,如`byte`、`short`、`int`、`long`、`float`、`double`的最大值和最小值,并给出了练习示例。
摘要由CSDN通过智能技术生成

1 JAVA语法基础

1.1 标识符

标识符可以简单的理解成一个名字。
在Java中,我们需要标识代码的很多元素,包括类名、方法、字段、变量、包名等等。我们选择的那个名称就称为标识符,一个正确的标识符需要遵循以下规则:

1. 标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符
2. 不能以数字开头。如:123name 就是不合法
3. 标识符严格区分大小写。如: tmooc 和 tMooc 是两个不同的标识符
4. 标识符的命名最好能反映出其作用,做到见名知意。
5. 标识符不能是Java的关键字

1.2 关键字

在Java中,有一些单词被赋予了特定的意义,一共有53个关键字。
这53个单词都是全小写,其中有两个保留字:const和goto。
注意,关键字不能被用作标识符!!
关键字速查表

1.3 注释

几乎所有编程语言都允许程序员在代码中输入注释,因为编译器会忽略注释,所以注释并不会影响程序的运行结果。
注释的真正作用是: 它可以向任何阅读代码的人描述或者解释程序的实现思路,如何使用以及其它任何相关信息, 提高代码的可读性,方便后期的维护与复用。Java的注释有3种:

1. 单行注释: 注释单行内容.

格式: 每行都以”//”开头.
快捷方式: Ctrl+/ 添加注释,同样的快捷键,再按一次取消注释

2. 多行注释:注释多行内容,虽然叫多行注释,也可注释单行内容.

格式: 以” /* ”开头, 以” * / ”结束.
快捷方式: Ctrl+shift+/ 添加注释, Ctrl+shift+\ 取消注释, 也可以输入”/*”之后按回车添加注释

3. 文档注释: 一般用来注释类和方法,通过注释内容来记录类或者方法的信息.

格式: 以” /** ”开头。 以” */ ”结尾.
快捷方式: 输入“/**” 之后按回车添加注释

1.4 变量

在JAVA中,我们需要记录一些数据,但这些数据的值是不固定的,总在变,我们可以把这些数据理解为变量。
我们通过三个元素来描述变量:变量类型 变量名以及变量值。
int age = 18; //声明int类型的变量并赋值
String tel ; //声明String类型的变量

注意:
  1. 变量名必须是一个有效的标识符
  2. 变量名不可以使用java关键字
  3. 变量名不能重复

1.5 常量

在程序运行过程中,值一直不会改变的量成为常量。(后续会进一步学习,略…)

2 数据类型

2.1 基本类型介绍(八种)

变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。
java是一个强类型的语言,会把日常见到的数据,分成好多类型.
内存管理系统根据变量类型来分配存储空间,分配的空间只能用来储存该类型数据。
常用的转换关系:
位 bit,来自英文bit,音译为“比特”,表示二进制位。
1 Byte = 8 Bits (1字节 = 8位)
1 KB = 1024 Bytes 1 MB = 1024 KB 1 GB = 1024 MB八大基本类型速查表

2.2 练习: 输入个人信息

创建包: cn.tedu.basic
创建类: TestInfo.java
需求: 在控制台打印: java架构师今年20岁,月薪100000.99,感慨java是世界上最好的语言

package cn.tedu.basic;
/**
 * 	本类用于测试在控制台打印个人信息
 * 	需求: 在控制台打印: 
 *  java架构师XXX今年X岁,月薪XXX,感慨java是世界上最好的语言
 *  @author XYCheng
 */
public class TestInfo {
	//Alt+/ 提示补全代码  Ctrl+s保存代码  Ctrl+F11执行代码
	public static void main(String[] args) {
		/**1.在我们的程序当中{} [] () "" 都是成对出现的,而且都是英文符号*/
		/**2. 一串数据,在java里是字符串类型—String  
		 * 字符串类型的数据,要被一对双引号 引起来*/
		System.out.println("欢迎来到Java世界,可爱的程序猿们");
	<span class="token comment">/**3.定义变量的规则:数据类型 数据名 数据值 */</span>
	<span class="token class-name">String</span> name<span class="token operator">=</span><span class="token string">"陈子枢"</span><span class="token punctuation">;</span>
	<span class="token keyword">int</span> age <span class="token operator">=</span> <span class="token number">18</span><span class="token punctuation">;</span>
	<span class="token keyword">double</span> salary <span class="token operator">=</span> <span class="token number">100000.99</span><span class="token punctuation">;</span>
	
	<span class="token comment">/**4.把静态数据与动态数据分开,通过+实现动态数据的动态拼接*/</span>
	<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"我叫"</span><span class="token operator">+</span>name<span class="token punctuation">)</span><span class="token punctuation">;</span>
	<span class="token comment">/**5.如果是在中间拼接用""+变量+""的格式*/</span>
	<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"java架构师"</span><span class="token operator">+</span>name<span class="token operator">+</span><span class="token string">",今年"</span><span class="token operator">+</span>age<span class="token operator">+</span><span class="token string">"岁,月薪"</span><span class="token operator">+</span>salary<span class="token operator">+</span><span class="token string">",感慨java是世界上最好的语言"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

2.3 练习:查看基本类型的最大值与最小值

创建包: cn.tedu.basic
创建类: TestTypeScope.java

package cn.tedu.basic;
/**
 * 本类用于查看基本类型的最大值与最小值
 * Ctrl+Alt+向下键 快速向下复制一行
 */
public class TestTypeScope {
	//必须要写入口函数,否则代码无法执行,因为没有入口
	public static void main(String[] args) {//入口函数
		//进行整形类型的测试 byte1 short2 int4 long8
		//1.定义变量,用变量分别保存最大值与最小值
		//定义变量 数据类型 变量名 变量值 Ctrl+Alt+向下键 快速向下复制一行 换位置:Alt+方向键
		/**JAVA提供了对应的基本类型的工具箱*/
		byte byteMax = Byte.MAX_VALUE;
		byte byteMin = Byte.MIN_VALUE;
		System.out.println("byte类型的最大值是:"+byteMax);//127
		System.out.println("byte类型的最小值是:"+byteMin);//-128
	<span class="token keyword">short</span> shortMax <span class="token operator">=</span> <span class="token class-name">Short</span><span class="token punctuation">.</span>MAX_VALUE<span class="token punctuation">;</span>
	<span class="token keyword">short</span> shortMin <span class="token operator">=</span> <span class="token class-name">Short</span><span class="token punctuation">.</span>MIN_VALUE<span class="token punctuation">;</span>
	<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"short类型的最大值是:"</span><span class="token operator">+</span>shortMax<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//32767</span>
	<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"short类型的最小值是:"</span><span class="token operator">+</span>shortMin<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//-32768</span>
	
	<span class="token keyword">int</span> intMax <span class="token operator">=</span> <span class="token class-name">Integer</span><span class="token punctuation">.</span>MAX_VALUE<span class="token punctuation">;</span>
	<span class="token keyword">int</span> intMin <span class="token operator">=</span> <span class="token class-name">Integer</span><span class="token punctuation">.</span>MIN_VALUE<span class="token punctuation">;</span>
	<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"int类型的最大值是:"</span><span class="token operator">+</span>intMax<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//2147483647</span>
	<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"int类型的最小值是:"</span><span class="token operator">+</span>intMin<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//-2147483648</span>
	
	<span class="token keyword">long</span> longMax <span class="token operator">=</span> <span class="token class-name">Long</span><span class="token punctuation">.</span>MAX_VALUE<span class="token punctuation">;</span>
	<span class="token keyword">long</span> longMin <span class="token operator">=</span> <span class="token class-name">Long</span><span class="token punctuation">.</span>MIN_VALUE<span class="token punctuation">;</span>
	<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"long类型的最大值是:"</span><span class="token operator">+</span>longMax<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//9223372036854775807</span>
	<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"long类型的最小值是:"</span><span class="token operator">+</span>longMin<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//-9223372036854775808</span>
	
	<span class="token comment">//浮点型测试 float double</span>
	<span class="token comment">//1.4E-45(1.4乘以10的负45次方)</span>
	<span class="token keyword">float</span> floatMax <span class="token operator">=</span> <span class="token class-name">Float</span><span class="token punctuation">.</span>MAX_VALUE<span class="token punctuation">;</span>
	<span class="token keyword">float</span> floatMin <span class="token operator">=</span> <span class="token class-name">Float</span><span class="token punctuation">.</span>MIN_VALUE<span class="token punctuation">;</span>
	<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"float类型的最大值是:"</span><span class="token operator">+</span>floatMax<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//3.4028235E38</span>
	<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"float类型的最小值是:"</span><span class="token operator">+</span>floatMin<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//1.4E-45</span>
	
	<span class="token keyword">double</span> doubleMax <span class="token operator">=</span> <span class="token class-name">Double</span><span class="token punctuation">.</span>MAX_VALUE<span class="token punctuation">;</span>
	<span class="token keyword">double</span> doubleMin <span class="token operator">=</span> <span class="token class-name">Double</span><span class="token punctuation">.</span>MIN_VALUE<span class="token punctuation">;</span>
	<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"double类型的最大值是:"</span><span class="token operator">+</span>doubleMax<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//1.7976931348623157E308</span>
	<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"double类型的最小值是:"</span><span class="token operator">+</span>doubleMin<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//4.9E-324</span>
	
	<span class="token comment">//布尔型boolean true真 false假</span>
	<span class="token keyword">boolean</span> b1 <span class="token operator">=</span> <span class="token boolean">true</span><span class="token punctuation">;</span>
	<span class="token keyword">boolean</span> b2 <span class="token operator">=</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
	
	<span class="token comment">//字符型char</span>
	<span class="token keyword">char</span> c1 <span class="token operator">=</span> <span class="token string">'a'</span><span class="token punctuation">;</span><span class="token comment">//可以保存一个字符</span>
	<span class="token keyword">char</span> c2 <span class="token operator">=</span> <span class="token number">97</span><span class="token punctuation">;</span><span class="token comment">//可以保存一个数字</span>
	<span class="token keyword">char</span> c3 <span class="token operator">=</span> <span class="token string">'中'</span><span class="token punctuation">;</span><span class="token comment">//可以保存一个汉字</span>
	<span class="token comment">//char类型可以存数字,但是在打印时,会去查ASCII码表,把数字对应的字符拿出来使用</span>
	<span class="token comment">//ASCII码表值规定了数组0-127对应的字符,128-65535默认按照字符?来处理</span>
	<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>c1<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//a</span>
	<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>c2<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//a</span>
	<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>c3<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//中</span>
<span class="token punctuation">}</span>

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59

2.4 练习:求圆形的面积

需求:求出指定半径圆的面积
公式:圆的面积:π * r * r
创建包: cn.tedu.basic
创建类: TestCircleArea.java

package cn.tedu.basic;

import java.util.Scanner;

/*本类用于求圆的面积/
public class TestCircleArea {
public static void main(String[] args) {
//公式:πrr
//1.提示用户输入要求圆的半径
System.out.println(“请您输入要求圆的半径值:”);
//2.接收用户输入的半径值
double r = new Scanner(System.in).nextDouble();
//3.根据半径进行计算圆的面积
double circleArea = 3.14rr;
//4.把圆的面积打印到控制台
System.out.println(“当半径为”+r+“时,圆的面积为:”+circleArea);
}
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

2.5 练习:变量交换

变量值交换

需求: 接收用户输入的两个值:假设a=1,b=2,并将这两个变量的值进行互换

创建包: cn.tedu.basic
创建类: TestValueExchage.java

package cn.tedu.basic;

import java.util.Scanner;

/*本类用于交换两个变量的值/
public class TestValueExchage {
public static void main(String[] args) {
//1.提示并接收用于输入的两个值
System.out.println(“请输入a的值:”);
int a = new Scanner(System.in).nextInt();
System.out.println(“请输入b的值:”);
int b = new Scanner(System.in).nextInt();
System.out.println(“a的值:”+a);
System.out.println(“b的值:”+b);

	<span class="token comment">//2.交换a b 两个变量的值</span>
	<span class="token keyword">int</span> t <span class="token punctuation">;</span><span class="token comment">//定义用来值交换的第三方变量t</span>
	t <span class="token operator">=</span> a<span class="token punctuation">;</span><span class="token comment">//把a的值交给t来保存</span>
	a <span class="token operator">=</span> b<span class="token punctuation">;</span><span class="token comment">//把b的值交给a来保存</span>
	b <span class="token operator">=</span> t<span class="token punctuation">;</span><span class="token comment">//把t的值嫁给b来保存</span>
	<span class="token comment">//3.把交换后的两个值打印在控制台</span>
	<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"交换后,a的值为:"</span><span class="token operator">+</span>a<span class="token punctuation">)</span><span class="token punctuation">;</span>
	<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"交换后,b的值为:"</span><span class="token operator">+</span>b<span class="token punctuation">)</span><span class="token punctuation">;</span>
	
<span class="token punctuation">}</span>

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

2.6 引用类型

引用类型是一个对象类型,值是什么呢?它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。如:类,接口,数组,后面讲。。。
(后续会进一步学习,略…)

3 基本类型的字面值(5条)

3.1 整数字面值是int类型

int x = 99999;//对,右面数据的字面值是int类型
int x = 99999999999;//错,右面数据的字面值是int类型,但是已经超出int的取值范围。

3.2 byte,short,char三种比int小的整数可以用范围内的值直接赋值

byte b1=127;//对,
byte b2=128;//错,超出byte范围

3.3 浮点数的字面值是double类型

double r =3.14;//对
float r =3.14;//错,右面的数据字面值是double,float是4字节存不下double类型的数据

3.4 字面值后缀L D F

long x =99999999999L;//字面值是int类型,需转成long类型的数据,加字面值后缀L即可
float b = 3.0F;//3.0字面值是double类型,加后缀F会变成float类型
double d = 3D;//3字面值是int类型,加后缀D,会变成double类型

3.5 进制前缀

0b - 标识这是2进制 ,如:0b0101
0 - 标识这是8进制, 8进制是三位,如: 023
0x - 标识这是16进制,如: 0x0001
\u -标识这是char类型,属于16进制

4 基本类型的类型转换

箭头开始的地方是小类型,箭头指向的地方是大类型
我们此处所指的"大"和"小",指的是对应类型的取值范围,不是字节数哦
基本类型的类型转换

4.1 小到大(隐式转换)

byte m = 120;
int n = m;//小转大,右面的m是小类型,给左面的n大类型赋值,可以直接使用
float f = 3.2f; double d = f; -->可以执行

4.2 大到小(显式转换)

容量大的类型转换为容量小的类型时必须使用强制类型转换。

int x = 999;
byte y =(byte)x;//大转小,右面x给左面的y小类型赋值,不可以,需要强制类型转换
  1. 转换过程中可能导致溢出或损失精度
    例如:int i =128; byte b = (byte)i; //打印的结果是-128
    因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。
  2. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
    例如:float f = 32.7f; int a2 =(int) f; //打印的结果是32
  3. 不能对boolean类型进行类型转换。

4.3 口诀:

小到大,直接转 大到小,强制转 浮变整,小数没

低 ------------------------------------> 高

byte,short,char→ int→ long→float→double

5 运算规则(5条)

5.1 计算结果的数据类型,与最大数据类型一致

System.out.println(3/2);//1,int/int,得到的结果类型还是int
System.out.println(3/2d);//1.5,int/double。得到的结果是double

5.2 byte,short,char三种比int小的整数,运算时会先自动转换成int

byte a = 1;
byte b = 2;
byte c = (byte)(a+b);
//a+b会自动提升成int类型,右面得运算结果就是int大类型
//给左面的byte小类型赋值,不可以,需要强转。

5.3 整数运算溢出

整数运算溢出

整数运算,类似于一个钟表,转到最大时,再转会回到最小。
计算:光速运行一年的长度是多少米?3亿m/s

//溢出的现象:
//因为做了大的整型数据的运算,会超出int取值范围。解决方法:把整数提升成long类型。
System.out.println(300000000L * 60 * 60 * 24 * 365);

5.4 浮点数运算不精确

1-0.8 (这是一个现象,后续会学习解决方案)

5.5 浮点数的特殊值

Infinity 无穷大 3.14/0
NaN not a number 0/0.0 或 0.0/0

6 拓展 标识符命名风格

1.【强制】标识符命名均不能以数字开头,而且下划线或美元符号开始,也不能以下划线或美元符号结束
错误案例:1name / _ name / name_ / $ name / name $
2.【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。
注意,即使纯拼音命名方式也要避免采用。
正确案例:alibaba / taobao / youku / hangzhou 等国际通用的名称,可视同英文。
错误案例:DaZheModule [打折模块] / getPingfenByName() [评分]
3.【强制】类名使用 UpperCamelCase 风格,即第一个单词的首字母就要大写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值