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

JAVA语法基础 标识符 关键字 注释 变量 数据类型与类型转换1JAVA 语法基础 1 1 标识符标识符可以简单的理解成一个名字 在 Java 中 我们需要标识代码的很多元素 包括类名 方法 字段 变量 包名等等 我们选择的那个名称就称为标识符 一个正确的标识符需要遵循以下规则 1 标识符可以由字母 数字 下划线 美元符 组成 但不能包含 空格等其它特殊字符 2 不能以数字开头 如 123name 就是不合法 3 标识符严格区分大小写 如 tmooc 和 tMooc 是两个不同的标识符 4 标识符的命名最好能反映出其作用 做到见名知意

1 JAVA语法基础

1.1 标识符

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

1.2 关键字

1.3.1 注释

1. 单行注释: 注释单行内容.
2. 多行注释:注释多行内容,虽然叫多行注释,也可注释单行内容.
3. 文档注释: 一般用来注释类和方法,通过注释内容来记录类或者方法的信息.

1.3.2 练习:

package cn.tedu.basic; /本类用于练习注释*/ public class CommentDemo { 
    //我是一个单行注释 /* * 我 * 是 * 一 * 个 * 多行注释 */ / * 我是一个文档注释/DOC注释 * 我也可以注释多行内容 * 除此之外,我还可以添加一些作者/时间/版本...的信息 */ public static void main(String[] args) { 
    System.out.println("我就是想测试下注释会不会执行~"); } } 

1.4 变量

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

1.5 常量

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

2 数据类型

2.1 基本类型介绍(八种)

2.2 练习: 输入个人信息

package cn.tedu.basic; /本类用于完成个人信息输出案例*/ public class TestInfo { 
    //1.添加程序的入口函数main() public static void main(String[] args) { 
    /1.定义变量的规则:变量的类型 变量名 变量的值*/ /2.String是字符串类型,用来保存多个字符*/ //2.定义变量 String name = "泡泡";//定义一个String变量用来保存姓名"江江" int age = 16;//定义一个age变量用来保存年龄16 double salary = .66;//定义一个变量salary用来保存工资 //3.我们可以通过打印语句查看变量的值 System.out.println(name); System.out.println("java架构师"+name+",今年"+age+"岁,月薪"+salary+",感慨Java是世界上最好的语言!"); } } 

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

package cn.tedu.basic; /本类用于测试基本类型*/ public class TestTypeScope { 
    //1.创建程序的入口函数 public static void main(String[] args) { 
    /1.整形类型:byte short int long*/ /2.Java给8大基本类型都提供了类型对应的“工具箱”*/ /3.int类型的工具箱比较特殊,叫做:Integer*/ //2.定义对应类型的变量:格式:类型 名字 = 值 ; byte byteMin = Byte.MIN_VALUE; byte byteMax = Byte.MAX_VALUE; System.out.println("byte类型的最小值为:" + byteMin); System.out.println("byte类型的最大值为:" + byteMax); short shortMin = Short.MIN_VALUE; short shortMax = Short.MAX_VALUE; System.out.println("short类型的最小值为:" + shortMin); System.out.println("short类型的最大值为:" + shortMax); int intMin = Integer.MIN_VALUE; int intMax = Integer.MAX_VALUE; System.out.println("int类型的最小值为:" + intMin); System.out.println("int类型的最大值为:" + intMax); long longMin = Long.MIN_VALUE; long longMax = Long.MAX_VALUE; System.out.println("long类型的最小值为:" + longMin); System.out.println("long类型的最大值为:" + longMax); /4.浮点类型 :float double*/ float floatMin = Float.MIN_VALUE; float floatMax = Float.MAX_VALUE; System.out.println("float类型的最小值为:" + floatMin); System.out.println("float类型的最大值为:" + floatMax); double doubleMin = Double.MIN_VALUE; double doubleMax = Double.MAX_VALUE; System.out.println("double类型的最小值为:"+ doubleMin); System.out.println("double类型的最大值为:"+ doubleMax); /5.boolean布尔类型只有两个值true与false * 虽然true和false不是关键字,但是也不可以用作标识符*/ boolean b1 = true; boolean b2 = false; /6.测试char 字符类型 * 字符型的数据需要使用单引号 ' ' 来包裹 * char类型可以存数字,但是会从ASCII码表查出这个数字对应的字符来打印 * 128~65535这些数字,也可以保存,但是eclispe一般显示为?*/ char c1 = 'a';//字符型可以保存一个字母 char c2 = '中';//字符型还可以保存一个汉字 char c3 = '7';//字符型可以保存一个字符7 char c4 = 97;//字符型可以保存数字,但是会查ASCII,打印的是字符a char c5 = 55;//字符型可以保存数字,但是会查ASCII,打印的是字符7 char c6 = 199; System.out.println(c1); System.out.println(c2); System.out.println(c3); System.out.println(c4); System.out.println(c5); System.out.println(c6); } } 

2.4 练习:求圆形的面积

package cn.tedu.basic; import java.util.Scanner; /本类用于求圆形的面积*/ public class TestCircleArea { 
    //1.创建程序的入口函数main() public static void main(String[] args) { 
    /等号右边的值赋值给等号左边的变量来保存*/ //1.提示用户输入圆的半径: System.out.println("请您输入要求的半径值:"); /变量的第二种定义方式:先定义,再赋值*/ //2.1定义一个变量用来保存圆的半径 //double r = 5.5; double r ; //2.2接收用户在键盘上输入的数据,并把这个数据交给r保存 //开启扫描(发出一个系统指令,准备接收控制台输入的数据) //nextDouble()控制用户只能输入double类型的数据,否则报错 r = new Scanner(System.in).nextDouble(); //根据半径值求出圆的面积 double circleArea = 3.14 * r * r; //打印计算的结果 System.out.println("圆的面积是:"+circleArea); } } 

2.5 练习:变量交换

在这里插入图片描述
需求: 接收用户输入的两个值:假设a=1,b=2,并将这两个变量的值进行互换
创建包: cn.tedu.basic
创建类: TestValueExchage.java






package cn.tedu.basic; import java.util.Scanner; /本类用于练习值交换案例*/ public class TestValueExchange { 
    //1.创建程序的入口函数main public static void main(String[] args) { 
    //2.提示并接受用户在控制台输入的两个整数 System.out.println("请输入要交换的第一个整数:"); int a = new Scanner(System.in).nextInt(); System.out.println("请输入要交换的第二个整数:"); int b = new Scanner(System.in).nextInt(); System.out.println("a的值:"+a); System.out.println("b的值:"+b); //3.交换 a b 这两个变量保存的值 int t;//定义一个变量用来辅助值交换 t = a;//把a的值交给t来保存 a = b;//把b的值交给a来保存 b = t;//把t的值交给b来保存 System.out.println("交换后,a的值:"+a); System.out.println("交换后,b的值:"+b); } } 

2.6 引用类型

除了基本类型以外的所有类型都是引用类型
目前我们只遇到了String字符串类型,需要用双引号包裹
引用类型是一个对象类型,值是什么呢?
它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。如:类,接口,数组,后面讲。。。
(后续会进一步学习,略…)








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

3.1 整数类型的字面值类型是int类型

也就是说,我们只要写一个整数,就被认为是int类型

int x = 99999; //byte y = 300;//错,300是int类型,byte存不下 //int z = 9;//错,虽然是int类型,但是超出范围 long h = 9L;//如果要定义long类型需要加后缀L 

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

也就是说,我们只要写一个小数,就被认为是double类型

 double d = 3.14; //float f = 3.14;//错,3.14认为自己是double类型 float f = 3.14F;//如果要定义float类型需要加后缀F double d2 = 3D;//如果要定义的小数是整数,最好加D方便阅读 

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

byte b1=127;//对, byte b2=128;//错,超出byte的范围 char c1=97;//对,对应的是码表中的'a' char c2 =69999;//错,超出char的范围 

3.4 字面值后缀L D F

long x =L;//字面值是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
 //10进制,底数为10:10^2 10^1 10^0 =100+0+0=100 System.out.println(100);//默认10进制,打印100 //2进制,底数为2:2^2 2^1 2^0 =4+0+0=4 System.out.println(0b100);//2进制,打印4 //8进制,底数为8:8^2 8^1 8^0 =64+0+0=64 System.out.println(0100);//8进制,打印64 //16进制,底数为16:16^2 16^1 16^0 =256+0+0=256 System.out.println(0x100);//16进制,打印256 

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 整数运算溢出

整数运算溢出

//溢出的现象:
//因为做了大的整型数据的运算,会超出int取值范围。解决方法:把整数提升成long类型。
System.out.println(L * 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 拓展 标识符命名风格

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209886.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午8:14
下一篇 2026年3月19日 上午8:15


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号