环境 :
新建一个Empty Project, 方便知识回顾
File->new->Module...新建模块: 注意环境设置
测试 :
public class HelloWord {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
注释 :
单行注释//
多行注释/**/
文档注释 JavaDoc /** * */ 带有参数功能
标识符 :
所有标识符都应该用字母, "$", 或"_"开头, 首字母之后可以是字母,"$","_"或数字的任何字符组合.不能使用关键字作为变量名或方法名.标识符区分大小写.不建议用中文或拼音.
数字类型 | 占用字节数 | 备注 |
byte | 1 | 有Byte包装类 |
short | 2 | |
int | 4 | 有Integer类 |
long | 8 | (要在数字后面加个L) |
float | 4 | (要在数字后面加个f) |
double | 8 | |
char | 2 | 有String包装类 |
boolean | 1 |
浮点数拓展
整数默认十进制, 二进制0b, 八进制0, 十六进制0x
整数拓展
大数类型: BigDecimal 数学工具类(银行)
字符拓展
所有的字符本质还是数字.编码 Unicode表.
转义字符 \t \n....
类型转换:
byte,short,char->int->long->float->double
类变量: static, 常量 final, 实例变量.
运算符 幂运算 2^3 Math.pow(2,3);
IO流:
Scanner:Scanner类的.next()和.hashNext()方法 - AnglusWang - 博客园 (cnblogs.com)
/*
通过Scanner类的next()与nextLine()方法获取输入字符串,在读取前我们一般需要
使用hashNext()与hasNextLine()判断是否还有输入数据
next():
1. 一定要读取到有效字符后才可以结束输入
2. 对输入有效字符之前遇到的空白, next()方法会自动将其去掉
3. 只有输入有效字符后才将其后面输入的空格作为分割符或者结束符
4. next()不能得到带有空格的字符串
nextLine():
1. 以Enter为结束符, 也就是说nextLine()方法返回的是输入回车之前的所有字符.
2. 可以获得空格字符串.
*/
public class Demo01 {
// 输入hello world!
public static void main(String[] args) {
//创建一个扫描对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.print("使用next方式接收: ");
//判断用户有没有输入字符串
if (scanner.hasNext()){
//使用next方式接收
String str = scanner.next();//程序会等待用户输入完毕
System.out.println("输入的内容为: " + str); //输出hello
}
//判断是否还有输入
if (scanner.hasNextLine()){
//使用nextLine方式接收
String str = scanner.nextLine();//程序会等待用户输入完毕
System.out.println("输出的内容为" + str); //输出hello world!
}
//凡是属于IO流的类, 如果不关闭会一直占用资源.一定要习惯用完就关闭.
scanner.close();
}
}
方法:
public static void main(String[] args)
String[] args 用于接收命令行传递的参数.
可变参数: 在指定参数类型后加一个省略号(...), 一个方法中只能指定一个可变参数, 它必须是方法的最后一个参数. 任何普通的参数必须在它之前声明.
用于不知道要传递几个同类型参数使用, 自动生成数组.
public class Demo01 {
public static void main(String[] args) {
printVoidMax(12,21,12,231,324,3,4234,3,4);
printVoidMax(new double[]{12,23,34,32432,423,34});
}
public static void printVoidMax(double... numbers){
if(numbers.length==0){
System.out.println("没有数据");
return;
}
double result = numbers[0];
for (int i=1;i<numbers.length;i++){
if (numbers[i]>result){
result=numbers[i];
}
}
System.out.println("最大值为:" + result);
}
}
递归:
public class Demo02 {
public static void main(String[] args) {
System.out.println(test(3));
}
//阶乘
public static int test(int i){
if (i==1){
return 1;
}
return i*test(i-1);
}
}