Java基本语法(一)
一: 关键字和保留字
1. 关键字(keyword)
- 定义:被Java语言赋予了特殊含义,用做专门途径的字符串(单词)
- 特点:关键字中所有字符都为小写
- [官方地址]( https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
2. 保留字(reserved word)
- 现有Java版本尚未使用,但以后版本可能会作为关键字使用
- 在命名标识符时要避免使用保留字
例:goto、const
二:标识符(Identifier)
1. 标识符概念与理解
- Java对各种变量、方法和类等要素命名时使用的字符序列称为标识符
- 助记(凡是自己可以起名字的地方都叫标识符)
- 类名、变量名、方法名、接口名、包名
2. 标识符的命名规则(不遵守,编译不能通过)
- 所有的标识符由应该以字母(A-Z或a-z),美元符($)、下划线(_)开始
- 首字符之后可以是字母(A-Z或a-z),美元符($)、下划线(_)或数字的任何字符组合
- 不能使用关键字作为变量名或方法名,不能包含空格
- 标识符是对大小写敏感的,长度无限制
3. Java中的名称命名规范(不遵守,编译也会通过)
- 包名:多单词组成时所有字母都小写:xxxyyyyzzz
- 类名、接口名:多单词组成时,所有单词的首字母大写(大驼峰原则):XxxYyyZzz
- 变量名、方法名:多单词组成时,第一个单词的首字母小写,第二个单词开始的所有单词首字母大写(小驼峰原则):xxxYyyZzz
- 常量名:所有字母都大写,多单词时每个单词用_(下划线)隔开:XXX_YYY_ZZZ
4. 补充:
- 在起名时,为了提高阅读性,要尽量起有意义的名字,做到“见名知意”
- Java采用unicode字符集,因此标识符也可以使用汉字声明,但不建议使用汉字
三:变量
1. 概念
- 内存中的一个存储区域
- 该区域的数据可以在同一类型范围内不断变化
- 变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值。
- 用于在内存中保存数据
2. 使用
- Java定义变量的格式:
//数据类型 变量名 = 变量值
class VariableTest{
public static void main(String[]args){
//变量的定义
int myAge = 12;
//变量的使用
System.out.println(myAge);
System
//变量的声明
int myNumber;
//变量的赋值
myNumber = 42
//变量的使用
System.out.println(myAge);
}
}
- 说明:
- 变量必须先声明并赋值,后使用(不然编译不过)
- 变量都定义在其作用域({})内。在作用域内,他是有效的。即:除了作用域,就无效了。
- 同一个作用域内,不能声明两个同名的变量
3. 分类(按数据类型)
- 对于每一种数据都定义了明确的具体数据类型(强类型语言),在内存中分配了不同大小的内存空间
八大数据类型
- 整型:byte \ short \ int \ long
- 浮点型:float \ double
- 字符型:char
- 布尔型:boolean
引用数据类型:
- 类(class)
- 接口(interface)
- 数组(array)
4. 分类(按变量在类中声明的位置)
成员变量 vs 局部变量
5. 整数类型
byte
占一个字节范围:-123~127(2^8)
byte num = 数字;
short
占2个字节范围:-32768~32767(2^16)
shrt num = 数字;
int
占4个字节范围:-2147483648~2147483647(2^32)
int num = 数字;//最常用,也是整型的默认常量
long
占8个字节范围:-92233720968547755808~92233720968547755807(2^64)
long num = 数字L;//使用long类型要在数字后面加L
6. 浮点类型
float
占4个字节,单精度,尾数可以精确到7为有效数字
float num = 小数F;//使用float类型要在数字后面加F
double
占8个字节,双精度,精度为float的两倍
double num = 小数;//最常用,也是浮点型的默认常量
7. 字符类型
char
占2个字节
char name = '字符'//定义char型变量,通常使用一对''
8. boolean类型
boolean
占一位
只包含true和false两个
bollean flag= true;
boolean flag= false;
9. 字节
- 位(bit):是计算机 内部数据 存储的最小单位,11001100是一个八位二进制数
- 字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写 B 来表示
- 1B(byte,字节)=8bit(位)
- 字符:是指计算机中使用的字母、数字、字、和符号
- 1bit表示1位
- 1Byte表示一个字节1B=8b
- 1024B=1KB
- 1024KB=1M
- 1024M=1G
- 1024G=1TB
四:基本数据类型之间的运算规则
1. 自动类型提升
- 结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型
byte、char、short、—>int—>long—>float—>double
- 特别的:当byte、char、short三种类型的变量做运算时,结果为int类型
例:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JutqACbz-1618989658305)(http://photogz.photo.store.qq.com/psc?/V135liyh1TZqMV/05RlWl8gsTOHZ17MtCBzNmRr.1LrstYPIdtPLznuDjRdxpz1o62KryFed2O9TKryaZTrAINUrcnFWQgWGn2Q!!/m&bo=bwLVAW8C1QERADc!&rf=mood_app)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YwGT4NyQ-1618989658308)(http://photogz.photo.store.qq.com/psc?/V135liyh1TZqMV/05RlWl8gsTOHZ17MtCBzF65YsFV2YerW7536hS96p7wjeBrehQ.Cr2We8Z.1pDwRkjGYgebwlc5WRRv46New!!/m&bo=IALSASAC0gERADc!&rf=mood_app)]
2. 强制类型转换:
- 自动类型提升运算的逆运算
- 需要使用强转符()
- 注意点:强制类型转换,可能导致精度损失
附:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SEKAMSO5-1618989658310)(http://photogz.photo.store.qq.com/psc?/V135liyh1TZqMV/05RlWl8gsTOH*Z17MtCBzBNaEQ7rzwLq80.nSSAA9GAxXmCjZTK6zzBRHe5BJ.r8iQx2NlfUfyPHN3kfSIWq4A!!/m&bo=CAJ7AQgCewERADc!&rf=mood_app)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FlU4piOf-1618989658312)(http://photogz.photo.store.qq.com/psc?/V135liyh1TZqMV/05RlWl8gsTOHZ17MtCBzFYCvRxlw84DbJfSy5EFsFLYYau31eMhC.RZj5Zf48CWmBnniQGmVEtjlS0BOYWfg!!/m&bo=SgL8AEoC*AARADc!&rf=mood_app)]
五:String类型变量的使用
- String属于引用数据类型,翻译为:字符串
- 声明String类型变量时,使用一对""
- String可以和8种基本数据类型做运算,且运算只能时连接运算:+
- 运算的结果仍然时String类型
例:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0YUhCY44-1618989658313)(http://photogz.photo.store.qq.com/psc?/V532AbQ91B9Rrh1OMJAa1DATyt2pREO2/05RlWl8gsTOHZ17MtCBzGnt.dgVrjfb72h.xep9g1EpbQNwuf8rppuKILi5eoADNVhEyFXqTpWSuwp9auK7A!!/m&bo=7wIYAu8CGAIRADc!&rf=mood_app)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x0BtCULK-1618989658315)(http://photogz.photo.store.qq.com/psc?/V532AbQ91B9Rrh1OMJAa1DATyt2pREO2/05RlWl8gsTOHZ17MtCBzLZHElE5CqfQkEL79siXM0loMsQ3g4o7FeAcDRazIObS2xPGSTcu.22nCY7J*3A!!/m&bo=xQILAcUCCwERADc!&rf=mood_app)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tf8KVtmZ-1618989658315)(http://photogz.photo.store.qq.com/psc?/V532AbQ91B9Rrh1OMJAa1DATyt2pREO2/05RlWl8gsTOH*Z17MtCBzKpF5F5yTfTpKU8b5DkQn5FPA8o4Dee9NsnZJ93kpT46gZGrO2jn6Gn6JDbBBYPPvw!!/m&bo=cAPcAHAD3AARADc!&rf=mood_app)]
六:变量之进制
- 前言:世界上有10种人,认识二进制的,不认识二进制的
- 进制:所有数字在计算机底层都以二进制的形式存在
- 对于整数,一般有四种表示方式:
- 二进制(binary):0 1,满2进1,以0b或0B开头
- 十进制(decimal):0~9,满10进1
- 八进制(octal):0~7,满8进1,以数字0开头
- 十六进制(hex):09及1F(不区分大小写),满16进1,以0x或0X开头
-
二进制:原码,反码,反码
-
计算机底层是以(二进制)反码形式储存数字的
七:其他
- 当你输出的字符与特殊命令相同,只需在特殊字符前+ \ 即可
System.out.println(" 你好,中国"妈妈""); //(错)
//下面是正解
System.out.println(" 你好,中国\"妈妈\"");