当前位置: 首页 > article >正文

java基础+注解笔记【狂神说java】

基础部分–总结

基础包的命名

//一般为域名倒置
page com.yang.base
基础语法
类和方法

image-20220904155113337

根据不同的写法–大小写的差异可以判别是类对象还是方法名

类的首字母都要大写,方法首字母小写==可以理解为,类对象是class,方法是函数

类对象

image-20220904155704465

方法

image-20220904155716320

使用类对象都是先

new StringBuffer();

所有java程序的入口

public static void main(String[] args)
//所有的 Java 程序由 public static void main(String[] args) 方法开始执行。
//参数是必须的

修饰符
  • 访问控制修饰符 : default, public , protected, private
  • 非访问控制修饰符 : final, abstract, static, synchronized

Java 变量

Java 中主要有如下几种类型的变量

  • 局部变量
  • 类变量(静态变量)
  • 成员变量(非静态变量

注释
//单行注释
/*
*多行注释每行还多一个*号
*/

对象和类

类可以说是一个模板

狗这个对象,

  • 有眼睛有鼻子-属性
  • 可以叫,可以吃饭-方法

一个类可以包含以下类型变量:

  • 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。–类里面局部使用
  • 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。–类里面全局使用
  • 类变量:类变量也声明在类中,方法体之外,但必须声明为 static 类型。
面向对象
修饰符
接口-interface

接口比抽象类更抽象

一个继承,多个接口

内部类

局部内部类

静态内部类

匿名内部类(重点)

异常
throwable
  • Exception=异常

    • 运行时异常

      • 1/0
      • ClassNotFound
      • NullPoint
      • UnKownType
      • 下标越界
    • 检查型异常

  • Error

    • JWT错误

    • JVM错误

      • StackOverFlow=栈溢出
      • OutofMemory=内存溢出
五个关键字
  • try{}

  • catch{}{}(先小后大)

  • final

  • 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

        联系到Iterator

    • LinkList(常用)

      • GetFirst()
      • Getlist()
      • removerFirst()
  • Set=无须不可重复

    • HashSet(常用)

    • TreeSet
  • Vector

  • Stack

Map
  • HashMap(重点,天天用)
    • jdk1.7是:数组+链表
    • jdk1.8是:hash表=数组+链表+红黑树
  • TreeMap
Collection工具类
泛型
  • 约束,避免类型转换之间的问题
I/O流
image-20220903181843279
字节
  • 输入-InputStream

  • 输出-OutputStream

字节流
  • CharArrayReader,Writer,inputStream,outputStream
  • StringReader,StringWriter
  • Pipe(管道流)Inputstream
  • 文件流File
字符流
  • Writer
  • Reader
处理流
  • buffer–搭配字节和字节流则有8个
    • bufferInputStream
    • bufferOutputstream
  • filter–4个
  • converting:inputstreamReader,OW,
  • Object:
  • Data
    • DataInputStream()
    • DataOutputStream()
  • Print
    • PrintWriter
    • PrintStream
  • 转换流
    • inputStreamReader
    • OutputStreamWriter
  • 序列化
    • 反序列化
多线程
进程和线程
run(),Start()
线程创建的方式
  • Thread
    • start0,本地方法:java无权调用,交给底层的处理
      • private native void start0();
  • Runable
    • 函数式接口
      • lambda
  • Callable
    • 可以有返回值
代理模式
  • new Thread(Runable).start();
lambda表达式
  • 函数式编程

    • 避免内部类定义过多

      new Thread(()->{
          System.out.println("");
      }).start();
      
      
线程的状态
  • 新建状态
  • 就绪
  • 运行
  • 阻塞
  • 死亡
常用方法
  • sleep

  • join

  • yield

  • start

  • isLive

  • setPriority

  • interupt

线程同步
  • 多个对象操作同一个资源,开发
  • 队列+锁
  • Syschronized
    • 同步方法
    • 同步代码块(常用方法!)
    • 第一个线程进来拿到锁,后面就要排队了,直到锁释放
    • 死锁:两个人都抱着对方需要的锁
      • 互斥
      • 请求与保持
      • 不剥夺条件
      • 循环等待条件
  • lock(优先级高)>同步代码块儿>大于同步方法
    • ReentrantLock
      • lock
      • unlock
      • rrylock
线程通信
  • 缓冲区:消息队列
  • 标志位:红绿灯
  • wait();-
  • notifyAll();-唤醒
线程池(pool)
  • 池化技术
  • 池的大小
  • 最大连接数
  • 保持时间
  • Excutors.TreadPoolExecuter();
网络编程
ip
端口
Scoket编程
Tcp
  • 三次握手
  • 四次挥手
  • 面向连接
Udp
  • 无连接
  • Packet
URl
初识Tomcat
聊天通信
文件上传
GUI(可选)
AWT
  • Frame
  • 监听事件
    • 鼠标
    • 键盘
    • 窗口
    • 文本框
    • 动作时间
Swing
  • 文本框
  • 标签1
  • 按钮
  • 文本域
  • 面板
  • 布局方式
  • 关闭窗口
  • 列表
贪吃蛇
  • Timer
  • 键盘监听
  • 有戏帧的概念
注解和反射
  • 注解
    • 元注解
    • 内置注解
    • 自定义注解
    • 反射读取注解
  • 反射
    • Class
      • newinsatance
    • 类加载机制
    • Method
      • inboke(user3,”杨龙伟3”)
      • 存在重载,也需要写参数的类型1
    • Filed
      • set(user4,”杨龙伟4”)
    • Construct
      • nreinstance();
      • 获取的时候需要传递参数的class类型
    • 破坏私有关键字
      • setAccessible(true);
    • 性能分析
      • 正常>检测关闭的反射>默认的反射
    • 反射获取注解,泛型
    • 单例模式的探究
    • Stream
    • ForkJoin
      • 效率对比

注解

内置注解
  1. @Override

重写方法

  1. Deprecated

方法即将废弃的提示

  1. @SupperssWarning(“all”)

警告镇压(要是报错,写了这个就不报错了)

元注解

@Target

描述注解的使用范围

@Retention

定义注解(源码里面都有)

@Target
//
@Interface MyAnnotation{}

http://www.kler.cn/a/15597.html

相关文章:

  • 1 设计模式原则之开闭原则
  • Mac 电池没电关机导致时间不同步
  • 【项目开发】理解SSL延迟:为何HTTPS比HTTP慢?
  • 【windows笔记】08-Windows中的各种快捷方式、符号链接、目录联接、硬链接的区别和使用方法
  • 低代码平台:跨数据库处理的重要性与实现方式
  • c# Encoding.GetEncoding
  • Go基础篇:类型系统
  • “数字中国·福启海丝”多屏互动光影艺术秀27日在福州举办
  • Windows更新【bug】
  • (一)Kubernetes - 介绍
  • Disruptor --优雅的使用
  • 国民技术N32G430开发笔记(5)- 基本定时器TIM6的使用
  • 外网SSH远程连接linux服务器,看这一篇就够了
  • 动态内存管理
  • 【zotero】从知网万方维普WOS等数据库上导出格式引文-引文格式到zotero中
  • 【RPA开发】lxml 库之 etree 使用详解
  • AI智能课程:第五讲chatGPT搞定APP小程序
  • 【VM服务管家】VM4.x算法模块开发_4.2 联合OpenCV开发
  • 推荐一些免费可用的热门 API
  • JAVA面试中遇到的那些坑,80%的人都种过招
  • 【web基础】html常用标签+作品展示
  • 如何在自己的Maven工程上搭建Mybatis框架?
  • 『LogDashboard』.NET开源的日志面板——登录授权页面扩展
  • Spring Security 6.0系列【30】授权服务器篇之JOSE规范
  • 软件和信息服务业专题讲座
  • 【go】三色标记-垃圾回收机制