1. synchronized的作用 锁住代码块,保证同一段代码在某一时刻只能有一个线程执行,该线程执行完毕后,其他线程再执行。目的是防止多线程并发操作导致的异常。 例如:当前有个变量count=0,线程A和线程B同时执行如下代码: if (count == 0){count = count + 10; }存在这种情况,A执行了if (count == 0) 符合条件,此时B也执行了if语句同样符合条件,然后两个线程都执行 count = count + 10 。最终count=20 2. synchronized几种使用...
人人都想进大厂,当然我也不例外。早在上年春招的时候我就有向某某某大厂投岗了不少简历,可惜了,疫情期间都是远程面试,加上那时自身也有问题,导致屡投屡败。突然也意识到自己肚子里没啥货,问个啥都是卡卡卡卡,后期下定决心好好弥补我的知识与智商,天天扎在书堆里,再加上实操,自我感觉还是不错的,有进步。 尤其是这我啃了足足58天的Java进阶架构核心知识宝典 (文末有介绍),还是当初朋友面试进大厂后分享给我的。摸熟里...
在上篇文章《深入JVM–探索Java虚拟机的类加载机制》中我们深入探讨了JVM的类加载机制。我们知道,在实例化一个类时,如果这个类还没有被虚拟机加载,那么虚拟机会先执行类加载过程,将该类所对应的字节码读取到虚拟机,并生成一个与这个类对应的Class对象。而在类加载的过程中,由于有双亲委派机制的存在,虚拟机保证了同一个类会被同一个类加载器所加载,进而保证了在虚拟机中只存在一个被加载类所对应的Class实例。而这个Class实...
目标线程的生命周期线程的状态定义线程的状态转移内容 1. 线程的生命周期说明 上一篇文章中,我们简单的描述了同步与异步的差异以及线程的基本使用。那么今天我们就来了解一下线程的生命周期。 在调用了 Thread 类对象的 start 方法来启动 Java 线程后,对应的底层操作系统线程不能马上得到 CPU 时间片来执行,需要等待操作系统的调度。所以,为了便于跟踪 Java 线程的执行情况,Thread 类定义了一系列的线程状态来表示当前线程的执...
javacv进阶opencv图像检测/识别JavaCV进阶opencv图像处理:摄像头图像人脸检测 JavaCV进阶opencv图像处理:ffmpeg视频图像画面人脸检测前言 一点闲言碎语(建议跳过): 为什么博主之前一直没写人脸检测和识别?因为javacv官方首页的demo演示就是人脸检测,大家不必看博主再写一遍,所以博主一直没写。为什么最终又写了呢?这是因为最近看了不少网上写得javacv人脸检测demo,发现能正常运行的没几个。有一两篇能看的过去的,也多多...
javacv进阶opencv图像检测/识别JavaCV进阶opencv图像检测识别:摄像头画面人脸检测 JavaCV进阶opencv图像检测识别:ffmpeg视频图像画面人脸检测 前言 上一章已经讲了如何通过OpenCVFrameGrabber读取摄像头画面来进行图像检测,javacv官方的教程也是这样,在上一章的基础上可以自行扩展支持视频的图像检测。 本章基于FFmpegFrameGrabber读取视频图像并使用opnecv进行图像检测,并且只获取视频,过滤掉音频。 完整阅读本章:https...
目录 一、认识容器1.什么是容器?1)先来看看容器较为官方的解释2)再来看看容器较为通俗的解释 2.图解物理机,虚拟机与容器 二、再来谈谈 Docker 的一些概念1.什么是 Docker?2.Docker 思想3.Docker 容器的特点4.为什么要用 Docker ? 三、容器 VS 虚拟机1.两者对比图2.容器与虚拟机总结3.容器与虚拟机两者是可以共存的 四、Docker 基本概念1.镜像(Image):一个特殊的文件系统2.容器(Container):镜像运行时的实体3.仓库(Repository):集中...
知识点目录 day1:分类思想,static关键字 day2:面向对象-继承,抽象类,权限修饰符,final day3:接口,多态 day4:内部类,Lambda day5:工具类API,系统API,算法 day6:日期类,异常处理 day7:单列集合,数据结构 day8:泛型,TreeMap双列集合,二叉树,二叉查找树,平衡二叉树 day9:红黑树,HashMap双列集合 day10:可变参数,Stream流 day11:File类,Io流字节流 day12:码表,Io流字符流,对象操作流,Properties集合 day13:多线程...
系统架构师是一个最终确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员。主要着眼于系统的“技术实现”。因此他/她应该是特定的开发平台、语言、工具的大师,对常见应用场景能给出最恰当的解决方案,同时要对所属的开发团队有足够的了解,能够评估自己的团队实现特定的功能需求需要的代价。 系统架构师负责设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,...
Java进阶之设计原则 城堡游戏城堡游戏 1.在创建类的对象的时候,如果没有构造函数,我们使用new则会完成定义初始化;如果不使用new,则没有完成初始化。 如果有构造函数,使用new的时候必须有对应的构造函数与其对应,此时会先完成定义初始化再完成构造初始化;如果没有对应的构造函数与其相对应,则会报错,报错说对应的构造函数没有被定义,这时候你可以定义一个空的构造函数,相当于只完成了定义初始化;当然如果不使用new,则没...
集合的继承体系 Collection接口 Collection是集合体系中的根接口,它定义了一些所有集合多具备的方法。任何一个具体的集合都可以使用这些方法 public boolean add(E e) 往集合中添加元素到末尾 public boolean addAll(Collection<? extends E> c) 把一个集合中的所有元素添加另一个集合中 public void clear() 清空集合中的元素 public boolean contains(Object o) 判断集合是否包含指定的元素 public boolean isEmpty() 判断集合是...
一直到模块十二,需要资源的+VX:daydayit(备注极客java)
HashMap存储自定义类型键值 Map集合保证key是唯一的 作为key的元素,必须重写hashCode方法和equals方法,以保证key唯一。 第一种情况 HashMap存储自定义类型键值 key:String类型 String类重写hashCode方法和equals方法,可以保证key唯一 value:Person类型 value可以重复(同名,同年龄)private static void show01() {HashMap<String,Person> map = new HashMap<>();//添加元素map.put("wuhan",new Person("Clearlove",18));map...
目录 一、网络通信协议 二、UDP协议与TCP协议 三、UDP通信 四、TCP通信 五、TCP图片上传案例 六、多线程上传 案例一、网络通信协议 1. 网络模型TCP/IP协议中的四层分别是应用层、传输层、网络层和链路层,每层分别负责不同的通信功能: 链路层:链路层是用于定义物理传输通道,通常是对某些网络连接设备的驱动协议,例如针对光纤、网线提供的驱动。 网络层:网络层是整个TCP/IP协议的核心,它主要用于将传输的数据进行分组,将分组...
分布式系统:是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。 集群:多个人在一起做同样的事。 分布式:多个人在一起做不同的事。====================================CAP定理: 一个分布式系统不可能同时满足一致性(C:Consistency),可用性(A:Availability)和分区容错性(P:Partition tolerance)这三个基本需求,最多只能同时满足其中的2个。 C 一致性:分布式系统当中的一致性指...