自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 深入理解计算机系统(原书第三版)

文章目录第一章 计算机系统漫游第一部分 程序结构和执行第二部分 在系统上运行程序第三部分 程序间的交流和通信第一章 计算机系统漫游第一部分 程序结构和执行第二部分 在系统上运行程序第三部分 程序间的交流和通信...

2021-09-01 15:41:37 367

原创 深入理解Java虚拟机: JVM高级特性与最佳实践 (第3版)

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供

2021-05-20 14:18:46 393 1

原创 Effective Java

Effective Java由于书本内容太枯燥,看不下去,只能对着抄。。加油ヾ(◍°∇°◍)ノ゙文章目录第一章 引言第二章 创建和销毁对象第1条 用静态工厂方法代替构造器第2条 遇到多个构造器参数时要考虑构建器第3条 用私有构造器或者枚举类型强化Singleton属性第4条 通过私有构造器强化不可实例化的能力第5条 优先考虑依赖注入来引用子源第6条 避免创建不必要的对象第7条 消除过期的对象引用第8条 避免使用终结方法和清除方法第9条 try-with-resources优先于try-finally第

2021-02-18 17:22:06 323 2

原创 maven下载与安装, 以及idea配置maven

maven下载地址: https://maven.apache.org/download.cgi安装:解压 conf/settings.xml, 添加本地仓库地址(本地仓库地址: 随便新建文件夹就可以) 打开电脑系统环境变量, 新建 变量名:%MAVEN_HOME%,变量值:maven安装地址 将新建的%MAVEN_HOME%添加到path中, 最后改成: ;...

2019-08-29 18:51:57 121

原创 如何查看电脑端口占用

Windows如何查看端口占用情况操作步骤如下:开始--运行--cmd 进入命令提示符,输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选"查看"-"选择列"经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,下面就介绍一种非常简...

2018-12-20 11:22:14 2947

原创 对Spring MVC常用注解的理解

因为工作中经常用到的注解,特此写个博客,记录一下,方便自己和他人解决问题NO.1 @requestMapping@requestMapping(path/value = {"/vip/list","/svip/list"}, method = {requestMethod.GET,reqeustMethod.POST})public String method_1(HttpServlet...

2018-07-30 13:42:21 2256

原创 MySQL

文章目录基础架构:一条SQL语句查询是如何执行的连接器查询缓存分析器优化器执行器小结一个问题日志系统:一条SQL更新语句是如何执行的事务隔离深入显出索引全局锁和表锁行锁功过事务到底是隔离的还是不隔离的?普通索引和唯一索引,应该怎么选?MySQL为什么有时候会选错索引?如何给字符串字段加索引MySQL会“抖”一下?表数据删掉一半,表文件大小不变?count(*)慢吗日志和索引相关问题“order by”如何工作?如何正确显示随机信息以下SQL语句逻辑相同,性能差异巨大只差一行,执行也慢?幻读是什么,有什么问题

2022-04-14 21:21:14 1134

原创 @AutoWired和@Resource的区别

文章目录@AutoWired@Resource比如一个类A,引入了属性类B,可以在类B上加 @Autowired或者 @Resource。@AutoWired和@Resource的区别:@AutoWired先根据 byType 查询,然后进行过滤,判断,最后再没有复合条件的话,再根据 byName 返回。1.byType查到查找到多个Bean2.如果带有 isAutowire的话,过滤3.是否带有 @Quarfier4.是否有@primary,只允许有一个,多个的话会报错,一个都没有的话,继

2022-04-13 09:00:20 255

原创 【1】两数之和

题目地址https://leetcode-cn.com/problems/two-sum/暴力解决class Solution { public int[] twoSum(int[] nums, int target) { int[] answerArr = new int[2]; for (int i = 0; i < nums.length; i++) { for (int j = i + 1; j < nums.leng

2022-03-27 18:13:35 467

原创 《Java并发编程实战》【第四部分 高级主题】

文章目录第13章 显示锁第14章 构建自定义的同步工具第15章 原子变量与非阻塞同步机制第16章 Java内存模型第13章 显示锁第14章 构建自定义的同步工具第15章 原子变量与非阻塞同步机制第16章 Java内存模型...

2022-03-09 10:55:20 406

原创 《Java并发编程实战》【第三部分 活跃性、性能与测试】

文章目录第10章 避免活跃性危险10.1 死锁10.1.1 锁顺序死锁10.1.2 动态的锁顺序死锁10.1.3 在协作对象之间发生的死锁10.1.4 开放调用10.1.5 资源死锁10.2 死锁的避免与诊断10.3 其他活跃性问题第11章 性能与可伸缩性第12章 并发程序的测试第10章 避免活跃性危险   在安全性与活跃性之间通常存在着某种制衡。我们使用加锁机制来确保线程安全,但如果过度地使用加锁,则可能导致锁顺序死锁(Lock-Ordering Deadlock)。同样,我们使用

2022-02-28 09:51:41 1200

原创 《Java并发编程实战》【第二部分 结构化并发应用程序】

文章目录第6章 任务执行6.1 在线程中执行任务6.1.1 串行的执行任务6.1.2 显式地为任务创建线程6.1.3 无限制创建线程的不足6.2 Executor框架6.3 线程池第7章 取消与关闭第8章 线程池的使用第9章 图形用户界面应用程序第6章 任务执行6.1 在线程中执行任务6.1.1 串行的执行任务6.1.2 显式地为任务创建线程6.1.3 无限制创建线程的不足6.2 Executor框架6.3 线程池第7章 取消与关闭第8章 线程池的使用第9章 图形用户界面应用程序&nb

2022-02-11 22:05:40 815

原创 《Java并发编程实战》【第一部分 基础知识】

文章目录第1章 简介1.1 并发简史1.2 线程的优势1.2.1 发挥多处理器的强大能力1.2.2 建模的简单性1.2.3 异步事件的简化处理1.2.4 响应更灵敏的用户界面1.3 线程带来的风险1.3.1 安全性问题1.3.2 活跃性问题1.3.3 性能问题1.4 线程无处不在第一部分 基础知识第2章 线程安全性第3章 对象的共享第4章 对象的组合第5章 基础构建模块第二部分 结构化并发应用程序第6章 任务执行第7章 取消与关闭第8章 线程池的使用第9章 图形用户界面应用程序第三部分 活跃性、性能与测试第

2022-01-30 23:00:50 1910

原创 Java之JVM

字节码篇

2022-01-29 20:00:44 1001

原创 Java之JUC

文章目录前置要求线程基础知识复习Futrue和Callable接口从之前的FutureTask说对Future的改进案例精讲-从电商网站的比价需求说CompletableFutrue常用方法CompletableFutrue说说Java"锁"事LockSupport与线程中断Java内存模型值JMMvolatile与Java内存模型前置要求线程基础知识复习Futrue和Callable接口从之前的FutureTask说对Future的改进案例精讲-从电商网站的比价需求说CompletableF

2021-11-02 19:41:07 933 1

原创 invokeBeanFactoryPostProcessors(beanFactory);

文章目录整体invokeBeanFactoryPostProcessors(beanFactory);的内部实现invokeBeanFactoryPostProcessors(beanFactory, getBeanFactoryPostProcessors());整体invokeBeanFactoryPostProcessors(beanFactory);的内部实现// 实例化并调用所有已注册的 BeanFactoryPostProcessor bean,// 如果给出,则遵守显式顺序。

2021-10-21 10:55:34 239

原创 initApplicationEventMulticaster();

文章目录整体postProcessBeanFactory(beanFactory);的内部实现整体postProcessBeanFactory(beanFactory);的内部实现// 在标准初始化之后修改应用程序上下文的内部 bean 工厂。 // 所有 bean 定义都将被加载,但尚未实例化任何 bean。// 这允许在某些 ApplicationContext 实现中注册特殊的 BeanPostProcessor 等。protected void postProcessBeanFactory

2021-10-21 09:38:03 358

原创 prepareBeanFactory(beanFactory);

文章目录#整体prepareBeanFactory(beanFactory);的内部实现// 准备beanFactory,对于此要使用的上下文// 配置工厂的标准上下文特征,例如上下文的 ClassLoader 和后处理器。protected void prepareBeanFactory(ConfigurableListableBeanFactory beanFactory) { // Tell the internal bean factory to use the context's cla

2021-10-20 17:32:12 235

原创 obtainFreshBeanFactory();

文章目录整体obtainFreshBeanFactory内部实现refreshBeanFactory();hasBeanFactory()createBeanFactory();new DefaultListableBeanFactory(getInternalParentBeanFactory());整体obtainFreshBeanFactory内部实现protected ConfigurableListableBeanFactory obtainFreshBeanFactory() { r

2021-10-20 11:22:50 164

原创 prepareRefresh();

文章目录整体prepareRefresh()方法实现initPropertySources();getEnviroment();validateRequiredProperties();整体prepareRefresh()方法实现// "active"的活动监视器private final Object activeMonitor = new Object();// 指示此上下文是否处于活动的标志private boolean active = false;// 准备此上下文以进行刷新,设置启

2021-10-20 11:09:00 176

原创 Spring

文章目录new ClassPathXmlPathApplicationContext("...");this(new String[] {configLocation}, true, null);super(parent);new ClassPathXmlPathApplicationContext("…");public ClassPathXmlApplicationContext(String configLocation) throws BeansException { this(new St

2021-10-19 11:23:14 122

原创 马克思主义基本原理概述

2021-10-15 15:15:07 134

原创 第 3 章 程序的机器级表示

文章目录第 3 章 程序的机器级表示3.1 历史观点3.2 程序编码3.3 数据格式3.4 访问信息3.5 算数和逻辑操作3.6 控制3.7 过程3.8 数组分配和访问3.9 异数的数据结构3.10 在机器级程序中将程序与控制结合起来3.11 浮点代码3.12 小结参考文献说明家庭作业练习题答案第 3 章 程序的机器级表示            3.1 历史观点&nbs

2021-09-16 23:29:37 430

原创 第 2 章 信息的表示和处理

文章目录第 2 章 信息的表示和处理2.1 信息存储2.2 整数表示2.3 整数运算2.4 浮点数2.5 小结参考文献说明家庭作业练习题答案第 2 章 信息的表示和处理   现代计算机存储和处理的信息以 二值信号表示。这系微不足道的二进制数字,或者称为 位(bit),形成了数字革命的基础。大家熟悉了 1000 多年前的十进制(以 10 为基础)起源于印度,在 12 世纪被阿拉伯数学家改进,并在 13 世纪被意大利科学家 Leonardo Pisano(大约公元 1170 - 1250

2021-09-05 18:27:28 652

原创 第一部分 程序和执行

文章目录第一部分 程序和执行第 2 章 信息的表示和处理第 3 章 程序的机器级表示第 4 章 处理器体系结构第 5 章 优化程序性能第 6 章 存储器层次结构第一部分 程序和执行    我们对计算机系统的搜索是从学习计算机本身开始的,它由处理器和存储器子系统组成。在核心部分,我们需要方法来表示基本数据类型,比如 整数 和 实数 运算的近似值。然后,我们考虑机器级指令如何操作这样的数据,以及编译器又如何将 C 程序翻译成这样的指令。接下来,研究几种实现处理器的方法,帮助我们更好的了解

2021-09-05 18:06:07 143

原创 第一章 计算机系统漫游

第一章 计算机系统漫游第一章 计算机系统漫游1.11.21.31.41.51.61.71.81.91.10第一章 计算机系统漫游    计算机系统是由硬件和系统软件组成的,它们共同工作来运行应用程序。虽然系统的具体实现随着时间不断变化,但是系统内在的概念并没有改变。所有计算机都由相似的硬件和软件组成,它们又执行着相似的功能。一些程序员希望了解这些组件是如何工作的,以及,这些组件是如何影响程序的正确性和性能的,以此来提高自身的技能。本书便是为这些读者而写的。   

2021-09-01 15:57:24 280

原创 第10章 前端编译与优化

文章目录10.1 概述10.2 Javac编译器10.3 Java语法糖的味道10.4 实战:插入式注解处理器10.5 本章小结第10章 前端编译与优化   从计算机程序出现的第一天起,对效率的追逐就是程序员天生的坚定信仰,这个过程犹如一场没有终点、永不停歇的F1方程式竞赛,程序员是车手,技术平台则是在赛道上飞驰的赛车。10.1 概述        10.2 Javac编译器10.3 Java语法糖的味道10.4 实战:插入式注解处理器10.5 本章小结...

2021-08-31 10:21:54 202

原创 第9章 类加载及执行子系统的案例与实战

文章目录9.1 概述9.2 案例分析9.2.1 Tomcat:正统的类加载器架构9.2. 2 OSGi:灵活的类加载器架构9.2.3 字节码生成技术与动态代理的实现9.2.4 Backport工具:Java的时光机器9.3 实战:自己动手实现远程执行功能9.4 本章小结第9章 类加载及执行子系统的案例与实战   代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。9.1 概述   在Class文件格式与执行引擎这部分里,用户的程序能直接参与的内容并不太多,Cla

2021-08-12 17:29:20 325

原创 第8章 虚拟机字节码执行引擎

文章目录8.1 概述8.2 运行时栈侦结构8.2.1 布局变量表8.2.2 操作数栈8.2.3 动态连接8.2.4 方法返回地址8.2.5 附加信息8.3 方法调用8.3.1 解析8.3.2 分派8.4 动态类型语言支持8.5 基于栈的字节码解释执行引擎8.6 本章小结第8章 虚拟机字节码执行引擎   代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。8.1 概述  8.2 运行时栈侦结构  8.2.1 布局变量表    8.2.2 操作数栈  

2021-08-04 16:08:42 247

原创 第7章 虚拟机类加载机制

文章目录7.1 概述7.2 类加载的时机7.37.47.57.6第7章 虚拟机类加载机制  代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。7.1 概述  上一章我们学习了Class文件存储格式的具体细节,在Class文件中描述的各类信息,最终都需要加载到虚拟机中之后才能被运行和使用。而虚拟机如何加载这些Class文件,Class文件中的信息进入到虚拟机后会发生什么变化,这些都是本章将要讲解的内容。  Java虚拟机把描述类的数据从Class文件加载到内存

2021-08-02 10:24:08 255

原创 第6章 类文件结构

文章目录6.1 概述6.2 无关性的基石6.3 Class文件的结构6.4 字节码指令简介6.5 公有设计,私有实现6.6 Class文件的发展6.7 本章小结第6章 类文件结构   代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。6.1 概述6.2 无关性的基石6.3 Class文件的结构6.4 字节码指令简介6.5 公有设计,私有实现6.6 Class文件的发展6.7 本章小结...

2021-07-26 09:57:08 380

原创 第3章 垃圾收集器与内存分配策略

文章目录第3章 垃圾收集器与内存分配策略Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。3.1 概述   说起垃圾收集(Garbage Collection,下文简称GC),有不少人把这项技术当作Java语言的伴生产物。事实上,垃圾收集的历史远远比Java久远,在1960年诞生于麻省理工学院的Lisp是第一门开始使用内存动态分配和垃圾收集技术的语言。当Lisp还在胚胎时期时,其作者John McCarthy就思考过垃圾收集需要完成的三件事情

2021-07-21 14:11:37 362 1

原创 第2章 Java内存区域与内存溢出异常

文章目录第2章 Java内存区域与内存溢出异常2.1 概述2.2 运行时数据区域2.3 Hotspot虚拟机对象探秘2.4 实战:OutOfMemoryError异常2.5 小结第2章 Java内存区域与内存溢出异常2.1 概述   对于从事C、C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的“皇帝”,也是从事最基础工作的劳动人名民——既拥有每个对象的“所有权”,又担负着每个对象生命从开始到终结的维护责任。   对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不再需要

2021-05-20 14:48:50 238

原创 Effective Java 第三章 对于所有对象都通用的方法

文章目录第三章 对于所有对象都通用的方法第10条 覆盖equals时请遵守通用约定第11条 覆盖equals时总要覆盖hashCode第12条 始终覆盖toString第13条 谨慎的覆盖clone第14条 考虑实现Comparable接口第三章 对于所有对象都通用的方法   尽管Object是一个具体类,但设计它主要是为了扩展。它所有的非final方法(equals, hashCode,toString,clone和finalize)都有明确的通用约定(general contract),因为它们是

2021-05-18 12:00:39 183

原创 MQ

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例

2021-04-11 21:11:19 123

原创 BeanFactory

BeanFactory作用:   提供最基础的容器查看的功能,保存了bean的定义,并且可以根据不同的条件获取bean,查看bean是否单例,获取bean的别名,有一个&用来表示获取工厂本身而不是获取工厂的实例。我们学到了啥?明白了bean的生命周期:一堆接口 --> init-method --> postxxx接口也就是一切就绪之后的接口 --> destory接口明白了可以给bean定义别名明白了bean工厂有层级关系。找bean的过程:从子到

2021-03-28 23:00:37 82

原创 线程池

系列文章目录文章目录系列文章目录为什么用线程池?线程池如何使用?线程池几个重要参数?线程池底层工作原理?线程池用哪个?生产中如何设置合理参数?为什么用线程池?线程池如何使用?线程池几个重要参数?corePoolSize: 线程池中的常驻核心线程数maximumPoolSize: 线程池中能够容纳通知执行的最大线程数,此值必须大于等于1keepAliveTime: 多余的空闲线程的存活时间。当前池中线程数量超过corePoolSize时,等空闲时间达到keepAliveTime时,多余线程会被

2021-03-21 14:56:49 87

原创 Effective Java 第二章 创建和销毁对象

Effective Java由于书本内容太枯燥,看不下去,只能对着抄。。加油吧ヾ(◍°∇°◍)ノ゙文章目录第二章 创建和销毁对象第1条 用静态工厂方法代替构造器第2条 遇到多个构造器参数时要考虑构建器第3条 用私有构造器或者枚举类型强化Singleton属性第4条 通过私有构造器强化不可实例化的能力第5条 优先考虑依赖注入来引用子源第6条 避免创建不必要的对象第7条 消除过期的对象引用第8条 避免使用终结方法和清除方法第9条 try-with-resources优先于try-finally第二章

2021-02-19 15:32:20 385

原创 寻找数组的中心索引

数组和字符串寻找数组的中心索引寻找数组的中心索引原题地址:寻找数组的中心索引给定一个整数类型的数组 nums,请编写一个能够返回数组 “中心索引” 的方法。 我们是这样定义数组 中心索引 的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。 如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。示例 1:输入:nums = [1, 7, 3, 6, 5, 6]输出:3解释: 索引 3 (nums[3] = 6) 的左侧数之

2020-11-30 10:48:15 100

原创 MyBatis学习之旅

MyBatis学习之旅MyBatis面试题MyBatis面试题问题:MyBatis加载Mapper有几种方式?有几种执行器? 默认是哪种?一级缓存默认是开启还是关闭?备注:剩下的再更新吧。。– 2020/11/29 22:42:40

2020-11-29 22:44:29 113

空空如也

空空如也

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

TA关注的人

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