自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vertica基于UDTF中文分词器建立全文索引

vertica当我们需要查询的列字段过长时候(例如long varchar(1048576)),会导致查询速度过慢,所以这个时候我们可以建立全文索引,将字段长度缩小(varchar(128)) ,提高查询速度。

2023-05-06 17:41:04 184

原创 java毫秒转日期超出当月日期问题(例如5月1号变为4月31号)

因为 SimpleDateFormat 没有对日期的合法性进行校验,直接将日期进行格式化,导致出现了不合法的日期。使用 DateTimeFormatter 类来格式化日期,它可以自动处理日期的合法性。

2023-05-06 10:26:48 200

原创 java:Kafka生产者推送数据与消费者接收数据(参数配置以及案例)

java kafka 生产者消费者配置 以及参考

2023-04-28 16:08:14 5716 2

原创 ES6新特性

目录简介1.let变量申明以及声明特性声明变量特点2.const声明常量以及特性声明常量特点:3.ES6模板字符串声明特点4.对象简化的写法5.ES6中箭头函数以及声明特点ES6中允许使用箭头(=>)定义函数6.ES6函数参数的默认值设置ES6允许给函数参数赋值初始值与解构赋值结合7.ES6的rest参数8.ES6的扩展运算符9.ES6的Symbol 的介绍与创建特点创建SymbolSymbol的内置值10.ES6的迭代器(Iterator)11.ES6生成器12.ES6 Promisecatch13

2021-08-09 15:16:20 151

原创 第十一章 持有对象(容器)

此文章参考于Thinking in java 虽然讲的基本知识,但是我认为该书不是很适合初学者,此文章是整理的知识点比较适合有点基础的朋友。不想停在表面,想了解为什么的朋友可以看看下面的文章ArrayListLinkedListHashSetHashMapTreeMapLinkedHashMap目录简介泛型和类型安全的容器基本概念添加一组元素容器的打印List迭代器StackSet和MapMap简介如果一个程序只包含固定数量的且其声明周期都是已知的对象,那么这是一个非常简单的程序通常,

2020-12-08 16:50:09 84

原创 从底层源码认知Stack

目录简介继承体系构造方法Push()addElement()peek()pop()empty()search(Object o)总结简介Stack被称为“栈”,通常是指后进先出的容器。LinkedList具有能够实现栈的所有功能,因此可以使用LinkedList直接作为栈,但是,有时候一个真正的“栈”更好。继承体系Stack继承Vectorpublicclass Stack<E> extends Vector<E>构造方法构造方法只有一个 且里面是空的。 pu

2020-12-07 18:56:33 158

原创 第十章 内部类

目录简介创建内部类链接到外部类使用.this与.new内部类与向上转型在方法和作用域内的内部类匿名内部类简介可以将一个类的定义放在另一个类的定义内部,这就是内部类。内部类是一种非常有用的特性,因为它允许你把一些逻辑相关的类组织在一起,并控制位于内部的类的可视性。最初,内部内看起来就像是一种代码隐藏机制:将类置于其他类的内部,但,内部内的作用远不止如此,它了解外围类,并能与之通信;并且使用内部内一般会使代码更加清晰。下面我们来了解下内部类:创建内部类首先看如下代码//外部类不能直接访问非静态内

2020-12-06 16:26:23 158

原创 第九章 接口

目录简介抽象类和抽象方法抽象类特点接口完全解耦java中的多重继承通过继承来扩展接口组合接口时候的名字冲突接口中的域嵌套接口接口的特点总结简介接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。首先我们先了解以下抽象类,它是普通的类与接口之间的一种中庸之道。抽象类和抽象方法java中提供了一个abstract关键字,如下叫做抽象方法abstract void f();这种方法是不完整的,仅有声明没有实体。包含抽象方法的类叫做抽象类。如果一个类包含一个或多个抽象方法,该类必须被设定

2020-12-03 18:15:29 127

原创 第八章 多态

目录简介再论向上转型构造器和多态构造器的调运顺序简介在面向对象的程序设计语言中,多态是继数据抽象和继承之后的第三种基本特征多态通过分离做什么和怎么做,从另一角度将接口和实现分离开来。多态不但能改善代码的组织结构和可读性,还能够创建可扩展的程序。第七章我们知道继承允许对象视为它自己本身的类型或其基类型来加以处理,多态方法调用允许一种类型表现出与其他相似类型之间的区别,只要它们是从同一基类导出而来再论向上转型构造器和多态通常,构造器不同于其他种类的方法,涉及到多态时仍是如此。尽管构造器不具有多态性

2020-12-02 18:33:41 141

原创 JVM

此篇文章是LZ看视频总结的一点关于JVM的知识点,有兴趣的小伙伴可以了解一下:https://www.bilibili.com/video/BV1vE411D7KE?p=14目录简介类装载器方法区字符串常量池放在方法区?堆java本地方法栈java虚拟机栈程序计数器GC简介首先熟悉下JVM体系结构类装载器由图可见,class字节码先通过ClassLoader加载并初始化当JVM启动的时候,Java开始使用如下三种类型的类加载器:JVM自带的加载器:启动类加载器(Bootstrap cl

2020-12-01 16:10:16 104

原创 第七章 复用类

目录简介组合语法简介复用代码是java众多引人注目的功能之一。但要像成为极具革命性的语言,仅仅能够复制代码并对之加以改革是不够的,它嗨必须能够做更多的事情怎么进行复用,java中主要是两种方法–组合和继承组合:只需要在性的类中产生现有类的对象。由于新的类是由现有类的对象所组成,所有这种方法称为组合。该方法只是复用现有程序代码的功能,而非它的形式。继承:它按照现有类的类型来创建新类。无需改变现有类的形式,采用现有类的形式并在其中添加新代码。这种神奇的方式叫做继承。继承是面向对象程序设计的基石之一。

2020-11-30 16:28:33 156

原创 第六章 访问权限控制

目录简介包:库单元代码组织什么叫类库package定制工具库java访问权限修饰符包访问权限public:接口访问权限protected:继承访问权限private:私有访问权限接口和实现类的访问权限总结简介java提供访问修饰符,以供类库开发人员向客户端程序员指名哪些可用哪些不可用。访问权限控制等级,从大到小依次为:public,protected,包访问权限(没有关键字)和private包:库单元包内包含有一组类,它们在单一的名字空间之下被组织在了一起。比如:在java的标准发布中有一个工具

2020-11-27 19:55:00 265

原创 第五章 初始化和清理

目录简介用构造器确保初始化方法重载区分重载方法涉及基本类型的重载以返回值区分重载方法默认构造器this关键字在构造器中调用构造器static的含义清理:终结处理和垃圾回收finalize()的用途何在你必须实施清理终结条件垃圾回收器如何工作成员初始化构造器初始化初始化顺序静态数据的初始化数组初始化枚举类型总结简介随着计算机革命的发展,不安全的编程方式已逐渐成为编程代价高昂的主要原因之一初始化和清理正是涉及安全的两个问题。java中初始化采用构造器,而清理则提供了垃圾回收器。用构造器确保初始化每个

2020-11-26 17:02:46 142

原创 第四章 控制流程

目录简介true和falseif-else迭代do-whilefor逗号操作符Foreach语法returnbreak和continue臭名昭著的gotoswitch总结简介就像有知觉的生物一样,程序必须在执行过程中控制它的世界,并做出选择。在java中,你需要使用执行控制语句来做出选择。true和false所以条件语句都利用条件表达式的真或假来决定执行路径。if-elseif-else语句是控制程序流程的最基本的形式。其中else是可选的如下//这种是不需要elseif(Boolean-

2020-11-22 14:53:57 87

原创 第三章 操作符

目录简介使用java操作符优先级赋值算术操作符一元加减操作符自增,自减关系型操作符其中==和equals()逻辑操作符按位操作符位移操作符三元操作符if-else字符串操作符+和+=类型转换操作符截尾和舍入提升简介在最底,java中的数据是通过操作符来操作的。使用java操作符操作符接受一个或多个参数,并生成一个新值。优先级当一个表达式存在多个操作符时,操作符的优先级就决定了各部分的计算顺序,这里最常见的就是先乘除后加减,使用括号明确规定计算顺序。这里想必大家都明白赋值赋值使用操作符"="。

2020-11-21 15:06:05 97

原创 第二章 一切皆对象

目录简介用引用操纵对象必须由你创建所有对象存储的什么地方特例:基本类型java中的数组永远不需要销毁对象作用域对象的作用域创建新的数据类型:类字段和方法方法,参数和返回值参数列表构建一个java程序名字可见性运用其他构件static关键字你的第一个java程序编译和运行注释和嵌入式文档总结简介java一切皆对象用引用操纵对象每种编程语言都有自己的操纵内存中元素的方式。有时候,程序员必须注意将要处理的数据类型是什么。在java中一切都是被视为对象,因此可采用比较单一固定的语法。尽管一切都看作对象,但

2020-11-15 14:33:42 187

原创 第一章 对象导论

LZ只把自己认为重要的东西记录了一下,建议小伙伴们还是有空去看看这本书,挺不错的。目录简介抽象过程每个对象都有一个接口每个对象都提供服务被影藏的具体实现复用具体实现继承“是一个”与“像是一个”关系伴随多态的可互换对象单根继承结构容器参数化类型对象的创建和生命周期并发编程总结简介此章节主要讲解的是一个概率的产生,比如为什么会有容器,为什么会有泛型之类的相关概率抽象过程Alan Kay曾经总结了第一个成功的面向对象语言,同时也是java所基于的语言之一的Smalltalk的五个基本特性:万物皆对象

2020-11-09 16:56:57 95

原创 java对象结构与Monitor工作原理

这里写目录标题简介对象头简介对象头

2020-11-06 16:36:06 1974 8

原创 Linux常用命令

这里写目录标题简介配置与删除jar简介G 结尾gg 开头数字+shift+g 定位行数文件目录pwd:绝对路径ls:选项(目录或者文件)-a 显示当前目录所有的文件和目录 一般liunx 将.开头的隐藏-l 以列表的方式显示cd 切换目录cd~ 回到家目录cd…回到上级目录mkdir创建目录mkdir -p 创建多级目录rmdir指令删除目录rmdir是删除空目录 ,目录下有内容则无法删除使用 rm -rf 可以强制删除touch 创建一个空文件cp (重要) 拷贝

2020-11-05 17:14:56 196

原创 从底层源码认知TreeMap

目录简介继承体系成员变量构造方法内部类Entry常用方法Put()常见的private,static方法简介继承体系TreeMap继承AbstractMap类,实现了NavigableMap接口public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable, java.io.Serializable成员变量 //用于在此

2020-11-03 21:19:25 141

原创 从底层源码认知LinkedHashMap

目录简介继承体系成员变量简介继承体系其实看名字就可以知道LinkedHashMap实际底层就是Hashmap,只不过在底层多维护了一个双向链表public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V>成员变量...

2020-11-03 20:09:38 145

原创 使用线程池手动创建7大参数4大策略

目录简介线程池实际调用方法ThreadPoolExecutor参数线程池工作原理拒绝策略为什么需要自己定义线程池简介newFixedThreadPool,newSingleThreadExecutor,newCachedThreadPool实际调用的都是ThreadPoolExecutor方法,而这方法由7大参数,我们要使用线程池的时候最好自己定义线程池通过定义ThreadPoolExecutor的方式,所以有必要了解这7大参数的含义,以及线程池的工作流程,和4大拒绝策略线程池实际调用方法newFi

2020-11-02 18:33:26 390

原创 并发编程--创建线程的4个方法

目录简介ThreadRunnableRunnable接口的底层代码用Runnable接口普通实现多线程Callable线程池简介Threadpackage thread;//创建线程方式一//继承Thread//重写run()//利用对象调用start()方法public class StartThread extends Thread{ @Override public void run() { for(int i=0;i<5;i++) { System.out.p

2020-11-02 17:30:55 124

原创 并发编程--基础知识

目录简介进程和线程并行和并发同步和异步简介进程和线程进程进程是操作系统资源分配的基本单位当一个程序被运行,从磁盘加载这个程序的代码至内存,就开启了一个进程一个程序可以有多个进程线程线程是任务调度和执行的基本单位一个进程可以拥有多个线程一个线程就是一个指令流,将指令流中的一条条指令以一定的顺序交给cpu对比:进程基本数互相独立,而线程存在于进程内,是进程的一个子集进程拥有共享资源。如内存空间,供其内部的线程共享进程间的通信比较复杂同一台计算机的进程通信称为IPC不同计算机进程

2020-11-02 13:46:48 117

原创 从底层源码认知HashSet

目录简介继承体系成员变量构造方法add()和remove()add()remove()其他方法为什么无序,不可重复,简介hashset实现set接口hashset存储的是key值hashset无序底层实现是hashmap允许为null值线程不安全继承体系HashSet继承AbstractSet实现Set, Cloneable, java.io.Serializable,后2个接口,只做声明有克隆,序列化方法public class HashSet<E> exten

2020-11-02 12:37:58 162

原创 从底层源码认知HashMap

目录简介特点继承体系成员变量构造方法Node结点put(K key, V value)putVal简介特点key-value结构key不能重复,value可以重复允许key,value为空线程非安全jdk1.8之前底层结构(数组+链表),jdk1.8之后(数组+链表+红黑树)红黑树性质:1.每个结点不是红色就是黑色2.不可能有连在一起的红色结点3.根结点是黑色4.每个红色结点的两个子节点都是黑色,叶子结点都是黑色继承体系还是一样看看继承体系,继承AbstractMap,实现

2020-11-02 00:30:52 119

原创 从底层源码认知LinkedList

目录简介LinkedList继承体系成员变量构造方法结点元素常用方法增删改查add()方法add(int index, E element)get(int index) ,set(int index, E element)remove(int index)toArray()listIterator(int index)和ListItr简介LinkedList底层是一个双向链表,查询速度慢,修改,增加,删除效率快,底层需要额外维护2个属性(next,pre)耗资源。从底层认知ArrayListLink

2020-10-31 00:09:33 133

原创 java面试知识点总结

(持续更新中:有错请指出)目录java基础面向对象的三大特征String,StringBuffer,StringBuilder区别String str=new String("abc")创建了多少对象String常用方法equals和==区别重载和重写接口和抽象类区别final修饰符号final finally finalize区别static修饰符号static代码块,普通代码块访问顺序哪些方法属性Object类运算符号Math.round(-1.5) 等于多少?容器并发IOjava基础面向对象的三

2020-10-30 17:39:49 380 1

原创 从底层源码认知Arraylist

很多小伙伴都知道Arraylist和Linkedlist相比,查询快,增删慢,这是为什么呢?它底层又是怎样的结构呢?请随我一起从源码分析(如有错误请大佬指出,本人是几个月小白)目录简介特点继承关系成员变量构造方法三个常用的增删改查add方法ensureCapacityInternalrangeCheckForAddget方法set方法remove方法其他常用方法总结简介java容器集合可分为key值存储(Collection)和key-value存储(Map)两类,如下图继承链中ArrayList则是

2020-10-29 15:18:27 195

空空如也

空空如也

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

TA关注的人

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