Java基础语法1、变量1。1问题1、变量的概念2、变量的作用3、变量的定义格式1。2答案1。2。1概念 变量就是内存中的存储空间,空间中记录着经常发生改变的数据1。2。2作用 用于在内存中保存数据;今后要操作的数据,如果是经常发生改变的,就应该用变量进行维护1。2。3定义格式 数据类型变量名数据值;数据类型:为空间中存储的数据,加入类型【限制】,可以限定整数、小数或者其他。变量名:自己要为空间起的名字。数据值:空间中要存储的数值。1。3变量的使用直接输出变量的值格式:在输出语句的小括号直接写变量名就可以了。修改变量的值格式:变量名数据值; 案例: 我们就以整数为例。来做一个代码实现。publicclassDemo1Variable{publicstaticvoidmain(String〔〕args){intsalary12000;定义一个整数类型的变量System。out。println(salary);取出变量里的值salary15000;修改变量里面的值System。out。println(salary);再次取出变量里的值intage18;定义第二个整数类型的变量System。out。println(age);取出变量里的值}}1。4变量的注意事项变量名不允许重复定义一条语句可以定义多个变量变量在使用前一定要进行赋值定义float和long变量的注意事项变量的作用域范围 案例1:publicclassDemo2Variable{publicstaticvoidmain(String〔〕args){intnum10;intnum20;变量名不允许重复inta10,b20,c30,d40;一条语句可以定义多个变量,之间用逗号分割System。out。println(a);System。out。println(b);System。out。println(c);System。out。println(d);floatf12。5F;定义float类型需要在数值后面加上Fflongl13L;定义long类型建议在数值后面加上Llintage;System。out。println(age);变量在使用之前一定要进行赋值,如果不赋值就报错。}} 案例2:关于变量作用范围及变量名冲突问题的案例publicstaticvoidmain(String〔〕args){inta10;作用范围从定义位置开始{inta10;作用范围从定义位置开始}第二个a变量结束第二个a出现在第一个a的所属范围之内,重复变量名System。out。println(a);}第一个a变量结束作用域起作用的范围列举:publicstaticvoidmain(String〔〕args){{inta10;作用范围从定义位置开始}第一个a变量结束inta10;在第一个a结束之后,消失了,再定义变量a,不冲突的System。out。println(a);}publicclassDemo{publicstaticvoidmain(String〔〕args){{inta;作用范围从定义位置开始}a10;作用范围从定义位置开始System。out。println(a);}}1。5代码练习 需求:将(姓名,年龄,性别,身高,是否单身)定义为变量,随后打印在控制台publicclassTestVariable{publicstaticvoidmain(String〔〕args){Stringname张三;姓名Stringintage23;年龄intchargender男;性别chardoubleheight182。1;身高doublebooleanflagfalse;是否单身booleanSystem。out。println(name);System。out。println(age);System。out。println(gender);System。out。println(height);System。out。println(flag);}}2、键盘录入2。1问题1、什么是Scanner以及使用Scanner的目的2、使用步骤2。2答案2。2。1Scanner介绍 Java已经写好了一个类,叫做Scanner,用于获取用户的输入的内容。因为是Java已经写好了,我们直接拿过来用就可以了。 目的:增加程序的灵活性,不需要再次编译,直接运行,在运行过程中输入数据2。2。2使用步骤 1、导包。导包的语句需要定义在类的上面。相当于告诉虚拟机Scanner类在哪里importjava。util。Scanner; 2、创建Scanner对象。相当于给虚拟机打个招呼,我要用这个类了。ScannerscnewScanner(System。in);创建Scanner对象,sc表示变量名,其他均不可变 3、定义变量,接收数据。才是真正干活的代码增加友情提示System。out。println(请输入数据);接收数据将sc。nextInt()获取的你在dos窗口输入的数据给变量a代表的空间intasc。nextInt();可以接收整数Stringssc。next();可以接收字符串 代码示例:第一步:导包importjava。util。Scanner;publicclassScannerDemo{publicstaticvoidmain(String〔〕args){第二步:创建对象ScannerscnewScanner(System。in);System。out。println(请输入一个整数:);友情提示第三步:接收数据intagesc。nextInt();System。out。println(age);System。out。println(请输入一个字符串:);第三步:接收数据Stringnamesc。next();System。out。println(name);}}3、标识符3。1问题1、什么是标识符2、标识符的命名规则3、标识符的命名规范3。2答案3。2。1什么是标识符 标识符是用户编程时使用的名字,用于给类、方法、变量等命名。3。2。2标识符的命名规则 必须严格遵守由26个大小写字母、数字09、下划线、美元符号组成不能以数字开头不能是关键字大小写敏感(区分大小写) 示例:正确的标识符:bjb22bak47Classhelloworld错误的标识符:2bclassitheima3。2。3标识符的命名规范 建议遵守小驼峰式命名:适用于:变量名、方法名规则一:标识符是一个单词的时候,首字母小写。规则二:标识符由多个单词组成的时候,第一个单词首字母小写,其他单词首字母大写比如:name、firstName。大驼峰式命名:适用于:类名规则一:标识符是一个单词的时候,首字母大写规则二:标识符由多个单词组成的时候,每个单词的首字母大写比如:Student、GoodStudent。 注:标识符的命名最好可以做到见名知意。例如:username、studentNumber等。 编码风格:1正确使用注释和注释风格使用文档注释注释整个类或整个方法如果是注释方法的某一个步骤应该使用单行注释或者多行注释2正确的缩进和空白使用一次tab键进行缩进运算符两边习惯各加一个空格不如inta12;3块的风格Java源代码使用的行尾风格publicclassHelloWorld{publicstaticvoidmain(String〔〕args){System。out。println(Java是世界上最好的语言!);}}还有次行风格publicclassHelloWorld{publicstaticvoidmain(String〔〕args){System。out。println(Java是世界上最好的语言!);}}使用的话都使用一种风格不要穿插使用4、类型转换隐式转换 在Java中,不同的基本数据类型之间是不能直接参与运算的。在底层需要先进行类型转换,变成一样的类型,再进行运算。4。1问题1、类型转换的分类2、什么是隐式转换3、隐式转换的规则4。2答案4。2。1类型转换分类 类型转换分为两种:隐式转换强制转换4。2。2隐式转换 隐式转换也叫作自动转换,把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量。这种转换方式是自动的,直接书写即可inta10;doublenuma;将int类型变量a里面的值,直接赋值给double类型System。out。println(num);输出10。04。2。3隐式转换的规则取值范围小的数据,和取值范围大的数据进行运算,小的会先提升为大的之后,再进行运算整数默认是int类型,byte、short和char类型数据参与运算均会自动转换为int类型。boolean类型不能与其他基本数据类型相互转换。 注意:所有的浮点数取值范围都比整数要大因为floatdouble使用科学计数法来存储,而long使用普通的二进制来存储,也就是说一个存的是多少次方,而一个是只有多少位 练习1:问变量c是什么数据类型?inta10;doubleb12。3;???cab;double的取值范围比int大,所以在计算的时候,变量a会自动提升为double。最终是两个double相加,结果就是double类型的。 练习2:bytea10;byteb20;bytecab;第三行代码会报错,a和b会自动转换为int类型,计算结果为int,int赋值给byte需要强制类型转换。修改为:intnumb1b2; 练习3:inta1;charba;intcab;System。out。println(c);最终输出结果:98b会自动转换为int类型,字符变成int类型会查询码表,变成97第三行代码971最终结果为98。5、类型转换强制转换5。1问题1、什么是强制转换2、强转转换的格式3、强制转换的细节5。2答案5。2。1强制转换 自动类型提升的逆运算,把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量5。2。2格式 目标数据类型变量名(目标数据类型)值或者变量;doublenum15。5;intnum2(int)num1;将double类型的num1强制转换为int类型System。out。println(num2);输出5(小数位直接舍弃)5。2。3细节 强制类型转换有可能会损失精度损失精度:doublenum12。5;intnum2(int)num;将double类型的num强制转换为int类型,a12(小数位直接舍弃);inti128;byteb(byte)i;128没有损失精度:inta12;byteb(byte)a;b12;6、类型转换案例1注意点1:longnum12345L;System。out。println(num);long类型的数据不加L也可以输出12345是int类型赋值大类型发生了自动类型提升longnum2123456789012345;System。out。println(num2);已经超过了int的取值范围报错这个就必须加L不加L是按照4个字节存的加L是按照8个字节存的floatf12;?floatf12。5;?2注意点2:整数常量默认是int小数常量默认是doublebyteb12;byteb2b11;编译失败floatfb12。5;编译失败3注意点3bytea34;常量优化机制:3和4都是常量直接拿一个7出来整数不是默认int类型?怎么能用byte进行存储呢?看后面的常量值在不在byte的取值范围之内在,可以按照byte的方式进行存储不在,超出范围报错(进行强制类型转换)