自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

knight的博客

该博客保存看书的经历与收获,供于学习

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

原创 hadoop安装

hadoop集群安装

2023-03-13 17:11:09 78

原创 hadoop集群

hadoop架构说明

2023-03-13 17:08:25 189

原创 Doris

Doris数据库,列式数据库

2023-03-13 17:05:31 157

原创 设计模式-建造者模式

建造者就是装修房子,直接上才艺。这里拿代码直接跑:GitHub我老婆开始指挥了,启动类public class Client { public static void main(String[] args) { // 首先我要自己知道我有房子要做事了,但是我要怎么做,还要看老婆指挥 Decorator decorator = new DecoratorOne(); // 然后我老婆就要开始逼逼赖赖,房子还是他说了算,房子给他了

2021-07-22 15:15:59 88

原创 设计模式-单例-工厂

设计原则一句话归纳目的开闭原则对扩展开放,对修改关闭降低维护带来的新风险依赖倒置原则高层不应该依赖低层,要面向接口编程更利于代码结构的升级扩展单一职责原则一个类只干一件事,实现类要单一便于理解,提高代码的可读性接口隔离原则一个接口只干一件事,接口要精简单一功能解耦,高聚合、低耦合迪米特法则不该知道的不要知道,一个类应该保持对其它对象最少的了解,降低耦合度只和朋友交流,不和陌生人说话,减少代码臃肿里氏替换原则不要破坏继承体系,子类重写方...

2021-07-22 09:59:00 94

原创 常用算法-顺序排序

定义排序就是根据某一个标准,对某一组内容进行某一种规定进行顺序排列。分类顺序排序使用一对嵌套循环进行排序,n2n^2n2的时间复杂度。选择排序插入排序冒泡排序对数排序快速排序归并排序选择排序通过反复将某一特定的值放到它在列表中的最终已排序位置。选择排序策略扫描整个列表,找到最小值。最小值放到第一位扫描除了第一个值的其他值,找到最小值。最小值放到第二位以此类推选择排序代码实现 /** * data 待排序列表 * min 从0开始 * index

2021-05-27 16:24:06 3511

原创 常用算法-查找

定义查找就是在某个项目群中,找到其中想要的项目,或者说确定想要的项目是否在该项目群中。线性查找从头到尾一次比较每一个值,知道找到目标值。public static <T extends Comparable<? super T>> boolean linearSearch( T[] data, int min, int max, T target){ int index = min; boolean found = false; while(!found &am

2021-05-25 15:23:38 74

原创 JAVA并发编程-底层机制和原理

代码执行过程java代码首先会被javac编译成java字节码,然后通过class loader(类加载器)加载到JVM里,然后通过执行引擎将字节码转为汇编指令在CPU上执行。volatile它保证了在多核CPU中,共享变量的可见性。它比synchronized更轻量,在JAVA语言规范第三版中有明确说明,允许线程访问共享变量,但线程应该有排它锁来单独获取这个变量。volatile在某些情况比排它锁更方便,如果某个变量被声明为volatile,那么JVM能保证所有线程看到的该变量值一样。synchr

2021-05-11 17:03:41 89

原创 数据结构-栈

定义栈的元素是按照后进先出(LIFO)的顺序,通常我们把栈的末端叫做栈顶,我们对它的添加删除都是在栈顶操作。一般我们使用栈的时候,大部分都是用它来颠倒顺序。术语压入(push):添加一个元素都栈顶弹出(pop):从栈顶移出一个元素查看(peek):查看栈顶元素非空(isEmpty):确定当前栈是否为空大小(size):当前栈中元素个数栈接口这里定义一些操作,具体实现由类完成。public interface StackADT<T>{ public void push(T

2021-05-08 15:35:08 56

原创 数据结构-算法分析

效率分析时间效率假设:洗一个盘子需要30秒,烘干一个盘子也需要30秒,那么洗完n个盘子加烘干需要多少分钟?Tn个盘子 = n x (30秒洗+30秒烘干) = 60n 秒用函数表达就是:f(x) = 60x又假设在洗一个盘子时,总会溅水到之前的盘子上,也就是要烘干之前的所有盘子。每洗一个盘子30秒,花30秒烘干最后一个盘子,花30x2秒烘干倒数第二个盘子,花费90秒烘干倒数第三个盘子,以此类推。Tn = n x(30秒洗) + (∑i=1n(i×30))\displaystyle \left(

2021-04-27 17:57:10 144

原创 Spring Cloud学习过程二

Spring Cloud HystrixHystrix也是基于Netflix,它具有服务降级,服务熔断,线程隔离,请求缓存,请求合并以及服务监控等功能。使用步骤:1.引用<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId></dependency>

2021-04-27 10:49:50 120 2

原创 Spring Cloud学习过程一

Spring Cloud 在服务治理中为我们做了一层抽象,方便我们集成各种服务治理组件。如:eureka,consul,zookeeper等。Spring Cloud Eureka实现步骤:1.创建项目,引用<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artif

2021-04-23 14:51:33 115

原创 JDK8-05.Stream

流之前已经提到过流,这里进行详细的说明。其实流通俗来时就是一个更加高级的迭代器,只是在迭代的过程中,做了我们想做的事。之前的写法是一个foreach然后在括号里些一堆我们的逻辑,比如找最大值,最小值,合并等等等操作,而流就是声明式的。示例: // JDK8 之前 List<Dish> lowCaloricDishes = new ArrayList<>(); // 1 遍历 筛选卡路里低于400的的数据进行合并 for(Dish d: menu){

2021-03-09 11:21:02 116

原创 JDK8-04.Lambda

Lambda它类似于匿名函数,只是没有方法名。其他都有,比如参数列表,函数主体,返回值,包括异常。基本语法主体就是返回了一个int类型。以上语法的之前版本: Comparator<Apple> byWeight = new Comparator<Apple>() { public int compare(Apple a1, Apple a2) { return a1.getWeight().compareTo(a2.getWeig

2021-02-24 16:33:09 56

原创 JDK8-03.行为参数化

行为参数化大概意思就是,把具体行为作为参数,用于稍后执行,这个稍后就是在需要的时候才去执行。就像之前谓词例子,其中有两个判断颜色和重量的并返回true或false,这个判断并返回就是其行为。 // 这是一个父接口 public interface ApplePredicate{ boolean test (Apple apple); } // 实现1 public class AppleHeavyWeightPredicate implements AppleP

2021-02-24 10:58:03 88

原创 JDK8-02.Lambda和流

继上章结尾的代码,在Lamda中可写成:filterApples(inventory, (Apple a) -> "green".equals(a.getColor()) ); //或者filterApples(inventory, (Apple a) -> a.getWeight() > 150 ); //甚至filterApples(inventory, (Apple a) -> a.getWeight() < 80 || "brown".equals(a.get

2021-02-23 11:37:34 106

原创 JDK8-01.名词理解

在JDK8中流(java.util.stream)我认为是其根本,也就是说一切的操作都基于流。流:映射到生活中我们可以理解为流水线,比如起床,刷牙,洗脸虽然不太严谨,也可以说明部分问题。Stream在使用过程中,可以看成这是一个很厉害的迭代器,至少具有这样的功能,而且操作流可以不用我们定义线程是做并行处理,只需要使用对应的方法即可。行为参数化:听起来比较抽象,意思就是把你要做的事情当成一个参数传递给某个方法。函数式编程:究其根本即是可以将我们的代码传递给方法且没有可共享的可变数据。一等公民:值。如

2021-02-23 10:40:04 120 1

原创 mongo常用操作命令

连接方式:1.工具连接,百度下载。 如:Robomongo2.命令连接。方式1:mongo mongodb://username:pwd@ip:port/db.如: mongo mongodb://hyb:[email protected]:27017/hyb方式2:a. mongo 进入后默认到test库b. use db 如: use hybc. db.auth...

2019-07-09 15:10:59 491

原创 Stack/Set/Map/Queue浅析

栈“栈”通常是表示“后进先出”的容器。就好比在盘子里叠入披萨,最后放进去的总是在最上面。ListkedList具有能直接实现栈的所有功能的方法,因此可以直接将LinkedList当作栈使用。不过,有时候一个真正的“栈”更能把事情说明白:import java.util.LinkedList;public class Stack<T>{ private LinkedList<T> stor

2017-07-21 15:36:52 345

原创 详解List、Iterator

ListList可以将元素维护在特定的序列中。List接口在Collection的基础上添加了大量的方法,使得可以在List的中间插入和移除元素。两种基本的List类型:1.ArrayList,它长于随机访问元素,但在List的中间插入和移除元素较慢。2.LinkedList,它通过代价比较低的在List中间进行的插入和删除操作,提供了优化的顺序访问。LinkedList在随机访问方面比较慢,但

2017-07-20 14:26:03 562

原创 浅析java中的集合类(容器)

泛型和类型安全的容器在javaSE5之前,我们主要考虑的问题就是编译器允许你向容器插入不正确的类型。例如在一个apple对象的容器中,插入了orange。正常情况下,编译器会发出警告,因为没有使用泛型。我们可以使用javaSE5中的注解特性来取消警告。class Apple{ private static long counter; private final long id =

2017-07-19 14:03:26 209

原创 清理:终结处理和垃圾回收

GC的原理通常我们在使用一个对象后就会对其“弃之不顾”,但是这样并非是安全的。当然,java有GC负责回收无用对象占据的内存资源。但也有特殊情况:假如你的对象活的了一块“特殊”的内存区域,由于GC只知道释放那些经由new分配的内存,所以它不知道该如何释放该对象的这块“特殊”内存。为了解决这样的情况,java允许在类中定义一个名为finalize()的方法。finalize的原理它的工作原理“假定”

2017-07-18 13:06:34 393

原创 JAVA学习过程初始化和清理

用构造器确保初始化初始化和清理是涉及安全的两个问题。在java中引入了构造器的概念。并且额外的提供了GC(垃圾回收器)。可以假想为编写的每个类都定义了一个初始化方法。该方法的名称提醒自己在使用其对象之前,应该首先调用初始化方法,然而这同时意味着用户必须记得自己去调用此方法。在java中,通过提供构造器,类的设计者可确保每个对象都会得到初始化。创建对象时,如果其类具有构造器,java就会在用户有能

2017-04-10 16:20:47 212

空空如也

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

TA关注的人

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