自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis五种基本数据类型底层实现

Redis五种基本数据类型底层实现1、Redis是什么Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 **字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) **与范围查询, bitmaps, hyperloglogs 和...

2020-09-24 10:57:00 6423

原创 浅谈单元测试

单元测试软件测试按照阶段可分为单元测试、集成测试、系统测试以及验收测试,今天我们要介绍的就是单元测试。阶段测试对象测试人员测试方法单元测试编码后最小单位程序模块软件开发人员白盒测试集成测试单元测试之后组装后的模块软件开发人员灰盒测试系统测试集成测试之后已经集成好的软件系统测试人员黑盒测试验收测试系统测试之后整个系统...

2020-04-02 18:56:00 443

转载 Lambda 表达式有何用处?如何使用?

此博客是转载自https://www.zhihu.com/question/20125256/answer/324121308什么是Lambda?我们知道,对于一个Java变量,我们可以赋给其一个“值”。如果你想把“一块代码”赋给一个Java变量,应该怎么做呢?比如,我想把右边那块代码,赋给一个叫做aBlockOfCode的Java变量:在Java 8之前,这个是...

2019-07-30 17:44:00 273

原创 快捷键和常用的命令

idea快捷键代码上移: command+shift+向上箭头查找类:shift+ shift查找类格式化代码:Ctrl+alt+l导入包看报错的解决方法:alt+enter批量修改变量名称:shift + F6批量修改变量名称输出的快捷键:sout大小写切换:ctrl+ shift+ u弹出计算表达式的窗口:Alt + F8自动补全变...

2019-07-30 16:43:00 283

原创 Homebrew安装和Mac使用

软件安装 1、Homebrew安装 ruby环境: curl -sSL https://get.rvm.io | bash -s stable 官网方式: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent...

2019-07-30 16:32:00 333

原创 为什么String要设计成不可变的?

为什么String要设计成不可变的? 1. 字符串常量池的需要字符串常量池(String pool,String intern pool, String保留池) 是Java堆内存中一个特殊的存储区域, 当创建一个String对象时,假如此字符串值已经存在于常量池中,则不会创建一个新的对象,而是引用已经存在的对象。假若字符串对象允许改变,那么将...

2019-03-25 16:09:00 397

原创 《深入理解Java虚拟机》读书笔记十二

《深入理解Java虚拟机》读书笔记十二 第十二章 Java内存模型与线程1、硬件效率与一致性由于计算机的存储设备与处理器的运算速度有几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的缓冲。每个处理器都有自己的高速缓存,而它们又共享同一主内存(Main...

2019-03-21 16:20:00 168

原创 《深入理解Java虚拟机》读书笔记十

《深入理解Java虚拟机》读书笔记十 第十一章 晚期(运行期)优化1、HotSpot虚拟机内的即时编译解释器与编译器:许多Java虚拟机的执行引擎在执行Java代码的时候都有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码)两种选择即时编译器:当虚拟机发现某个方法或者代码块的运行特别频繁时,就会...

2019-03-20 20:27:00 340

原创 《深入理解Java虚拟机》读书笔记九

《深入理解Java虚拟机》读书笔记九 第十章 早期(编译期)优化1、Javac的源码与调试编译期的分类:前端编译期:把*.java文件转换为*.class文件的过程。例如sun的javac、eclipseJDT中的增量编译器。JIT编译期:后端运行期编译器,把字节码转换成机器骂的过程。例如 HotSpot VM的C1、C2...

2019-03-19 10:30:00 177

原创 《深入理解Java虚拟机》读书笔记八

《深入理解Java虚拟机》读书笔记八 第九章 类加载及执行子系统的案例与实战Q:如果有10个WEB应用程序都是用Spring来进行组织管理的话,可以把Spring放到Common或Shared目录下(Tomcat5.0)让这些程序共享。Spring要对用户程序的类进行管理,自然要能访问到用户程序的类,而用户程序显然是放在/WEB-INF目录...

2019-03-18 11:01:00 227

原创 《深入理解Java虚拟机》读书笔记七

《深入理解Java虚拟机》读书笔记七 第八章 虚拟机字节码执行引擎1、运行时栈帧结构概述:栈帧是用于支持虚拟机进行方法调用的和方法执行的数据结构,他是虚拟机运行时数据区中的虚拟机栈的栈元素,栈帧存储了方法的局部变量,操作数栈,动态连接和方法返回值等信息,每个方法从调用开始到执行完成的过程都对应着一个栈帧在虚拟机栈里面从入栈到出栈的过...

2019-03-17 21:48:00 149

原创 《深入理解Java虚拟机》读书笔记六

《深入理解Java虚拟机》读书笔记六 第七章 虚拟机类加载机制1、类加载的时机虚拟机的类加载机制:虚拟机把描述类的数据从class文件中加载到内存,并对数据进行校验、转换解析和初始化,最终形成了可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。类从被加载到虚拟机内存中开始到卸载出内存为止,他的整个生命周期包括加载...

2019-03-16 20:36:00 173

原创 《深入理解Java虚拟机》读书笔记五

《深入理解Java虚拟机》读书笔记五 第六章 类文件结构1、无关性的基石各种不同平台的虚拟机与所有平台都统一使用程序存储格式——字节码是构成平台无关的基石。实现语言无关性的基础仍然是虚拟机和字节码存储格式,Java虚拟机不和包括Java在内的任何语言绑定只能与class文件这种特定的二进制文件格式所关联。class文件包含了...

2019-03-15 20:24:00 194

原创 《深入理解Java虚拟机》读书笔记四

《深入理解Java虚拟机》读书笔记四 第五章 调优案例分析与实战 posted @ 2019-03-13 21:09 AmyZheng 阅读(...) 评论(...) 编辑 收藏 ...

2019-03-13 21:09:00 168

原创 《深入理解Java虚拟机》读书笔记三

《深入理解Java虚拟机》读书笔记三 第四章 虚拟机性能监控与故障处理工具1、JDK命令行工具jps命令:作用:列出正在运行的虚拟机进程。格式:jps [option] [hostid]选项:-q 只输出LVMID(Local Virtual Machine Identifier)省略主类的名称。      -m...

2019-03-13 19:37:00 134

原创 《深入理解Java虚拟机》读书笔记二

《深入理解Java虚拟机》读书笔记二 第三章 垃圾收集器与内存分配策略1、判断对象是否已死引用计数法:给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1,每当引用失效时,计数器值就减1。任何时刻计数器为0的对象就是不可能再被使用的。引用计数器实现简单,判定效率高,但是无法解决对象相互循环引用。可达性...

2019-03-13 10:36:00 156

原创 《深入理解Java虚拟机》读书笔记一

《深入理解Java虚拟机》读书笔记一 第二章 Java内存区域与内存溢出异常1、运行时数据区域程序计数器:当前线程所执行的字节码的行号指示器,用于存放下一条需要运行的指令。运行速度最快位于处理器内部。线程私有。虚拟机栈:描述的是Java方法执行的内存模型,用于存放对象的引用和基本数据类型。每个方法...

2019-03-10 16:17:00 192

原创 《实战Java高并发程序设计》读书笔记六

《实战Java高并发程序设计》读书笔记六 第六章 Java 8 与并发1、函数式编程函数作为一等公民:将函数作为参数传递给另外一个函数这是函数式编程的特性之一。函数可以作为另外一个函数的返回值,也是函数式编程的重要特点。无副作用:函数的副作用是指在函数调用过程中除了给出了返回值以外还修改了其他函数的外部状态。...

2019-03-07 19:13:00 295

原创 《Java高并发程序设计》读书笔记五

《Java高并发程序设计》读书笔记五 第五章 并行模式与算法1、单例模式是一种对象创建模式,用于产生一个对象的具体实例,它可以确保系统一个类只产生一个实例。对于频繁创建使用的对象可以省略new 操作花费的时间,可以减少系统开销。由于new 操作的次数减少,系统内存使用频率降低,这将减轻GC压力,缩短GC停顿时间。构造函数私有...

2019-03-06 20:46:00 187

原创 《实战Java高并发程序设计》读书笔记五

第五章 并行模式与算法1、单例模式是一种对象创建模式,用于产生一个对象的具体实例,它可以确保系统一个类只产生一个实例。对于频繁创建使用的对象可以省略new 操作花费的时间,可以减少系统开销。由于new 操作的次数减少,系统内存使用频率降低,这将减轻GC压力,缩短GC停顿时间。构造函数私有,instance对象需要是私有且静态的2、不变模式核心:一个对象...

2019-03-06 20:46:00 100

原创 《Java高并发程序设计》读书笔记四

《Java高并发程序设计》读书笔记四 第四章 锁的优化及注意事项1、锁性能的几点建议减小锁持有时间:系统持有锁时间越长锁竞争程度就越激烈,只对需要同步的方法加锁,可以减小锁持有时间进而提高锁性能。减少锁的持有时间有助于降低锁冲突的可能性,进而提高锁的并发能力。减小锁粒度:减小锁粒度就是指缩小锁定对象的范围,从...

2019-03-05 20:03:00 184

原创 《实战Java高并发程序设计》读书笔记四

第四章 锁的优化及注意事项1、锁性能的几点建议减小锁持有时间:系统持有锁时间越长锁竞争程度就越激烈,只对需要同步的方法加锁,可以减小锁持有时间进而提高锁性能。减少锁的持有时间有助于降低锁冲突的可能性,进而提高锁的并发能力。减小锁粒度:减小锁粒度就是指缩小锁定对象的范围,从而减小锁冲突的可能性,进而提高并发能力。读写分离锁代替独占锁(锁分离)...

2019-03-05 20:03:00 81

原创 《Java高并发程序设计》读书笔记三

《Java高并发程序设计》读书笔记三 第三章 JDK并发包1、同步控制重入锁:重入锁使用java.util.concurrent.locks.ReentrantLock类来实现,这种锁可以反复使用所以叫重入锁。重入锁和synchronized的比较:Lock是一个接口,而synchronized是Java中的关键字,sync...

2019-03-03 19:46:00 128

原创 《实战Java高并发程序设计》读书笔记三

第三章 JDK并发包1、同步控制重入锁:重入锁使用java.util.concurrent.locks.ReentrantLock类来实现,这种锁可以反复使用所以叫重入锁。重入锁和synchronized的比较:Lock是一个接口,而synchronized是Java中的关键字,synchronized是内置的语言实现。Lock有着显示的操作过程,由开发自己决...

2019-03-03 19:46:00 95

原创 《Java高并发程序设计》读书笔记一

《Java高并发程序设计》读书笔记一 第一章 走入并行世界1、基本概念同步:同步方法一旦开始,调用者必须等到方法调用返回后,才能继续后续操作异步:一旦开始,方法调用就会立即返回,调用就可以继续后续操作并发:表示两个或者多个任务一起执行,偏重于任务交替执行,而多个任务之间还是串行的并行:真正意义的同时进行临界区:一种公...

2019-02-26 16:38:00 276

原创 《实战Java高并发程序设计》读书笔记二

第二章 Java并行程序基础1、线程的基本操作线程:进程是线程的容器,线程是轻量级进程,是程序执行的最小单位,使用多线程而不用多进程去进行并发程序设计是因为线程间的切换和调度的成本远远的小于进程。新建线程:通过new关键字创建一个线程对象,此时线程处于NEW状态,等到线程start()方法被调用时,会让这个线程的run方法执行,线程执行时处于RUNNABLE状态,表...

2019-02-26 16:38:00 210

原创 《实战Java高并发程序设计》读书笔记一

第一章 走入并行世界1、基本概念同步:同步方法一旦开始,调用者必须等到方法调用返回后,才能继续后续操作异步:一旦开始,方法调用就会立即返回,调用就可以继续后续操作并发:表示两个或者多个任务一起执行,偏重于任务交替执行,而多个任务之间还是串行的并行:真正意义的同时进行临界区:一种公共资源或者说是共享数据,可以被多个线程使用,但是一次只能一个线程使用阻塞:...

2019-02-26 16:38:00 232

原创 很棒的学习路线思维导图

很棒的学习路线思维导图 posted @ 2019-01-13 20:13 AmyZheng 阅读(...) 评论(...) 编辑 收藏

2019-01-13 20:13:00 1095

原创 SprintBoot学习(三)

Thymeleaf模板引擎1、thymeleaf是一个Java类库,,他是xml/xhtml/html5的模板引擎可以作为view层2、themeleaf基本语法引入thymeleaf<!--引入Thymeleaf--><html xmlns:th="http://www.thymeleaf.org">将镜头页面转换成动态的视图,要进行动态处理的...

2018-12-06 10:52:00 330

原创 SprintBoot学习(二)


 Spring Boot的入口类1、名为xxxApplication的就是入口类,在main方法中使用SpringApplication.run(SpringBootTestApplication.class, args);启动Spring Boot应用项目。2、@SpringBootApplication是由@SpringBootConfiguration、@...

2018-10-15 23:06:00 380

原创 SprintBoot学习(一)


 Spring Boot是什么?1、 SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用,所谓简化是指简化了Spring众多框架中所需的大量且繁琐的配置文件,所以 SpringBoot是一个服务于框架的框架,服务范围是简化配置文件。2、它使用“习惯优于配置”(项目中存在大量的配置,此外还内置了一个习惯性的配置,让你无需手动进行配置)的理...

2018-10-15 16:11:00 2435 3

原创 jQuery学习(三)


 jQuery文档操作方法1、内部追加内容 选择器追加到内容  append(content)在当前jQuery对象内部所包含的DOM对象的内部的最后追加content对应的内容,其中content可以是jQuery对象、DOM对象、HTML     jQuery对象:$("body").append($("#hello"))     DOM...

2018-09-30 10:56:00 231

原创 jQuery学习(二)


 jQuery.ajax(url,options)1、url指定请求的路径,比如http://localhost:8080/jQuery/ajax/json相对路径,永远相对于当前文件绝对路径,在web环境下指定的都是当前的http://主机:端口/开始算起    在jsp页面中,动态获取当前web应用的路径       jsp表达式 req...

2018-09-29 14:33:00 120

原创 jQuery学习(一)

搭建环境1、下载jQuery库,下载地址:http://jquery.com/download/2、在文件中导入jQuery库 <!--导入jQuery的库--> <script src="../js/jquery-3.3.1.min.js"></script>第一个实例1、新建文件夹js将jQuery库放入到文件夹中,再新...

2018-09-27 15:39:00 214

原创 Maven常用命令

mvn compile:编译Java源码编译成classmvn test:将test目录中的Java源码编译成classmvn clean:删除class文件mvn package:打包(jar等)到本项目的target下。mvn install:把target下打的包(jar等)安装到本地仓库,可以供其他项目使用。mvn deploy:将打包的文件发布到远程参考,提供其他人员...

2018-09-25 15:29:00 114

原创 Git学习

Git简介1、Git是分布式版本控制系统,记录每次改动的信息2、Git和SVN的比较集中式版本控制系统SVN:需要联网,版本库在中央服务器上分布式版本控制系统Git:不需要联网,每个人的电脑都是一份完整的版本库,安全性更高Git的安装1、下载安装,下载地址:https://git-scm.com/downloads2、打开Git Bash指定用户名和邮箱$ git ...

2018-09-25 14:27:00 255 1

转载 Maven与Nexus

开始在使用Maven时,总是会听到nexus这个词,一会儿maven,一会儿nexus,当时很是困惑,nexus是什么呢,为什么它总是和maven一起被提到呢?我们一步一步来了解吧。 一、了解Maven,Maven用来干什么呢1. 优秀的构建工具通过简单的命令,能够完成清理、编译、测试、打包、部署等一系列过程。同时,不得不提的是,Maven是跨平台的,无论是在Windows、还是在...

2018-09-20 16:28:43 196

原创 Idea远程调试

1、打开idea,选择菜单中的run2、选择”Edit Configurations…” 3、点击+号选择remote 4、修改ip和端口号,然后点击Apply,最后点击OK即可5、debug启动,设置断点,当有请求到远程服务器的时候就能够在本地知道远程服务端的内部状态了。6、如果有涉及到dubbo服务的调用,可以在另一个项目中进行上面的配置然后通过修改两个项目中的版本...

2018-09-09 11:32:00 612

原创 《图解HTTP》读书笔记

网络基础TCP/IP1、TCP/ IP:是在 IP 协议的通信过程中,使用到的协议族的统称。 2、协议:计算机与网络设备之间的通信规则。计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。而我们就把这种规则称为协议(p...

2018-08-26 16:17:00 241

原创 常见排序的Java实现

插入排序1、原理:在有序数组中从后向前扫描找到要插入元素的位置,将元素插入进去。2、步骤:插入元素和依次和前一个元素进行比较,若比前一个元素小就交换位置,否则结束循环。3、代码:package ecut.sort;import java.util.ArrayList;import java.util.List;import java.util.Scanner;impo...

2018-08-20 20:46:00 198

空空如也

空空如也

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

TA关注的人

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