一、
1.严格区分大小写的
2.格式自由,但是一般来讲按照一种良好的格式来书写代码,增强程序的可读性
代码分为结构定义语句和功能执行语句(后面跟分号)
3.Java中的注释方式: 单行、多行注释、文档注释
4.java中的标识符:
为了避免错误,标识符全部用字母来写就可以了,使用工具,关键字会着色
驼峰式命名: 从第二个单词开始每个单词的首字母都要大写,其余的小写.
类名首字母要大写,变量名和方法名首字母要小写
二、
1.Java中的变量分为两种类型: 基本数据类型和引用数据类型(对象)
基本数据类型有8种:byte、short、int、long、float、double、char、boolean
byte、short、char类型在参与运算时类型都会自动提升为int型,表达式类型自动提升,自动类型转换(隐式类型转换)
可以将一个int型转换为byte、short、char类型,前面要加上类型,格式:(byte)num
强制类型转换,也叫显示类型转换(将多余的高位砍掉)
基本数据类型的自动类型转换和强制类型转换的规律(小可转大):精度由小到大自由转换,由大到小强制转换,小可转大,大转小会失去精度。
(1)布尔型和其它基本数据类型之间不能相互转换;
(2)byte型可以转换为short、int、、long、float和double;
(3)short可转换为int、long、float和double;
(4)char可转换为int、long、float和double;
(5)int可转换为long、float和double;
(6)long可转换为float和double;
(7)float可转换为double;
2、任何数与字符串相加,其结果都是字符串
3.变量的声明周期: 从变量被定义到方法结束调用(变量会释放)
变量的作用域: 看变量是在哪一级花括号中定义的
在作用域范围内,变量可以被调用,但是不能重复定义
超出了作用域就无法访问变量
三、函数,也叫方法: 能实现某一特殊功能的代码块,放在一起,取个名字,便于反复调用,实现代码的复用
1.函数必须有的东西:函数名、参数列表(参数类型、形参)、返回值类型
形参相当于在函数的第一行定义的变量,当函数被调用的时候就被定义,初始化的值就是传入的实参
2.return语句用于函数返回一个返回值,返回值的类型必须是声明的返回值类型,
方法中遇到return,方法立刻结束调用,后面的代码将不会被执行
3.调用函数:通过方法名去调用,括号中传入实参,定义一个变量用于接住函数的返回值
4.返回值类型void不等同于没有返回值类型,此类型说明函数是没有返回值的,此时不能
使用return返回一个值,但是可以使用return语句,用于提前结束方法的调用
5.函数的重载: 有多个函数具有相同的函数名,但是参数的个数或者类型必须不一样,返回值类型无所谓
调用函数时,具体调用哪个?
调用传入的实参的个数和类型与方法定义的形参相匹配的那个
四、
Java中的运算符
1.算术运算符: /: 两个int型相除结果还是int型
++: 自增1, x++ 相当于 x = x + 1;
x++和++x的区别: x++是先参与其他运算,再自增;++x先自增,再参与运算
--:自减1
负数取模:模数的符号会被忽略,被模数的符号不会忽略
2.赋值运算符:=与==的区别
+=: x += 8 相当于 x = x + 8; 同理:*=、/=、-=、%=
3.比较运算符: ==是比较运算符
表达式返回的结果都是boolean型
instanceof: 用于判断对象是否属于指定的类型
Person p = new Person(); p instanceof Person 结果为true
4.逻辑运算符
参与运算的值都是boolean类型,得到的结果也是boolean型
&和&&的区别: &&短路与,如果左边为false,右边就不参与运算了
&不论结果怎样,两边都会运算
|和||的区别: ||短路或,如果左边为true,右边就不参与运算了
|不论结果怎样,两边都会运算
5.位运算符:
<<左移、>>右移、>>>无符号右移
10110110<<2 --> 11011000
10110110>>2 --> 11101101
10110110>>>2 --> 00101101
8位是一个字节 能表示的最大数是127 01111111
能表示的最小数 -128 10000000 --> 01111111 --> 10000000
10000000 + 1 = 10000001 -->10000000 --> 01111111(127) -127\
11111111 --> 11111110 --> 00000001 -1
&运算 : 任何数与0&,结果都为0,任何数与1&,结果都为其自身
|运算 : 任何数与1|,结果都为1,任何数与0|,结果都为其自身
^运算 : 任何数与一个指定的数异或两次,其结果等于自身
注意: int num = 98; num>>33 等同于 num>>1
在移位运算中,首先会将移位的数对位数进行取余
x
6.运算符优先级的问题:
尽量写简单的表达式,减少出错的几率,增加程序的可读性
遇到优先级的问题,一律用括号来解决
五、用位移的方式实现十进制转十六进制
public static void main(String args[])
{
int num = 198;
/*思路:
1.将数字与0x0000000f进行&运算,获得低四位(0~15)
2.将低四位转成十六进制的一位,存入一个容器
3.将num>>4 右移4位,这样高四位就变成了低四位
4.将1~3步重复8次,容器中存入的8个元素正好就是我们需要的十六进制的8位
5.将容器反转
6.将容器的元素取出打印
7.o了
*/
StringBuffer sb = new StringBuffer();
for(int i=0; i<8; i++)
{
int temp = num&0x0000000f;
if(temp>9)
{
sb.append((char)(temp-10+'A'));
}
else
{
sb.append(temp);
}
num = num>>4;
}
sb.reverse();
System.out.println(sb);
}
六、
1.if条件语句
多重条件语句 if ... else if ... else if ... else
if语句嵌套使用
在if语句、while、for语句后面的代码块中如果只有一行语句,花括号可以省写
2.switch...case语句: 通过对一个变量值进行判断,从而决定走哪个分支
每个case分支的最后都要加上一个break,
如果没加,只要找到满足条件,后面就不判断了,会全部执行,直到遇上break
default分支表示所以条件都不满足的情况,也要加上break
switch语句只能针对int型的变量进行判断,但是使用byte、short、char类型也可以,因为类型会自动提升
相当于我们把一个char型当做int型来用
七、循环语句
1.while循环: 如果条件成立就会不停地执行代码块,直到条件不成立
break语句: 跳出循环,可以加标签来指定跳出哪层循环,这样的方式不建议使用,
我们可以通过改变循环的判断条件的方式来加以控制
2.do...while循环: 先do再条件判断,所以至少会做一次
有的时候就需要先做一次才能判断,这时用do...while就比较方便
do...while中,while语句后面要跟分号