Java基础
JAVA基础
数据类型
int能表示21亿左右的数,再大就会内存溢出
//JDK新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
变量
局部变量必须声明和初始化
实例变量如果不自行初始化,会默认值
- 布尔值默认false
- 基本类型 0
- 其他null
类变量:在类里面使用static修饰的变量
变量的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary除了第一个单词以外,后面的单词首字母大写
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划:MAX_VALUE
- 类名:首字母和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
常量
final 常量名=值;//常量名一般使用大写字母
运算符
幂运算 Math类
double pow = Math.pow(2,3);
包机制
一般利用公司的域名倒置作为包名
导入import
JavaDoc
javadoc命令是用来生成自己API文档的
文档注释
/**
* @author 作者名
* @version 1.0 版本号
* @since 1.8 指明最早需要使用jdk版本
*/
使用命令行:cmd
javadoc -encoding UTF-8 -charset UTF-8 java文件
会生成index.html 打开可以看看
可以使用IDEA生成JavaDoc文档 Tools->Generate JavaDoc
用户交互Scanner
next():
- 一定要读取到有效字符才可以结束输入。
- 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
- next()不能得到带有空格的字符串。
nextLine():
- 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前所有字符。
- 可以获得空白。
Scanner scanner = new Scanner(System.in);
System.out.print("请输入:");
if(scanner.hasNext()){
System.out.println(scanner.next());
}
scanner.close();
增强for循环
java5引入的,主要用户数组和集合的for循环
int[] numbers={1,2,3,4,5};
for(int x:numbers){
System.out.println(x);
}
方法
重载的规则:
- 方法名称必须相同。
- 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)
- 方法的返回类型可以相同也可以不相同。
- 仅仅返回类型不同不足以成为方法的重载。
命令行传参
main方法的args参数
java Demo03 参数值1 参数值2
可变参数
java1.5以后才有的
- 在方法声明中,在指定参数类型后加一个省略号(...)。
- 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。
数组

-
静态初始化
int[] a ={1,2,3}; Man[] mans = {new Man(1,1),new Man(2,2)}; -
动态初始化
int[] a =new int[2]; a[0]=1; a[1]=2;
Arrays类
- 给数组赋值:通过fill方法。
- 对数组排序:通过sort方法,按升序。
- 比较数组:通过equals方法比较数组中元素值是否相等。
- 查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。
面向对象OOP
构造器(构造方法)
- 必须和类的名字相同
- 必须没有返回类型,也不能写void
- 一旦定义了有参构造,无参就必须显示定义

封装
属性私有,get/set
- 提高程序的安全性,保护数据
- 隐藏代码的实现细节
- 统一接口
- 提高系统可维护性
继承
super 使用父类的和this对应
- super调用父类的构造方法,必须在构造方法的第一个
- super必须只能出现在子类的方法或者构造方法中
- super和this不能同时调用构造方法
重写override
- 静态的方法和非静态的方法区别很大,重写只和非静态的方法有关
- 重写是子父类的需要继承关系,重载是自己类的
- 方法名必须相同
- 参数列表必须相同
- 修饰符:范围可以扩大
- 抛出的异常:范围,可以被缩小,但不能扩大
- 父类的功能,子类不一定需要,或者不一定满足
多态
- 多态是方法的多态,属性没有多态
- 有继承关系
- 方法需要重写,父类引用指向子类对象
- 对象能执行哪些方法,主要看对象左边,和右边new关系不大
- instanceof关键,如果匹配,可以进行类型之间的转换
static
- 非静态方法可以调用静态方法,静态方法只能调用静态方法
- 静态代码块,类一加载就执行,只执行一次
- 执行顺序 静态代码块->匿名代码块->构造方法
- 静态导入包 import static java.lang.Math.random;
抽象类
- 抽象方法只能在抽象类里
- 不能new抽象类,只能靠子类去实现它
- 抽象方法只有方法名字,没有方法的实现
- 抽象类里可以写普通方法
- 抽象类是有构造方法的
接口 interface
- 只有规范,自己无法写方法,专业的抽象,只能干约束这件事
- 里面的方法默认都是 pubic abstract ,不用写
- 接口实现多继承
- 接口里面定义的属性都是常量 默认是: public static final,一般不会用
- 接口不是类,没有构造方法
内部类
在一个类内部定义的类
-
成员内部类
-
可以使用外部类的私有属性,私有方法
Outer outer = new Outer(); Outer.Inner inner = outer.new Inner();
-
-
静态内部类
//加一个static -
一个java类文件中,可以有多了class类,但是只能有一个public的
-
局部内部类
- 是写在方法里的类
异常Exeption
分为两类 错误Error 和 异常 Exception
Throwable是异常的父类
Ctrl+Alt+t 可以跳出代码块选项
throw new Exeption() 抛出异常,一般在方法中使用,抛到更高级
自定义异常类 继承 Exception,重写toString方法

浙公网安备 33010602011771号