自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

海枫的博客

菜鸟的学习

  • 博客(33)
  • 资源 (1)
  • 收藏
  • 关注

原创 Spring全家桶进行中

SpringSpring MVCSpring BootSpring Cloud

2020-06-17 19:00:53 120

原创 JAVA进行中

要想楼高,先垒地基整理关于java的基础知识String_StringBuffer_StringBuildere的区别

2020-06-15 18:34:50 101

原创 第一个bat脚本

第一个bat脚本@echo off chcp 65001 @echo: curl -G get请url @echo: @echo: cmdecho

2021-06-08 13:44:01 168

原创 并发编程(三)Java 内存模型:看Java如何解决可见性和有序性问题

什么是Java内存模型?导致可见性的原因是缓存,导致有序性的原因是编译优化。解决可加性与有序性最直接的办法就是禁用缓存和编译优化,虽然问题解决了,但是程序性能就堪忧了。合理方案应该是按需禁用缓存以及编译优化,何时禁用缓存以及编译优化只有程序员知道。Java 内存模型规范了JVM如何提供按需禁用缓存和编译优化的方案。具体来说,这些方法包括 volatile、synchronized 和 final 三个关键字,以及六项 Happens-Before 规则。使用 volatile 的困惑我们声明一

2021-04-05 16:07:02 208

转载 并发编程(一)攻略

跳出来,看全景并发编程领域可以抽象为三个核心问题:分工、同步和互斥。分工所谓分工,类似于现实中一个组织完成一个项目,项目经理要拆分任务,安排合适的成员去完成。在并发编程领域这方面的成果还是很丰硕的。Java SDK 并发包里的 Executor、Fork/Join、Future 本质上都是一种分工方法。除此之外,并发编程领域还总结了一些设计模式,基本上都是和分工方法相关的,例如生产者 - 消费者、Thread-Per-Message、Worker Thread 模式等都是用来指导你如何分工的。

2021-04-02 22:54:21 118

原创 DB-Engines Ranking

MySql(Relational)Redis(Key-value)MongoDB(Document)Elasticsearch(Search engine)Solr (Search engine)

2020-06-21 23:45:01 364

原创 JUC之AQS浅析(一)

大佬写的AQS原理和相关源码分析的文章:Java并发之AQS详解 Java并发包基石-AQS详解AQS全称为 AbstractQueuedSynchronizer ,在 java.util.concurrent.locks下面:AQS 是一个用来构建锁和同步器的框架,使用 AQS 能简单且高效地构造出应用广泛的大量的同步器,比如我们提到的 ReentrantLock,Semaphore,其他的诸如ReentrantReadWriteLock,SynchronousQueue,FutureTask

2020-06-17 23:33:36 291

原创 初认识Spring

Spring的核心概念 ​Spring 是一个开源框架,是为了解决企业应用程序开发复杂性由Rod Johnson创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角

2020-06-17 19:21:47 227

原创 B+Tree不是B_Tree

B+Treemysql索引数据结构–B+TreeB+Tree是在BTree的基础之上做的一种优化,变化如下:1、B+Tree每个节点可以包含更多的节点,这个做的原因有两个,第一个原因是为了降低树的高度,第二个原因是将数据范围变为多个区间,区间越多,数据检索越快2、非叶子节点存储key,叶子节点存储key和数据3、叶子节点两两指针相互连接(符合磁盘的预读特性),顺序查询性能更高B+Tree注意:在B+Tree上有两个头指针,一个指向根节点,另一个指向关键字最小的叶子节点,而且所有叶子节点(即数

2020-06-17 18:54:20 169

原创 B_Tree不是B+Tree

B_Treemysql数据文件id name1 teacher.MA2 teacher.ZHOU3 teacher.ZHANG4 teacher.LIANhash表的索引格式缺点:1、利用hash存储的话需要将所有的数据文件添加到内存,比较耗费内存空间2、如果所有的查询都是等值查询,那么hash确实很快,但是在企业或者实际工作环境中范围查找的数据更多,而不是等值查询,因此hash就不太适合了二叉树与红黑树缺点:无论是二叉树还是红黑树,都

2020-06-17 18:51:18 197

原创 初探_红黑(Red-black)树

红黑树红黑(Red-black)树​ 是一种自平衡二叉查找树,1972年由Rudolf Bayer发明,它与AVL树类似,都在插入和删除操作时能通过旋转操作保持二叉查找树的平衡,以便能获得高效的查找性能。**它可以在 O(logn) 时间内做查找,插入和删除等操作。**红黑树是2-3-4树的一种等同,但有些红黑树设定只能左边是红树,这种情况就是2-3树的一种等同了。对于AVL树来说,红黑树牺牲了部分平衡性以换取插入/删除操作时少量的旋转操作,整体来说性能要优于AVL树。特点:节点是红色或黑色

2020-06-17 17:54:25 439

原创 一颗树,两棵树,三棵树_TREE_TO_Tree

树 Tree数据结构图形解析非常直观树(Tree)介绍树(Tree): 一种非线性表结构。是由n(n>=1)个有限结点组成一个具有层次关系的集合。特点每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树。高度(Height)、深 度(Depth)、层(Level)种类无序树、有序树、二叉树、满二叉树、完全二叉树、平衡二叉树(avl)、二叉查找树(二叉搜索树、BST)、霍夫曼树、红黑树、B树

2020-06-17 17:49:08 1281

原创 深入理解并发_Synchronized

synchronized 关键字解决的是多个线程之间访问资源的同步性,synchronized 关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。另外,在 Java 早期版本中,synchronized 属于重量级锁,效率低下,因为监视器锁(monitor)是依赖于底层的操作系统的 Mutex Lock 来实现的,Java 的线程是映射到操作系统的原生线程之上的。如果要挂起或者唤醒一个线程,都需要操作系统帮忙完成,而操作系统实现线程之间的切换时需要从用户态转换到内核态,这个状态之间的转换

2020-06-16 23:23:58 209

原创 Java自定义注解详解以及代码演示

什么是注解:Annontation 是Java5开始引入的新特征,中文名称叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息戒元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。为程序的元素(类、方法、成员变量)加上更直观更明了的说明,这些说明信息是与程序的业务逻辑无关,并且供指定的工具戒框架使用。Annontation像一种修饰符一样,应用于包、类型、构造方法、方法、成员变量、参数及本地变量的声明语句中。Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行

2020-06-16 22:16:03 251

原创 Java之泛型

为什么需要泛型解决数据类型操作丌统一产生的异常使用泛型可以更好的去保护数据类型泛型类的定义…..package cn.mashibing.demo;public class Point2<T> {// 此处可以随便写标识符号,T 是type 的简称, 也可以写a,b,c private T var;//var 的类型由T 指写, 由外部指定 public T getVar() {// 返回值的类型由外部指定 return var; } p.

2020-06-16 00:06:42 204

原创 三、Map浅析

MapMap特点key-value映射HashMapKey无序 唯一(Set)Value无序 丌唯一(Collection)LinkedHashMap有序的HashMap 速度快TreeMap有序 速度没有hash快问题:Set不Map有关系吗?采用了相同的数据结构,只用于map的key存储数据,以上是SetMap接口Collections工具类Collections 和Collection 不同,前者是集合的操作类,后者是集合接口Col

2020-06-16 00:04:57 120

原创 二、Collection之List浅析

Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中本次主要写的是:CollectionListArrayListLinkedListSetHashSetTreeSetMapHashMapTreeMapCollections --> 提供了对集合进行排序、便利等多种算法实现Collection接口的常用方法集合作为容器应该具有的功能(增,删,改,查),不一定全有。集合的基本操作:增加,删除,判断.

2020-06-15 23:58:17 356

原创 一、Collection的基本介绍

Collection集合框架被设计成要满足以下几个目标。该框架必须是高性能的。基本集合(动态数组,链表,树,哈希表)的实现也必须是高效的。该框架允许不同类型的集合,以类似的方式工作,具有高度的互操作性。对一个集合的扩展和适应必须是简单的。为此,整个集合框架就围绕一组标准接口而设计。你可以直接使用这些接口的标准实现,诸如: LinkedList, HashSet, 和 TreeSet 等,除此之外你也可以通过这些接口实现自己的集合。从上面的集合框架图可以看到,Java 集合框架主要包括两种类

2020-06-15 22:50:23 1526

原创 String,StringBuffer,StringBuilder的区别

StringString类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。详细解释:有两种情况:如果你是String a = “aaa”; a = a + “bbb”,则会根据你字符串常量池是否有"aaabbb",有就不会新建,a存在栈中,作为引用,指向那个已经存在字符常量池里面的"aaa",没有就会在字符串常量池新生成一个"aaabbb".如果你是String x = new String(“aaa”); 首先会在堆中生成一个n

2020-06-15 18:12:17 290

原创 NodeJs之回调、阻塞、事件驱动

进行nodeJSdemo级别的学习回调函数异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了回调函数在完成任务后就会被调用,Node使用大量的回调函数,Node所有API都支持回调函数。案例我们可以一边读取文件,一边执行其他命令,在文件读取完成后,我们将文件内容作为回调函数的参数返回,这样在执行代码时就没有阻塞或等待文件I/O操作,好处提高NodeJS的性能,可以处理大量额并发请求。CodeDemo阻塞代码示例创建一个文件 input.txt我要赚钱小记: 以前我.

2020-06-04 23:51:06 749

原创 NPM整理

NPM初识NPM是随同NodeJS一起安装的包管理工具许用户从NPM服务器下载别人编写的第三方包到本地使用。允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。查看帮助命令npm help更新命令 npm install npm -g命令安装模块$ npm install <Module Name>全局安装与本地安装npm install express

2020-06-03 22:54:46 141

原创 NodeJS初识

NodeJS初识Node.JS组成引入required模块: 我们可以使用require执行来载入Node.js模块创建服务器: 服务器可以监听客户端的请求,类似于Apache、Nginx等HTTP服务器接受请求与相应请求: 服务器很容易创建,客户端可以使用浏览器或终端发送HTTP请求,服务器接受请求后返回响应数据。创建服务器// 引入http模块var http = require('http');// 创建服务,并进行服务监听http.createServer(functio

2020-06-03 22:52:25 107

原创 01_线程的概述

线程:操作系统能够继续宁运算调度的最小单位,他被包含在进程之中,是进程中的实际运作单位,一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。线程是独立调度和分派的基本单位进程(Process): 计算机中的程序关于某数据集合上的一次运行活动,是系统进行

2020-06-02 23:53:49 168

原创 Java多线程与高并发浅析系列更新

由于面试需要,将进行java的多线程与高并发系列的文章更新系列文章内容主要由查看相关文章以及视频,加上个人的理解,记录整理而成主要分以下六个部分基本的概念JUC同步工具,就是各种同步锁同步容器线程池高频面试加分项Disruptor...

2020-06-02 22:14:27 158

原创 Redis的基础概念以及对比

Redis的基础概念以及对比官方网址: https://redis.io/中文的网址: http://redis.cn/Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围...

2020-03-08 00:11:26 112

原创 Redis前置知识-(0)

Redis前置知识为什么要使用内存数据库数据库整合网站: https://db-engines.com/en/基础选型、技术对比一、磁盘对比 磁盘 内存 1.寻址: ms 2.带宽: G/M 1.寻址:ns ...

2020-03-08 00:09:48 398

翻译 初始Vue.js--数据的绑定(一)

关于Vue.js的入门探索,和在学习时的一些记录

2017-12-03 22:50:14 1501

原创 Python学习--------列表(一)

列表是什么列表由一系列特定顺序排序的元素组成。创建一个列表并且全部输出: numbers = ['1','2','3','4'] #列表中的值全部输出 print(numbers) 访问列表元素:列表是一个有序结合,因此要访问列表的任何元素,直接将元素的位置或索引即可 numbers = ['1','2','3'] #输出结果为 1 ---列表下标从/索引 0 开始

2017-10-30 19:08:01 237

转载 Oracle----表之间链接的一些学习

就是关于博客的地址

2017-07-30 00:08:02 250

原创 Maven的搭建

初学maven,简单的总结一下今天的所学Maven简介 关于Maven的搭建 关于maven在Myeclipse中的部署简写一、Maven简介要用java实现一个后台系统,可能需要涉及很多模块。web应用服务器、文件服务器、db 等等。 我们要开发这些模块,需要先把他们各自需要依赖的jar包或者项目下载打包好,然后配置到项目的classpath中。这些应用在运行单元测试pr编译or部署的时候,需

2017-07-22 22:31:36 308

原创 Spring深度学习之架构浅析(一)

Spring整体架构 Spring与2003年兴起的一个轻量级的Java开源项目,有Rod Johnson在其著作《ExpertOne-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。 影响解决企业级应用开发的复杂型而创建的,他使用基本的JavaBean来完成以前只可能有EJB完成的事情,然而,Spring的用途不仅限与服务器端的开发。 从简

2017-06-21 10:05:02 2132

原创 HTML5新增属性与元素(一)

HTML5新增属性与元素Html5的新增属性 新增的与表单相关的属性介绍如下: 1.autocomplete属性 Autoxcomplete属性规定form或input域应该拥有自动完成功能.它使用form标签,以及一下类型的input标签:text,search,url,telephone,email,passowrd,datepickers,range以及color.2.autofoc

2017-04-09 22:38:47 556

原创 欢迎使用优快云-markdown编辑器

Hibernate简介本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:简介环境的搭建关于持久化的操作关于JAVA的三种状态脏检查及刷新缓存机制相关的基础信息快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl + Q插入链接 Ctrl + L插入代码 Ctrl + K插入图片 Ct

2017-03-23 22:25:47 239

JavaClassFileFormat.pdf

JavaClassFileFormat

2020-06-16

空空如也

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

TA关注的人

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