标识符
1.以字母(A-Z或者a-z),美元符($),或者下划线(_)开始
2.不能使用关键字作为变量名或方法名
3.大小写敏感
4.可以使用中文名,但不建议
数据类型
强类型语言
要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
安全性高,速度慢
Java属于强类型语言
弱类型语言
JavaScripts属于弱类型语言
Java数据类型分为两大类
基本类型(primitive type)
引用类型(reference type)
字节
位(bit):计算机内部数据存储的最小单位
字节(byte):计算机中数据处理的基本单位,B
1B=8bit
类型转换
优先级
byte short char <int <long<float<double
强制转换:高->低
自动转换:低->高
变量
变量名
变量类型
作用域
类变量 关键词static
实例变量
局部变量
常量
初始化之后不能再改变值!不会变动的值
final 常量名=值;
常量名一般使用大写字符
运算符
字符串连接符
//字符穿连接符 +,string 字符串之后的加号用于连接字符穿
System.out.println(a+b);
System.out.println(""+a+b);
System.out.println(a+b+"");
包机制
包的本质就是文件夹
一般利用公司域名倒置作为包名:com.baidu.www
导入包的方法:import package1[.package2].(classname|*);
JavaDoc
javadoc命令用来生成自己的API文档
通过javadoc命令来生成API文件 在index.html中可查看自己的API
scanner对象
通过scanner类来获取用户的输入
基本语法:Scanner s = new Scanner(System.in)
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般先要使用hasNext()与hasNextLine()判断是否还有输入的数据
Switch语句
case之后需要跟break,若没有break将输出满足case之后所有case的打印
while循环
增强for循环
break continue
方法
方法重载
重载就是在一个类中,有相同的函数名称,但形参不同的函数
命令行传参
运行一个程序时候在传递给他消息,要靠传递命令行参数给main()函数实现
public class CommandLine {
public static void main(String[] args) {
for (int i = 0; i <args.length; i++) {
System.out.println("args["+i+"]:"+args[i]);
}
}
}
需要在cmd命令行中查看参数
可变参数
java支持传递同类型的可变参数给一个方法
在方法声明中,在指定参数类型后加一个省略号(…)
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前
public void Demo(int x,double… y);
递归
A方法调用A方法,调用自己
递归结构两部分:
1.递归头:什么时候不调用自身方法。如果没有头,将陷入死循环
2.递归体:什么时候需要调用自身方法
数组
首先必须声明数组变量,才能在程序中使用数组。声明数组变量的语法:
dataType[ ] arrayRefVar; //首选方法
或
dataType arrayRefVar[ ];//效果相同
Java使用new操作符来创建数组:
dataType[ ] arrayRefVar = new dataType[arraySize];
数组元素通过索引访问,索引从0开始
获取数组长度:arrays.length
内存分析
静态初始化
int num[]={1,2,3,4,5,6,7,8,9};
Man[] nans={new Man(1,1),new Man(2,2)}
动态初始化
int[] nums =new int[10];
nums[0]=0;
数组的默认初始化
数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。
多维数组
Arrays类
稀疏数组