自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

冯小石

宇宙之大,秋毫之下。

  • 博客(28)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 OutOfMemoryError是什么?

OutOfMemoryError 异常是 JVM 所抛出的,当JVM没有足够的可用内存来分配时,就会抛出。OutOfMemoryError 在 Exception 类层次结构中属于 Error 类别。

2019-12-31 16:12:50 3593

原创 Spring AOP是什么?

大多数企业应用程序都具有一些常见的横切关注点,这些关注点适用于不同类型的对象和模块。一些常见的横切关注点是日志记录,事务管理,数据验证等。

2019-12-30 22:25:04 4763

原创 对称加密和非对称加密是什么?

在当今的网络世界中,存在着未经授权访问所有形式数据的风险。风险最大的是财务和支付系统数据,这些数据可能会暴露客户和客户的个人识别信息(PII)或支付卡详细信息。加密对于保护PII和减轻进行支付交易的企业每天每一分钟面临的风险至关重要。

2019-12-28 19:48:41 4168

原创 ThreadPoolExector 是什么?

简述ThreadPoolExector 是 线程池执行器 ,用来构建线程池。Java 线程池 (thread pool) 是管理工作线程的池化实现。它包含一个使任务等待执行的队列。在 Java 中,可以使用ThreadPoolExecutor 来创建线程池。Java 线程池管理可运行线程的集合。工作线程从队列中执行可运行线程。java.util.concurrent.Executors 为...

2019-12-27 21:43:34 3202

原创 FutureTask 是什么?

简介在 Java 中为了编程异步事件,我们使用 Thread 类和 Runnable 接口,它们可以开发并行应用程序。问题是在执行结束时不能返回值。因此,添加了 FutureTaks,Future 和 Callable 类,它们与以前的类具有大致相同的功能,但极大地促进了并行应用程序的开发。由于线程 Thread 只支持 Runnable 构造,于是有了 Future 可以根据 Callable...

2019-12-27 18:26:02 5878 1

原创 CopyOnWriteArrayList 是什么?

简述Java 中的 CopyOnWriteArrayList 是 List 接口的线程安全实现。在 Java 1.5 和 Collections 框架的一部分中添加了 CopyOnWriteArrayList。在多线程程序中,当开发人员希望以线程安全的方式遍历列表而无需显式同步时,CopyOnWriteArrayList 非常有用。它是ArrayList的增强版本,其中所有修改(添加,设置,删...

2019-12-27 09:54:13 3306 1

原创 BlockQueue 是什么?

当线程队列是空时,从队列中获取元素的操作将会被阻塞;当线程队列是满时,往队列里添加元素的操作将会被阻塞。

2019-12-25 21:48:16 8899

原创 Kubernetes as K8s 是什么?

简介Kubernetes 这个词的来源,是一个希腊词,意为舵手或飞行员。缩写K8s是通过用数字8替换“ ubernete ”的八个字母得到的。Kubernetes 是一个可移植的,可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。它拥有一个庞大且快速增长的生态系统(growing ecosystem)。Kubernetes 的服务,支持和工具被广泛使用。Kubern...

2019-12-24 21:00:20 3467

原创 Spring和SpringBoot的区别

简述在过去的几年中(the past few years),不断的对Spring 框架增加新功能,使得它变得越来越复杂(complex)。开发人员需要经过一个漫长的周期才能搭建一个新的Spring 项目。为了避免从头开始,并节省时间(save time),引入了Spring Boot。Spring Boot 的基础是Spring框架,Spring Boot 是一种使用零或最低配置创建应用程序的方...

2019-12-23 20:53:19 3897

原创 CountDownLatch是什么?

简介CountDownLatch 在Java中是一种同步器,它允许一个线程 来开始处理之前,等待一个或多个线程。可以在程序中使用Java中的等待和通知机制来实现和CountDownLatch相同的功能 ,但是它需要大量代码,并且在第一次使用时非常困难(tricky),而使用CountDownLatch 可以使用几行代码简单完成。CountDownLatch 还允许灵活地等待主线程要等待的线程...

2019-12-22 15:32:43 450

原创 自旋锁是什么?

定义自旋锁 spin lock下面内容摘自维基百科在软件工程中,自旋锁是一种锁,它使试图获取它的线程在循环(“自旋”)中简单地等待,同时反复检查该锁是否可用。由于线程保持活动状态,但未执行有用的任务,因此使用这种锁是一种繁忙的等待。一旦获得了自旋锁,通常将一直保持这些自旋锁,直到显式释放它们为止,尽管在某些实现中,如果正在等待线程(持有锁的线程)阻塞或“进入睡眠状态”,则它们可能会自动...

2019-12-21 22:30:05 4447

原创 可重入锁是什么?

简介在Java 5.0中,增加了一个称为ReentrantLock的新功能,以增强内部锁定功能。在此之前,“synchronized" 和 "volatile”是实现并发的手段。public synchronized void doAtomicTransfer(){ //进入同步代码块 获取对此对象的锁定。 operation1() operation2(); ...

2019-12-21 16:53:02 5329

翻译 Netty 4 减少了GC开销

Netty是一个开源Java NIO框架,它使创建高性能协议服务器变得更加容易。Netty v3的较旧版本使用Java对象表示I / O事件。这很简单,但是会产生很多垃圾,尤其是在规模比较大的情况下。在新的Netty 4发行版中,进行了更改,以便使用寿命长的通道对象上的方法代替短暂的事件对象来处理I / O事件。还有一个使用缓冲池的专用缓冲区分配器。我们非常重视Netty项目的性能,可用性和可持...

2019-12-19 19:51:57 370

翻译 netty 简介

原文链接:https://www.baeldung.com/netty#client-application1.简介在本文中,我们将研究Netty —一个异步事件驱动的网络应用程序框架。Netty的主要目的是基于NIO(或可能是NIO.2)构建具有网络和业务逻辑组件分离和松耦合的高性能协议服务器。它可能实现了众所周知的协议,例如HTTP或自定义的特定协议。2.核心概念Netty是...

2019-12-19 16:13:35 3125

原创 JVM 本地方法栈(native method stack)解释

什么是本地方法栈?oracle官方文档jvms-se7Java虚拟机的实现可以使用传统的堆栈(俗称“ C堆栈”)来支持native方法(用Java编程语言以外的语言编写的方法)。解释器的实现也可以使用诸如C之类的语言来解释Java虚拟机的指令集,以使用native 本机方法栈。无法加载方法并且自身不依赖于常规堆栈的Java虚拟机实现无需提供本机方法栈。如果提供,通常在创建每个线程时为每个线程...

2019-12-17 22:26:15 4927

原创 Object的方法有哪些

Java中的超类Object,都包含哪些方法,都是用来做什么的,用处和关联。

2019-12-15 09:54:30 3512

原创 JMM 简介

JMM(Java Memory Model) java内存模型,首先它是不存在的只是硬件抽象的规范和概念。JMM的特性:1. 可见性 2. 原子性 3. 有序性下面简单介绍一下JVM和JMM的关系:JVM运行程序的实体是线程,而每个线程在创建时JVM都会为其创建一个工作内存(栈空间),JMM规定所有的变量都存储在主内存中,主内存是共享的内存区域(所有线程都可以访问),其他线程操作变量都是从主...

2019-12-11 13:53:24 3361

原创 Java IO模型总结

BIO、AIO、NIO的区别:什么是同步?指的是用户进程触发IO操作等待并轮询的去查看IO操作是否就绪。什么是异步?异步指的是用户进程触发IO操作后便开始做自己的事情,而当IO操作已经完成的时候会得到IO完成的通知(异步的特点就是通知)。什么是阻塞?所谓阻塞方式的意思是指, 当试图对该文件描述符进行读写时, 如果当时没有东西可读,或者暂时不可写, 程序就进入等待 状态, 直到有东西可...

2019-12-11 11:33:49 2712

原创 策略模式在项目中的应用

策略模式描述在软件开发中也常常遇到类似的情况,当实现某一个功能存在多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能,如数据排序策略有冒泡排序、选择排序、插入排序、二叉树排序等。如果使用多重条件转移语句实现(即硬编码),不但使条件语句变得很复杂,而且增加、删除或更换算法要修改原代码,不易维护,违背开闭原则。如果采用策略模式就能很好解决该问题。定义该模式定义...

2019-12-10 11:49:25 541 1

原创 反射机制

允许从类名字符串创建对象JDBC驱动中的Class.forName(驱动类型名)就是一个最常见的例子允许选择对象的构造函数创建对象允许通过方法的字符串名称以及参数类型调用方法允许通过属性的字符串名称存取属性的值反射机制的使用通过对前一阶段多种不同的语句类型的解码,可以发现一定规律:对于简单语句(parametric sentences),都是将语句分段之后,按照每段的不...

2019-12-09 14:41:34 2861

原创 设计模式在程序中的使用

OO设计的主要目的,在于分割责任,将每个模块的责任降低到合理的程度,并对各个模块进行封装以及降低两个模块之间的耦合度,达到修改一处不影响另外一处的目的。这个原则其实并不仅仅局限于OO设计,只是OO设计提供了更好的支持。OO设计的要求:达到不变更现有代码,仅通过继承以及多态的方式改变系统的行为。这种设计的优势在于通过派生实现的改变系统行为的方式对原有代码行为不产生任何影响,降低由于增加或改...

2019-12-09 14:37:45 3040

原创 二叉树概念和实现

二叉树百度百科二叉树的定义:二叉树是一个连通的无环图,并且每一个顶点的度不大于3。有根二叉树还要满足根结点的度不大于2。有了根结点之后,每个顶点定义了唯一的父结点,和最多2个子结点。然而,没有足够的信息来区分左结点和右结点。如果不考虑连通性,允许图中有多个连通分量,这样的结构叫做森林。二叉树使用二叉链表的实现:package algorithm;/** * 二叉链表 */publi...

2019-12-08 11:03:09 3651

原创 单链表定义和工具类实现

描述:单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置), 元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。本质:一种链式存取的数据结构定义:package algorithm;/** * 单链表 * 描述:单链表是一种链式存取的数据结构...

2019-12-08 09:54:43 2938

原创 jxls中自定义函数的使用

实现逻辑代码://获得配置JexlExpressionEvaluator evaluator = (JexlExpressionEvaluator)transformer.getTransformationConfig().getExpressionEvaluator();//设置静默模式,不报警告evaluator.getJexlEngine().setSilent(true);//函...

2019-12-08 09:08:33 5121

原创 项目管理和推进的一些体会

一、项目经理需要具备的能力理解产品,起码清楚产品将会做成什么样子熟悉团队成员,了解他们的开发能力能大致估算一个项目需要的开发时间所以一个好的项目经理,应该也是产品经理,当开发人员对产品有疑惑或异议的时候,能够在较短时间内做出判断,给出方向。开发最怕的就是反复修改,做无用功,一定要减少这种情况。二、高效项目管理要点参考了豆瓣一篇文章,结合自己理解:明确且达成共识的目标项目经...

2019-12-08 09:08:06 3035

原创 产品设计小总结

四大原则清晰流畅统一美观重要性从上到下。举例设计单选框设计单选框时,遵循设计标准很重要,因为这会培养用户预知一个控件会起到什么作用、并且如何操作的能力。相反,违反设计标准会影响用户界面的可信度--好比如果没有警示信息,任何可怕的事都会发生。设计时需用点心。单选框很容易通过纸面原型测试,如果用户可以理解这个控件并能正确使用,你几乎不需要费多大力就可知道效果。如何写一份易用的产品...

2019-12-07 21:17:08 3482

原创 递归

递归的基本概念一个函数调用其自身就是递归举例求n!的递归函数int Factorial(int n){ if(n==0) //递归出口 return 1; return n*Factorial(n-1); //递归调用}  递归函数的调用,和普通函数的调用一样是通过栈来实现的。在Java语言中使用递归调用,递归函数的每一次调用会在

2019-12-07 20:52:46 246

原创 查找算法

查找算法主要用于查询集合中是否存在该元素。主要查询算法:顺序查找,二分查找(重要),插值查找(对二分查找进行改进),斐波那契查找(同样也是对二分查找进行改进,和插值查找不同的是运用黄金比例的概念进行查找),树表查找(这里需要先进行构建一个二叉树,通过二叉树进行查找),分块查找(是二分查找和顺序查找的结合产物,即首先在构建的索引表上面进行二分查找,而后在锁定的区间内进行顺序查找),哈希查找。pa...

2019-12-07 20:51:33 444

spring-boot-2.1.6.RELEASE.zip

Spring Boot version:2.1.6 源码,供学习使用。Spring Boot是一个开箱即用的优秀框架,Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化.

2020-04-26

java面试宝典.pdf

一线互联网企业面试题

2020-04-07

Sv_intro72_by_Velosofy.zip

视频资源,有需要的可以下载,视频资源名可以根据文件名称进行判断。资源主要用于视频制作和流传。视频资源,有需要的可以下载,视频资源名可以根据文件名称进行判断。资源主要用于视频制作和流传。

2020-03-28

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

TA关注的人

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