流程控制语句
条件语句
if ifelse ifelseifelse swich(多值判断)
循环语句
while for
递归
递归结构包括两个部分:
定义递归头,没有头递归将进入死循环,也就是递归结束的条件
递归体,什么时候需要调用自身的方法
任何用递归能解决的问题都能用迭代来解决,递归不强调效率,在高性能的情况下尽量避免使用递归,花时间又耗内存
面相过程和面相对象
相辅相成的关系 OOA OOD 面相对象适合开发大型的软件
面相对象是宏观上的把控,微观处理上仍然是面相过程
构造方法,用于创建这个类的对象,无参的构造方法可以有系统的自动创建
栈
- 栈描述的是方法执行的内存模型,每个方法被调用的时候都会创建一个栈帧,存储局部变量、操作数、方法出口等
- JVM为每一个线程创建一个栈,用于存放该线程执行方法的信息(实际参数,局部变量等)
- 栈属于线程私有,不能实现线程间的共享
- 先进后出,后进先出
- 栈由系统自动分配,速度快,是一个连续的内存空间
堆
- 用于存储创建好的对象和数组,数组也是对象
- JVM只有一个堆,被所有的线程共享
- 是一个不连续的内存分配空间,分配灵活,速度慢
方法区(静态区)
- JVM只有一个方法区,所有线程共享
- 方法区实际也是堆,只是用于存储类、常量相关的信息
- 用来存放程序中永远不变或者唯一的内容
垃圾回收机制
Java引入垃圾回收机制,C++内存管理问题得到解决,提高了开发效率
- 引用计数法:算法简单,循环引用的无用对象无法识别
- 引用可达法
https://blog.csdn.net/justloveyou_/article/details/71216049#t4
创建对象的步骤
- 分配对象空间,将对象成员变量初始化为0或空
- 执行属性值的显式初始化
- 执行构造方法
- 返回对象的地址给相关变量
this不能用于static的方法中
包机制
package包的概念:java中管理类的手段,开发中遇到大量同名的类,通过包解决类的重名的问题,实现对类的有效管理。包相对于类相当于文件夹对于文件的作用
- 通常是类的第一句非注释性语句
- 命名规则:域名倒着写即可,再填上注释块
- 写项目时都要加包,不要使用默认包
- com.chen和com.chen.ye不是包含,只是在逻辑上有联系
- JDK中主要的包: java.lang java.net java.awt java.io java.util
导入类和静态属性
导入类import
使用import cn.chenye.oo.*;//导入了User类
降低编译速度,不影响运行速度
package cn.chenye.com;
import cn.chenye.oo.*;//导入了User类
import java.util.Date;
import java.sql.*;
import static java.lang.Math.PI;
public class Test {
public static void main(String[] args) {
User user=new User();
String name;
java.util.Date data=new java.util.Date();
}
}
面相对象的提高 继承 封装 多态
使用extends实现继承
package cn.chenye.com;
/**
* ceshi jicheng
* @author ASUS
*
*/
public class TestExtends {
public static void main(String[] args) {
Student stu=new Student ();
stu.name="chenye";
stu.height=170;
stu.major="CyberSecurity";
stu.rest();
stu.study();
}
}
class Person{
String name;
int height;
public void rest()
{
System.out.println(name+" please have a rest!");
}
}
class Student extends Person{
String major;
public void study()
{
System.out.println(name+" please Studing!!");
}
}
- 父类,超类,基类,派生类
- Java中只有单继承,C++有多继承;类接口有多继承
- 子类继承父类,得到父类所有的属性和方法(除了父类的构造方法),单不见得可以直接访问,例如父类私有的属性和方法
- 查看类的继承树结构 Ctrl+T
- 定义类时没有父类,默认java.lang,object
- 用instanof判断对象是否属于类 结构true or false
System.out.println(stu instanceof Student);
System.out.println(stu instanceof Person);
System.out.println(stu instanceof Object);
方法的重写override
- 方法名,形参列表相同
- 返回值类型和声明变量类型,子类小于等于父类
- 访问权限,子类大于等于父类
object类是所有类的根基
super是直接父类对象的引用。可通过super来访问父类中被子类覆盖的方法和属性
使用访问控制符
多态
多态值得是桐楠格一个方法的调用,由于对象的不同可能会有不同的行为
对象转型
自动对上转型,强制向下转型
final关键字
- 修饰变量:被修饰的变量不可以被改变
- 修饰方法:该方法不可以被重写,但是可以被重载
- 修饰类:修饰的类不能被继承
来源:CSDN
作者:CY_BRYANT
链接:https://blog.csdn.net/qq_43721475/article/details/104202577