标识符
定义:Java对各种变量、方法和类等要素命名时使用的字符序列。(可将标识符理解为可自定义的)
命名规则:①由字母、下划线、美元符号或数字组成 ②应以字母、下划线、美元符号开头③区分大小写,长度无限制 ④不能 与java关键字重名
Java变量
定义:java中保存数据的最小单元。变量由变量名、类型、值组成
如: int num;
num = 1; //该等于号为赋值号(运算符),运算顺序从右向左。
使用:变量必须先声明(定义、创建),再赋值,最后使用
Java在内存中的划分:
变量按照位置来分
局部变量:声明在方法的里面
成员变量:声明在类的里面,方法的外面
变量按照类型来分
基本数据类型(四类八种):
1、 布尔类型:boolean 判断真假,只能取值为 true、false //区分C语言和数据库:这两种是非0即真。
2、 字符类型: char,因为使用UNICODE(UTF-8)编码,每个字符占2个字节,可以保存中文。 //区分C语言:C语言不能保存中文
3、 整数类型:
4、 byte(占1个字节,能保存的最大数是:0 1111111(即:127)最小数是:1 1111111(即:-128,因为还有个是1 0000000(即-0)) short(2) int(4) long(8)
5、 浮点类型:float double
数据类型之间的转换:
1、 布尔类型不能转换成其他的类型 //类型从小到大依次为: byte-char-short-int-long-float-double
2、 小类型自动转换成大的类型
3、 大的类型转换成小类型要加强制类型转换
强转时要注意溢出的问题
4、 混合运算的时候,先把所有的操作数转换成其中最大的一种类型再进行运算
5、 byte char short三种类型参加运算时,先把自己转换成int型
引用数据类型:
变量的生命周期(使用范围,亦称作用域):变量在哪个大括号里声明就能在该大括号里面用。
Java运算符
% (取模) ++(递增,自身+1) --(递减,自身-1) =(赋值) ==(等于)
逻辑运算符:
! (非,取反) & (逻辑与,两边都为真则为真) | (逻辑或,只要一边为真即真) ^ (异或,只有两边不同时才为真) &&(短路与,两边都为真时才为真;运算到前面能够判断,则后面不做判断) || (短路或,只要一边为真即真)
注:若++放在操作数之前则先自身+1然后再参与运算,若放在操作数后面则先参与运算然后再自身+1(面试题较多)
赋值运算符
+= (如:a+=b表示 a = a + b)
三目运算符
X ? Y : Z
其中X是一个布尔表达式(由运算符和操作数组成的,表达式的结果为布尔类型)
如果X的值为真则运算结果为Y,如果X的值为假则运算结果为X
三目运算符可以代替if (),else()判断语句
条件分支语句:
if else if else if else
switch case 写法如:
public class Test { public static void main(String args[]){ int num = 2; switch(num){ case 1: System.out.println("1"); break; case 2: System.out.println("2"); break; case 3: System.out.println("3"); break; default: System.out.println("no"); } //Java7.0新特性:可以匹配字符串(String类型) } }
循环
for(循环初值;循环条件;步长){
循环体
}
1、 执行循环初值
2、 循环条件判断
3、 步长成立则运行循环体
4、 步长
5、 循环条件
6、 循环体
7、 步长
经典例题:
public class Test { public static void main(String args[]){ int i = 1; for(;i<=10;i++){ System.out.println("*"); } System.out.println(i); } }
输出i的值是11
for循环和while循环的区别:在明确最大循环次数的时候用for 不知道循环次数时用while
continue和break的区别:break为跳出当前循环,continue为结束本次循环
方法(代码的复用)
访问修饰符 返回值类型 方法名(参数列表)
如: public static void m(){}
递归(方法调用其本身) //树形结构都用递归处理
举例:
public class Test{ public static void main(String args[]){ System.out.println(m(1)); } public static int m(int num){ if(num==1){ return 10; } else{ return m(num-1)+2; } } }
Ps:java的单行注释:// 多行注释: /* */
计算机保存数据单位从小到大是:bit(位)--byte(字节)—KB(千字节)—MB(兆字节)--GB(吉字节)—TB(泰字节)
转换关系: 1byte = 8bit 1KB = 1024byte(其余相同)
编码
ASCII码(美国标准信息交换码):代表计算机键盘中128种输入方式。
13代表回车 97 代表a 65代表A
GBK/GB2312
BIG5
ISO_8859_1(latin_1)
UNICODE(UTF-8)
无论何种编码,前128位都是ASCII码;UNICODE编码包含了所有编码的信息
编程规范:遇到左边大括号,大括号左边空格,成对编程,运算符两侧都要空格