javaSE(总结)

JavaSE 复习

基础语法

注释

  • 行内注释 //
  • 多行注释 /**/
  • 文档注释 /** */ javadoc 生成帮助文档

标识符

java关键字 (百度复习)

数据类型

  • 基本数据类型 (四类8种)

    • 数据类型 类型 字节
      整数 byte 1
      整数 short 2
      整数 int 4
      整数 long 8
      浮点数 float 4
      浮点数 double(默认) 8
      字符 char 2
      布尔型 boolean 1(位)

      浮点数 BigDecimal

    引用数据类型

    • 接口
    • 数组

    类型转换

    • 自动类型转换 低 转 高
    • 强制类型转换 高 转 低 (低)高

    变量和常量

    type varName [=value];

    作用域

    • 类变量
    • 实例变量
    • 局部变量

    常量 final MAX_A = 10;

    命名规范

    • 见名起意
    • 驼峰命名(变量,方法)
    • 类,首字母大写,驼峰命名
    • 常量:大写+下划线
    • 不要使用拼音命名

运算符

  • 算术运算符 + - * / % ++ –
  • 赋值运算符 =
  • 关系运算符 > < >= <= == != instanceof
  • 逻辑运算符 && || !
  • 位运算符 & | ^ ~ >> << >>>
  • 条件运算符 ? : (三目运算符)x ? y : z
  • 扩展运算符 += -= *= /=

包机制

  • 域名倒写
  • 防止命名冲突
  • package
  • import

JavaDoc

  • JDK 帮助文档
  • 1.javadoc
    • @auther 作者名
    • @Version 版本
    • @Since 最早支持的JDK版本
    • @Param 参数
    • @return 返回值
    • @throws 异常

流程控制

  • Scanner 用户交互 System.in

  • 顺序结构 程序默认的结构,自上而下的执行

  • 选择结构

    • if 单选择结构
    • if-else 双选择结构
    • if-else if - else 多选择结构
    • switch
      • jdk 支持String类型
      • case 穿透现象
      • break
      • default

    循环结构

    • while 尽量避免死循环
    • do…while
    • for for(int i = 0; i < 100; i++)
    • 九九乘法表
    • 增加for循环

    break & continue

    • break: 跳出循环
    • continue: 终止当次循环
    • 带标签continue
    • return: 结束方法的运行

方法

  • 什么是方法!
  • 方法的定义 修饰符 返回值 方法名(参数名){return 返回值;}
  • 方法调用
    • 类名.方法
    • 对象.方法
  • 方法重载 名字相同,参数列表不同
  • 命令行传参 给main方法传递参数 cmd 输出 java.class文件 运行
  • 可变长参数
    • 必须放在最后一个参数

递归

  • 自己调自己,给自己一个出口
  • 面试常问 leetcode

数组

  • 数组的定义

    • new int[5]
    • {1,2,3,4,5}
    • 必须同一类型
  • 数组的使用

    • 通过下标拿到值
    • ArrayIndexoutofBounds
    • 增加for循环遍历
  • 二维数组 int[][]

  • Arrays工具类

  • 排序算法

    • 冒泡排序
    • 选择排序
    • 插入排序
    • 快速排序
    • 归并排序
    • 希尔排序
    • 堆排序
    • 基数排序

面向对象

什么是面向对象

类与对象

  • 类是对象的抽象:模板Class
  • 对象是类的具体

构造方法

  • 构造的重载
    • 默认的无参构造
    • 如果手动定义了有参构造就必须要手动再加一个无参构造
    • 单例模式,需要构造器私有!

new 对象

  • 栈存放引用
  • 堆存放具体的对象

封装

  • 属性私有,get、set
  • 继承
    • extends
    • Object
    • 子类拥有父类的全部特性
    • 方法重写
    • this
    • super
    • Java是单继承,只能继承一个父类

多态

  • 父类的引用指向子类的对象 Person person = new Student();
  • instanceof关键,如果匹配,可以进行类型之间的转换

修饰符

  • public
  • protected
  • private
  • static
  • final
  • abstract

接口

  • interface
  • 约束,只能定义方法名
  • 子类实现接口,必须重写其中的方法
  • 只有一个方法的接口叫做函数式接口,可以使用lambda表达式简化
  • 接口比抽象更抽象
  • 一个类可以实现多个接口

内部类

  • 局部内部类
  • 静态内部类
  • 匿名内部类(重点)

异常

Throwable
  • Exception
    • 运行时异常
      • 1/0
      • ClassNotFound
      • NullPoint
      • UnKownType
      • 下标越界异常
      • 。。。
    • 检查类异常
  • Error
    • AWT 错误
    • JVM 错误
      • StackOverFlow
      • OutOfMemory
五个关键字
  • try{}
  • catch(){}
  • finally{}
  • throw 手动抛异常
  • throws 方法抛异常
自定义异常
  • 继承Exception类即可

常用类

  • Object类
    • hashcode()
    • toString()
    • clone()
    • getClass()
    • notify()
    • wait()
    • equals()
  • Math类 //常见的数学运算
  • Random类 //生成随机数 UUID
  • File类
    • 创建文件
    • 查看文件
    • 修改文件
    • 删除文件
  • 包装类 //自动装箱和拆箱(百度了解)会面试问
  • Date类
    • Date
    • SimpleDateFormat yyyy-MM-dd HH:mm:ss
    • Calendar(建议使用)
  • String类 不可变性 final
  • StringBuffer 可变长 append() 多线程数据量大 效率低,安全
  • StringBuilder 可变长 单线程数据量大 效果高,不安全

集合框架

  • Collection
    • List(有序可重复)
      • ArrayList (常用)
        • add
        • remove
        • contains
        • size
      • LinkedList(常用)
        • getFirst()
        • getLast()
        • removeFirst()
        • addFirst()
      • Vector
      • Stack
    • Set(无序不可重复)
      • HashSet(常用)
      • TreeSet
    • Iterator: 迭代器
  • Map
    • HashMap(重点 面试高频问点)
      • JDK1.7:数组+链表
      • JDK1.8: hash表=数组+链表+红黑树
    • TreeMap
  • Collections 工具类
  • Hutool 工具类 (大部分都有)
  • 泛型 < > 约束,避免类型转换之间的问题

IO流

  • 字节流
    • 输出:OutputStream
    • 输入:InputStream
  • 字符流
    • 写入: Reader
    • 写出: Wirter
  • 节点流
    • CharArrayReader, Writer, InputStream, OutputStream
    • StringReader,Writer
    • pipe(管道流)PipedOutputStream
  • 处理流
    • buffer
      • bufferInputStream
      • bufferOutputStream
      • bufferReader
      • bufferWriter
    • 序列化
      • 反序列化 Serializable transient (透明的)
    • data
      • DataInputStream
      • DataOutputStream
    • 转换流
      • InputstreamReader
      • OutputStreamWriter
    • Filter 四个
    • print
      • PrintWriter
      • PrintStream

多线程

  • 进程和线程
  • run(), Start()
  • 线程创建的方式
    • Thread start0,本地方法:java无权调用,交给底层的C处理 private
    • Runnable 函数式接口 lambda
    • Callable 可以有返回值
  • 静态代理
    • new Tread(Runnable).start();
  • Lambda表达式
    • 函数式编程
    • 避免内部类定义过多、
    • new Thread(() -> {
    • Sout();
    • }).start();
    • 手动推导一遍lambda表达式
  • 线程的状态
    • 新建状态
    • 就绪
    • 运行
    • 阻塞
    • 死亡
  • 常用的方法
    • sleep
    • join
    • yield
    • isLive
    • start
    • setPriority
    • interrupt

线程同步

  • 多个对象操作同一个资源
  • 队列 + 锁
  • Synchronized
    • 同步方法 弊端:锁太多了 第三个
    • 同步代码块(常用!) 第二个
    • 第一个线程进来拿到锁,后面就要排队了,直到这个人释放锁,后面拿到锁才能进去
    • 死锁:两个人都抱着对方的锁
      • 互斥
      • 请求与保持
      • 不剥夺条件
      • 循环等待条件
  • Lock(优先级高)最高级
    • ReentrantLock
      • lock
      • trylock
      • unlock
  • 线程通信
    • 缓冲区:消息队列
    • 标志位:红绿灯
    • wait();
    • notifyAll();
  • 线程池 (Pool)
    • 池化技术
    • 池的大小
    • 最大连接数
    • 保持时间
    • 。。。。

网络编程

  • IP
  • 端口
  • Socket编程
  • TCP
    • 三次握手
    • 四次挥手
    • 面向连接
  • UDP
    • 无连接
    • Packet
  • URL
  • 初识Tomcat
  • 聊天通信
  • 文件上传

GUI

  • AWT
    • Frame
    • 监听事件
      • 鼠标
      • 键盘
      • 窗口
      • 动作事件
  • Swing
    • 文本框
    • 标签
    • 按钮
    • 文本域
    • 面板
    • 布局方式
    • 关闭窗口
    • 列表
  • 贪吃蛇
    • Timer
    • 键盘监听
    • 游戏帧的概念

注解和反射

  • 注解
    • 元注解
    • 内置注解
    • 自定义注解
    • 反射读取注解
  • 反射
    • Class newlnstance();
    • 类加载机制
    • Method
      • invoke(user3,“广州”);
      • 存在重载,也需要写参数的类型
    • Field set(user4,“广州”);
    • Construct
      • newlnstance();
      • 获取的时侯需要,传递参数的class类型
    • 破坏私有关键字
      • setAcce’s’sible(true);
      • 性能分析 正常>检测关闭的反射>默认的反射
  • 单例模式的探究
  • Stream
  • ForkJoin
    • 效果对比

猜你喜欢

转载自blog.csdn.net/HolleDream/article/details/107936128