1变量的命名
在Java中,标识某个实体的一个符号,在Java中,标识符是用户编程时用户起的名字。来为程序中变量.常量.方法.类.接口和包名。以建立名称与使用之间的关系。
标识符的命名规则
Java中的标识符规则有4个:
(1).标识符由字符、数字、下划线(_)、或者$组成
(2).标识符的首字母以字母、下划线、美元符号开头,不能以数字开头
(3).标识符命名不能与关键字、布尔值(false、true)和null相同
(4).标识符区分大小写,没有长度限制、坚持以见名知义的有原则
****见名知义原则与驼峰命名法:
见名知义的原则是指在使用标识符名时,要使用能反映被定义者的含义或作用的字符。这样,其他人在阅读代码时通过名称就可以对程序有所理解。
例如,定义姓名时使用name,定义年龄时使用Age,在定义学生姓名时使用studentName,在定义老师年龄时使用teacherAge,一看便能知道其代表的含义,是推荐使用的用法,如果定义为a,A1,s等名称,虽然没错,但是对理解此程序没有任何的意义,应该杜绝使用。
驼峰命名法就是当使用标识符命名时,如果由第一个或多个单词连接一起的,第一个单词以小写字母开始,第二个单词及后续每一个单词的首字母都采用大写字母,这样的变量名看上去就象驼峰一样此起彼符,故因此得名,如fileUtil、fileName、dataManage、studentInfo。
驼峰命名法的命名规则可视为一种惯例,并不绝对强制,为的是增强程序的可读性。
2.关键字
是电脑事先定义的,有特别意义的标识符
-
abstract: 用于声明抽象类,以及抽象方法。
-
boolean: 用于将变量声明为布尔值类型,只有 true 和 false 两个值。
-
break: 用于中断循环或 switch 语句。
-
byte: 用于声明一个可以容纳 8 个比特的变量。
-
case: 用于在 switch 语句中标记条件的值。
-
catch: 用于捕获 try 语句中的异常。
-
char: 用于声明一个可以容纳无符号 16 位比特的 Unicode 字符的变量。
-
class: 用于声明一个类。
-
continue: 用于继续下一个循环,可以在指定条件下跳过其余代码。
-
default: 用于指定 switch 语句中除去 case 条件之外的默认代码块。
-
do: 通常和 while 关键字配合使用,do 后紧跟循环体。
-
double: 用于声明一个可以容纳 64 位浮点数的变量。
-
else: 用于指示 if 语句中的备用分支。
-
enum: 用于定义一组固定的常量(枚举)。
-
extends: 用于指示一个类是从另一个类或接口继承的。
-
final: 用于指示该变量是不可更改的。
-
finally: 和
try-catch
配合使用,表示无论是否处理异常,总是执行 finally 块中的代码。 -
float: 用于声明一个可以容纳 32 位浮点数的变量。
-
for: 用于声明一个 for 循环,如果循环次数是固定的,建议使用 for 循环。
-
if: 用于指定条件,如果条件为真,则执行对应代码。
-
implements: 用于实现接口。
-
import: 用于导入对应的类或者接口。
-
instanceof: 用于判断对象是否属于某个类型(class)。
-
int: 用于声明一个可以容纳 32 位带符号的整数变量。
-
interface: 用于声明接口。
-
long: 用于声明一个可以容纳 64 位整数的变量。
-
native: 用于指定一个方法是通过调用本机接口(非 Java)实现的。
-
new: 用于创建一个新的对象。
-
null: 如果一个变量是空的(什么引用也没有指向),就可以将它赋值为 null,和空指针异常息息相关。
-
package: 用于声明类所在的包。
-
private: 一个访问权限修饰符,表示方法或变量只对当前类可见。
-
protected: 一个访问权限修饰符,表示方法或变量对同一包内的类和所有子类可见。
-
public: 一个访问权限修饰符,除了可以声明方法和变量(所有类可见),还可以声明类。
main()
方法必须声明为 public。 -
return: 用于在代码执行完成后返回(一个值)。
-
short: 用于声明一个可以容纳 16 位整数的变量。
-
static: 表示该变量或方法是静态变量或静态方法。
-
strictfp: 并不常见,通常用于修饰一个方法,确保方法体内的浮点数运算在每个平台上执行的结果相同。
-
super: 可用于调用父类的方法或者字段。
-
switch: 通常用于三个(以上)的条件判断。
-
synchronized: 用于指定多线程代码中的同步方法、变量或者代码块。
-
this: 可用于在方法或构造函数中引用当前对象。
-
throw: 主动抛出异常。
-
throws: 用于声明异常。
-
transient: 修饰的字段不会被序列化。
-
try: 于包裹要捕获异常的代码块。
-
void: 用于指定方法没有返回值。
-
volatile: 保证不同线程对它修饰的变量进行操作时的可见性,即一个线程修改了某个变量的值,新值对其他线程来说是立即可见的。
-
while: 如果循环次数不固定,建议使用 while 循环。
3.Java中的注释
用来解析说明代码
作用:好的提高代码的可读性,提高软件的维护成本
java提供了注释有三种:
1.单行注释 用 // 快捷键:ctrl+/
2.多行注释 以/*开头 快捷键:ctrl+shift+/
以*/结尾
3 .文档注释 /** 快捷键:输入/**,然后按enter键,iDEA会自动显示文档注释
*
*
*/
4数据类型
Java分为基本数据类型和引用数据类型
(1)基本数据类型
整数型:(byte、short、int、long)
浮点型:(float、double)
字符型:char
步尔型:boolean
其中整数型和浮点型又叫数值型,int、double、long 等都是java定义的关键字
Java中的基本数据类型的取值范围:
基本数据类型 | 大小 | 示例 | 取值范围 |
---|---|---|---|
boolean | 1字节,8位 | true | true、false |
byte | 1字节,8位有符号整数 | -12 | -128~+127 |
short | 2字节,16位有符号整数 | 100 | -32768~+32767 |
int | 4字节,32位有符号整数 | 12 | -2147483648~+2147483647 |
long | 8字节,64位有符号整数 | 1000 | -2147438648~+2147438647 |
char | 2字节,16位Unicode | 'a' | 0~65535 |
float | 4字节,32位浮点数(单精度) 有效数字6位 | 3.4f | -3.4E38~3.4E38 |
double | 8字节,64位浮点数(双精度) 有效15位 | -2.1e3D | -1.7E308~1.7E308 |
注意:
1.char类型占2个字节,采用Unicode:
(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、
编码方案等。Unicode是为了解决传统的字符编码方案的局限而产生的,它为
每种语言中的每个字符设定了统一且唯一的二进制编码,以满足跨语言、跨平台
进行文本转换,处理的要求。
2.byte类型占1字节,是整数类型的一种
3.所有的数据长度固定,不会因为硬件、软件系统不同而发生变化
4.String类型不是基本数据类型、而是引用数据类型,它是Java提供的一个类
Java中处理基本数据类型都是引用数据类型,常用的有:1类:class ,2接口:interface,3数组:array[],4字符串:string,5包装类
5.八大基本数据的包装类:Byte,Integer、Short、Long、Float、Double、Character、Boolean
作用:1.作为和基本数据类型对应的类类型存在,方便涉及到对象的操作。
2.包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法。
例如打入 BYTE. 弹出byte所以相关属性
选择最大值
6.Java中引用数据类型包含类、接口、和数组。
5.变量:
概念:与常量相对应,指程序中运行值可以改变的量。它是java程序中存储的一个基本单元
变量的语法格式:
变量类型 变量名 =[初始值]
变量的类型可以在数据类型中选择的
“变量名”是定义变量的名称,要遵循表示符命名的规则
中括号里面的值的内容为初始值,可选项
注意:Java标识符中包括了对包,类,方法,变量等的起名,也就是说变量名是标识符中的一种,需要满足标识符的命名规则
6.数据类型的转换:
概念:
不同的基本数据类型之间进行运算时,需要类型转换,除布尔类型外,所有的基本数据类型进行运算时要考虑类型转换,主要应用在算术运算和赋值运算
算术运算时:
存储位数越多,类型级别越高,
(1)自动类型转换
将低级别的类型赋值给高级别的类型时进行的自动转换
如把 int a 赋值给 double b 自动转换到double类型
(2)强制类型转换
将高级别的类型赋值给低级别的类型时,必须要进行的强制转换,在Java中,使用一对小括号进行表示强制类型转换
这里直接报错无法直接把 double a 赋值给 int b
在 a 前加上(int)即可强转
注意:
进行强制转换的时候,可能存在精度丢失,当double类型进行强制转换为int类型时,会造成浮点型小数的丢失:
7 常用运算符
概念:运算符就是告诉程序执行特定的运算符操作符号。java中提供了6类运算符:
赋值运算、算术运算、关系运算、逻辑运算、位运算、条件运算
##### 1.赋值运算
赋值运算符号“=”用于给变量指定变量的值,并可以和算术运算符结合起来,组成复合赋值运算符。复合赋值运算符:“+=”、“-=”、“*=”、“/=”、“%=”
例:int i =15;
int j =5;
i=i+j; 就等价于 i+=j;
##### 2.算术运算
算术运算符包括:“+”,“-”,“*”,“/”,“%”、“++”、“--”
其中:++表示自增运算
--表示自减运算
##### 注意:
比较:相同点都进行了i+1,操作:i++先赋值表达式,再进行自增运算;++i:先进行了i+i运算,再进行了表达式运算
同理可得i--和--i的相同点和不同点。
对于除法运算,如果两个操作数都是整数,结果也是整数,会舍去小数部分,如果两个数,有一个是浮点数,将会进行自动类型转换,结果也是浮点数,保留小数部分
对于取模运算符,如果两个操作数均是整数,结果也是整数,如果两个操作数有一个浮点数结果也是浮点数,保留小数部分
##### 3.关系运算符
关系运算符有时又叫比较运算符,用于比较两个变量或常量的大小,运行的结果是布尔值:true
或false;
Java中有6个关系运算符:“==”、“!=” ">","<",">=";"<="
##### 注意:
1."="表示是赋值运算符;”==“表示等于运算符
2.”>“;"<",">=";"<=";只支持数值类型的比较
3.“==”、“!=”支持所有数据类型的比较,包括数值类型、布尔类型、引用类型
4.关系运算符,运算后的结果是一个布尔值
5.">","<",">=";"<=";运算符的优先级高于”==“、”!=“
##### 4.逻辑运算符
逻辑运算符用于对布尔类型操作数进行运算,其结果还是布尔值,逻辑运算如下
运算符 | 含义 | 运算规则 |
---|---|---|
& | 逻辑与 | 两个操作数都是true,结果才是true;不论左边取值,右边的表达式都会进行运算 |
| | 逻辑或 | 两个操作数一个是true,结果也是true;不论左边取值,右边的表达式都会进行运算 |
^ | 逻辑异或 | 两个操作数相同,结果为false;两个操作数不同,结果为true |
! | 逻辑非 | 操作数为true,结果为false;操作数为false,结果为true |
&& | 短路与 | 运算规则同“&”,不同在于如果左边为fasle,右边表达式不会进行运算 |
|| | 短路或 | 运算规则同“|”,不同在于如果运算符左边的值为true,右边的表达式不会进行运算 |
注意:
1.操作数类型只能是布尔类型,操作的结果也是布尔类型
2.优先级别:”!“>"&">"^">"|">"&&">"||"。
3.&与&&的区别:当“&&”的左侧为fasle时,将不会计算其右侧的表达式,即左边false则fasle;无论任何情况,“&”两侧的表达式都会参与计算
4.逻辑或和短路或:的区别和逻辑与与短路与类似
5.位运算(了解即可)
运算符 | 含义 | 运算规则 |
---|---|---|
& | 按位与 | 两个操作数都是1的时候,结果才是1 |
| | 按位或 | 两个操作数一个是1,结果就是1 |
^ | 按位异或 | 两个操作数相同,结果为0,两个操作数不同,结果为1 |
~ | 取反/按位非 | 操作数为1,结果为0;操作数为0,结果·为1 |
<< | 左移 | 右侧空位补0 |
>> | 右移 | 左侧空位补最高位 |
>>> | 无符号右移 | 左侧空位补0 |
提示:
1.位运算符对操作数,以二进制单位为单位进行运算
2.位运算符操作数是整数类型:int、short、long、byte、char
3.位运算符运算的结果也是整数:包括int、long
4.如果操作数,是char、byte、short位运算前其值先自动晋升int,所以结果也是int
6.条件运算(三目运算符)
是java中唯一需要3个操作数的运算符,又叫三元运算或三目运算
条件运算符的语法格式:
条件? 表达式1:表达式2
运算过程:
1.先对条件进行判断,结果为true,则返回表示式1的值
2.如果结果为false,则返回表达式2的值
8运算符的优先级(从高到低)
优先级 | 描述 | 运算符 |
1 | 括号 | ()、[] |
2 | 正负号 | +、- |
3 | 自增自减,非 | ++、--、! |
4 | 乘除,取余 | *、/、% |
5 | 加减 | +、- |
6 | 移位运算 | <<、>>、>>> |
7 | 大小关系 | >、>=、<、<= |
8 | 相等关系 | ==、!= |
9 | 按位与 | & |
10 | 按位异或 | ^ |
11 | 按位或 | | |
12 | 逻辑与 | && |
13 | 逻辑或 | || |
14 | 条件运算 | ?: |
15 | 赋值运算 | =、+=、-=、*=、/=、%= |
16 | 位赋值运算 | &=、|=、<<=、>>=、>>>= |