- 博客(39)
- 收藏
- 关注
原创 TCP/IP详解笔记(2)——IP:网际协议
1.简介IP协议是TCP/IP协议族中最核心的协议。所有TCP、UDP、ICMP和IGMP都以IP数据报格式传输。IP协议有如下两个特点不可靠: 不保证数据报能成功到达,可靠要求只能用由上层提供(例如TCP)。无连接: 简单来说,就是一次发送一个,每个数据报相互独立,因此不保证顺序。2. IP首部IP首部一般为20字节,这里贴出来并只讲核心字段。4位版本号: 目前是4,因此IP也称作IPv4,当然目前已经在普及IPv6的使用,IPv4会逐渐被IPv6取代。首部长度: 指首部占
2020-11-30 21:55:49 648
原创 TCP/IP详解笔记(1)——链路层
1. 链路层简述下图可以看出链路层主要有三个作用为IP模块发送和接收数据报为ARP发送请求和接收应答为RARP发送请求和接收应答ARP和RARP是地址(逆)解析协议,后续会讲到。链路层作为最下层,它的协议也由使用的硬件支持。2. 以太网&IEEE 802这是两个封装标准,其中**(以太网标准(RFC 894)**为每台主机都要实现的...
2020-11-26 16:08:12 339
原创 Yarn简介
1.Yarn简介1.1 整体介绍Yarn是Hadoop2.0的新资源管理系统,它主要的用处就是资源的管理和调度,给上层的应用提供统一的服务举个例子中,假如我们需要执行一个MapReduce的任务,任务需要使用哪些节点,怎么让它们协调好,这些都是由Yarn去做的,它充当一个中间管理层的角色,这有一张关系图,一目了然。[外链图片转存失败(img-ofqsREP7-1568022755569...
2019-09-09 17:53:15 449
原创 Hive详解
1.Hive基本介绍1.1 Hive简介之前有讲过数据仓库的概念,主要就是按主题划分结构。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射成一张数据库表,并提供类SQL查询功能。通俗来讲就是,我们把需要的数据按照一定的主题拉取到数据仓库中去,数据仓库的底层是Hadoop的HDFS存储,而它的表层会把这种结构化的文件映射成数据库表,然后提供给我们类SQL的查询。...
2019-07-04 21:29:17 393
原创 MapReduce详解
1.基本介绍1.1 MapReduce简介MapReduce是一种编程模型,也就是说它实际上是一种概念,而Hadoop的MapReduce的框架是概念的具体实现。它最早是由Google公司提出的,基于文件的分布式存储(GFS/HDFS)来实现对大规模数据的并行处理,并且Hadoop的作者就是从Google发的论文中受到了启发而写出目前最主流的大数据Hadoop框架。1.2 基本概念...
2019-06-28 21:02:27 4672
原创 Kylin原理详解
1. 基本介绍1.1 Kylin简介Kylin就是一个解决TB级别数据的数据分析需求的系统,通过预计算方式缓存了所有需要查询的数据结果,需要大量的存储空间。1.2 为什么出现首先需要明确OLAP和OLTP的概念。简单来说OLTP(联机事务处理过程) 是面向交易过程的,特点就是需要即时处理。OLAP(联机分析处理) 支持复杂分析操作,侧重于对决策的支持,要求快速的对大数据量进行查询...
2019-06-11 20:43:31 3248
原创 HBase详解
1. 基本介绍1.1 HBase概念HBase是一种建立在Hadoop文件系统(利用HDFS)上的分布式面向列的数据库,是Hadoop生态系统中的一员。1.2 HBase为什么出现首先,大数据最常用的是Hadoop,它使用分布式文件系统(HDFS)存储大数据,并且通过自己的计算引擎(MapReduce)来处理数据,而MapReduce是函数式编程模型,它适用于处理各种庞大的数据。...
2019-06-06 16:59:33 777
原创 大数据基础概念
大数据基础大数据通俗意思就是海量数据,通常无法使用常规软件在一定的时间范围内进行捕捉管理或者分析,需要一定的处理模式才能具有更强的决策力、洞察发现力和优化流程能力。数据仓库(DW)面向主题的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。商务智能的基础平台。它是用于支持决策,面向分析型数据处理,不同于操作型数据库(面向应用),多个异构的数据源有效集成,按照主题重组,存放到仓库中...
2019-06-06 10:10:15 627
原创 深入理解JVM虚拟机——8. 虚拟机字节码执行引擎
8.1 概述执行引擎是Java虚拟机用来执行字节码的,也是这章所讲内容,物理机的执行引擎是直接建立在物理资源层面上的,而虚拟机的执行引擎是自己实现的。8.2 运行时栈帧结构栈帧(Stack Frame) 是用于方法调用和执行的数据结构,它是运行时数据区的虚拟机栈的栈元素。栈帧存储了方法的各种信息。每一个方法从调用到执行完成都对应一个栈帧在虚拟机入栈出栈的过程。对于执行引擎来说,只有位于...
2018-12-23 11:22:08 441
原创 深入理解JVM虚拟机——7.虚拟机类加载机制
7.1 概述本章讲解虚拟机如何加载class文件以及class文件进入虚拟机后会发生什么变化。虚拟机把描述类的数据从class文件加载到内存,并对数据校验、转换解析和初始化,最终成为虚拟机可以使用的Java类型。而这些工作不需要进行连接,直接在运行时完成,这种方式灵活性强但会增加性能开销。7.2 类加载的时机类从被加载到虚拟机内存开始到卸载出内存的生命周期有七个阶段。加载(Loa...
2018-12-20 22:23:23 239
原创 深入理解JVM虚拟机——6. 类文件结构
6.1 概述我们的计算机至今仍然只能认识0和1,所以那些老式的语言例如c/c++,编写的程序直接编译成本地机器码(Native Code),但是最近十年,虚拟机发展的越来越好,所以很多的程序语言选择与操作系统和机器指令集无关的、平台中立的格式作为程序编译后的存储格式。6.2 无关性的基石Java刚诞生时的口号是一次编写,到处运行,而与平台无关最终实现在了操作系统的应用层上:各种平台上...
2018-12-20 09:05:33 307
原创 深入理解JVM虚拟机——5. 调优实战——idea调优
序书上给了一个Eclipse 的调优例子,最后调优将启动时间降了一倍左右,但是自己用的是idea,所以就想模仿例子将自己的idea也进行调优,而idea启动是很慢的,所以调优一下也是很有必要。调优前idea版本信息IntelliJ IDEA 2018.1.5JRE: 1.8.0_152-release-1136-b39 amd64JVM: OpenJDK 64-Bit Serve...
2018-12-18 15:54:14 960
原创 深入理解JVM虚拟机——4. 虚拟机性能监控与故障处理工具
4.1 概述给一个系统定位问题时,知识,经验是关键基础,数据是依据数据包括:运行日志、异常堆栈、GC日志、线程快照、堆转储快照等。4.2 JDK的命令行工具本章将介绍bin目录下工具的一部分,主要包括用于监视虚拟机和处理的工具。4.2.1 jps:虚拟机进程状况工具jps(JVM Process Status Tool)可以列出正在运行的虚拟机进程,并显示虚拟机执行主类的名...
2018-12-17 19:41:31 244
原创 深入理解JVM虚拟机——3. 垃圾回收器与内存分配策略
3.1 概述垃圾收集(Garbage Collection GC),GC的历史比Java还要久远,1960年诞生于MIT的Lisp是第一门使用内存动态分配和垃圾收集技术的语言。而垃圾回收需要考虑三件事情。哪些内存需要回收什么时候回收如何回收Java内存的各个区域中,程序计数器,虚拟机栈,本地方法栈都是线程私有的,也就是随线程诞生或死亡,这三个区域基本在编译期就可以确定。栈帧随方法...
2018-12-17 19:40:58 230
原创 深入理解JVM虚拟机——2. Java内存区域与内存溢出异常
2.1 概述对于c/c++程序员来说,每一个new操作后面要配对delete/free操作来释放内存,很繁琐。而Java将内存控制权交给了Java虚拟机,使得程序员不需要去关心内存的内在机制,而知专注于代码本身。而这一章将介绍虚拟机是如何使用内存的。2.2 运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区 域。方法区堆虚拟机...
2018-12-17 19:40:19 221
原创 深入理解JVM虚拟机——1.走进java
Java技术体系广义上讲,运行于Java虚拟机上的所有程序以及语言都属于Java技术体系sun官方传统定义如下Java程序设计语言各种硬件平台上的Java虚拟机Calss 格式文件JavaApi类库JDK: 语言、虚拟机和Api类库统称为JDK(Java Development Kit)JRE: Api类库中JavaSE子集和Java虚拟机称为JRE(Java Runt...
2018-12-17 19:39:42 212
原创 合并k个排序链表
问题描述合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[    1->4->5,    1->3-
2018-12-03 18:24:38 203
原创 Java并发编程——线程安全性
2.1 定义当多个线程访问某个类时,不管何种调度方式,这些线程如何调度执行,在调用代码中不需要额外的同步或协同时,这个类都能表现正确的行为,这个类就是线程安全的。2.2原子性例如上一章说的,一个++操作需要进行读取-修改-写入三步,所以如果两个线程调用同一个非线程安全的函数,并且函数中有类似于a++这样的操作,则可能会出现两个线程同时读为9最后都设置为10,结果就将偏差1,也有可能出现其他不...
2018-12-02 15:37:45 279
原创 三数相加为零
问题描述给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]暴力法套三层循环,如...
2018-11-26 21:17:33 1460
原创 正则表达式匹配
问题描述给定一个字符串 (s) 和一个字符模式 §。实现支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符。‘*’ 匹配零个或多个前面的元素。匹配应该覆盖整个字符串 (s) ,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输入:s = “aa”p =...
2018-11-26 21:17:14 259
原创 最长回文子串
问题描述示例1:输入:"babad输出: “bab”注意: "aba"也是一个有效答案。示例2:输入: “cbbd”输出: “bb”1. 暴力法1.1 思想1)从最长的子串开始,遍历所有该原字符串的子串;2)每找出一个字符串,就判断该字符串是否为回文;3)子串为回文时,则找到了最长的回文子串,因此结束;反之,则继续遍历。1.2 时间复杂度遍历字符串子串:嵌套一个...
2018-11-26 21:16:02 231
原创 两个排序数组的中位数
问题描述给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。你可以假设 nums1 和 nums2 不同时为空。示例1:nums1 = [1, 3]nums2 = [2]中位数是 2.0示例2:nums1 = [1, 2]nums2 = [3, 4]中位数是 (2...
2018-11-26 21:15:19 376
原创 无重复最长字符串
问题描述给定一个字符串,找出不含有重复字符的最长子串的长度。示例1:输入: “abcabcbb”输出: 3解释: 无重复字符的最长子串是 “abc”,其长度为 3。示例2:输入: “bbbbb”输出: 1解释: 无重复字符的最长子串是 “b”,其长度为 1。示例3:输入: “pwwkew”输出: 3解释: 无重复字符的最长子串是 “wke”,其长度为 3。...
2018-11-26 21:14:48 706
原创 两数相加
问题描述给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字0之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807我的答案首先想到的是将两...
2018-11-26 21:11:51 170
原创 两数之和
问题描述给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]我的答案class Solution { public int[] twoSum(...
2018-11-26 21:11:01 155
原创 java并发编程——简介
1.1并发简介以前的计算机是串行的,也就是一条条指令顺序执行,无法同时执行多条。操作系统定义了进程为程序运行的最小单位后,便开启了并发编程的概念,线程:轻量级进程,粒度更细,在进程中定义了多个线程,每个线程都有自己的程序计数器,栈等。1.2线程优势降低成本,易维护,提升性能。1.3线程安全性简介在没有充足同步的情况下,多个线程中的操作执行顺序是不可预测的。例如下面的代码,在单线...
2018-11-07 16:30:29 218
原创 java接收图片并上传(接收)
enctype属性我们平常在使用form表单时会有一个enctype属性,其默认是application/x-www-form-urlencodedw3c对这个编码的定义是空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值,http服务器是使用ASCII编码传输数据的,其数据是按照key1=val1&key2=val2 的方式进行编码,后端request.getpar...
2018-09-20 11:45:03 6031
转载 字符流与字节流的区别
转载地址:点击打开链接字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢?实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示。下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符流的操作完成之后都不关闭输出流。范例:使用字节流不关闭执行package ...
2018-09-19 11:36:12 371
原创 Java学习——spring
spring其实来说就是一个大容器。下面就是spring的三大核心思想:ioc(控制反转):首先我们举一个没有控制反转的例子。当我们在service层调用dao层的函数时,通常都会实例化一个dao层的对象,然后通过对象来调用函数,而spring的控制反转就是将这个对象配置到框架(也就是容器)中去,这时我们需要使用这个对象是就向容器去要这个对象而不是我们主动去创建一个,也就是说这个对象的控制...
2018-08-13 10:13:35 205
原创 java学习——Struts2
什么是Struts2Struts2是一种基于MVC模式的轻量级web框架,作为三大框架之一,它本质上相当于一个servlet,在MVC模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互为什么要用Struts2我们在使用传统的servlet开发时,一个请求就要创建一个servlet,很麻烦,而Struts2将所有的请求都通过都经过一个前端控制器,在前端...
2018-07-30 17:27:20 361
原创 java学习——Hibernate
Hibernate是什么Hibernate是java三大框架之一,是用于Dao的框架也就是持久层,它是一个开源的ORM框架(ORM:Object Relational Mapping,对象关系映射),它对JDBC进行了轻量级的封装使得java开发人员使用面向对象的编程思想来操作数据库,它将POJO与数据表建立映射关系,可以自动生成sql语句,自动执行。为什么要用使用面向对象来操作数据库...
2018-07-28 12:46:32 526
原创 java学习——filter
servlet三大技术点之一的filter过滤器filter是什么简单来说就是对客户端访问资源进行过滤,符合条件的放行,不符合条件的放行,并且可以对目标资源访问前后进行逻辑处理。接口中三个方法init:代表filter对象初始化方法,filter对象创建时执行doFilter:代表filter执行过滤的核心方法,如果某资源在已经被配置的到这个filter进行过滤的话,那么每次访...
2018-07-24 16:12:58 167
原创 java学习——Listener
Listener类似于java的事件,我们可以使用Listener来监听某一事件,例如当你生日时,qq会给你发一给祝贺生日的email可以理解为我一直在监听是否到了你生日,当达到条件时触发事件,给你发送邮件也就是处理。javaEE一共有八个监听接口,用于监听不同的对象。三个域对象,ServletContext,Request,Session而我们在使用监听时,要在web.xml中进...
2018-07-22 11:41:25 258
转载 Java知识图谱(附:阿里Java学习计划)
温馨提示: 由于CSDN对图片的压缩,导致图片观看效果不理想,建议大家通过右键“在新标签页打开图片”进行观看或直接把图片下载下来观看。 JVM 1. 内存模型( 内存分为几部分? 堆溢出、栈溢出原因及实例?线上如何排查?) 2. 类加载机制 3. 垃圾回收 Java基础 什么是接口?什么是抽象类...
2018-07-20 10:12:37 295
原创 java学习
最近开始学习java,基础性的jsp和语法之类的就不用写了很快就能学会,这篇主要写一下基础的三层架构,首先说一下java后台的目录结构。首先是传统的三层架构首先是servlet层,这层主要前端页面进行交互,右键new选择servlet下面的create选项,如果选中了创建后会在当前servlet文件里创建一个注解这个name就是你在访问时的名称,但是如果你不勾选这个...
2018-07-20 09:38:41 221
原创 FastAdmin使用——后台篇
前面的博客讲了fastadmin在创建页面后前端是如何布局和获取数据的(FastAdmin使用——前端篇),看一下后台如何操作数据的,后台的controller层来操作数据,所有的controller都会自动继承基类backend,我们看一下上次形成的例子的Student.php文件<?phpnamespace app\admin\controller\student;use ...
2018-07-19 11:05:46 22866 1
原创 FastAdmin使用——前端篇
我们在使用命令行创建一个crud后(关于如何创建可以看我之前写的博客FastAdmin使用——基本使用篇)会得到一个页面,我们来分析一下这个页面和代码。首先我们直接操作数据库在对应数据表中添加几个数据看一下页面如何显示。这里添加了三个数据,我们刷新一下页面看一下效果。我们可以看到三条数据都已显示,那么我们来分析一下它是如何形成的找到application\admin\vie...
2018-07-08 11:32:03 42562 3
原创 FastAdmin使用——基本使用篇
最近用FastAdmin做了一个项目,总结一下其大概的使用方法以及容易出现的问题。 FastAdmin基于tp5以及其他前端组件的二次开发的框架,十分简洁高效,根据官方文档进行下载安装即可。 下载官方安装包之后,建立一个虚拟主机定位到文件夹的public目录下,打开网页进入就会进入这个安装界面。 然后我们访问后台就可以看到我们的demo了,并且我们...
2018-06-27 20:35:25 37943 5
原创 PHPmemcache安装以及使用
安装: 下载安装包,下载后解压缩到自己指定的文件夹 文件夹中会有一个memcached.exe和一个dll的文件,此时进入cmd命令符界面,用cd命令进入解压缩的中的那个文件夹 此时输入命令memcached.exe -d install 就会安装memcached到你的电脑中 输入命令memcached.exe -d start 则会开启m...
2018-06-20 21:03:31 1376
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人