注意事项:
1:Java变量名会区分大小写
String string = "XXX"; 大写String代表字符串类型,小写的为变量名称
2:类名称首字母要大写
3:所有方法名称必须以小写字母开头
4:程序文件名与类名必须一致,后缀为.java的文件
5:Java中的main函数为程序入口
6:Java中的关键字不能用于变量名、类名、方法名、对象名
标识符命名规范
类、变量、方法的名称称为标识符
标识符格式:必须以大小写字母、货币字符$、下划线开头,不能以数字开头但可以包含
注:标识符不能是系统关键字
例:
A:包 全部小写
单级包:小写
举例:liuyi,com
多级包:小写,并用.隔开
举例:cn.itcast,com.baidu
B:类或者接口
一个单词:首字母大写
举例:Student,Demo
多个单词:每个单词首字母大写
举例:HelloWorld,StudentName
如果是接口的话,一般会在类名之前加上I代表,如:ICallBack
C:方法或者变量
一个单词:所有字母小写
举例:name,main
多个单词:从第二个单词开始,每个单词首字母大写(驼峰命名法)
举例:studentAge,showAllNames()
D:常量
全部大写
一个单词:大写
举例:PI
多个单词:大写,并用_隔开
举例:STUDENT_MAX_AGE
注释
单行注释 : // 注释内容
多行注释 : /* 注释内容 */
文档注释 : /** 注释内容 ,可以用javadoc提取这些信息形成帮助文档 */
Java中的变量类型
数据类型:
1> 基本数据类型 :数值型(整型、浮点型)、字符型、布尔型 。 注:String是字符串类型不属于基本数据类型
1.1 字符型:
char :底层16位(2byte)表示65536个字符
1.2 浮点型:
小数默认为double类型,用float接收小数的时候必须在小数后面加f/F
float :底层32位(4byte) 单精度浮点
double :底层64位(8byte) 双精度浮点
1.3 整数类型,取值范围超出会报错
byte:底层占8位(1个byte),取值范围从-2的7次方 ~ 2的7次方-1
short:底层占16位(2个byte),取值范围从-2的15次方 ~2的15次方-1
int:底层占32位(4个byte),取值范围从-2的31次方 ~ 2的31次方-1
long:底层占64位(8个byte),取值范围从-2的63次方 ~ 2的63次方-1
十进制转换(0的0次方为0,其他数的0次方为1):
— 十进制整数(0 ~ 9 ):12、0、-3
— 八进制整数 (0~7):以0开头 如 :012
int num = 017; ==》分解计算法 1*8的1次方 + 7*8的0次方 = 8+7 = 15;
— 十六进制数(0~9,A~F,a~f):以0x/0X开头 如:0x12
int num = 0x345; ==> 分解计算法 3*16的2次方 + 4*16的1次方+5*16的0次方 =768+ 64+5= 837
int num1 = 0x34556; ==> 分解计算法 3*16的4次方+4*16的3次方+5*16的2次方 + 5*16的1次方+6*16的0次方 =196608 +
16384 + 1280+ 80+6= 214358
— 二进制 (0 、1):以 ob/oB开头
int num = ob111; ==> 分解计算法 1*2的2次方 + 1*2的1次方 + 1*2的0次方 = 4+2+1 = 7
2> 引用数据类型:类、接口、数组
Java中的关键字列表
访问控制 | private | protected | public | | | | | | |
类,方法和变量修饰符 | abstract | class | extends | final | implements | interface | native | new | static |
strictfp | synchronized | transient | volatile | | | | | | |
程序控制 | break | continue | return | do | while | if | else | for | instanceof |
switch | case | default | | | | | | | |
错误处理 | try | cathc | throw | throws | | | | | |
包相关 | import | package | | | | | | | |
基本类型 | boolean | byte | char | double | float | int | long | short | null |
true | false | | | | | | | | |
变量引用 | super | this | void | | | | | | |
保留字 | goto | const | | |
关键字含义:
1)访问控制权限列表:
访问权限 类 包 子类 其他包
public ∨ ∨ ∨ ∨ (对任何人都是可用的)
protect ∨ ∨ ∨ × (继承的类可以访问以及和private一样的权限)
default ∨ ∨ × × (包访问权限,即在整个包内均可被访问)
private ∨ × × × (除类型创建者和类型的内部方法之外的任何人都不能访问的元素)
- 2)修饰方法、类、属性、变量关键字
关键字 意思 备注/使用
class 类 [public] class A{} A=类名 {}中内容是要实现的方法,类名与文件名一致
interface 接口 [public] interface B(){void getName(String name);}接口中只有方法体,没有具体实现
abstract 声明抽象 [public] abstract class C(){},不能创建对象,抽象类为了继承而存在,继承它的类必须实现它包含的
抽象方法,不能用private去修饰,否则子类无法实现它的方法
implements 实现 [public] class A implements B{}类实现接口中方法,多个接口间用逗号分割
extends 继承 [public] class A extends D{}一个类只允许继承一个父类
new 创建新对象 A a = new A(); 创建一个属于A的对象的引用,a存放与栈中,真实的A对象存放与堆中,调用对象
的属性或方法则使用a.xx / a.xx()的方式
static 静态的 在没有创建对象的情况下来进行调用(方法/变量),static可以用来修饰类的成员方法、类的成员变
量,另外可以编写static代码块来优化程序性能,类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行
一次。
native 用于方法 该方法使用c语言实现
final 用于类/方法 final修饰的类不能有子类;修饰的方法不能被扩展;修饰的变量为常量,不能被更改。
synchronized
volatile
运算符
1:算术运算符
+ 、-、*、/、%、++、--
区分/与%:
int i = 5/2 i = 2 取商,这里0不能为除数,如2/0系统会抛出ArithmeticException异常
int i=5%2 i= 1 取余 ,有个规律就是:左边小于右边,结果为左边;左边大于右边,看余数
区分i++与++i:
i++:先运算再为本身加1
例:int i=5; int j = i++ + 5 ==> j=10;i=6
++i:先为本身加1,再做运算
例:int i=5; int j = ++i + 5 ==> j=11;i=6
i-- 与 --i 的运算与上相同,只是把加变为减
2:关系运算符(比较运算符,结果为boolean类型,true/false)
>、<、>=、<=、==、!= ;引用类型用 equals
例一:对象不同,内容相同
String s1 = new String("java");
String s2 = new String("java");
s1 == s2 ==> false 对比2个对象的内存地址是否一致
s1.equals(s2) ==> true
例二:同一个对象相比较
String s1 = new String("aa");
String s2 = s1;
s1==s2 ==> true s2引用的是对象s1,因此对应的地址是相同的
s1.equals(s2) ==> true
例三:
String s1 = "aa";
String s2 ="aa";
s1==s2 ==> true 比对变量的值是否相同,一致则相同反之不同
s1.equals(s2) ==> true
3:布尔逻辑运算符
!、&、|、&&、^、||
&(逻辑与) 与&&(短路与)区别:
boolean a = true;
boolean b = false;
boolean c = a &b ; c = false; 左右相同则结果也是相同的,左右不同结果也不同,左右两边的条件都会运算
boolean d = b && a;d =false;左右中的结果只要有false则结果就为false,如果左边为false则右边不再运算;如果都为true/false则结果为true/false
|(逻辑或)与 ||(短路或)区别:
boolean a = true;
boolean b = false;
boolean c = a | b ; c = true;左右两边只要满足一个条件,结果则为true,如果都不满足则结果为false
boolean d = a || b;d = true; 左右两边只要满足一个条件,结果则为true,如果都不满足则结果为false;同样如果左边条件满足,则右边不做运算;左右运算结果一致,则结果与之相同
4:位运算符(二进制运算)
&、|、^、~、>>、<<、>>>
1> 运算符 "&"
表示按位与的运算符,运算法则为:如两个整数对应位都是1,则结果位才是1否则为0,进行运算时
需先将整数转换为二进制位,如下所示:
2> 运算符 "|"
表示按位或的运算符,运算法则与按位与的相反,两个操作数对应位的结果都是0,则结果位才是0,否则为1,如
下所示:
3> 按位取反运算符 "~"
将操作数二进制中的1修改为0,0修改为1。如二进制数7表示为:00000000 00000000 00000000 00000111
~7 取反后变为:11111111 11111111 11111111 11111000
4> 按位异或运算符 “^”
当两个操作数的二进制位表示相同(同时为1/0)时,结果为0 ,否则为1
5> 位移运算符
<< 左移:将符号左边的二进制操作数左移右边操作数指定的位数,左移空的部分补“0”
>> 右移:带符号右移,若左操作数为正数,则高位补“0”,反之补“1”,操作数右移右边操作数指定的位数
例:1>>3 ,将00000000 00000000 00000000 00000001这32位操作数向右移动3位得00000000 00000000 00000000
00000000
>>> 无符号右移:左操作数右移右边操作数指定的位数,左空位补“0”
5:赋值运算符
= :将“=”右边的值赋给左边的变量。例如:
int a = 10; String s = "赋值" boolean isLogin = true
扩展运算符:
+=、-=、*=、/=
例:
int i=3;i+=5 等同于 i = i +5;
6:字符串连接运算符
+
表达式
表达式:符合一定语法规则的运算符和操作符的序列
表达式的值:运算结果
表达式的类型:表达式值的数据类型
根据运算符的不同,可以把表达式分为几类:
赋值表达式: int a = 3;
算术表达式:int a = 3+1;
关系表达式: 3 > 5
逻辑表达式 :((5>4)&&true、!false)
条件表达式:(b=100>89?a=ture:a=false) 三元运算符