文章目录
一、 概述
1、概述
变量、程序流程控制是重点
二、关键字和保留字
简单的说就是在Java里有特殊含义的,不能用他们命名变量
说白了就是先把这个坑站上,以后可能会用到,命名时也要避开
三、标识符
标识符(自己命名的)
命名规则第三个就是说标识符不能是单独的关键字或保留字,但是可以是他们加上前面说到的英文字母大小写、0到9、下划线、$
注意:
1>、Java严格区分大小写,意思就是,虽然static是关键字,但是如果标识符是Static,则不会报错!
2>、如果是staticpublic也不会报错
【补充】小技巧
1>、想要用cmd命令进入某个地址之后,进行操作,可以直接在在那个目标文件夹的上面的路径那里输入cmd就直接使cmd在这个路径下
2>、写代码只要暂停了,要形成不自觉地ctrl+s——保存
四、变量
首先出现的问题:在文件夹里新建文件,一开始是文本文件(.txt),但是我们要先把他的扩展名改成.java之后,再往里面写程序,同时要注意含有main的那个类名要和文件名一致,之后再用javac编译
类名和文件名的关系:
1、文件中只能有一个类前面有public修饰,这个类要和文件名一致,上面那个图有两个public,但是是一个类中的两个方法。
2、类中有main方法的要和文件名一致
变量在未定义过、未赋值过的情况下都不能直接输出,在编译会报错
【小技巧】新建一个Java文本,在新建——Java里,会把大致的框架给出
4.1变量的分类
1>变量按照数据类型来分
基本数据类型:
整型:byte、short、int、long
浮点型:float、double
字符型:char
布尔型:boolean
引用数据类型:
类 (class)
接口(interface)
数组(array)
2>变量在类中声明的位置
成员变量 vs 局部变量(后面会讲到)
4.1.1整型
因为byte的范围比较小,需要记一下
long 型在数据后面要加l或L
【补充】编程过程中发现,程序只要修改一次,保存,先要重新编译,再运行,才能出现刚才修改过的内容
4.1.2浮点型
这里的E代表10的多少次方
小知识:为什莫int也是4个字节,float也是,但float表示的范围比int还大,而且比long还大?
因为在float里有一部分表示小数,还有一部分表示10的几次幂,所以范围大
注意:
1、定义float类型时,末尾要以f或者F结尾
2、通常定义浮点型,一般用double
4.1.3字符类型
一个字符=2个字节
1、定义char型变量通常使用一对单引号,内部只能写一个字符
声明一个转义字符 char c1=‘\n’(换行符)、char c1=‘\t’(制表符)
【补充】
①如果就像单纯的输出\n这两个字符,应该System.out.println(“\n”);
②想在字符串中出现双引号,应该System.out.println(“你是"单身狗”");
*还可以用Unicode值来表示一个字符型常量(不常用)char c1=‘\u01043’(表示Unicode值为0043的那个字符——c)
【小误区】在写System.out.println()括号里面可以直接写变量名称,比如上面定义的c1,也可以写一个字符串,但是这个时候要加双引号
2、字符集
作用:我们在写一个字符的时候,需要计算机用01的二进制将这个字符表示出来,字符和二进制数之间的转换就是需要字符集
a——97
A——65
4.1.4布尔型
1、只能取两个值之一:true、false(与c语言不同,c中用0表示false,非0表示true)
2、常常在条件判断、循环结构中使用
五、基本数据类型间的运算规则
前提:这里说的是7种数据类型之间的运算(byte、int、short、long、float、double、char),不包含boolean类型
5.1自动类型转换
1、当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动转换为容量大的类型。
容量小/大指的是类型标识属的范围的大小,而不是占用内存空间的大小。
byte<short<int<long<float<double
如果转换成float类型,也可以,只不过输出结果会自动补一个.0,即123.0
但其实考虑到char类型,应该是:
byte 、short 、char<int<long<float<double,因为:
char c1=‘a’; byte b1=10; short s1=10;
c1+b1、c1+s1最后都要保存为int型
特别的:当char、short、byte做运算时,结果为int(这里指的是这三种类型之间运算,也就是short+byte、char+char、byte+byte、short+short等等都算)
5.2 强制类型转换
1、是自动类型转换的逆运算,即:
进行“往回返”操作的时候需要进行强制转换
2、进行的操作是截断而不是四舍五入
输出结果为12
3、注意
①需要使用强制转换符()
②强制转换可能会导致精度损失,如:
long l1=123;short s1=(short)l1;这时就不会出现精度损失
③
注意以下情况:
1、如果在定义long型时,没有在变量后面加上L,有时不会报错,有时会。因为这个时候其实不加L,计算机会把数据存成int型。如:
long l1 = 123;//不会报错,因为赋值的数据没有超过int范围
long l1 = 1234567898;//会报错,因为超出范围
2、在定义float型时,必须要加F,否则编译失败
3、
①整型常量默认为int型,如:
byte b = 12;
byte b1 = b + 1;//这里会出现报错,应该将b1设置为int型,因为1是整型常量,计算机默认1是int型
②对于浮点型常量,默认为double型