javaSE

学习视频笔记1

Java语言初识

  1. 我能不能学会这个语言?
  2. 注册博客:27+
  3. MarkDown语法
  4. 简单的Dos命令
  5. 计算机语言发展
  6. java的诞生
    • 1995
      1. JavaSE
      2. JavaME(Android)
      3. JavaEE
    • 2006 Hadoop
  7. JDK 开发者工具包 配置环境变量
  8. JRE 运行环境

HelloWorld

  • javac Hello.java 生成calss
  • java Hello
  • 编译型
  • 解释型语言
  • IDEA

基础语法

注释

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

标识符

关键字

数据类型

  • 基本数据类型
    • 整数
      • byte 1字节
      • short 2
      • int(默认) 4
      • long 8
      • 进制(二进制(0b) 十六进制 (0x)八进制(0))
    • 浮点数
      • float 4
      • double(默认) 8
      • BigDecimal
    • 字符
      • char 2
      • ascli
      • utf-8
      • Unicode
      • ‘/u0000’ ( \b \n \r \t \’ \" \\)
    • 布尔值
      • boolean 1位
      • if(a)
  • 引用数据类
    • 接口
    • 数组
  • 类型转换
    • 自动类型转化(低转高)
    • 强制类型转化(高转低 (低)高)
  • 变量和常量
    • type varName [=value]
    • 作用域
      • 类变量
      • 实例变量
      • 局部变量
    • 常量 final MAX_A = 10;
    • 命名规范
      1. 见名知意
      2. 驼峰命名(变量,方法)
      3. 类,首字母大写,驼峰命令
      4. 常量:大写+下划线
      5. 不要使用拼音命令
  • 运算符
    • 算术运算符 + - * / % ++ –
    • 赋值运算符 =
    • 关系运算符 < > <= >= == != instanceof
    • 逻辑运算符 && || !
    • 位运算符 & | ^ ~ >> << >>>
    • 条件运算符 ? :
    • 扩展运算符 += -= *= /=
  • 包机制
    • 域名倒写
    • 防止域名冲突
    • package
    • import
  • javaDoc
    • JDK帮助文档
    • javadoc (javadoc -encoding UTF-8 -charset UTF-8 HelloWorld.java)
      • @author 作者名
      • @Version
      • @Since 版本号
      • @param 命令参数
      • @return 返回值说明
      • @throws 抛出异常说明

l流程控制

  • Scanner 用户交互System.in
  • 顺序结构 程序默认的结构,自上而下的执行
  • 选择结构
    • if 单选择结构
    • if-else 双选择结构
    • if-else if-else 多选择结构
    • switch
      • jdk 支持了String类型
      • case 穿透现象
      • break
      • default
  • 循环结构
    • whlie
    • do …while
    • for (for(int i=0;i<100;i++)
    • 增强for循环
  • break & continue
    • break:跳出循环
    • continue:终止当次循环
    • 带标签的break,continue
    • return:结束方法的运行

方法

  • 什么是方法
  • 方法的定义 修饰符 返回值 方法名 (参数名)(return 返回值;)
  • 方法调用(类名.方法名 对象.方法名)
  • 方法重载 名字相同,参数列表不同
  • 命令行传参 给main方法传递参数
  • 可变长参数(… 必须放在最后一个参数)
  • 递归 自己调用自己 给自己一个出口

数组

  • 数组的定义
    • new int[56]
    • (1,2,3,4,5)
    • 必须是同一个类型
  • 数组的使用
    • 通过数组下标使用
    • ArraylndexoutofBounds 数组下标越界异常
    • 增加for循环遍历
  • 二维数组
  • Arrays 工具类
  • 排序算法
    1. 冒泡排序
    2. 选择排序
    3. 插入排序
    4. 快速排序
    5. 归并排序
    6. 希尔排序
    7. 堆排序
    8. 基数排序

面向对象

  • 什么是面向对象
  • 类与对象(类是对象的抽象:模板class 。对象是类的具体)
  • 构造方法 构造的重载
    • 默认的无参构造
    • 手动定义了有参构造默认无参构造无效
    • 单例模式,需要构造器私有
  • new对象(栈存放引用,堆存放具体的对象)
  • 封装 属性私有,get,set
  • 继承
    • extends
    • Object
    • 子类拥有父类的全部特性
    • 方法重写
    • this
    • super
  • 多态
    • 父类的引用指向子类的对象
    • instanceof关键,如果匹配 可以进行类型之间的转换
  • 修饰符
    • public
    • private
    • protected
    • static
    • final
    • abstract
  • 接口
    • interface
    • 约束,只能定义方法名
    • 子类实现接口,必须重写其中的方法
    • 只有一个方法的接口叫函数式接口,可以使用lambda表达式简化
    • 接口比抽象类更抽象
    • 一个类可以实现多个接口
  • 内部类
    • 局部内部类
    • 静态内部类
    • 匿名内部类

异常

  • Throwable
    • Exception
      • 运行时异常
        • I/O
        • ClassNotFound
        • NullPoint
        • UnKownType
        • … …
      • 检查型异常
    • Error
      • AWT错误
      • JVM错误
        • StackOverFlow
        • OutOfMenory
  • 五个关键字
    • try()
    • eatch(){} 先小后大
    • finally{}
    • throw 手动抛出异常
    • throws 方法抛出异常
  • 自定义异常 继承Exception类即可

常用类

  • Object类
    • hashcode()
    • toString()
    • clone()
    • getClass()
    • notify
    • wait()
    • equale()
  • Math类 常见的数学运算
  • Random类 生成随机数 UUID
  • File
    • 创建文件
    • 查看文件
    • 修改文件
    • 删除文件
  • 八大基础数据类型包装类(自动装箱和拆箱)
  • Date类
    • Datepl
    • SimpleDateFromat yyyy-MM-dd HH-mm-ss
    • Calendar(建议使用)
  • String类 (不可变性)
  • StringBuffer(可变长 建议多线程数据量较大 效率低)
  • StringBuilder(可变长 建议单线程数据量较大 效率高)

集合框架

  • Collection
    • list(有序可重复)
      • ArrayList(常用)
        • add
        • remove
        • contains
        • size
      • LinkedList(常用)
        • getFirst()
        • getLast()
        • removeFirst()
        • addFirst()
      • Vecor
      • Stack
    • set(无序不可重复)
      • HashSet(常用)
      • TreeSet
    • iterator:迭代器
  • Map
  • HashMap(重点,面试高频问点)
    • JDK1.7 数组加链表
    • JDK1.8数组加链表加红黑树
  • TreeMap
  • Collections工具类
  • 泛型<>约束,避免数据类型转换之间的问题

IO流

  • 字节流
    • 输出:OutputStream
    • 输入:InputStream
  • 字符流
    • Reader
    • wirter
  • 节点流
  • 处理流
    • 序列化 反序列化 Serializable transient(透明的)
    • buffer
      • bufferOutputStream
      • bufferInputStream
      • bufferReader
      • bufferwirter
    • data
      • DataInputStream
      • DataOutputStream
    • object流(常用)
      • objectInputStream
      • objectOutputStream
    • 转换流()
      • InputStreamReader
      • OutputStreamwirter
    • Filter(四个)

多线程

  • 进程和线程

  • run()和Start()

  • 线程创建的 方式

    • Thread start()本地方法;java无权调用,交给底层处理
    • Runnable 函数式接口 lambda
    • Callable 可以有返回值
  • 静态代理模式

  • Lambda表达式

    • 函数式编程
    • 避免内部类定义过多
    • 手动推导一遍lambda表达式
  • 线程的状态(新建,就绪,运行,阻塞,死亡)

  • 线程的方法

    • sleep
    • join
    • yield
    • isLive
    • start
    • setPriority
    • interrupt
  • 线程同步

    • 多个对象操作同一个资源,并发
    • 队列+锁
    • Synchronizad
      • 同步方法 弊端:锁太多了
      • 同步代码块
      • 第一个线程进来拿到 锁,后面的就要排队了,直到这个人释放锁,后面拿到锁才能进去
      • 死锁:俩个人都抱着对方的锁
        • 互斥
        • 请求与保持
        • 不剥夺条件
        • 循环等待条件
    • Lock Reentrantlock
      • lock
      • trylock
      • unlock
    • 优先级 :Lock>同步代码块>同步方法
  • 线程通信

    • 缓冲区:消息队列
    • 标志位:红绿灯
    • wait()
    • notifyAll()
  • 线程池(Pool)

    • 池化技术
    • 池的大小
    • 最大连接数
    • 保持时间
      • 。。。。。。

网络编程

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

GUI(可选)

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

注解和反射

  • 注解
    • 元注解
    • 内置注解
    • 自定义注解
    • 反射读取注解
  • 反射
    • Class
    • 类加载机制
    • Mathod(invoke(user3,"value3"存在重载,也需要写参数类型)
    • Field (set(user4,“value4”))
    • Construct(newinstance()获取的时候需要,传递参数的class类型)
    • 破坏私有关键字 setAccessible(ture)
    • 性能分析 正常>检测关闭反射>默认的反射
    • 反射获得注解,泛型…
  • 单例模式的探究
  • Stream
  • Forkjoin 效率对比

  1. 观看狂神说JAVASE总结文档 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值