【Java】基础学习
文章平均质量分 76
点子渣手
这个作者很懒,什么都没留下…
展开
-
【Java】多线程(五)高级知识
文章目录5. 多线程高级知识5.1 多线程的七种状态5.2 守护线程与用户线程5.3 多线程优先级5.4 如何安全的停止线程5.4.1 stop方法5.4.2 interrupt方法打断正在阻塞的线程打断正在运行的线程5.4.3 标志位法5.5 Lock锁的基本使用ReentrantLock使用condition实现等待通知机制5. 多线程高级知识5.1 多线程的七种状态初始化状态就绪状态运行状态死亡状态阻塞状态超时等待等待状态start():调用start()方法会使得该线程开始执行,原创 2021-08-18 11:17:47 · 307 阅读 · 0 评论 -
【Java】多线程(四)多线程通讯
文章目录4. 多线程线程之间的通讯4.1 wait/notify机制4.1.1 wait/notify/notifyall基本使用4.1.2 多线程通讯实现生产者消费者模型4.2 join机制4.2.1 join/Wait/sleep之间的区别4.2.2 join基本使用4.2.3 join的底层原理4. 多线程线程之间的通讯4.1 wait/notify机制等待/通知的相关方法是任意Java对象都具备的,因为这些方法被定义在所有对象的超类java.lang.Object上,方法如下:notif原创 2021-08-17 22:18:06 · 62 阅读 · 0 评论 -
【Java】多线程(三)线程安全
文章目录3. 线程安全问题3.1 什么是线程安全问题3.2 如何解决线程安全问题3.3 synchronized锁的基本使用3.3.1 修饰代码块3.3.2 修饰实例方法3.3.3 修饰静态方法3.3.4 死锁问题3.3.5 springmvc接口中使用3.3.6 线程安全问题的产生原因3.4 字节码角度分析线程安全问题3. 线程安全问题3.1 什么是线程安全问题多个线程共享同一资源时, 同时对资源进行写操作就会产生线程安全问题3.2 如何解决线程安全问题核心思想:当多个线程共享同一个全局变量原创 2021-08-17 22:15:13 · 84 阅读 · 0 评论 -
【Java】多线程(二)多线程基础
文章目录2. 多线程基础2.1 继承Thread类创建线程2.2 实现Runnable接口创建线程2.3 使用Callable和Future创建线程2.3.1 基本使用2.3.2 手写 Callable和FutureTask模式2.4 使用线程池类似Executor框架2.5 spring @Async异步注解 结合线程池2.5.1 基本使用2.5.2 手写 @Async异步注解2. 多线程基础 多线程的创建方式继承Thread类创建线程实现Runnable接口创建线程使用Callable和F原创 2021-08-17 22:10:41 · 254 阅读 · 0 评论 -
【Java】多线程(一)基本概念
文章目录1. 多线程的基本概念1.1 什么是CPU1.1.1 CPU密集型/IO密集型1.1.2 CPU调度算法原理1.1.3 CPU调度时间片1.1.4 程序计数器1.1.5 上下文切换1.2 什么是线程/进程1.3 为什么需要使用多线程1.4 多线程的使用场景1. 多线程的基本概念1.1 什么是CPUCPU即中央处理器,负责进行逻辑运算。 主要由运算器,控制器和寄存器三部分组成。运算器负责运算,控制器负责发出CPU指令所需要的信息,寄存器保存运算结果或指令的临时文件来提高运算速度。线程运行在CP原创 2021-08-17 22:09:07 · 90 阅读 · 0 评论 -
【Java】反射与注解(二)注解
文章目录2. 注解2.1 什么是注解2.1.1 常用注解2.1.2 元注解2.1.3 注解的Target2.2 获取注解信息2.3 注解的使用2.3.1 自定义注解2.3.2 定义aop2. 注解2.1 什么是注解注解用来给类声明附加额外信息,可以标注在类、字段、方法等上面,编译器、JVM以及开发人员等都可以通过反射拿到注解信息,进而做一些相关处理SpringBoot 全部都是采用注解化2.1.1 常用注解@Override 只能标注在子类覆盖父类的方法上面,有提示的作用@Deprecat原创 2021-08-17 22:04:54 · 144 阅读 · 0 评论 -
【Java】反射与注解(一)反射
文章目录1. 反射机制1.1 什么是反射1.2 反射机制的优缺点1.3 反射的用途1.4 反射技术的使用1.4.1 反射常用的Api1.4.2 反射执行构造函数1.4.3 反射执行给属性赋值1.4.4 反射执行调用方法1. 反射机制1.1 什么是反射Reflection enables Java code to discover information about the fields, methods and constructors of loaded classes, and to use re原创 2021-08-17 22:03:46 · 100 阅读 · 0 评论 -
【Java】JDK8新特性(四)Optional容器
文章目录4. Optional4.1 什么是Optional4.2 判断参数是否为空4.3 参数为空可以设定默认值4.4 参数实现过滤4.5 与Lambda表达式结合使用,优化代码4.5.1 优化方案14.5.2 优化方案24.5.3 优化方案34. Optional4.1 什么是OptionalOptional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。Optional 类是一个可以为null的容器对象。如果值存在则i原创 2021-08-17 21:51:33 · 97 阅读 · 0 评论 -
【Java】JDK8新特性(三)stream流
文章目录3. stream流3.1 什么是stream流3.2 创建方式3.3 基本操作3.3.1 将List转换为Set3.3.1 将List转换为Map3.3.2 Stream将Reduce 求和3.3.3 Max和Min3.3.4 limit和skip3.3.5 并行流与串行流区别3. stream流3.1 什么是stream流Stream 是JDK1.8 中处理集合的关键抽象概念,Lambda 和 Stream 是JDK1.8新增的函数式编程最有亮点的特性了,它可以指定你希望对集合进行的操作,原创 2021-08-17 21:49:48 · 174 阅读 · 0 评论 -
【Java】JDK8新特性(二)Lambda表达式
文章目录2. Lambda表达式2.1 什么是Lambda表达式2.2 为什么要使用Lambda表达式2.3 Lambda表达式的规范2.3.1 函数接口定义2.3.2 Java系统内置那些函数接口2.4 Lambda基础语法2.4.1 无参方法调用2.4.2 带参数和返回值2.4.3 精简语法2.5 方法引入2.5.1 方法引入规则2.5.2 静态方法引入2.5.3 对象方法引入2.5.4 实例方法引入2.5.5 构造方法引入2. Lambda表达式2.1 什么是Lambda表达式Lambda 表达原创 2021-08-17 21:45:38 · 120 阅读 · 0 评论 -
【Java】JDK8新特性(一)接口
1. 接口接口中默认方法修饰为普通方法在jdk8之前,interface之中可以定义变量和方法,变量必须是public、static、final的,方法必须是public、abstract的,这些修饰符都是默认的。接口定义方法:public abstract 需要子类实现接口定义变量:public static final在JDK 1.8开始 在以上使用不变的基础上 支持使用static和default 修饰 可以写方法体,不需要子类重写。public interface JDK8Inter原创 2021-08-17 21:41:46 · 194 阅读 · 0 评论 -
【Java】实现五子棋游戏
文章目录前言一、界面设计二、具体实现1.棋盘部分2.程序入口与控制设置部分总结前言对于初学者,使用java开发五子棋游戏可以很好的帮助我们巩固相关基础知识。主要概括为两部分:1、java GUI中学会容器间的排版布局,跳转交互,容器中图像(棋盘、棋子)的绘制。2、简单数据结构与算法抽象,学会将五子棋进行抽象用已有或自定的数据结构进行表示,悔棋功能使用的栈,设计ai算法,逻辑判断。一、界面设计考虑将界面分为两个部分,一是悔棋、认输、模式选择等按钮的控制设置部分。二是显示棋盘棋子,玩家进行点击下棋的原创 2021-02-22 13:44:53 · 1290 阅读 · 2 评论 -
【Java】手写ArrayList
ArrayList作为java中常用的数据结构,很有自己重现一遍的必要,这里只是针对于ArrayList的源码进行了分析,提取了其中动态分配,添加,删除等核心功能,并加入了合并及去重合并的功能。希望在以后能够搭建动态数组模型对于具体问题具体解决。接口部分:定义通用方法public interface MyList<E> { public void add(E element); public void add(int index,E element); public E原创 2021-01-23 12:30:13 · 320 阅读 · 0 评论 -
【Java】图像处理基础(一):马赛克,二值化,边缘检测,融合,旋转,缩放
Java图像处理基础基本原理显示原图马赛克效果二值化边缘检测融合旋转缩放基本原理电脑中的图片,都是由像素点构成的,我们可以将图片理解为由像素组成的矩阵或二维数组,每个像素在矩阵中的位置,则表示了像素的位置信息。通常来说,一个像素点所包含A(透明度),R(红),G(绿),B(蓝)四个通道信息,在计算机中,R、G、B的取值范围为0~255,是1个Byte的大小,而int整型为4个Byte,正好可以储存一个像素点的四个通道信息,因此我们可以用1个int代表1个像素点。1个int中0-8位存B、8-16位存G、原创 2021-01-23 11:32:26 · 957 阅读 · 0 评论