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

news2024/10/6 21:27:02

基础部分–总结

基础包的命名

//一般为域名倒置
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.coloradmin.cn/o/461436.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浅谈在 Vue2 和 Vue3 中计算属性和侦听器的一些变化

文章目录 📋前言🎯计算属性🎯侦听器📝最后 📋前言 计算属性 computed 和侦听器 watch 都是 Vue.js 框架中用来响应式更新视图的重要概念。因此无论是在哪个版本,它们都是不可缺少的概念,这篇文…

音视频八股文(5)--SDL音视频渲染实战。会使用就行,不需要深究。

01-SDL子系统 SDL将功能分成下列数个子系统(subsystem): ◼ SDL_INIT_TIMER:定时器 ◼ SDL_INIT_AUDIO:音频 ◼ SDL_INIT_VIDEO:视频 ◼ SDL_INIT_JOYSTICK:摇杆 ◼ SDL_INIT_HAPTIC&#xff1…

第十三章 享元模式

文章目录 前言一、享元模式基本介绍二、享元模式解决网站展现项目完整代码WebSite 抽象网站类User 外部状态用户内部状态网站 ConcreteWebSite网站工厂产生网站和负责共享(池) WebSiteFactoryClint 测试 三、享元模式在JDK-Interger的应用源码分析四、享…

ERBuilder Data Modeler Crack

ERBuilder Data Modeler Crack 为过程、视图和触发器添加了人工智能驱动的描述生成。 添加了一种新的自动排列方法,可以轻松地排列和组织表格,从而简化ER图的可视化显示。 添加了使用两种身份验证方法创建到远程服务器的SSH连接的功能:密码身…

Linux - 第10节 - Linux多线程(二)

1.Linux线程同步 1.1.同步概念与竞态条件 线程互斥的设计是正确的,但线程互斥在某些场景下并不合理,有可能导致饥饿问题。 饥饿问题:某个执行流访问完临界资源后释放锁,此时相较于其他执行流,该执行流离锁更近&#x…

【目标检测论文阅读笔记】Detection of plane in remote sensing images using super-resolution

Abstract 由于大量的小目标、实例级噪声和云遮挡等因素,遥感图像的目标检测精度低,漏检率或误检率高。本文提出了一种新的基于SRGAN和YOLOV3的目标检测模型,称为SR-YOLO。解决了SRGAN网络 对超参数的敏感性和模态崩溃问题。同时,Y…

【中级软件设计师】—(针对上午题)算法分析与设计(三十八)

【中级软件设计师】—(针对上午题)算法分析与设计(三十八) 一、回溯法 1. 什么是回溯法? 相信"迷宫"是许多人儿时的回忆,大家小时候一定都玩过迷宫游戏。我们从不用别人教,都知道走…

TryHackMe-M4tr1x: Exit Denied(boot2root)

M4tr1x: Exit Denied 大多数人只看到一个完美构建的系统。但你一直都是不同的。你不仅看到表面上的东西,还看到 它下面有什么统治;调节和调节的内部关联机制 几乎完美地管理其每个模块,以至于它试图隐藏所有模块 其多面设计中的微小孔。但是&#xff0c…

【数据结构】链表详解

本片要分享的内容是链表,为方便阅读以下为本片目录 目录 1.顺序表的问题及思考 1.链表的遍历 2.头部插入 2.1开辟空间函数分装 3.尾部插入 纠正 4.尾部删除 5.头部删除 6.数据查找 7.任意位置插入 1.顺序表的问题及思考 上一篇中讲解了顺序表中增删查…

【Linux】如何理解缓冲区

文章目录 &#x1f4d5; 看现象&#x1f4d5; 理解本质&#x1f4d5; 模拟文件接口mystdio.hmystdio.c &#x1f4d5; 看现象 如下代码&#xff0c;运行结果如图。 1 #include<sys/types.h> 2 #include<sys/stat.h> 3 #include<fcntl.h> 4 #include<s…

算法强化--分解因数

大家好,今天为大家带来一道题目 链接&#xff1a;https://www.nowcoder.com/questionTerminal/0f6976af36324f8bab1ea61e9e826ef5 来源&#xff1a;牛客网 [编程题]分解因数 热度指数&#xff1a;8605时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒空间限制&#xff1a;…

臻图信息:数字技术推动智慧楼宇开启新模式

近年来&#xff0c;在数字技术的迅速发展下&#xff0c;正在深刻影响着各行各业的发展趋势。现代建筑行业已经随着通信技术、AI 智能技术、计算机技术的发展&#xff0c;向着新的发展模式开始转变。 借助数字孪生技术构建数字化、流程化的物联网平台&#xff0c;新的智能楼宇建…

串口通讯详解

目录 一、串口通讯简介&#xff1a; 二、串口通信基本原理&#xff1a; 三、通信方式 四、串口通信特点 一、串口通讯简介&#xff1a; &#xff08;1&#xff09;串口通讯是指通过串口进行数据传输的一种通讯方式&#xff0c;通过数据信号线、地线等&#xff0c;按位进行传输数…

【Python】实战:生成无关联单选问卷 csv《社会参与评估表》

目录 一、适用场景 二、业务需求 三、Python 文件 &#xff08;1&#xff09;创建文件 &#xff08;2&#xff09;代码示例 四、csv 文件 一、适用场景 实战场景&#xff1a; 问卷全部为单选题问卷问题全部为必填问题之间无关联关系每个问题的答案分数不同根据问卷全…

论文阅读:DLME = Deep Local-flatness Manifold Embedding

Author: Zelin Zang, Siyuan Li, Di Wu and Stan Z Li. 1-4: Westlake University 摘要 流形学习&#xff08;ML, Manifold learning&#xff09;旨在从高维数据中识别低维结构和嵌入&#xff0c;然而我们发现现有工作在采样不足的现实数据集上效果不佳。一般的ML方法对数据结…

C++学习记录——이십 map和set

文章目录 1、setmultiset 2、map3、map::operator[] 1、set vector/list/deque等是序列式容器&#xff0c;map&#xff0c;set是关联式容器。序列式容器的特点就是数据线性存放&#xff0c;而关联式容器的数据并不是线性&#xff0c;数据之间有很强的关系。 它们的底层是平衡…

P1038 [NOIP2003 提高组] 神经网络

题目背景 人工神经网络&#xff08;Artificial Neural Network&#xff09;是一种新兴的具有自我学习能力的计算系统&#xff0c;在模式识别、函数逼近及贷款风险评估等诸多领域有广泛的应用。对神经网络的研究一直是当今的热门方向&#xff0c;兰兰同学在自学了一本神经网络的…

用PyCharm和Anaconda搭建强化学习环境

一些碎语&#xff1a;因为我之前没学习过python&#xff0c;所以搭建这个环境的周期差不多一周&#xff0c;最终搭好了这个又爱又恨的环境&#xff08;这个成语用的多少有点文化沙漠了&#xff09;&#xff0c;这里简单梳理一下搭建环境的完整步骤。 首先下载Anaconda 下载地址…

Java线程间通信方式(3)

前文了解了线程通信方式中的CountDownLatch&#xff0c; Condition&#xff0c;ReentrantLock以及CyclicBarrier&#xff0c;接下来我们继续了解其他的线程间通信方式。 Phaser Phaser是JDK1.7中引入的一种功能上和CycliBarrier和CountDownLatch相似的同步工具&#xff0c;相…

mapbox-gl 移动端(H5)位置共享交互

文章目录 前言逆地理编码&#xff1a;获取周边地点地理编码&#xff1a;查询位置大头针选位位置卡片 前言 分享最近写的一个小demo&#xff0c;功能类似微信小程序端的大头针位置共享功能&#xff0c;需要实现的主要功能包括位置查询、周边地点检索、位置定位等&#xff0c;数…