02_Java基础语法入门
Java基础语法入门变量、数据类型与运算符全掌握文章目录Java基础语法入门变量、数据类型与运算符全掌握前言一、注释——给代码加说明二、标识符与关键字2.1 标识符命名规则2.2 命名规范强烈建议遵守2.3 常用关键字三、变量与常量3.1 变量的定义3.2 变量使用注意事项3.3 常量四、数据类型详解4.1 八种基本数据类型4.2 引用数据类型4.3 基本类型与包装类五、类型转换5.1 自动类型转换隐式转换5.2 强制类型转换显式转换5.3 表达式中的自动提升六、运算符6.1 算术运算符6.2 比较运算符6.3 逻辑运算符6.4 赋值运算符与三元运算符总结前言学完了环境搭建和HelloWorld程序你已经能和Java世界打招呼了。接下来就要正式开始学习Java的语法规则。基础语法是盖楼的地基地基不牢大厦将倾。本文将系统讲解Java中的注释、标识符、关键字、变量、数据类型、类型转换和运算符让你建立起完整的Java语法体系。一、注释——给代码加说明注释是程序员为了增强代码可读性而添加的文字说明编译时会被完全忽略不影响程序运行。Java中有三种注释// 这是单行注释从双斜杠开始到本行结束/* 这是多行注释 可以跨越多行 *//** * 这是文档注释Javadoc * 可以用于生成API文档 * author 作者名 * version 1.0 */publicclassCommentDemo{publicstaticvoidmain(String[]args){// 单行注释输出一句话System.out.println(注释示例);}}使用建议复杂逻辑前加注释说明思路不要为简单的代码写无意义的注释好的代码应该是自解释的变量和方法命名要规范二、标识符与关键字2.1 标识符命名规则标识符是用来给类、方法、变量等命名的字符序列。Java中的标识符命名规则由**字母、数字、下划线_、美元符号$**组成不能以数字开头不能使用Java中的关键字大小写敏感name和Name是两个不同的标识符publicclassIdentifierDemo{publicstaticvoidmain(String[]args){intage18;// 正确字母开头int_count10;// 正确下划线开头int$price100;// 正确美元符号开头intmaxValue999;// 正确驼峰命名// int 2num 5; // 错误不能以数字开头// int class 3; // 错误class是关键字}}2.2 命名规范强烈建议遵守类名大驼峰命名法PascalCase如HelloWorld、StudentManager方法名和变量名小驼峰命名法camelCase如getUserName、studentAge常量名全大写下划线如MAX_VALUE、PI包名全小写如com.example.demo2.3 常用关键字Java中有50个关键字以下是初学者最常接触的分类关键字访问修饰符public、private、protected类/方法/变量修饰符class、static、final、abstract数据类型int、double、boolean、char、void流程控制if、else、switch、for、while、return包相关import、package异常处理try、catch、finally、throw、throws三、变量与常量3.1 变量的定义变量是内存中用来存储数据的容器。Java是强类型语言每个变量必须先声明类型才能使用。// 变量定义的三种格式// 1. 先声明再赋值intage;age20;// 2. 声明同时赋值推荐Stringname张三;doublesalary8888.88;// 3. 多变量同时声明inta1,b2,c3;3.2 变量使用注意事项publicclassVariableDemo{publicstaticvoidmain(String[]args){intx10;System.out.println(x);// 变量必须先赋值再使用inty;// System.out.println(y); // 编译错误变量y未初始化// 变量有作用域在定义的大括号内有效{intz100;System.out.println(z);// 正常输出100}// System.out.println(z); // 编译错误z已超出作用域}}3.3 常量用final关键字修饰的变量就是常量一旦赋值就不能修改publicclassConstantDemo{publicstaticvoidmain(String[]args){finaldoublePI3.14159;// PI 3.14; // 编译错误不能修改final变量的值finalintMAX_USERS1000;System.out.println(圆周率PI);System.out.println(最大用户数MAX_USERS);}}四、数据类型详解Java的数据类型分为两大类基本数据类型和引用数据类型。4.1 八种基本数据类型数据类型关键字大小取值范围默认值字节型byte1字节-128 ~ 1270短整型short2字节-32768 ~ 327670整型int4字节-2^31 ~ 2^31-10长整型long8字节-2^63 ~ 2^63-10L单精度浮点float4字节约±3.4E380.0f双精度浮点double8字节约±1.7E3080.0d字符型char2字节0 ~ 65535‘\u0000’布尔型boolean1字节true/falsefalsepublicclassDataTypeDemo{publicstaticvoidmain(String[]args){// 整数类型byteb127;shorts32767;inti2147483647;longl9999999999L;// long类型值后加L// 浮点类型floatf3.14f;// float类型值后加fdoubled3.141592653589793;// 字符类型charc1A;charc2中;// Java使用Unicode编码支持中文charc3\u0041;// 也可以用Unicode编码表示// 布尔类型booleanflag1true;booleanflag2false;// 输出验证System.out.println(byte: b);System.out.println(long: l);System.out.println(float: f);System.out.println(char: c1 c2);System.out.println(boolean: flag1);}}4.2 引用数据类型引用数据类型包括类、接口、数组、枚举等。与基本数据类型不同引用类型变量存储的是对象的内存地址。// String是引用类型但在Java中特别常用StringstrHello Java;int[]arr{1,2,3,4,5};System.out.println(str.length());// 调用String的方法System.out.println(arr[0]);// 访问数组元素4.3 基本类型与包装类Java为每种基本类型提供了对应的包装类引用类型基本类型包装类byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBoolean// 自动装箱和自动拆箱JDK 5Integernum100;// 自动装箱int → Integerintvaluenum;// 自动拆箱Integer → int// 包装类提供了一些实用方法intmaxInteger.MAX_VALUE;StringbinaryStrInteger.toBinaryString(10);// 1010intparsedInteger.parseInt(123);// 字符串转int五、类型转换5.1 自动类型转换隐式转换把小范围类型赋值给大范围类型时Java自动完成转换// 从小到大的自动转换链// byte → short → int → long → float → double// ↗// char ──┘bytemyByte10;intmyIntmyByte;// 自动转换byte → intlongmyLongmyInt;// 自动转换int → longfloatmyFloatmyLong;// 自动转换long → floatdoublemyDoublemyFloat;// 自动转换float → doubleSystem.out.println(自动转换结果myDouble);5.2 强制类型转换显式转换把大范围类型赋值给小范围类型时需要强制转换但可能会丢失数据doublepi3.14159;intiPi(int)pi;// 强制转换截断小数部分 → 3intbig300;bytesmall(byte)big;// 强制转换溢出 → 44300 - 256System.out.println(截断后iPi);System.out.println(溢出后small);// 结果不是3005.3 表达式中的自动提升在表达式中byte、short、char会自动提升为intbytea10;byteb20;// byte c a b; // 编译错误ab结果提升为intintcab;// 正确方式// 不同类型混合运算结果提升为最高类型inti10;doubled3.5;doubleresultid;// int自动转为doubleSystem.out.println(混合运算result);// 13.5六、运算符6.1 算术运算符publicclassArithmeticDemo{publicstaticvoidmain(String[]args){inta10,b3;System.out.println(加法(ab));// 13System.out.println(减法(a-b));// 7System.out.println(乘法(a*b));// 30System.out.println(除法(a/b));// 3整数除法截断System.out.println(取余(a%b));// 1// 自增自减运算符intx5;intyx;// y5, x6先赋值再自增intzx;// z7, x7先自增再赋值System.out.println(xx, yy, zz);}}6.2 比较运算符比较运算符的结果是boolean类型的true或falsepublicclassCompareDemo{publicstaticvoidmain(String[]args){inta10,b20;System.out.println(ab);// false等于System.out.println(a!b);// true不等于System.out.println(ab);// false大于System.out.println(ab);// true小于System.out.println(ab);// false大于等于System.out.println(ab);// true小于等于// 注意比较的是值对于引用类型比较的是地址Strings1newString(hello);Strings2newString(hello);System.out.println(s1s2);// false比较地址System.out.println(s1.equals(s2));// true比较内容}}6.3 逻辑运算符publicclassLogicDemo{publicstaticvoidmain(String[]args){booleanttrue,ffalse;System.out.println(tf);// false逻辑与System.out.println(t||f);// true逻辑或System.out.println(!t);// false逻辑非// 短路效应inta10;booleanresult(a100)(a0);// 短路a不会执行System.out.println(a的值a);// 仍然是10// 短路与() vs 非短路与()// 左边为false右边不执行// 两边都执行}}6.4 赋值运算符与三元运算符publicclassAssignmentDemo{publicstaticvoidmain(String[]args){inta10;a5;// 等价于 a a 5a-3;// 等价于 a a - 3a*2;// 等价于 a a * 2a/4;// 等价于 a a / 4a%3;// 等价于 a a % 3// 三元运算符条件运算符intscore85;Stringgradescore60?及格:不及格;System.out.println(成绩grade);// 嵌套三元运算符intnum5;Stringresultnum0?正数:(num0?零:负数);System.out.println(result);}}总结本文系统讲解了Java基础语法中的核心概念注释三种注释方式好的注释能让代码更易维护标识符与关键字命名规则和规范是写好代码的基础变量与常量声明、赋值、作用域final修饰常量八大基本数据类型整型4种、浮点2种、字符1种、布尔1种类型转换自动转换和强制转换的规则与注意事项运算符算术、比较、逻辑、赋值、三元运算符的用法基础语法虽然琐碎但它是后续学习面向对象、集合框架等内容的前提。建议多写代码在实践中巩固这些知识点。下一篇文章我们将学习Java的流程控制语句。