新人学习,如有错误,请您指正我一下,马上更正
最新编写时间:2021年1月7日
关键字
概述:被Java语言赋予特定含义的单词
特点:组成关键字的字母全部小写
1、goto和const作为保留字存在,目前并不使用(在JDK的新版本中可能提升为关键字)
2、关键字不能用作变量名、方法名、类名、包名和参数
参考文章:https://blog.csdn.net/baidu_35975930/article/details/112308003
标识符
概述:给类、接口、方法、变量等起名字时使用的字符序列
组成规则:
- 英文大小写字母;
- 数字字符;3、$和_
注意事项:
- 不能以数字开头
- 不能是Java中的关键字
- 严格区分大小写(不单单标识符区分大小写,JAVA语言都是区分大小写的)
命名规则:
- 取得名字要有意义,不能随便起名字(别人看到名字就知道想是什么意思)
- 包的命名:全部小写,分单级(例:user)和多级(用‘.’分割,例子:com,test.user)(包其实就是文件夹,用于解决相同类名问题)
- 类或者接口的命名(大驼峰式):一个单词首字母必须大写,多个单词首字母必须大写
- 方法和变量命名(小驼峰式):一个单词首字母必须小写,多个单词从第二个单词开始,首字母必须大写
- 常量命名:一个单词全部大写,多个单词每个字母大写,用‘_’隔开
注释
概述:用于解释说明程序的文字
注释分类格式(被注释的文字,不会被JVM(java虚拟机)解释执行)
- 单行注释:
- 格式: //注释文字
- 多行注释:
- 格式: /* 注释文字 */
- 多行不可以嵌套使用,单行可以;
- 例:/*/**/*/ = 不可以 //名字//名字 = 可以
- 文档注释:
- 格式:/** 注释文字 */(java特有的注释其中注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档)
常量
概述:在程序执行的过程中其值不可以发生改变
常量分类:
1、字面值常量
- 字符串常量(用双引号括起来的内容)
- 整数常量(所有整数)(针对整数常量提供了4种表现形式二进制、八进制、十进制、十六进制;进制的组成和转换,请参考其他博客)
- 小数常量(所有小数)
- 字符常量(用单引号括起来的内容)例:'a' = 正确的; 'ab' = 错误的,这是一个字符串不是字符
- 布尔常量(只有true和false)
- 空常量(null)
2、自定义常量
变量
概述:在程序执行的过程中,在某个范围内其值可以发生改变的量(从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每一个变量使用前必须要先申请(声明),然后必须进行赋值(填充内容))
定义格式:
- 数据类型 变量名 = 初始化值(注意:格式是固定的,记住格式,以不变应万变)
- 数据类型 变量名; 变量名=100
组成:
- 用数据类型进行限定;
- 变量名;
- 变量名要有值
变量注意事项:
- 作用域:变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。相同的作用域中不能定义两个同名变量
- 初始化值:没有初始化值不能直接使用(不一定非要在定义的时候立即给值)
- 一行定义多个变量的两种情况:可以但是不建议
数据类型
Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间;
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。如下图所示:
备注:
- char 型数据用来表示通常意义上的“字符”
- boolean 类型适于逻辑运算,一般用于程序流程控制 。boolean 类型数据只允许取值 true 或 false ,不可以 0 或非 0 的整数替代 true 和 false,boolean类型不能转换为其他的数据类型
- 整型常量默认为int型,浮点型常量默认为 double 型
- 声明long型常量可以后加‘ l ’或‘ L ’,必须加l否则会出错
- 明一个常量为 float 型,则需在数字后面加 f 或 F ,必须加f否则会出错
- Java 字符采用 Unicode 编码,每个字符占两个字节,因而可用十六进制编码形式表示。注:Unicode是全球语言统一编码
- 在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了
- 对象、数组都是引用数据类型
- 一个引用变量可以用来引用任何与之兼容的类型
- 所有引用类型的默认值都是null
类型转换:
整型、实型(常量)、字符型数据可以混合运算(byte,short,char相互之间补转换,他们参与运算首先转换为int类型)。运算中,不同类型的数据先转化为同一类型,然后进行运算。
低 ------------------------------------> 高
byte,short,char—> int —> long—> float —> double
数据类型转换必须满足如下规则:
-
不能对boolean类型进行类型转换。
-
不能把对象类型转换成不相关类的对象。
-
在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
-
转换过程中可能导致溢出或损失精度,例如:
int i =128; byte b = (byte)i;
因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。
-
浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如:
(int)23.7 == 23; (int)-45.89f == -45
自动类型转换
必须满足转换前的数据类型的位数要低于转换后的数据类型,例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。
强制类型转换
-
条件是转换的数据类型必须是兼容的。
-
格式:(type)value type是要强制类型转换后的数据类型
-
目标类型 变量名=(目标类型)(被转换的数据);(从大的类型到小的数据类型)
-
一般建议,最好不要随意使用强制类型转换,容易造成数据精度的损失
隐含强制类型转换
-
整数的默认类型是 int
-
浮点型不存在这种情况,因为在定义 float 类型时必须在数字后面跟上 F 或者 f
其他
- byte+int (默认转换byte-int)正确
- byte b1=3,b2=4,b; b=3+4 ,3和4都是常量,所以java在编译时期会检查该常量的和是否超出byte类型的范围。如果没有可以赋值。
- byte b1=3,b2=4,b; b=b1+b2不可以,是因为b1和b2是变量,因为变量的值会变化,不确定具体的值,所以默认使用int类型进行存储。
- 任何数据和字符串进行操作,结果都是字符串类型。但是要注意运算的顺序。
System.out.println(‘a’+1); =98(ASCII码)
字符串数据和其他数据做+,结果是字符串类型,这里的+不是加法运算,而是字符串连接符
System.out.println(‘hello word’+‘a’+1); =hello worda1
完