- 博客(39)
- 收藏
- 关注
原创 剑指Java面试-Java常用类库整理(不定期更新!)
剑指Java面试-Java常用类库整理(不定期更新!)文章目录剑指Java面试-Java常用类库整理(不定期更新!)一、Java异常体系1. Error和Exception的区别(Java异常体系)2. 常见Error以及Exception3. Java的异常处理机制4. Java异常的处理原则5. 高效主流的异常处理框架6. try-catch的性能二、Java集合框架1. Java集合框架的...
2020-04-08 11:29:48 1331
原创 剑指Java面试-Spring整理(不定期更新!)
剑指Java面试-Spring整理(不定期更新!)文章目录剑指Java面试-Spring整理(不定期更新!)一、Spring IoC介绍1. IOC、DI、DL的关系2. 依赖注入的方式3. 依赖倒置原则、IOC、DI、IOC容器的关系4. IOC容器的优势一、Spring IoC容器1.Spring IoC支持的功能2. Spring IoC容器的核心接口BeanDefinitionBeanD...
2020-04-08 11:20:16 1186
原创 剑指Java面试-GC整理(不定期更新!)
剑指Java面试-GC整理(不定期更新!)文章目录剑指Java面试-GC整理(不定期更新!)一、对象被判定为垃圾的标准1. 引用计数算法2. 可达性分析算法二、垃圾回收算法1. 标记-清除算法(Mark and Sweep)2. 复制算法(Copying)3. 标记-整理算法(Compacting)4. 分代收集算法(Generational Collector)5. jdk所采用的收集算法GC...
2020-04-08 11:14:02 1040
原创 剑指Java面试-Java 多线程与并发整理(不定期更新!)
剑指Java面试-Java 多线程与并发整理(不定期更新!)文章目录剑指Java面试-Java 多线程与并发整理(不定期更新!)一、进程和线程的区别1. 进程和线程的由来:2. 进程和线程的区别3. Java线程的进程的区别二、Java多线程常见面试题1. start()与run()的区别2. Thread和Runnable的关系3. 如何给run()方法传参4. 如何处理线程的返回值5. 线程...
2020-04-08 11:07:55 1577 1
原创 判断字符串是否为回文串
判断字符串是否为回文串判断回文数(双指针法)常规解法public boolean IsPalindrome1(String A){ char[] arrayA = A.toCharArray(); int top = 0; int end = arrayA.length-1; if(A.equals("") || A == nu...
2020-03-30 11:02:51 771
原创 剑指Java面试-Linux整理(不定期更新!)
如何查找特定的文件:find、如何检索文件内容:grep、如何对文件做统计:awk、批量替换文本内容:sed
2020-03-14 20:10:17 418 1
原创 剑指Java面试-JVM整理(不定期更新!)
一、谈谈你对Java的理解平台无关性面向对象GC类库语言特性异常处理二、平台无关性如何实现Java可分为:编译时运行时1.javap 指令javap是jdk自带的反解析工具。它的作用就是根据class字节码文件,反解析出当前类对应的code区(汇编指令)、本地变量表、异常表和代码行偏移量映射表、常量池等等信息。语法:javap <options> &...
2020-03-14 09:40:25 447 2
原创 剑指Java面试-Redis整理(不定期更新!)
剑指Java面试-Redis整理(不定期更新!)Redis常见面试题。五大基础数据结构、分布式锁、异步队列、持久化、Pipeline、Redis集群....
2020-03-11 19:59:29 1430
原创 Active MQ 高级特性和用法(二):消息的可靠性、通配符式订阅与死信队列
Active MQ 高级特性和用法(二):消息的可靠性、通配符式订阅与死信队列
2020-03-07 16:08:45 407
原创 Active MQ 高级特性和用法(一):内嵌Active MQ、Active MQ的各种持久化方式、消息(Topic)的持久化订阅
Active MQ 高级特性和用法(一)内嵌Active MQ、Active MQ的各种持久化方式、消息(Topic)的持久化订阅
2020-02-28 20:34:09 2322
原创 限流算法:令牌桶与漏桶
高并发系统中有三把利器用来保护系统:**缓存**、**降级**和**限流**。限流的目的是为了保护系统不被大量的请求冲垮,通过限制请求的速度来保护系统。在电商的秒杀活动中,限流是必不可少的一个环节。 限流的方式有很多种,可以在**Nginx层面**限流,也可以在应用当中限流,比如在**API网关**中。
2020-02-28 16:46:18 1764
原创 Active MQ中的请求-响应模式(Request-Response)在Spring与Spring Boot中的应用
**客户端必须告知服务发送回复消息的位置,并且必须将回复消息与请求匹配**。 客户端发送具有**回复通道头部**的命令式消息。服务端将回复消息写入回复通道,该回复消息包含与消息标识符具有相同值得**相关性ID**。客户端使用相关性ID将回复消息与请求进行匹配。注:请求-响应模式并不是JMS规范系统默认提供的一种通信方式。
2020-02-27 21:32:00 2225 1
原创 Active MQ入门2,Spring Boot整合Active MQ
Active MQ入门2,Spring Boot整合Active MQ1、搭建Spring Boot项目首先创建一个Spring Boot的项目,在pom文件中加入:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-start...
2020-02-26 22:43:19 1754
原创 JMS与Active MQ入门、Spring整合Active MQ
JMS与Active MQ入门JMS是什么JMS(Java Messaging Service)是Java平台上有关面向消息中间件的技术规范,实际上是一套api,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发,ActiveMQ而是这个规范的一个具体实现。JMS是一种与厂商无关的 API,用来访问收发系统消息,它类似于JDBC....
2020-02-25 21:19:54 1787
原创 基于异步消息模式的通信
基于异步消息模式的通信使用消息机制时,微服务之间的通信采用异步交换消息的方式来完成。基于消息机制的应用程序通常使用消息代理,它充当服务之间的中介。消息消息由消息头部和消息主体组成。头部包括:名称与值对的集合(描述正在发送的数据的元数据)+其它数据(如唯一消息ID、可选返回地址)。主体包括:以文本或者二进制格式发送的数据。消息的类型文档:仅包含数据的通用消息。接收者决定如...
2020-02-24 19:12:35 2289
原创 GitHub更改项目的语言设置
只需要在项目的根目录上创建一个**.gitattributes**文件。在文件中添加相应的转换格式:`*.xxx linguist-language=ooo`上述转换代码的意思是,将**后缀为xxx的文件都识别为ooo语言**。
2020-02-23 11:00:41 2573
原创 Java 垃圾收集器与内存分配策略
垃圾收集器与内存分配策略 Java内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭,栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。 每一个栈帧中分配多少内存基本上是在类结构确定下来就已知的,因此这几个区域的内存分配和回收都具备确定性,在这几...
2020-02-22 19:15:39 1657
原创 class 类文件结构与字节码指令
任何一个Class文件都对应着唯一一个类或接口的定义信息,但反过来说,Class文件实际上它并不一定以磁盘文件的形式存在。
2020-02-22 19:11:03 1754
原创 Java 类加载过程 与 类加载器(双亲委派模型)
类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段。其中验证、准备、解析3个部分统称为连接(Linking)。
2020-02-22 19:07:39 1747
原创 Java并发编程基础概念
如果多个线程对同一个数据进行“读取---修改---写入”的操作序列的话,如果对这个共享变量的操作没有进行同步的话,在多次调用中可能会导致严重的数据完整性问题。在这里引出竞态条件的定义:>由于不恰当的执行时序而出现不正确的结果,这种情况被称为竞态条件。
2020-02-22 16:55:33 1688
原创 Java多线程基础&线程间的协作与共享
+ 从多线程基础,首先整理了Thread类、Runnable接口、Callable接口,然后说明了一下三者的使用步骤与区别。+ 然后又从优先级,守护线程,中断线程等角度整理了一下。+ 还有线程间的共享+ 线程间的协作+ 线程的状态与生命周期如果仔细读完!真的。。。会。。。其实这只是Java并发的开始。。哭/(ㄒoㄒ)/~~
2020-02-22 16:53:41 2150
原创 Fork/Join 框架 & CountDownLatch与CyclicBarrier
整理了一下几个并发工具类1. Fork/Join 框架的使用范式2. CountDownLatch 的使用3. CyclicBarrier的使用,以及与CountDownLatch 的区别4. Semaphore 与 Exchanger5. 再谈了谈Callable接口与Future的使用
2020-02-22 16:51:41 1968
原创 CAS与Auomic原子类
一个CAS涉及到以下操作:>我们假设内存中的原数据V,旧的预期值A,需要修改的新值B。>1. 比较 A 与 V 是否相等。(比较)>2. 如果比较相等,将 B 写入 V。(交换)>3. 返回操作是否成功。
2020-02-22 16:49:27 1809
原创 Git过滤文件,及idea中的.gitignore的基本模板
Git过滤文件,及idea中的.gitignore的基本模板一、设置.gitignore文件首先在某个git仓库目录下,创建.gitignore文件。在.gitignore文件中根据自己的过滤需要进行编辑二、.gitignore匹配规则/target/ :过滤文件设置,表示过滤这个文件夹.mdb ,.ldb ,.sln 表示过滤某种类型的文件/mtk/do.c ,/mtk/i...
2020-02-22 16:45:38 3243
原创 &与&&的区别,|与||的区别,==与equals区别
&与&&的区别,|与||的区别,==与equals区别一、&与&&的区别&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。1、最终结果一样。2、&无论左边是false还是true,右边都执行。3、&&具有短路效果,左边是false,右边不执行。4、&&...
2020-02-19 11:35:19 2002
原创 SpringBoot 统一异常处理
SpringBoot 统一异常处理(1)统一格式首先我们需要定义错误页面的统一格式:@Datapublic class ResponseData { private Boolean status = true; private int code = 200; private String message = ""; private Object data;}@Data ...
2020-01-19 21:10:07 1679
原创 SpringBoot 读取配置文件
SpringBoot 读取配置文件Spring Boot 中的配置通常放在application.properties中,读取信息非常方便,可分为三种方式。(application.yml也是一样的。)(1)Environment:可以通过Environment的getProperty()方法来获取想要的信息。@RestControllerpublic class HelloCo...
2020-01-18 22:18:04 1572
原创 进程 Vs 线程、并发 Vs 并行
+ 进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。+ 系统运行一个程序即是一个进程从创建,运行到消亡的过程。
2019-12-03 23:25:18 1623
原创 Java内存区域
Java内存区域1.运行时数据区域Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。程序计数器虚拟机栈本地方法栈Java堆方法区( 运行时常量池)直接内存站在线程的角度看:Java堆与方法区是所有线程共享的程序计数器、虚拟机栈、本地方法栈是线程私有的1.1程序计数器程序计数器是一块较小的内存空间,可以看作是当前线程所执行的...
2019-11-07 13:48:52 1586
原创 Java位运算
位运算1、原码, 反码, 补码 对于一个数,计算机要使用一定地编码方式进行存储,原码、反码、补码是机器存储一个具体数字的编码方式。原码,反码,补码的产生过程,就是为了解决,计算机做减法和引入符号位(正号和负号)的问题。1.1 机器数一个数在在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放...
2019-11-07 13:47:34 1854
原创 单例模式的多种实现
单例模式单例模式来确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式确保一个类只有一个实例,并提供一个全局访问点。单例模式是一种对象创建型模式。单例模式又被称为单件模式或单态模式。单例模式的要点有三个:某个类只能有一个实例必须自行创建这个实例必须自行向整个系统提供这个实例单例模式的经典实现public cl...
2019-10-24 21:55:06 1653
原创 Java线程池
线程池为什么要用线程池如果有大量的任务需要并发执行,但是每个任务只需要执行很短的时间就执行完成,这样就会频繁的创建->销毁线程,这样反而会浪费系统资源。那么有没有一种办法可以让线程执行完一个任务后,不进行销毁而是转去执行其它未完成的任务,这样就可以实现线程复用,而不用频繁的创建销毁线程,把时间、资源都浪费了。这种方法就是线程池。线程池所带来的好处降低资源消耗。 通过重复利用已创建...
2019-10-24 21:54:12 1625
原创 Context上下文到底是个什么东东?
Context上下文到底是个什么东东?源自 :https://www.zhihu.com/question/26387327Context:程序运行状态与相关资源的合集。Context是environment的snapshot.上下文是一种非常泛化的概念,大致意思就是“与现在这个工作相关的周围环境”。这个“周围环境”具体是什么,完全取决于具体的语言。每一段程序都有很多外部变量。只有像A...
2019-10-10 13:58:06 704 1
原创 String、String Buffer、String Builder有啥子区别?
String、String Buffer、String Builder有啥子区别?jdk 1.8StringString类 是我们平时用的最多的一个类,它提供了构造和管理字符串的各种基本逻辑。public final class String implements java.io.Serializable, Comparable<String>, CharSequ...
2019-10-10 13:53:15 1921
原创 Redis位图与 HyperLogLog
个人博客:Dong小凯的个人博客 www.dongkk.cnRedis(三) 位图与HyperLogLog位图1、什么是位图?位图并不是什么特殊的数据结构,而是定义在String类型上的一个面向字节操作的集合,也就是byte数组,位图的最小单位是bit,每个bit的取值只能是0或者1。2、位图的基本用法位图数据结构是可以自扩展的,如果设置了某个偏移位置超出了现有的内容范...
2019-09-22 21:43:30 1868
原创 Redis分布式锁与延时队列
个人博客:Dong小凯的个人博客 www.dongkk.cnRedis(二)1、分布式锁 --Redis参考博文:https://juejin.im/post/5bbb0d8df265da0abd3533a5#heading-1参考书籍:https://book.douban.com/subject/30386804/首先1、原子操作是什么?原子操作是指不会被线程调度...
2019-09-22 21:42:35 2715
原创 Redis五大基础数据结构
个人博客:Dong小凯的个人博客 www.dongkk.cnRedis(一)markdown语法学习:https://www.jianshu.com/p/191d1e21f7ed一 :redis安装与启动redis下载与安装参考 博客:https://www.cnblogs.com/jylee/p/9844965.html在将redis解压缩后的目录下,打开cmdre...
2019-09-22 21:40:46 1787 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人