自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小冷在努力~

就像相信每一个人都是从傻逼一步一步的走来一样 的 相信自己

  • 博客(151)
  • 资源 (2)
  • 收藏
  • 关注

原创 idea RunDashboard窗口配置

打开Run Dashboard (View-》Tool Windows-》Run Dashboard)如果上述的选项里没有Run Dashboard,可以在工程目录下找.idea文件夹下的workspace.xml,在其中增加如下组件<component name="RunDashboard"> <option name="configurationTypes"> <set> <option value="SpringBo...

2022-02-10 19:32:59 297

原创 JAVA基础数据结构

StringString类用final修饰,不能被继承。字符串存储到字节数组里面,字节数组也被final修饰,也就是String一经赋值,就不能再被修改。像replace等修改接口,也是返回新的String实例对象。ArrayList数组数据结构。数据初始容量是10,并用size记录当前数组个数。当添加的数据超过数据容量后,会按照当前数组个数的1/2进行扩展容量,通过Arrays.copyof生成新的数组。ArrayList有个modCount修改次数属性,当进行增加..

2022-01-12 19:45:28 337

原创 软件工程理论

产品策划:需求调研、需求分析、原型设计、评审等。这里业界定义了一些实施方式: 像需求分析时可以用到用户故事地图;像需求优先级排序时可以用到四象限法则(重要、紧急)、性价比(商业价值/开发量)等 MVP:最小可行性产品。 决定不做什么要比做什么重要软件设计:又分概要设计和详细设计。 概要设计:又可称为架构设计,关注的是软件结构间的交互,强调的是低耦合,高内聚,好的软件设计要求具备:可伸缩性、高可用、可管理性。 现在业界普遍推崇的是领域驱动设计-DDD,定义模块上下文+基...

2022-01-12 13:31:35 648

原创 JVM优化

简介JVM优化主要是内存分配优化和GC策略优化。内存分配优化主要是减少堆内存实例对象分配的个数、减少堆内存地址竞争的激烈程度;GC策略优化主要是减少垃圾回收的时间、减少对服务的中断时间等。内存分配在进行内存分配时,我们期望减少在堆上实例对象的分配次数。怎么做呢?对象实例分配过程Eden区是连续的内存空间,因此在其上分配内存极快。当Eden区满的时候,会把还活着的对象往一个幸存区放,然后执行一次Minor GC(暂停其他所有线程工作),Eden区和一个幸存区会被清空,.

2022-01-10 14:00:52 386

原创 类实例对象创建过程+双亲委派机制

类实例对象创建过程: 1、类加载器加载class文件:解析class文件,通过JVM安全校验,在方法区(存储全局变量,像static变量、常量池) 分配内存空间,执行类构造器<clinit>()方法:执行static语句块、类变量赋值 2、反射生成实例对象:执行实例对象构造方法 注意: 1、类构造器方法比着实例对象构造器方法先执行 2、如果类存在父类,则该类的初始化顺序: 父类的静态语句块,子类的静态语句块,父类的类变量赋值、代码块、构造器,...

2022-01-07 18:45:17 294

原创 JAVA三种线程锁

内置锁:synchriozed,关键字,同步代码块,object.wait和object.notify/notifyall显示锁:Lock,JUC包下的类,同步代码块,condition.await和condition.signal/signalall原子类:Atomic,JUC包下的类,原理CAS,注意ABA问题Lock接口方法有lock、unlock、trylock、newConditiontry { lock.lock(); System.out.println( lock....

2022-01-07 17:28:10 3101

原创 JAVA8新特性

Lambdalambda允许函数作为参数传递进方法中。像匿名内部类,就可以通过lambda表达式来表示。@FunctionalInterface//要求接口有且只有一个未实现的方法,可以有其他的默认方法interface AppleFilter {boolean filter(AppleEntity appleEntity,String color,int weight);}List<AppleEntity> eeples = chooseApple(list,(app...

2022-01-06 20:04:55 1278

原创 线程工作原理

1、当线程用到共享数据时,会从主内存读取共享数据,在线程工作内存生成副本对象(read、load)。如果共享数据被修改了,修改后的值会立即回写到主内存中(store、write)。2、线程每次引用共享数据时,都会从主内存读取数据,这个时候读取到的数据可能就是脏数据。问题:在线程工作内存生成的副本对象算不算是线程的局部变量?为什么线程在第一次加载共享数据到工作内存后,后面使用共享数据还会再去读取?共享数据在线程工作内存生成的副本不是线程的局部变量。局部变量是线程栈私有的,放到线程栈里面了,而生成的副本

2022-01-06 18:34:23 2876

原创 线程池源码分析

hashSet底层是用的hashMap存放的数据,由于key是无序的,hashmap也是无序的ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, Blockin...

2022-01-06 18:33:08 177

原创 JAVA中的两种动态代理

什么叫代理:通过代理对象来访问真实对象的方法。代理商代理厂家产品。完成代理,需要两步骤:建立代理对象与真实对象的代理关系,返回代理对象,代理对象类型是真实对象类型。 实现代理对象调用真实对象方法的代理逻辑:在调用真实方法前,或后,或异常情况下的一些处理代理技术有两种JDK动态代理:InvocationHandler CGLIB动态代理:第三方包,MethodInterceptor应用场景:事务管理 Controller通知,控制器通知 Spring 缓存管理器JDK动态代理

2022-01-05 19:34:43 276

原创 redis学习总结

Redis能够存储的数据有字符串和序列化后的数据,一个java对象想存储到redis,需要转成Json字符串或序列化才行 Redis是NOsql,通过key-value的形式进行数据存储,结构松散,不支持聚合计算 Redis数据主要存放到内存中,又是key-value的形式,所以查询速度快 Redis由于数据存放到内存中,如果服务器宕机,存在丢失数据的风险 Redis的事务能力、安全性、聚合计算性、可扩展性远不及数据库Redis相关JAVA API的jar包Redis.clients,没有提供

2022-01-03 15:23:15 594

原创 REST风格网站+http请求客户端工具包对比

Rest风格网站Rest风格要求URL中不能存在动词,一个URL对应一种资源名,请求方式GET、POST、DELETE、PUT是对这种资源的操作。Spring mvc支持REST风格的注解:@RestController表示期望控制器采用REST风格 @GetMapping、@PostMapping、@DeleteMapping等,都是REST风格的注解 @ResponseStatus(HttpStatus.CREATED)主要作用就是为了改变Http响应的状态码http请求客户端工具包

2022-01-03 15:21:51 542

原创 Spring缓存管理器

通过spring缓存管理器-CacheManger,能够实现:查找数据时,先从缓存查找,如果缓存查找不到再调用方法,从数据库查询,使用@Cacheable缓存注解开启这个功能,是在方法级别进行注解 将方法返回的数据更新到缓存,使用@CachePut缓存注解开启这个功能,是在方法级别进行注解 移除缓存中的数据,使用@CacheEvict缓存注解开启这个功能,是在方法级别进行注解。默认情况下是在方法执行后删除缓存数据,也可以设置成执行方法前删除。@EnableCaching开启缓存CacheMan

2022-01-03 15:18:30 499

原创 Spring mvc原理介绍

Spring ioc容器+spring mvc容器初始化过程Tomcat在启动的过程中,生成servletContext对象,然后通知给ServletContextLister接口下的所有实现类,其中,spring的ContextLoaderListener在接收到servletcontext对象后,就会开始spring ioc容器 - webapplicationcontext 创建,并保存到servletcontext中。Spring ioc是spring根容器:servletContext.se.

2022-01-03 15:17:33 119

原创 Spring事务管理

原理:使用的AOP编程,动态代理实现的。@Controller、@Service注解的类在IOC容器中以代理类的形式存在。当去执行业务方法时,放到了代理逻辑算法模板中执行。Jdbc编程一般是先获取数据库连接,执行SQL,提交事务,关闭连接,如果执行业务上出现异常,还要回滚事务。Jdbc编程存在很多的冗余代码,而且业务代码结构也不很明朗 通过xml配置或注解@Transactional和@EnableTransactionManagent开启事务管理 事务失效: 业务层方法如果是非public方法或

2022-01-03 15:16:09 227

原创 Spring AOP-面向切面编程

对于Spring AOP – 面向切面编程,底层是通过动态代理的方式,我更倾向于把代理逻辑看成是模板算法设计模式。在代理逻辑方法中,定义出了目标方法在执行前,或者执行后、或执行异常、或环绕通知、还有返回通知这5个方法。像事务管理,就是AOP的具体应用,开发人员只需要关注自己写的SQL是否正确就行,像获取数据库连接,释放数据库连接,业务处理异常后回滚事务,只需要交给事务管理器处理就行了,事务管理就是基于AOP编程实现的。AOP相关概念使用@EnableAspectJAutoProxy开启AOP代理

2022-01-03 15:14:28 343

原创 Spring IOC介绍

Spring IOC-控制反转,依赖注入原理:按照正向思维,用到某个实例对象,需要主动去创建。IOC采用反向思维的方式,当某个对象需要依赖另外一个对象时,通过注解声明的方式IOC自动给注入进来。在什么时候生成IOC容器Tomcat在启动的过程中,生成servletContext对象,会去通知ServletContextLister监听器下的所有实现类,其中,spring的ContextLoaderListener监听器在收到通知后,就会开始spring ioc容器 - webapplicatio

2022-01-03 15:12:57 355

原创 Java常用设计模式

功能性代码:模板算法,业务逻辑就是模板算法中的一步,开发人员只需要关注业务实现,做到了高内聚,低耦合。业务性代码:业务实现逻辑NoSql:列存储,key-value的map数据结构形式,结构松散,一般聚合计算能力不强。数据库:行存储,list的集合数据结构形式,查询需要循环遍历Spring boot:约定优于配置,存在很多默认的配置,简化依赖配置Java反射什么是反射:反射就是把java类的各种成分拆分成一个个的java对象,像class对象、构造器对象、属性对象、方法对象。可以

2022-01-03 15:11:00 280

原创 Tomcat创建Servlet容器

Tomcat启动简单介绍Tomcat如何创建servlet容器的??servlet是处理http请求的Tomcat如何接收请求,并找到对应的servlet处理??Tomcat访问应用,一般的配置是<Context path="/projectOne" docBase="D:\projects\projectOne" reloadable="true" />Path对应访问应用 的url,docBase对应物理存储路径。在webapps下的应用可以省略context配置,默

2022-01-03 15:09:35 1010

原创 Servlet规范

Servlet规范简单理解,由两部分组成:servlet对象+servlet容器。Servlet对象是处理具体的http请求的,servlet容器是根据请求找到对应的servlet对象。Servletcontext表示servlet容器环境上下文。Servletcontext存放的有tomcat下的web.xml和应用下的web.xml解析结果,还有servlet、filter、listener等对象,像spring IOC容器、spring mvc容器也在servletcontext存放着。Servl

2022-01-03 15:05:59 1030

原创 tomcat如何把请求转发给spring容器处理

在StandardWrapperValve处理过程中,会做两件事:一件是执行ApplicationFilterChain.doFilter接口-过滤器执行;一件是执行业务逻辑接口servlet.service()。spring下有个Servlet的子类FrameworkServlet,重写了service接口。所以当tomcat执行servlet.service()接口时,其实调用的是FrameworkServlet.service接口。问题一:tomcat如何生成FrameworkServlet类的

2021-12-07 19:30:01 534

原创 Tomcat源码分析

tomcat启动过程分析1、在bootstrap.start()方法里完成tomcat启动2、bootstrap.start()启动过程:创建一个catalina实例,并执行catalina实例的start方法。 1、执行init,创建一个catalina对象实例。 1、初始化类加载器, 2、通过类加载器+反射机制,加载org.apache.catalina.startup.Catalina类对象,并创建实例对象catalinaDaemon。 (...

2021-12-06 09:51:44 744

原创 AOP面向切面编程学习总结

spring的三大核心:控制反转、依赖注入、面向切面编程。控制反转:对象A依赖对象B,如果收到把对象B给new出来,会使代码高度耦合,产生硬编码。为了避免这种情况,通过注解或配置XML将bean托管给spring管理。由spring进行bean实例的创建依赖注入:当spring把对象B创建出来后,需要设置到对象A中,这一过程称为依赖注入面向切面编程:什么是面向切面编程?在运行时,动态地

2021-12-06 09:42:13 76

原创 Angular学习总结-入门篇

目录一、Angular介绍二、 学习Angular必备基础三、 Angular环境搭建四、 Angular创建项目五、 Angular环境搭建以及创建项目的时候可能遇到的错误六、Angular开发工具介绍Angular项目结构介绍创建组件/服务angular语法变量ngFor循环+ngIf判断+ngSwitch动态修改样式ngClass+ngStyle双向数据绑定管道(Pipe)获取dom节点ng...

2021-12-06 09:40:13 5655

原创 springboot+mybatis+mockito单元测试

springboot、mybatis这里不做详细介绍,重点介绍一下mockito是什么,以及怎么与springboot、mybatis集成。mockito是什么?举个简单例子:当service层通过调用dao层接口获取数据,然后进行数据处理。在实际做单元测试时,dao层的数据是从数据库来的,我们想自己构造一些数据跑一下service层的业务逻辑,这个时候就需要将从数据库查询的时候替换为自己构造的数据,也就是service层调用的dao层接口返回的数据需要替换为自己构造的数据,那怎么替换呢?这个时候moc

2021-11-09 19:32:28 2143

原创 Scrum敏捷转型指南学习

Scrum概述介绍 – 新产品从无有Scrum(不仅仅适用于软件开发)是一种用于开发创新产品和服务的敏捷方式(思路):首先建立产品列表:一个按优先级排列的、成功开发产品所需的特性及其他功能的列表,不仅仅是需求方面的,任何影响到产品交付的风险项是不是都应该考虑进去?? 制定里程碑:将整体的产品拆分成小的模块,分而治之 制定迭代计划:在每个迭代中,明确必需要完成(设计、构建、测试)、迭代结束可用于验收的工作。每个迭代能够自组织 迭代评审(迭代总结):团队与利益干系人一起评审已经完成的特性。团队总结

2021-01-17 17:21:52 589

原创 hadoop原理学习记录

1.hdfs:靠谱:有备份写入hdfs系统时,生成一个校验和,传输数据时再生成一个校验和,传输完成时又生成一个校验和。对比上传前后校验和。每个datanote运行一个守护线程datablockscanner数据块扫描器。2.namenode刚启动工作过程:      进入安全模式,加载fsimage和edit日志(镜像和编辑日志)。如果满足最小副本条件(99.9%的块存在一个副本,...

2018-11-06 10:41:14 153

原创 hdfs运维指令

配额管理 Hdfs dfsadmin条件:对目录进行设置 值必须时正整数 具有管理员权限2、目录配额控制目录所有文件/文件夹的个数,当前设置的目录也算是1个,所以1表示当前目录为空目录Hdfs dfsadmin –setQuota 1 /user/data   //设置/usr/data目录下的配额为1,即/usr/data目录下不能在创建文件或文件夹Hdfs d...

2018-11-06 10:38:21 1141

转载 五种大数据处理架构

该文章转载自https://blog.csdn.net/wjandy0211/article/details/78802044。作者对当前大数据框架特点分析的很透彻清晰。现对该文章内容做一遍复读。如下:大数据是收集、整理、处理大容量数据集,并从中获得见解所需的非传统战略和技术的总称。虽然处理数据所需的计算能力或存储容量早已超过一台计算机的上限,但这种计算类型的普遍性、规模,以及价值在最近几年才...

2018-08-04 11:20:48 3580

原创 HDFS性能优化

分布式文件系统是在多个节点上做的数据文件的部署,所以,当多个节点之间要做数据的传输通信时,就要有一个文件目录的管理者和网络带宽的使用。当namenode的可使用的内存空间和网络带宽可使用率非常大时,实现节点之间的数据快速传输通信是非常可观的。这里,就对如何提高hdfs性能做如下优化介绍。 1. Hdfs存档/归档,减少namenode内存空间的使用 存档是用来备份的时候标识用的,说...

2017-09-10 15:34:33 6161

原创 HDFS启动过程了解

Namenode目录:元数据(name,permission,block,replication),没有dn的位置当系统启动并加载fsimage完成之后(这个时候元数据都加载到内存中),dn向namenode报告自己的块列表,这个时候形成数据块->datanode列表的映射,数据块到datanode列表的映射关系在namenode内存中维护。在实际的应用中,数据块到datanode的对应关系经

2017-09-10 15:26:06 336

原创 HDFS文件创建和存储

在对上篇hdfs网络拓扑与机架感知                              有了了解之后,现在对HDFS文件创建和存储过程做一个基础的介绍。HDFS在文件创建和存储的过程中,需要考虑带宽和可靠性。如果在hdfs集群中选出datanode列表作为文件的存储节点呢?上篇已经介绍说了通过机架感知策略实现的。所以,在接下来的文件创建和存储过程中,已经拿到了文件存储的datanode列

2017-09-10 15:23:37 5116

原创 hdfs网络拓扑与机架感知

在了解hdfs创建文件之前,需要对hdfs网络拓扑有一个浅显的认知,继而对机架感知做一个简单的介绍。在海量数据处理中,其主要限制因素是节点之间数据的传输速率-带宽稀缺。这里的想法是将两个节点间的距离作为带宽的衡量标准。Hadoop采用一个简单的方法:把网络看作一棵树,两个节点间的距离是它们到最近共同祖先的距离总和。该树中的层次是没有预先设定的,但是相对于数据中心、机架、正在运行的节点,通常

2017-09-10 15:17:12 1440

原创 2.7.2hadoop分布式安装

本篇博客对hadoop分布式安装做一下说明:安装包JDK安装hadoop安装ssh安全登录关闭防火墙注意事项安装包jdk-8u181-linux-x64.tar.gzhadoop-2.7.7.tar.gzJDK安装1)      解压:Tar –xzvf  jdk-8u181-linux-x64.tar.gzjdk包重命名为jdk83)   ...

2017-09-05 11:17:11 270

原创 AOP数据库操作回滚配置

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.sprin

2017-08-22 19:24:32 1062

原创 AOP面向切面编程

spring的三大核心:控制反转、依赖注入、面向切面编程。控制反转:对象A依赖对象B,如果收到把对象B给new出来,会使代码高度耦合,产生硬编码。为了避免这种情况,通过注解或配置XML将bean托管给spring管理。由spring进行bean实例的创建依赖注入:当spring把对象B创建出来后,需要设置到对象A中,这一过程称为依赖注入面向切面编程:什么是面向切面编程?在运行时,动态地

2017-08-22 19:16:33 224

原创 oracle多个实例创建

1. 修改ORACLE用户环境变量vi /home/oracle/.bash_profile ,修改export LANG=EN_US   同时生效。 source .bash_profile2. 创建数据库文件夹/oradata为数据库表空间的存放路径/oradata/system 为系统表空间和在线日志的存放路径/oradata/tbs01为表空间数据文件的存放路径。将

2017-07-05 21:02:56 2343

原创 RPC学习总结

因为hadoop实现的集群之间的数据是通过网络来进行传输的,hadoop的整个体系结构就是构建在RPC之上的(见org.apache.hadoop.ipc)。这里对RPC做一个浅显的学习总结RPC——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模

2017-04-15 19:17:07 341

原创 MapReduce学习总结

MapReduce是一种分布式计算框架,又称并行计算框架,主要用于搜索领域,解决海量数据的计算问题。MR由两个阶段组成:Map和Reduce,这里用户只需要实现map()和reduce()两个函数,即可实现分布式计算,听起来是不是感觉很简单的样子如果要对MR有更深入的了解,就需要对MR的执行流程有更深入的了解了。这里先对MR执行流程做一个理论的介绍,之后举例论证这些流程,最后代码实现。MR

2017-04-15 19:03:57 5307

原创 HDFS学习总结

这里主要介绍HDFS的shell操作指令,关于HDFS理论知识,请参看hadoop基础理论知识章节HDFS的shell操作指令HDFS对文件操作些许JAVA  API1.读取HDFS系统下的文件内容2.从linux上传文件到HDFS3.从HDFS下载文件到linux4.删除HDFS文件5.浏览HDFS文件夹6.创建HDFS文件夹

2017-04-15 17:57:29 797

oracle数据库备份恢复

该文档详细的整合了oracle数据库备份,恢复的指令操作,并进行了详细的描述

2017-11-15

计算机网络第五版

该资源是计算机网络第一节的PPT,讲解的是有关计算机网络和主机的整体认识和如何通信这一块,是谢希仁本人写的课件,很有参考价值。

2015-05-30

空空如也

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

TA关注的人

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