JAVA知识点(尚硅谷宋红康老师的b站授课自我整理)

#Java整理全面笔记:https://blog.csdn.net/PorkBird/article/details/113666542

  1. 基本数据类型自动类型转化:

  2. 标识符的命名规范:

  3. 逻辑与、或
    a & b 、 a && b
    &:碰到条件a是错的不停止,继续算b
    &&:碰到条件a是错的停止,不计算b
    a | b 、a || b:同上面逻辑与

  4. 基本数据类型和包装类
    自动装箱:
    Integer i = 1000,这里自动装箱,相当于Integer i = new Integer(1000)
    但是对于-128到127之前频繁使用是有缓存cache数组,所以自动装箱的时候不会去new对象
    自动拆箱:
    Integer i = new Integer(1000)
    int num = i.intValue()相当于int num = i

    ps:Integer.parseInt()和Integer.valueOf()返回值类型不同,前者是返回int后者是返回int的包装类Integer。因为String是一个类,String只有valueOf没有前者

  5. 二维数组的使用

  6. 类中成员属性的赋值顺序

  7. final修饰符

    ps:final修饰对象,对象里面的非final属性可以修改,但是该对象不可以修改

  8. static修饰符

  9. abstract修饰符

    ps:abstract不能修饰私有方法、静态方法(因为私有方法不能重写),静态方法不可以用非静态方法重写,子父类静态方法同名同参数不是多态,也不是重写。
    抽象类不可以实例化,但是可以使用多态

  10. interface接口


  11. 内部类
    内部类作为成员内部类时可以用static关键字修饰,外部类只能用缺省和public修饰


    上面因为static会预先加载不需要实例化,非静态成员内部类需要先实例化外部类静态内部类不可以通过实例化外部类来new,只能直接new。因为静态内部类的生命周期在用完就结束了,如果不用实例new会出现多个,这时候就不唯一了。

    上面局部变量num是自动补上了final修饰词,所以不能够在局内部内的方法内修改num值。

  12. 自定义异常类
    必须要有那个序列号

  13. 操作线程方法
    wait()释放锁、sleep()不会释放锁

  14. 创建线程的四种方式
    创建多线程有四种方式:Thread、Runnable、Callable(FutureTask)、线程池(Executors.newFixedThreadPool、ExecutorService、execute、sumbit、shutdown)


    死锁的方式synchronized和lock
    lock:ReentrantLock lock = new ReentrantLock()

  15. 判断String的字符串(变量、常量)

    补充:final修饰的类,用该类定义变量不是常量!例如String:final String a和String a前者是常量后者是变量
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GkyYqAql-1660468893974)(leanote://file/getImage?fileId=62bd58062b63c044bf000006)]

  16. StringBuffer、StringBuilder
    StringBuffer、StringBuilder可以append(null)但是new的话会抛出空指针异常

  17. 增强for循环
    普通for修改的是该数组对象,增强for是创建了新的局部变量s

  18. 集合Collection
    1、StringBuffer的底层数组容量默认16;Stringbuffer扩容机制是不够放大2倍,还不够直接变成需要的长度;Stringbuffer扩容机制是不够放大2倍再加2,还不够直接变成需要的长度。
    2、ArrayList底层默认容量10;ArrayList扩容机制是不够变成1.5倍,还不够直接变成需要的长度,最后如果超过给的一个略小于整型范围的值,则给整型最大值。如果还不行则会抛出异常。jdk8以后,Arraylist首先不会初始化,在使用到的时候,才会给出容量10
    3、这两者扩容的时候会创建新数组,把旧数据赋值上去。
    4、vector扩容机制是放大2倍,默认长度是10

  19. HashSet、HashMap
    HashSet插入判断是否相同先看hashcode()再看equals();TreeSet插入判断只看重写的compareTo()方法。


    先判断hashcode(),在看equals()。改内容不会修改hashcode()

    HashMap是扩大两倍容量,默认长度是16

  20. 泛型

  21. 输入输出流
    默认输入流是字节流,如果要用缓冲流的readLine(),则需要用转换流转成字符流。
    输出流也是 字节流,是outputStream的子类。
    数据流只可以操作基本数据类型和String,对象流都可以操作

  22. Lambda
    Lambda表达式只可以操作一个抽象方法的接口,不可以操作抽象类

  23. 一些思考
    optional的jdk11中or方法
    《?extends optional《 ?extends T》〉
    main入口,public class

JAVA知识点(尚硅谷宋红康老师的b站授课自我整理)相关推荐

  1. JVM学习笔记汇总:结合尚硅谷宋红康老师视频教程及PPT

    JVM学习笔记汇总:结合尚硅谷宋红康老师视频教程及PPT 第一章:JVM虚拟机的介绍 1.1虚拟机的分类 虚拟机通常分为两类:系统虚拟机和程序虚机.其中,系统虚拟机是指完全对物理计算机的仿真,而程序虚 ...

  2. 尚硅谷 宋红康老师 Java视频全程课程目录

    尚硅谷 Java 语言全程课程目录, 尚硅谷 Java&大数据研究院 宋红康 B站视频链接 已看完,感谢宋红康老师! [视频很长,但看完你一定会收获很多] 30天课程目录 Java 编程基础部 ...

  3. 【MySQL入门到高级之基础篇(参考尚硅谷宋红康老师2022版)】

    文章目录 第一章数据库概述 为什么要使用数据库 数据库与数据库管理系统 数据库的相关概念 数据库与数据库管理系统的关系 常见的数据库管理系统排名(DBMS) 常见的数据库介绍 MySQL介绍 概述 M ...

  4. Java基础(四)(根据尚硅谷宋红康老师Java基础第四部分)(重点)

    Java面向对象编程(中) 主要讲解宋老师里面课后题(无答案的),以便后期复习使用.(可以私信我要文档资料 简答题 Object类的使用说明: 为什么要重写toString()方法? 在Object类 ...

  5. 尚硅谷 宋红康 JVM教程_01_内存与垃圾回收篇——02

    本系列相关链接 尚硅谷 宋红康 JVM教程_01_内存与垃圾回收篇--01 (20210103-20210110) https://blog.csdn.net/wei198621/article/de ...

  6. JDBC学习笔记(1)---B站尚硅谷宋红康

    JDBC学习笔记(1)-B站尚硅谷宋红康 JDBC学习笔记(2)-B站尚硅谷宋红康 文章目录 软件架构方式介绍 JavaWeb技术概览 第1章:JDBC概述 1.1 数据的持久化 1.2 Java中的 ...

  7. 尚硅谷 宋红康 JVM教程_02_字节码与类的加载篇

    本系列相关链接 尚硅谷 宋红康 JVM教程_01_内存与垃圾回收篇--01 (20210103-20210110) https://blog.csdn.net/wei198621/article/de ...

  8. 尚硅谷-宋红康-JVM上中下篇完整笔记-JVM上篇_内存与垃圾回收篇

    前言 一.jvm及java体系结构 1. Java及JVM简介 TIOBE语言热度排行榜 https://www.tiobe.com/tiobe-index/ 世界上没有最好的编程语言,只有最适用于具 ...

  9. 尚硅谷-宋红康-MySQL高级性能篇

    尚硅谷-宋红康-MySQL高级性能篇 第1章 Linux下MySQL的安装与使用 1. 安装前说明 1.1 Linux系统及工具准备 二级目录 三级目录 第1章 Linux下MySQL的安装与使用 1 ...

  10. JVM从入门到精通(尚硅谷宋红康)

    不动笔墨不读书,先把书读厚,再把书读薄是我学习方式. 所以等理解了再整理一次笔记,目前笔记和视频一一对应. 笔记连载中 <尚硅谷2020最新版宋红康JVM> 第1章:JVM与Java体系结 ...

最新文章

  1. python re match groups_python re.match与re.search的区别
  2. linux通过串口读取文件,Linux 串口读写(二)
  3. DS博客作业08--课程总结
  4. Android(五)——控制UI界面的方法
  5. android studio 实用指南,《Android Studio实用指南》4.27 使用演示模式(示例代码)
  6. 三十一、Java多线程编程(下篇)
  7. 左神算法:判断 t1 树中是否有与 t2 树拓扑结构完全相同的子树(Java版)
  8. 如何将前端数据保存到文件
  9. 实现打包后修改服务器接口地址,vue打包之后生成一个配置文件修改接口
  10. 关于Java String对象创建问题解惑
  11. windows进程中的内存结构(转)
  12. CommonJS模块的循环加载
  13. CocoaPods安装和使用图解
  14. CODEBLOCKS 汉化配置
  15. 2021年中国理财产品行业之新发行银行理财产品概览,中国银行发行2359只,位居榜首「图」
  16. Linux下动态库so查找与函数列表
  17. Kotlin:Outdated Kotlin Runtime问题修复
  18. Linux Qt cannot find -lGL错误
  19. 傅立叶变换的物理意义(转)
  20. CMMI特定目标(SG)和特定实践(SP)汇总

热门文章

  1. matlab好看的字体,最佳50个新鲜+漂亮的字体(2011)
  2. 百旺信云计算机中心,百旺信云数据中心机房介绍
  3. 强悍!winrar妙用-将bat脚本打包成exe可执行文件并实现自动执行
  4. 软件如何实现屏幕共享?
  5. 各种通信接口的简单对比
  6. 方便的Unity真机调试工具:LogViewer
  7. 彻底卸载anaconda教程
  8. 个人设想中的TCAX GUI生成的带python脚本代码的ASS字幕文件
  9. 我是如何在开源系统中(Vue)中引入阿里巴巴Icon图标的?
  10. AutoCAD 命令定义