一般下载java1.8
目录
2.15:
-
银行不能使用float float比较时会出现问题 使用BigDecimal 数学工具类
-
转义字符 \t制表符(空格) \n 换行
-
强制转换 int i i=(byte)i
-
命名 除了常量(全大写)类名(首字母大写) 都驼峰原则
2.17:
-
++ -- 自增在后面 先赋值再运算 自增在前面 先运算再赋值
-
很多运算使用工具类进行操作
-
&& || !
-
位运算
-
a+=b a=a+b a-=b a=a-b
-
相加运算 字符串后面的运算都按照字符串处理 “""+a+b a+b+""
-
x?y:z x为true 结果为y x为false 结果为z
-
包机制 import com.* 通配符 所有类都被导入的
2.22:
-
命令行生成doc生成文档:1.打开java文件所在文件夹的cmd窗口 2.输入javadoc 参数java文件
-
scanner 获取用户的输入 scanner.hasNext()遇到空格就结束
-
scanner.hasNextLine()回车为结束
-
while dowhile 至少执行一次
-
100.for 自动生成循环100次的for
-
System.out.println("\t") 需要改为 System.out.print("\t")
-
在static方法内部无法直接调用非static方法(可以通过先实例化对象,再用该对象调
-
非static方法),但非static方法中可以调用static方法,通过类.方法名()的方式。
-
递归:先传递,再回归
-
方法可变长参数放在最后...
-
创建构造函数快捷键: Alt+insert 选择 Constructor
-
this() 本类构造 super() 父类构造
-
方法重载:返回值类型和参数列表不同,方法名相同
-
方法重写:需要有继承关系 子类重写父类方法 方法名相同 参数列表相同 修饰符范
-
可扩大 异常范围可缩小 static final private 不能重写
-
多态:(继承 重写 父类引用指向子类对象:Parent p = new Child(); )
-
强制转换:高转低 (待转低类型)待转高对象
2.27:
静态代码块 动态代码块
static{ 先于动态代码块执行 只执行一次 } { 先于构造函数执行 }
abstract 抽象类
-
抽象方法(只有方法的名字,没有方法体的实现)
-
抽象类的非抽象子类都必须实现(重写)它的抽象方法
-
抽象方法必须在抽象类中
-
成员变量、成员方法和构造方法的访问方式和普通类一样
-
抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。
-
构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。
-
抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。
接口
-
只有规范!自己无法写方法,是专业的约束
-
接口可以多继承
-
接口中所有定义都是 public abstract
-
实现接口的类 要实现接口的所有方法
-
一个类可以实现多个接口
-
@Override:可以告诉读你代码的人,这是对它父类方法的重写,其实很多代码规范没有为什么,规范就是规范,代码的可读性还是很重要的 ¥¥ 编译器可以给你验@Override下面的方法名称是否是你父类中所有的,如果没有就会报错。
异常
try{ }catch(异常类型 先){ }finaly{} throw 主动抛出异常 throws 在方法上抛出异常
线程
创建线程
-
继承Thread类,重写run方法(线程执行体),类对象调用start方法开启线程
public class Demo01 extends Thread{ @Override public void run() { //run方法线程体 } public static void main(String[] args) { //main线程 主线程 //创建线程对象 启动 Demo01 t = new Demo01(); t.start(); } }
-
类实现Runnable接口 实现run()方法(线程执行体) 创建线程对象调用start方法开启线程
-
可以避免oop单继承局限性
public class Demo02MyRunnable implements Runnable{ @Override public void run() { //run方法线程体 } public static void main(String[] args) { //创建runnable接口的实现类对象 Demo02MyRunnable t1 = new Demo02MyRunnable(); //创建线程对象,通过线程对象来开启我们的线程 代理 Thread thread = new Thread(t1); thread.start(); // new Thread(t1).start();//可代替上面两行 } }
快捷键 for.100
3.12
代码块
-
普通代码块(局部代码块):在方法定义中,用于限定变量的生命周期,及早释放,提高内存利用率。
{}
-
构造代码块:在类中方法外出现(即在类中的成员位置),可以把多个构造方法方法中相同的代码存放到一起,用于对对象进行初始化,每次调用构造方法都执行,并且在构造方法前执行。
-
静态代码块:在类中方法外出现(即在类中的成员位置),并加上static修饰,用于对类进行初始化,静态在类加载的时候就执行了,当new多个对象时,只执行一次。
staticic{}
-
同步代码块:多线程
持续更新中~~~