##1
###(1)Java程序中一句连续的字符串不能分开在两行中写
##2
###(1)//单行注释
###(2)/* 多行注释*/
###(3)/*文档注释/
##3 Java中的常量
###(1)整型
十六进制: 0x开头
八进制:0开头
长整型:L结尾
###(2)浮点数
默认:double
double:D或d结尾
float:F或f结尾
###(3)字符
占用两个字节,用Unicode码表示
单引号
###(4)字符串
双引号
###(5)null
##4 Java中的变量
###(1)分类
####1° 基本数据类型
I 整数类型 byte、short、int、long
II 浮点类型 double、float
III 字符类型 char
IV 布尔类型 boolean
####2° 引用数据类型
I 类 class
II 接口 interface
III 数组
###(2)和C的区别
####1° Java中的基本数据类型在任何操作系统中都具有相同的大小、属性、取值范围,跟系统无关
byte 8 -128 ~ 127
short 16 -32768 ~ 32767
int 32 -2147483648 ~ 2147483647
long 64 -922xxxxx ~ xxxxx
####2° char是Unicode编码,占两个字节
####3° Java中没有无符号的数据类型
###(3)基本类型都是小写的,大写的Boolean是一个类,和boolean不一样
##5 基本数据类型之间的转换
###(1) 隐式类型转换
满足:两种类型兼容 且 目标类型的取值范围大于源类型
###(2) 显式类型转换
eg:
byte a;
int b;
a = (byte)b;
###(3) 数据类型的自动提升
1° byte、short、char提升到int
2° 有 long 就是 long
3° 有 float 就是 float
4° 有 double 就是 double
##6 代码块与变量的作用域
###(1) 一对花括号 { } 之间的部分是一个代码块
###(2) 代码块决定了变量的作用域,作用域决定了变量的__可见性__和__存在时间__
###(3)C++中局部代码块中的变量可以取和外部代码块相同的 变量名,Java是不行的
##7 函数
###(1) Java中所有函数包含在类里面,一个类中定义的函数叫做这个类的 方法
###(2) 函数重载:
同一个类中允许同时存在一个以上的同名函数,只要它们的参数个数或类型不同即可(只是返回值类型不同是不行的)
##8 运算符
###(1) + 运算符在Java中可以用于字符串连接
例如: “x” + 123 的结果是 “x123”
###(2) = 赋值运算符可以连在一起
例如: x=y=z=5;
###(3) Java的条件判断只接受 boolean 类型,不接受其他类型
例如:
if (x = 3) //Java编译器会报错,因为条件判断表达式不是 boolean类型
return;
###(4) 和C++不同的位移运算符
####1° 左移 << :
右侧补0
####2° 带符号右移 >> :
若最高位为0,则左边最高位补0;
若最高位为1,则左边最高位补1;(总之就是保持 正负号不变)
####3° 无符号右移 >>> :
最高位补0
##9 流程控制语句
###(1) 基本跟 C++ 一样
###(2) switch 中的判断条件可以接受 int byte char short String类型,不接受其他类型
###(3) 无标号的break、continue会把控制传递给当前最内循环;有标号的break、continue语句会传递给当前方法中带有这一标号的语句
例如:
start:while(true)
{
while(true)
{
break st; //会跳出整个大循环
}
}
##10 栈内存和堆内存
###(1) 函数中定义的 基本类型的变量 和 对象的引用变量 在函数的 栈内存 中分配,超过变量的作用域后自动释放内存空间
###(2) new创建的对象和数组 在 堆内存 中分配,由JVM的自动垃圾回收器管理
###(3) 在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中的这个变量等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象中的引用变量
###(4) 引用变量在栈中分配,程序运行到作用域以外时释放;数组和对象占据的堆内存不会随着引用变量的释放而释放,而是一段时间后被垃圾回收器释放。
##11 数组
###(1) 初始化
####1°
int x[] = new int[100]; //产生100个0
####2°
int x[]; //或 int [] x;
x = new int[100];
####3°
int x[] = new int[]{3,4,5,6};
或 int x[] = {3,4,5,6};
###(2) x相当于分配好的数组的引用变量,类似于指针
###(3) 多维数组
####1° 多维数组不一定是规则矩阵
int xx[][] = new int[][]{ {1,2,3}, {4,5}, {6} };
####2°
int [][] xx;
xx = new int[3][];
xx[0] = new int[3];
xx[1] = new int[2];
xx[0][1] = 5;