崇之他和她

导航

day006-01JAVASE小总结Summary

summary java SE总结

  • //行内注释 /***/ 多行注释

  • /** */ 文档注释 javadoc

  • 基本数据类型

    • byte 1 字节 short 2个字节 int 4个个字节 long 8个字节 float 4个字节 double8个字节 char 2个字节 boolean 1位 \b退回 \n 换行 \r \t 回车 转义 \\ \ '' 0b二进制 0x 16禁止 0 8进制

  • 引用数据类型

    • 接口

    • 数组

  • 类型转换

    • 自动类型转换 低转高

    • 强制类型转换 高转低 金融计算中不能用double会丢失 用BigDecimal

  • 变量和常量

    • type varName = value;

    • 变量有类变量static 实例变量 局部变量 方法中的

    • 常量 final MA = 11;

    • 命名规范:见名知意,驼峰

    • 运算符,!&& || ?:

    • 包机制 域名反写 防止命名冲突 package import

    • JavaDoc @Author @Version @Since @Param

  • 流程控制

    • Scanner 程序用户交互关键字

    • 顺序结构 自上而下顺序执行

    • 选择 if if else if else if swithc case 记得加break 不然会case穿透 continue 跳过 (可以带标签)

    • 循环 while do while for for each

  • 方法

    • public type methodName(paramType param){ methodBody}

    • class.method obj.method

    • 方法重载 方法名相同参数列表不同

    • 命令行传参 java Hello aaa bbb cccc打印出args

    • ...可变长传参数 必须放在参数的最后一位

    • 递归 自己调用自己 最后一侧执行的条件满足跳出循环

  • 数组(一种数据结构)

    • int [] ia = new int[3];必须同一个类型

    • 数组通过index拿到元素值

    • 异常 ArrayIndexOutOfBounds for 循环遍历一个数组

    • 二维数组 int

    • Arrays sort升序

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

  • 面向对象

    • 什么是面向对象 OOP万物皆对象

    • 类是模板class 对象的抽象 对象是类的具体表现

    • 构造方法super默认无参 构造重载 如果写了有参构造必须把无参写出来 单例模式构造器私有

    • new 对象 栈中放引用 堆中放对象

    • 封装get set 继承extends obj为所有类的父类 多态this super 父类的引用指向子类对象 instanceof 检测有无父子关系

    • Person per = new Teacher

    • public protected private static abstract final修饰符

    • 接口 interface 约束只能定义方法名 及参数列表,实现类必须实现其中方法 接口比抽象类更抽象 不能有实现

    • java是单继承只能extends一个父类,可以实现多个接口

    • 局部内部类 静态内部类 匿名内部类

  • Throwable

    • Exception 运行时异常,检查型异常

    • 1/0 ClassNotFound UnKnowType arrayindexoutofbounds 运行异常

    • Error JVM错误 StackOverFlow递归栈溢出 OutofMemory OM 内存溢出,不断创建对象或值大于类型范围 AWT错误

    • try catch finally throw 方法内手动抛出 throws方法外

    • 自定义异常继承Exception类写toString方法输出信息

  • 常用类

    • Object

      • hashcode()

      • toString()

      • clone()

      • getClass()

      • notify()

      • wait()

      • equals

    • Math 数学

    •  

    • File

      • 创建文件 查看文件 修改 删除

    • Date

      • Date

      • SimpleDateFormat

      • Calendar

    • 包装类 八大基本类型的自动拆箱

    • Random

      • UUID随机数

    • StringBuffer 可变长 append() 多线程 效率低安全

    • Stringbuilder 可变长 单线程

    • String final不可变

  • 集合框架 Cllection

  • list ArrayList 数组 add() remove() contains() size() Iterator迭代器

  • LinkedList 链表 getFrist() getLast()首尾 pull() pol()

  • Vector Stack

  • set HashSet 无序不可以重复的 TreeSet

  • Map HashMap JDK7 数组+链表 JDK8 数组+链表+红黑树 链表数据超过8太长转换为红黑树处理

    为什么都是2的等次幂 保证均匀分配 ,位运算2的N次方减少碰撞 JDK8扩容解决了死锁

    • Collection工具类 泛型<>类型约束

  • IO流

    • input 进去 字节 InputStream 字符 Writer 节点 CharArrayReader Writer StringReader Writer

    • output 出去 字节 outputStream 字符 Reader

    • 管道处理流加在中间buffer处理流 Data 二进制数据流 Object 对象流 filter过滤流 print控制台打印流 InputStreamReader outputStreamWriter 转换流 File文件

    • 序列化 serializable transient(排除序列化此属性)

  • 进程和线程

    • run() thread.start()

    • 线程创建需要实现Thread 或者Runnable Thread已经实现了Runnable

    • start()本地方法java无权调用 交给底层C处理 private native void start()

    • Callable 可有返回值 Rnnable 函数式接口lambda

    • 静态代理 new Thread(Runnable).start()

    • Lambda表达式 避免内部类定义过多

    • 线程状态 创建 就绪 运行 阻塞 死亡

    • 常用方法 sleep join yield isLive start setPriority优先级 interrupt中断,不建议使用

    • 线程同步 多个对象操作同一个资源,并发设计线程安全,加锁解决 排队的思想 队列+锁

    • synchronized

    • 同步方法 同步代码块(常用) 排队拿锁

    • 死锁

      • 互斥 一个资源只能被一个进程调用不能被多个进程调

      • 请求保持 一个资源被一个进程调用卡住,进程不能抱着资源不放

      • 不剥夺条件 此进程正在调用此资源,未使用完时不能强行拿走资源

      • 循环等待 很多线程形成闭环需求

  • Lock 锁优先用这个锁

    • lock trylock unlock 可以判断在哪一步锁

  • 线程通信

    • 缓冲区 消息队列

    • 标志位 红绿灯 wait()等待 notifyAll()唤醒

  • 线程池 pool

    • 池子大小 最大连接数 保持时间

    • Executor.new FixedThreadPool(); 底层new ThreadpoolExecutor()

  • 网络编程

    • url ip 端口 socket TCP 面向连接 三次握手 四次挥手 UDP无连接 packet

    • 聊天通信小程序

  • GUI

    • Awt Frame 监听事件 鼠标键盘 窗口 动作 键盘

    • Swing 画工具 文本框 按钮 标签 面板 布局方式 关闭窗口 列表下拉选

    • 贪吃蛇 Timer 定时器+监听+game帧

  • 注解反射

    • 元注解 内置注解 自定义注解 反射读取注解

    • 类加载机制 Class类 Methord Constrct newInstance()传参数Classl类型 Field set(1,2) setAccessible(true)破坏私有关键字

posted on 2021-01-02 16:58  崇之他和她  阅读(55)  评论(0编辑  收藏  举报