自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(135)
  • 资源 (1)
  • 收藏
  • 关注

原创 oracle trunc函数

SELECT sysdate FROM dual;--2021-03-15 10:21:35select trunc(sysdate) from dual;--2021-03-15 00:00:00select trunc(sysdate, 'mm') from dual;--2021-03-01 00:00:00select trunc(sysdate,'yy') from dual;--2021-01-01 00:00:00select trunc(sysdate,'dd') from dual

2021-03-15 10:30:25 299 1

原创 kafka在zookeeper中存储结构

1、auto.offset.reset对于smallest和largest还是理解不到位,smallest和largest策略表示Zookeeper上的offset还没有初始化为正确值时,如何初始化offset的问题?试想,Producer生产了一批消息到Kafka中,但是Kafka尚未由任何Consumer读取,而Kafka的Offset是由Consumer进行初始化和赋值的,因此此时的Zookeeper上的offset并没有预期的0(0表示尚未读取过),而是一个不正确的随机数,那么Consumer来

2021-01-11 12:52:30 309

原创 Kafka

Kafka 为每个主题维护了分布式的分区(Partition)日志文件,每个 Partition 在 Kafka 存储层面是 Append Log。任何发布到此 Partition 的消息都会被追加到 Log 文件的尾部,在分区中的每条消息都会按照时间顺序分配到一个单调递增的顺序编号,也就是我们的 offset。offset 是一个 Long 型的数字。1、Kafka中,生产者如何把信息发送到Partition如果没有 Key 值则进行轮询发送。如果有 Key 值,对 Key 值进行 Hash,然后

2021-01-07 20:39:45 293

原创 Kafka文件存储机制

kafka,在partition中如何通过offset查找message例如读取offset=368776的message,需要通过下面2个步骤查找。(1)查找segment file00000000000000000000.index表示最开始的文件,起始偏移量(offset)为0。第二个文件00000000000000368769.index的消息量起始偏移量为368770 = 368769 + 1。同样,第三个文件00000000000000737337.index的起始偏移量为737338=7

2021-01-07 17:18:02 2293 5

原创 Java中的栈Stack、Deque、ArrayDeque、LinkedList

Java中的栈Stack、Deque、ArrayDeque、LinkedList1、Java中的Stack类栈是一种后进先出(LIFO)的容器,常用的操作push/pop/peek。Java中Stack类从Vector类继承,底层是用数组实现的线程安全的栈。不过Java中用来表达栈的功能(push/pop/peek),更适用的是使用双端队列接口Deque,并用实现类ArrayDeque/LinkedList来进行初始化。Deque<Integer> stack = new ArrayD

2021-01-06 12:35:54 456

原创 Spring循环依赖

一、 什么是循环依赖?循环依赖其实就是循环引用,也就是两个或者两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。

2021-01-05 23:39:11 112 1

原创 冒泡排序

import java.util.Comparator;public interface Sorter { /** * 排序 * @param list 待排序的数组 */ public <T extends Comparable<T>> void sort(T[] list); /** * 排序 * @param list 待排序的数组 * @param comp 比较两个对象的比较器 .

2020-12-28 15:50:54 97

原创 用 Java 写一个二分查找

二分查找import java.util.Comparator;/** * 计算中间位置时不应该使用(high+ low) / 2 的方式,因为加法运算可能导致整数越界,这里应该使用以下三种方式之一: * low + (high - low)/ 2 或 * low + (high – low) >> 1 或 * (low + high) >>> 1(>>>是逻辑右移,是不带符号位的右移) */public class binarySea.

2020-12-28 15:48:33 359 2

原创 String 对象的 intern 方法与 字符串的+操作

String 对象的 intern 方法会得到字符串对象在常量池中对应的版本的引用,如果常量池中没有对应的字符串,则该字符串将被添加到常量池中,然后返回常量池中字符串的引用。public static void main(String[] args) { //Programming,字面量,存于方法区的常量池,返回引用地址 String s1 = "Programming"; //new String里面的是该字符串在方法区的常量池返回的引用地址

2020-12-26 21:24:20 134

原创 java中,一个数左移n位,就是将这个数乘以2的n次方,右移就是将这个数除以2的n次方?

在java中,一个数左移n位,就是将这个数乘以2的n次方,右移就是将这个数除以2的n次方怎么理解?把这个数二进制化就能理解了.如十进制的2,二进制表示是0010,2左移3位,就是在二进制的低位补3个0,然后变成00010000,转成十进制就是16,即2*2^3,右移大体一致,需要分两种情况。右移的话要分带符号位和不带符号位两种。 计算机中的数都是二进制表示的,以8位的byte类型表示为例,5可以表示为:00000101(最高位表示符号,0位正,1为负) 无论>>还是>>>都

2020-12-26 20:36:19 759

原创 Java实现阻塞队列

Java实现阻塞队列1、生产者向队尾添加元素;2、消费者向队头消费元素;3、添加和消费过程是线程安全的;import java.util.LinkedList;import java.util.Queue;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantLock;public class MyBlockingQueueLock<T> { .

2020-12-25 13:11:38 210 1

原创 Oracle hints select /*+index()*/

Oracle Hints是一种机制,用来告诉优化器按照我们的制定的方式生成执行计划,而不是根据它自己的分析生成执行计划。一、我们可以用Oracle Hints来实现1) 使用的优化器的类型2) 基于代价的优化器的优化目标,是all_rows还是first_rows。3) 表的访问路径,是全表扫描,还是索引扫描,还是直接利用rowid。4) 表之间的连接类型5) 表之间的连接顺序6) 语句的并行程度二、Hints应用要求Hints只应用在它们所在sql语句块(statement

2020-12-24 10:18:31 6002 5

原创 Java 中,如何计算两个日期之间的差距?

public static String getDateDiff(Date endDate, Date nowDate) { long nd = 1000* 24* 60* 60; long nh = 1000* 60* 60; long nm = 1000* 60; // long ns = 1000; // 获得两个时间的毫秒时间差异 long diff = endDate.getTime() - nowDa

2020-12-21 23:44:59 421

原创 怎么利用 JUnit 来测试一个方法的异常?

JUnit测试Java代码中的异常有3种方式public class Fruit { private String name; private int size; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getSize() { re

2020-12-21 23:31:41 896

原创 Java 中,怎么打印出一个字符串的所有排列?

public class Solution { public static void main(String[] args) { String str = ""; Scanner sc = new Scanner(System.in); str = sc.nextLine(); printAll(str.toCharArray(),0); } public static void printAll(char[] s

2020-12-21 23:05:20 374

原创 Maven pom文件的scope

maven中scope的值可以是compile、test、runtime、provide、system,默认是compile。1、compile表示需要参与当前项目的编译,包括后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去。2、test表示依赖项目仅仅参与测试相关的工作,包括测试代码的编译,执行,比较典型的如junit。3、runtime表示无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过编译而已。在终端的项目(非开源,企业内部系

2020-12-14 14:13:46 308

原创 解决TIME_WAIT过多造成的问题

解决TIME_WAIT过多造成的问题1、TIME_WAIT状态存在的理由或者time_wait的作用?1)可靠地实现TCP全双工连接的终止在进行关闭连接四次挥手协议时,最后的ACK是由主动关闭端发出的,如果这个最终的ACK丢失,服务器将重发最终的FIN,因此客户端必须维护状态信息允许它重发最终的ACK。如果不维持这个状态信息,那么客户端将响应RST分节,服务器将此分节解释成一个错误(在java中会抛出connection reset的SocketException)。因而,要实现TCP全双工连接的正

2020-12-03 10:11:48 640

原创 tcp

tcp1、tcp是什么?TCP即传输控制协议,是一种面向连接的、可靠的、基于字节流的通信协议。简单来说TCP就是有确认机制的UDP协议,每发出一个数据包都要求确认,如果有一个数据包丢失,就收不到确认,发送方就必须重发这个数据包。为了保证传输的可靠性,TCP协议在UDP基础之上建立了三次对话的确认机制,即在正式收发数据前,必须和对方建立可靠的连接。TCP数据包和UDP一样,都是由首部和数据两部分组成,唯一不同的是,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的

2020-12-02 16:23:24 231

原创 LRU缓存实现

LRU缓存实现LRU(Least Recently Used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。import java.util.LinkedHashMap;import java.util.Map;public class Solution { //LRU缓存实现 public static void main(String[] args) { Map<String, S

2020-11-30 13:11:47 116 1

原创 Hadoop家族

Hadoop家族1、Apache Hadoop:是Apache开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架构。2、Apache Hive:是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。3、Apache Pig:是一个基于Hadoop的大规模数据分析工具,它提供的SQL-LIKE

2020-11-19 10:12:29 219 2

原创 Spring的事务传播特性

Spring的事务传播特性1、Spring的事务传播特性事务属性的种类:传播行为、隔离级别、只读和事务超时。事务传播行为就是多个事务方法相互调用时,事务如何在这些方法间传播。2、Spring事务传播行为种类spring支持7种事务传播行为,分别为:propagation_requierd:如果当前没有事务,就新建一个事务,如果已存在一个事务中,加入到这个事务中,这是最常见的选择。propagation_supports:支持当前事务,如果没有当前事务,就以非事务方法执行。propagatio

2020-11-18 19:50:19 3594 1

原创 IntelliJ IDEA插件之RainBow Brackets

IntelliJ IDEA插件之RainBow Brackets1、引入多括号在开发代码或者浏览代码时,越多看起来会越乱,为了让括号看起来更显眼,给大家推荐一个idea插件:彩虹括号。2、使用按图片操作即可正常使用该插件。...

2020-11-18 09:37:33 1180

原创 oracle常见的长度限制

oracle常见的长度限制1、长度限制说明1. IN 子句中的LIST个数最长为1000,超过该数目将报错,这里可转用一个临时表来解决;2.  * CREATE TRIGGER语句文本的字符长度不能超过32KB(触发器中不能使用LONG, LONG RAW 类型;触发器内可以参照LOB 类型列的列值,但不能通过 :NEW 修改LOB列中的数据;)顺便说一下,触发器中的PARENT关键字,只在嵌套表触发器中有效;3.  * 11G以前,DBMS_SQL对输入的SQL长度不能超过32K,原因是输入参

2020-11-16 21:16:04 2538

原创 svn: Working copy ‘‘ locked

svn: Working copy ‘xxx’ locked1、问题引入更新svn内容时出现如下的错误:svn: Working copy ‘D:\save\tollsupport\xxx’ locked.2、解决问题解决办法:1、在项目上点击右键 出现的菜单栏中选择 —> team --> refresh/cleanup(在出现的新的菜单栏的最下面)2、再次更新。产生原因:主要是因为上次处理相关操作,没有处理成功就直接将eclipse关闭,导致出现问题。...

2020-11-16 21:11:30 260

原创 Oracle使用IN时不能超过1000的问题

Oracle使用IN时不能超过1000的问题1、问题引入 ORA-01795: 列表中的最大表达式数为 1000当我们使用orcale的in语法时,如果in()里面的内容元素个数超过1000个就会报 ORA-01795的错误。2、问题解决最笨重的方法,就是每当达到999的倍数加一就开始用or in():<select id="selectListByListid" resultType="com.itwuyi.Wuyi"> select * from TEST_LI

2020-11-16 21:05:48 582

原创 ORA-01745: 无效的主机/绑定变量名

ORA-01745: 无效的主机/绑定变量名1、问题引入当使用oracle数据库,并且使用mybatis 批量插入数据时,如果插入的条数过多,会抛出一个异常:Java异常之ORA-01745: 无效的主机/绑定变量名。比如,下面一段代码:<insert id="batchInsert" parameterType="list" useGeneratedKeys="false"> INSERT INTO TEST_ITWUYI_DL(<include refid="Down_

2020-11-16 20:57:10 13683 4

原创 基于大数据的个性化推荐系统

基于大数据的个性化推荐系统1、概述推荐系统的主要任务就是联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费者和信息生产者的双赢。基于大数据的推荐系统通过分析用户的历史记录了解用户的喜好,从而主动为用户推荐其感兴趣的信息,满足用户的个性化推荐需求。、2、工作原理推荐系统接收的输入是推荐的数据源,一般情况下,推荐引擎所需要的数据源包括以下几点:要推荐物品或內容的元数据,如关键字、基因描述等。 系统用户的基本信息,如性别、年龄

2020-11-09 10:56:23 4730 1

原创 ssh 免密码登录

ssh 免密码登录知识点1、操作输入命令:ssh-keygen -t rsa 然后点击四个回车键,如果正常的话,会有:2、登录相应主机系统通过 ssh-copy-id 对应主机 IP,之后通过“ssh 主机名/IP” 便可以不输入密码即可登录相应的主机系统。说明:ssh-copy-id命令可以把本地的ssh公钥文件安装到远程主机对应的账户下。功能:ssh-copy-id 命令将你的公共密钥填充到一个远程机器上的authorized_keys文件中。如果远程机器上存在authorizedk

2020-11-03 10:07:10 1014

原创 -bash: cd: /root/.ssh: Not a directory

解决异常:-bash: cd: /root/.ssh: Not a directory1、免密登录,报错事件场景:搭建了一个Hadoop集群,现在做脚本启动集群,发现需要做免密登录,在正常的免密设置中一台机遇到了该问题。一:免密登录的设置步骤原理:执行ssh-keygen生成秘钥 id_rsa.pub,将产生的id_rsa.pub放到authorized_keys文件,authorized_keys文件依次在集群中添加公钥id_rsa.pub,再覆盖之前集群里的authorized_keys,现在每

2020-11-03 09:51:47 7882

原创 Maven项目报Missing artifact

Maven项目报Missing artifact1、问题IDE工具已经正确引入了自己安装的maven,并设置好相关的仓库位置,但是在maven更新一个项目时,pom.xml文件一直报错:2、出错原因一般都是导入别人的工程,因为自己的maven环境、仓库配置信息、下载的jar包来源、甚至是IDE环境不一致导致的。3、解决(1)检查maven本地仓库中是否存在改包(一)若存在:删掉_maven.repositories和_remote.repositories文件(或用文本编辑器打开,将“&gt

2020-11-02 19:29:20 296

原创 Kafka 生产者 分区器 规则详解

Kafka生产者分区器的规则详解1、介绍在开发中,由于Kafka配置的地方被他人改动过,所以有些数据出现了往固定分区集中的现象,所以这篇文章重点研究下Kafka生产者分区器的规则。2、原因我们通常开多线程、使用多个分区来提高Kafka的消费速度,分区不均匀会导致线程闲置,消费速度过慢,进而导致消息积压。消息写入哪个分区是由生产者决定的,在调用kafkaTemplate.send()方法时,可以指定分区,否则使用默认分区器DefaultPartitioner计算。因为分区可能会调整,通常我

2020-11-02 10:32:38 1050 1

原创 Scala 下划线

Scala 下划线1、概述下划线这个符号在不同的场景下具有不同的含义。2、替换Java的等价语法大部分的Java语言的关键字在Scala语言中拥有了新的含义,所以一些基本的语法在Scala中有变化。体现在导入通配符、类成员默认值、可变参数、类型通配符等方面。(1)导入通配符*在Scala中是合法的方法名,所以导入包时要使用_代替。//Javaimport java.lang.*;//Scalaimport java.lang._(2)类成员默认值(该语法只适用.

2020-10-31 08:29:59 160

原创 Scala 文件 I/O

Scala 文件 I/O1、概念Scala 进行文件写操作,直接用的都是 java中 的 I/O 类 (java.io.File):import java.io.{File, PrintWriter}object Demo { def main(args: Array[String]) { val writer = new PrintWriter(new File("my.txt" )) writer.write("I love Scala!") writer

2020-10-31 08:29:15 91

原创 Scala 提取器(Extractor)

Scala 提取器(Extractor)1、概念提取器是从传递给它的对象中提取出构造该对象的参数。Scala 标准库包含了一些预定义的提取器。Scala 提取器是一个带有unapply方法的对象。unapply方法算是apply方法的反向操作:unapply接受一个对象,然后从对象中提取值,提取的值通常是用来构造该对象的值。邮件地址的提取器对象,比如:object Demo { def main(args: Array[String]) { println ("App

2020-10-31 08:28:35 274

原创 Scala 异常处理

Scala 异常处理1、概念Scala 的异常处理和其它语言,比如 Java 。Scala 的方法可以通过抛出异常的方法的方式来终止相关代码的运行,不必通过返回值。2、抛出异常Scala 抛出异常的方法和 Java一样,使用 throw 方法,例如,抛出一个新的参数异常:throw new IllegalArgumentException3、捕获异常异常捕捉的机制与其他语言中一样,如果有异常发生,catch 字句是按次序捕捉的。因此,在 catch 字句中,越具体的异常越要

2020-10-31 08:27:53 449

原创 Scala 正则表达式

Scala 正则表达式1、概念Scala 通过 scala.util.matching 包中的Regex类来支持正则表达式。以下实例演示了使用正则表达式查找单词Scala:import scala.util.matching.Regexobject Demo { def main(args: Array[String]) { val pattern = "Spark".r val str = "Spark is written by Scala!" pri...

2020-10-30 16:06:16 271

原创 Scala 模式匹配

Scala 模式匹配1、概念Scala 提供了强大的模式匹配机制,应用也非常广泛。一个模式匹配包含了一系列备选项,每个都开始于关键字case。每个备选项都包含了一个模式及一到多个表达式。箭头符号=>隔开了模式和表达式。简单的整型值模式匹配,比如:object Demo { def main(args: Array[String]) { println(matchDemo(3)) } def matchDemo(a: Int): String = a ma...

2020-10-30 15:45:50 172

原创 Scala Trait(特征)

Scala Trait(特征)1、概念Scala Trait(特征) 相当于 Java 的接口,实际上它比接口还功能强大。与接口不同的是,它还可以定义属性和方法的实现。一般情况下Scala的类只能够继承单一父类,但是如果是 Trait(特征) 的话就可以继承多个,从结果来看就是实现了多重继承。Trait(特征) 定义的方式与类类似,但它使用的关键字是trait,比如:trait Correct{ def isCorrect(a: Any): Boolean def isN.

2020-10-30 15:27:22 93

原创 Scala 类和对象

Scala 类和对象1、概念类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。class Location(px: Int, py: Int) { var x: Int = px var y: Int = py def move(mx: Int, my: Int) { x = x + mx y = y + my println ("x

2020-10-30 15:13:05 108

原创 Scala Iterator(迭代器)

Scala Iterator(迭代器)

2020-10-30 13:25:26 231

Java SSH框架一本通

文档重点编写了当今程序开发中比较受人欢迎的Java SSH技术。对于该技术,一般学习java的学习者必备的技能之一。因为基本全面详细地讲解了如何用Java SSH技术去构建一系列的管理系统,所以该文档值得大家借鉴和学习。

2016-01-08

空空如也

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

TA关注的人

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