自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(545)
  • 资源 (7)
  • 问答 (2)
  • 收藏
  • 关注

原创 关于网络层和传输层数据存在形式

网络层:分片,IP 数据报;传输层:分段,TCP 报文段

2022-01-18 13:14:23 2582

原创 幻读、脏读、不可重复读

幻读:同样的条件,第 1 次和第 2 次读出来的记录数不一样。脏读:读取到的不是最新值。不可重复读:相同的读取条件,第二次和第一次的结果不一致。

2022-01-18 13:08:29 314

原创 私有地址和保留地址

A类地址中的私有地址和保留地址:①10.0.0.0到10.255.255.255是私有地址(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址)。 ② 127.0.0.0到127.255.255.255是保留地址,用做循环测试用的。B类地址的私有地址和保留地址 ① 172.16.0.0到172.31.255.255是私有地址 ②169.254.0.0到169.254.255.255是保留地址。C类地址中的私有地址:192.168.0.0到192.1...

2022-01-15 12:34:21 1864

原创 Master method Restated

O((n^2)*(lgn))

2022-01-12 12:45:08 178

转载 Java语言是解释型语言

点此进入https://blog.csdn.net/weixin_43876206/article/details/93330986

2022-01-11 15:54:17 393

原创 磁盘容错三个级别

1、防止磁盘表面缺陷引起的数据丢失2、防止驱动器和控制器引起的系统不能正常工作3、高级容错技术

2022-01-11 12:04:12 1118

转载 常见的关系型数据库和非关系型数据库

一、关系型数据库关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织优点:1、易于维护:都是使用表结构,格式一致;2、使用方便:SQL语言通用,可用于复杂查询;3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。缺点:1、读写性能比较差,尤其是海量数据的高效率读写;2、固定的表结构,灵活度稍欠;3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。二、非关系型数据库非关系型数据库严格上不是一种数据库,应该是一

2022-01-11 11:24:38 4205

原创 finally块是必执行的,即使前面已经执行了return。

·················finallypublic class TestDemo{ public static String output = ""; public static void foo(inti) { try { if (i == 1) { throw new Exception(); } }

2022-01-11 11:20:30 245

原创 关于范式包含关系

6nf∈dknf∈5nf∈4nf∈bcnf∈3nf∈2nf∈1nf

2022-01-11 11:18:05 834

转载 Java中public、默认修饰符、protected、private四种修饰符的含义及范围

点此进入

2022-01-03 13:52:58 244

原创 深浅克隆&拷贝

浅克隆:Object 中的 clone() 方法在对某个对象克隆时对其仅仅是简单地执行域对域的 copy 对基本数据类型和包装类的克隆是没有问题的。String、Integer 等包装类型在内存中是不可以被改变的对象,所以在使用克隆时可以视为基本类型,只需浅克隆引用即可 如果对一个引用类型进行克隆时只是克隆了它的引用,和原始对象共享对象成员变量 深克隆:在对整个对象浅克隆后,对其引用变量进行克隆,并将其更新到浅克隆对象中去,返回的是一个新对象。public class Stu

2021-12-21 10:18:07 304

原创 最近在准备期末考试,10号放假后继续更新

。。。。。。。。。。。。。。。。

2021-12-18 18:58:07 160

转载 word的一些批量操作

查看这篇百度知道

2021-12-12 22:36:09 288

转载 转发和重定向具体区别

点击进入

2021-12-09 09:32:46 145

转载 为什么 Tomcat 运行时默认打开 index.html 或 index.jsp?如何配置首页?

查看这位博主的博客

2021-12-09 09:27:58 2851

原创 事务及隔离级别的简单介绍

一、什么是事务:事务逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败。二、事务特性(4种):原子性 (atomicity):强调事务的不可分割。一致性 (consistency):事务执行前后的数据的完整性保持一致。隔离性 (isolation):一个事务执行的过程中,不应该受到其他事务的干扰。持久性(durability) :事务一旦结束,数据就持久到数据库。三、如果不考虑隔离性引发安全性问题:脏读 :一个事务读到了另一个事务的未提交的数据。不可重复读

2021-12-04 16:07:46 195

原创 备战秋招,LeetCode刷题记录,持续更新。

704. 二分查找 数组默认是从小到大已排好序的。使用双指针法,分别记录数组第一个和最后一个元素(或者下标),便于计算数组中间元素的位置,然后使用中间的那个元素与目标值进行比较。相等直接返回,目标值比中间值大则修改left为mid+1,反之修改right为mid-1。即缩小查找范围。 中间指针 int mid = (left + right) / 2; 这么写其实有⼀个问题,就是数值越界,例如 left 和 right 都是最⼤ int ,这么操作就越界了,在二分法...

2021-12-03 11:27:00 464

原创 JAVA 序列化(创建可复用的 Java 对象)

整体描述:保存(持久化)对象及其状态到内存或者磁盘。Java 平台允许我们在内存中创建可复用的 Java 对象,但一般情况下,只有当 JVM 处于运行时这些对象才可能存在,即,这些对象的生命周期不会比 JVM 的生命周期更长。但在现实应用中,就可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象。Java 对象序列化就能够帮助我们实现该功能。序列化对象以字节数组保持-静态成员不保存。使用 Java 对象序列化,在保...

2021-12-02 10:18:36 337

原创 集合的线程安全问题

1. 怎么确保一个集合不能被修改?可以使用Collections.unmodifiableCollection(Collectionc)方法来创建一个只读集合,这样改变集合的任何操作都会抛出Java.lang.UnsupportedOperationException异常。示例代码如下:List<String> list = new ArrayList<>(); list. add("x"); Collection<Stri...

2021-12-02 10:03:13 476

原创 Java集合的快速失败机制 “fail-fast”?

集合线程安全

2021-12-02 09:55:45 308

原创 ReentrantLock 原理

ReentrantLock 原理可以看出是基于AQS框架实现的。 内容较多,直接看笔记吧。1. 非公平锁实现原理加锁解锁流程NonfairSync 继承自 AQS没有竞争时第一个竞争出现时

2021-11-30 12:04:39 234

原创 关于ThreadPool的一些注意事项

2021-11-30 08:59:29 198

原创 AQS原理

ThreadPoolExecutor1. 线程池状态ThreadPoolExecutor 使用 int 的高 3 位来表示线程池状态,低 29 位表示线程数量。其中第一位为符号位。 ● 数字上比较,TERMINATED > TIDYING > STOP > SHUTDOWN > RUNNING。因为第一位为符号位,所以RUNNING最小。 ● 这些信息存储在一个原子变量 ctl 中,目的是将线程池状态与线程个...

2021-11-29 21:19:49 797

原创 保护性拷贝&无状态

这种通过创建副本对象来避免共享的手段称之为【保护性拷贝(defensive copy)】

2021-11-29 19:46:56 170

原创 主线程与守护线程

默认情况下,Java 进程需要等待所有线程都运行结束,才会结束。有一种特殊的线程叫做守护线程,只要其它非守护线程运行结束了,即使守护线程的代码没有执行完,也会强制结束。例:log.debug("开始运行..."); Thread t1 = new Thread(() -> { log.debug("开始运行..."); sleep(2); log.debug("运...

2021-11-29 07:07:36 1026

原创 异步模式之工作线程

1. 定义让有限的工作线程(Worker Thread)来轮流异步处理无限多的任务。也可以将其归类为分工模式,它的典型实现就是线程池,也体现了经典设计模式中的享元模式。例如,海底捞的服务员(线程),轮流处理每位客人的点餐(任务),如果为每位客人都配一名专属的服务员,那么成本就太高了(对比另一种多线程设计模式:Thread-Per-Message)注意,不同任务类型应该使用不同的线程池,这样能够避免饥饿,并能提升效率例如,如果一个餐馆的工人既要招呼客...

2021-11-27 15:49:14 343

原创 JDK1.8下ThreadPoolExecutor的官方实现

ThreadPoolExecutor1. 线程池状态ThreadPoolExecutor 使用 int 的高 3 位来表示线程池状态,低 29 位表示线程数量。其中第一位为符号位。 ● 数字上比较,TERMINATED > TIDYING > STOP > SHUTDOWN > RUNNING。因为第一位为符号位,所以RUNNING最小。 ● 这些信息存储在一个原子变量 ctl 中,目的是将线程池状态与线程个...

2021-11-27 14:49:26 697

原创 自定义线程池

import lombok.extern.slf4j.Slf4j;import sun.misc.Unsafe;import java.util.ArrayDeque;import java.util.Deque;import java.util.HashSet;import java.util.Queue;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicInteger;impor.

2021-11-27 09:03:30 383

原创 final 原理

1. 设置 final 变量的原理理解了 volatile 原理,再对比 final 的实现就比较简单了public class TestFinal { final int a = 20;}字节码0: aload_01: invokespecial #1 // Method java/lang/Object."<init>":()V4: aload_05: bipush 207: putfield #2 // Field a:I<-- 写屏障10

2021-11-25 21:29:34 377

原创 共享模式之享元模式

public static Long valueOf(long l) { final int offset = 128; if (l >= -128 && l <= 127) { // will cache return LongCache.cache[(int)l + offset]; } return new Long(l);}注意:Byte, Short, Long...

2021-11-25 21:09:06 875

原创 第六章——共享模型之无锁&无锁实现共享变量的线程安全性&CAS与volatile

有如下需求,保证 account.withdraw 取款方法的线程安全interface Account { // 获取余额 Integer getBalance(); // 取款 void withdraw(Integer amount); /** * 方法内会启动 1000 个线程,每个线程做 -10 元 的操作 * 如果初始余额为 10000 那么正确的结果应当是 0 */ static void demo(Acc

2021-11-25 09:38:15 292

原创 共享模型之内存&习题

balking 模式习题1. 希望 doInit() 方法仅被调用一次,下面的实现是否有问题,为什么? 答:有问题。该类的对象,在多线程环境下会存在问题。比如t1和t2线程并发执行,相继进入init方法,且都读取到initialized值为false之后,执行doInit方法。这样就不满足题目要求。public class TestVolatile { volatile boolean initialized = false; void init() { ...

2021-11-24 16:46:52 287

原创 线程安全的double-checked locking单例模式

使用volatile 修饰Singleton ,保证INSTANCE变量的可见性和有序性。 不使用volatile会导致多线程环境下,由于synchronized代码块内的指令重排,导致线程获得未初始化完的单例。见下图。public final class Singleton { private Singleton() { } private static volatile Singleton INSTANCE = null; publ...

2021-11-24 10:43:25 385

原创 内存屏障&volatile原理&可见性&有序性

● 可见性○ 写屏障(sfence)保证在该屏障之前的,对共享变量的改动,都同步到主存当中○ 而读屏障(lfence)保证在该屏障之后,对共享变量的读取,加载的是主存中最新数据● 有序性○ 写屏障会确保指令重排序时,不会将写屏障之前的代码排在写屏障之后○ 读屏障会确保指令重排序时,不会将读屏障之后的代码排在读屏障之前p...

2021-11-24 09:54:55 687

原创 哲学家就餐问题

问题图示题目解释有五位哲学家,围坐在圆桌旁。● 他们只做两件事,思考和吃饭,思考一会吃口饭,吃完饭后接着思考。● 吃饭时要用两根筷子吃,桌上共有 5 根筷子,每位哲学家左右手边各有一根筷子。● 如果筷子被身边的人拿着,自己就得等待5根筷子对于5个哲学家线程来说是共享资源,需要加锁。不发生死锁的情况是有一个线程成功吃饭思考后,释放两个筷子的锁,然后哲学家再竞争筷子吃饭。发生死锁的情况是5个哲学家各锁住了一根筷子,都无法获...

2021-11-24 09:24:22 575

原创 volatile&synchronized关于对共享变量保护的比较

synchronized可以保护共享变量的原子性、可见性、有序性。因为如果共享变量完全被synchronized保护,那么共享变量在使用过程中不会有原子性、可见性、有序性问题的。但是他不会阻止代码块内的指令重排序。volatile只可以保证可见性和有序性。volatile 修饰的变量,可以禁用指令重排。...

2021-11-24 09:01:55 416

原创 monitor&wait notify&join原理

Monitor 原理Monitor 被翻译为监视器或管程。每个 Java 对象都可以关联一个 Monitor 对象,如果使用 synchronized 给对象上锁(重量级)之后,该对象头的Mark Word 中就被设置指向 Monitor 对象的指针。Monitor 结构如下。 ● 刚开始 Monitor 中 Owner 为 null。 ● 当 Thread-2 执行 synchronized(obj) 就会...

2021-11-22 15:16:28 522

原创 ReentrantLock特征之可重入和可打断

可重入可重入是指同一个线程如果首次获得了这把锁,那么因为它是这把锁的拥有者,因此有权利再次获取这把锁如果是不可重入锁,那么第二次获得锁时,自己也会被锁挡住synchronized可重入举例static final Object obj = new Object();public static void method1() { synchronized( obj ) { // 同步块 A method2(); }...

2021-11-21 19:58:54 947 1

原创 校园邮箱免费激活idea教程

一 准备教育网邮箱并注册JetBrains账户 如果你本身就是在校学生并且你们学校给你注册了edu后缀的邮箱,那么恭喜你,不用费劲去找教育网邮箱了。像我们学校每个人的邮箱是学号+@+学校英文缩写 .edu.cn。如果不是学生的话也没关系,可以借个学生邮箱哈哈哈【或者去万能的某宝,我啥也没说啊,我只是让你们去看看!】。 好了,我们开始注册JetBrains账户。1.去 jetbrains 官网:https://account.jetbrains.com/ ,用校园邮箱注册...

2021-11-21 15:54:34 11316 1

原创 从Java层面理解线程状态转换

Java层面线程有6种状态1. NEW表示新建的线程2. 其中RUNNABLE状态又细分为三种状态。● 运行状态表示线程已经获取了CPU分配的时间片,正在CPU上运行。● 阻塞状态表示线程可能处于IO阻塞。● 可运行状态表示,线程可以由CPU调度,上处理机执行。3. BLOCKED表示阻塞4. WAITING表示等待5. TIMED_WAITING表示有时限的等待6. TERMINATED表示终止态假设有线程 Th...

2021-11-21 15:46:55 157

Java程序员面试资料及简历模版

Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历模版 Java程序员面试资料及简历模版

2022-05-04

微机原理期末复习试卷附详细答案和必背知识点

微机原理期末复习试卷附详细答案和必背知识点,适合考前抱佛脚的同学。 微机原理期末复习试卷附详细答案和必背知识点,适合考前抱佛脚的同学 微机原理期末复习试卷附详细答案和必背知识点,适合考前抱佛脚的同学 微机原理期末复习试卷附详细答案和必背知识点,适合考前抱佛脚的同学 微机原理期末复习试卷附详细答案和必背知识点,适合考前抱佛脚的同学 微机原理期末复习试卷附详细答案和必背知识点,适合考前抱佛脚的同学 微机原理期末复习试卷附详细答案和必背知识点,适合考前抱佛脚的同学 微机原理期末复习试卷附详细答案和必背知识点,适合考前抱佛脚的同学 微机原理期末复习试卷附详细答案和必背知识点,适合考前抱佛脚的同学 微机原理期末复习试卷附详细答案和必背知识点,适合考前抱佛脚的同学

2022-05-04

jdk-14.0.1.zip

jdk-14.0.1.zip

2021-09-10

officedeploymenttool_14131-20278.exe

安装Visio失败提示安装即点即用版本 利用office部署工具安装visio2016

2021-09-10

JavaWeb实现简单通讯录程序(Mysql5.5+Tomcat8.5.31+Druid连接池)

简单实现联系人数据的增删改查,可当做小Demo练练手。

2021-06-21

SchoolGuide.zip

西邮数据结构课设校园导游系统Java实现,基本功能全部实现,找我要课设报告。

2020-12-29

Java考试系统,使用了swing、文件IO、反射等JavaSE部分的基础知识。

该文件是基于JavaSE知识实现的简单考试系统,未使用数据库知识,底层用文件存储用户信息,初步采用MVC 分层架构思想,还包含多种设计模式。

2020-11-25

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除