Java
临地
天天向上
展开
-
java spark-streaming java.lang.invoke.SerializedLambda to field org.apache.spark.rdd.MapPartitionsRD
再次吐槽,spark的文档对初学者真的非常不友好。同时下面的错误大概率也是可以解决掉的。java.io.IOException: 远程主机强迫关闭了一个现有的连接问题描述在本地idea执行spark streaming相关代码时,setMaster为“local[2]”时,我是可以正常执行的,但是当我在 StandAlone 模式下启动本地集群的 setMaster 时,就会出现这个错误。然后我分别根据不同的搜索结果,设置jars等,甚至看到官网关于此问题的两个issueht原创 2021-08-11 17:46:17 · 519 阅读 · 1 评论 -
spark-streaming:Unable to create executor due to java.io.FileNotFoundException: java.io.FileNotFound
Master为“local[2]”时,这是正常的。但是当我在 StandAlone 模式下启动本地集群的 setMaster 时,出现错误: lost an executor 2 (already removed): Unable to create executor due to java.io.FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home解决方法:下载并且设计HADOOP_H原创 2021-08-11 17:35:21 · 512 阅读 · 0 评论 -
spark - Initial job has not accepted any resources...没有接受到数据
1.表现与原因表现为将spark streaming提交到集群时(setMaster()),没有接受到任何数据,并打印Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources原因为集群没有资源执行job,基本是因为只启动了msater,没有启动work2.解决方法启动work即原创 2021-08-05 11:04:01 · 758 阅读 · 0 评论 -
Junit单元测试多线程中子线程无法查询主线程的数据
目录1.表现2.原因3.解决方法1.表现在单元测试中,开启了事务,并且在主线程中进行数据库操作,然而开了多线程处理后,子线程无法获取主线程的数据。举个例子,在主线程中insert了几条记录,然后在子线程中查询会发现查询不到//代码只是随手例子,并不能真实执行pubic void mainThread(){//主线程插入数据insert(id);//子线程删除new Thread(() -> deleteById(id)).start();//期望结果是子线程成原创 2021-08-04 20:11:51 · 946 阅读 · 0 评论 -
leetcode-45-跳跃游戏
先放完整代码//给你一个非负整数数组 nums ,你最初位于数组的第一个位置。 //// 数组中的每个元素代表你在该位置可以跳跃的最大长度。 //// 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 //// 假设你总是可以到达数组的最后一个位置。 //// //// 示例 1: //// //输入: nums = [2,3,1,1,4]//输出: 2//解释: 跳到最后一个位置的最小跳跃数是 2。// 从下标为 0 跳到下标为 1 的位置,跳1步,然...原创 2021-07-28 21:50:20 · 228 阅读 · 0 评论 -
sharding-jdbc分表查询优化:maxConnectionsSizePerQuery
sharding-jdbc配置maxConnectionsSizePerQuery作用设置每个查询最大获取的连接数,同时影响结果归并方式最大连接数简单来说就是当存在分表,且查询语句不包含分表键时,每个查询都需要分解成不同的分表sql查询数据库,能够同时执行的sql数量由此参数设置;举个例子,假如maxConnectionsSizePerQuery = 128,分表有1024个则在一般情况下(线程池资源充足):一个查询sql(不包含分表键)将拆分成1024个,但是maxConnectionsSiz原创 2021-01-23 11:31:06 · 2948 阅读 · 0 评论 -
rabbitmq多数据源
mq多数据源核心依赖 <!-- mq多数据源 --> <dependency> <groupId>com.mytaxi.spring.multirabbit</groupId> <artifactId>spring-multirabbit-lib</artifactId> <version>2.2.0</versi原创 2020-10-24 16:09:24 · 745 阅读 · 1 评论 -
线程池执行前后进行额外操作
实际上就是继承ThreadPoolExecutor类,然后重写beforeExecute和afterExecute方法public class ThreadPoolBefore extends ThreadPoolExecutor { public ThreadPoolBefore(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable&g.原创 2020-06-29 16:36:03 · 242 阅读 · 0 评论 -
ConcurrentHashMap误解(分段锁)和补充(什么情况下会裂变成红黑树,以及为什么)
1.序言网上很多ConcurrentHashMap分析的文章都在讲使用了分段锁balabala怎么样怎么样使得它是线程安全的,这些文章一些是过时的,也有一些是不够详细的,所以记录一下最近对ConcurrentHashMap的学习记录2.误解网上对ConcurrentHashMap的说法还停留在 分段锁上,这不能说是错的,只是过时了,jdk1.8之后,ConcurrentHashMap就不是分段锁了,而是使用synchronized锁住了对应桶节点,而且是只有put和remove的时候才会上锁,g原创 2020-06-24 18:01:44 · 533 阅读 · 0 评论 -
i++ 和++i(为萌新时期的疑惑填坑)
今天突然想起以前有过的一个疑惑,找了很多文章都是黏贴复制,糊里糊涂的,今天填一下坑。先摆出结果: int k = 1; int before = ++k; System.out.println("before: "+before + " K: "+k); k = 1; int after = k++; System.out.println("after: "+after + " K: "+k);原创 2020-06-24 17:27:53 · 372 阅读 · 0 评论 -
Java调用python(通过socket调用传参并获取结果)
python通过socket等待java程序连接,传参,并通过socket回传结果附:运行python文件python代码如下#encoding=UTF-8import socketimport sysimport threadingdef main(): # 创建服务器套接字 serversocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 获取本地主机名称 host = so原创 2020-06-24 17:16:20 · 913 阅读 · 1 评论 -
对象转化为JSONOject
经常忘记,各种花里胡哨转化,记录一下简单快捷的正确方式JSONObject.parseObject(JSON.toJSONString(object))原创 2020-06-22 17:53:47 · 824 阅读 · 0 评论 -
java.lang.NullPointerException: element cannot be mapped to a null key
该报错是使用Stream的groupingBy方法,key为null导致的,可以加一个filter过滤null值,或加个try catch以免影响主流程nested exception is java.lang.NullPointerException: element cannot be mapped to a null key at org.springframework.kafka.listener.adapter.MessagingMessageListenerAdapter.invoke.原创 2020-06-17 19:24:32 · 8066 阅读 · 0 评论 -
线程池、参数和常见线程池
本文将讲解线程池参数、参数之间的关系以及线程池以一个怎么样的策略执行新增到线程池的线程,最后会举例常见的线程池是怎么样应用这些参数和流程的。文章较长,可以根据目录选择想看的知识,若有错误请指出。1.线程池概述线程池,顾名思义就是一个装线程的池子,池子里的线程可以重复理用,降低产生和销毁线程的开销。举个例子,没有线程池使用线程的时候,就像开水龙头洗手,每次洗手都需要开水龙头,洗完手水就会流进下水道。而线程池就像在水盆洗手,每次洗手只需要重复理用水盆的水就好了(手太脏的当我没说)。2.线程池参数原创 2020-06-12 18:24:00 · 254 阅读 · 0 评论 -
java Calendar 获取时间戳对应的星期几 和 今天对应的星期几
/** *获取今天是星期几 * @return */ public static Integer getDayOfWeek(){ Calendar calendar = Calendar.getInstance(); return calendar.get(DAY_OF_WEEK) - 1; } /** * 获取指定时间戳是星期几 * @param time * @return .原创 2020-05-28 18:29:10 · 1974 阅读 · 0 评论 -
Java 中 E T K V Object含义和作用
除了Object,都是泛型的表示方法,可以匹配对应的类型E – Element (在集合中使用,因为集合中存放的是元素)T – Type(Java 类)K – Key(键,例如Map<K,String>,表示键类型不确定的map)V – Value(值,与键相对应)N – Number(数值类型)Object是所有类的根类,即父类,作用效果与一般的父子类相...原创 2020-05-08 11:21:35 · 319 阅读 · 0 评论 -
编程工作的五个阶段
编译程序的工作过程一般划分为五个阶段:词法分析、语法分析、语义分析与中间代码产生、优化、目标代码生成。词法分析:也就是从左到右一个一个的读入源程序,识别一个单词或符号,并进行归类。语法分析: 在词法分析的基础上,将单词序列分解成各类语法短语,如“程序”,“语句”,“表达式”等。语义分析:审查源程序是否有语义的错误,当不符合语言规范的时候,程序就会报错。中间代码生成:在进行了语法和语义的分析工作之后...转载 2018-06-29 23:28:07 · 3453 阅读 · 0 评论 -
HDU - 1030 How Many Trees?
How Many Trees?Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1478 Accepted Submission(s): 767 Problem DescriptionA binary search tree is a binary...原创 2018-07-06 22:54:49 · 144 阅读 · 0 评论 -
二进制中 1 的个数 - 牛客剑指offer 10
题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。public class Solution { public int NumberOf1(int n) { int sum=0; while(n!=0){ sum++; n=n&(n-1); } return...原创 2018-07-06 23:13:23 · 127 阅读 · 0 评论 -
数值的整数次方 - 牛客剑指offer 11
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。没什么好说的,指数运算采用快速幂,注意throw Exception就行,但是..牛客不需要,只要输出 0 就好了,很奇怪。。public class Solution { public double Power(double base, int exponent) {...原创 2018-07-07 23:23:48 · 101 阅读 · 0 评论 -
HDU - 2067 小兔的棋盘
题目: 小兔的叔叔从外面旅游回来给她带来了一个礼物,小兔高兴地跑回自己的房间,拆开一看是一个棋盘,小兔有所失望。不过没过几天发现了棋盘的好玩之处。从起点(0,0)走到终点(n,n)的最短路径数是C(2n,n),现在小兔又想如果不穿越对角线(但可接触对角线上的格点),这样的路径数有多少?小兔想了很长时间都没想出来,现在想请你帮助小兔解决这个问题,对于你来说应该不难吧! ...原创 2018-07-20 21:43:22 · 217 阅读 · 0 评论 -
树的子结构 - 牛客网剑指offer
题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 注意:一般遍历树都会采用递归,递归的边界问题比较容易处理;public class Solution { public boolean HasSubtree(TreeNode root1,TreeNode root2) { if(root2==null|...原创 2018-07-21 00:25:34 · 101 阅读 · 0 评论 -
java - 抓取博客内容(第一个小爬虫)
package Sept;import java.io.BufferedReader;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.InputStreamReader;import java.net.URL;import java.net.URLCon...原创 2018-09-17 19:14:10 · 208 阅读 · 0 评论 -
Java中@ - 注解
一、什么是java注解注解,顾名思义,注解,就是对某一事物进行添加注释说明,会存放一些信息,这些信息可能对以后某个时段来说是很有用处的。Java注解又叫java标注,java提供了一套机制,使得我们可以对方法、类、参数、包、域以及变量等添加标准(即附上某些信息)。且在以后某个时段通过反射将标注的信息提取出来以供使用。二、自定义Java标注1为什么要自...原创 2018-10-18 18:36:20 · 53682 阅读 · 11 评论 -
矩形覆盖 - 牛客剑指offer 10
题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?思路:斐波那契思想,参考 跳台阶public class Solution { public int RectCover(int target) { int a=1,b=2,c=3; for(int i=3;i<=ta...原创 2018-07-05 17:26:12 · 122 阅读 · 0 评论 -
HDU - 1250 Hat's Fibonacci
Problem DescriptionA Fibonacci sequence is calculated by adding the previous two members the sequence, with the first two members being both 1.F(1) = 1, F(2) = 1, F(3) = 1,F(4) = 1, F(n>4) = F(n -...原创 2018-07-05 16:57:42 · 145 阅读 · 0 评论 -
String , StringBuffer , StringBuilder的区别
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字...转载 2018-06-29 00:10:24 · 83 阅读 · 0 评论 -
HDU - 1133 Buy the Ticket
Problem DescriptionThe \\\\\\\"Harry Potter and the Goblet of Fire\\\\\\\" will be on show in the next few days. As a crazy fan of Harry Potter, you will go to the cinema and have the first sight, won...原创 2018-07-08 22:26:57 · 148 阅读 · 0 评论 -
矩阵压缩存储(对称矩阵与压缩矩阵)
1. 对称矩阵采用一维数组进行存储,例如test[3][3]={ { 1 , 2 , 3 } , { 2 , 1 , 3 } , { 3 , 3 , 1 } }存进 ans [ ] 里面;for(int i=0;i<3;i++)for(int j=0;j<3;j++)ans[ len++ ]=test[ i ] [ j ];解压缩则反转:例如 test [ i ] [ j ]=len ...原创 2018-06-30 22:40:55 · 2748 阅读 · 0 评论 -
Java方法初始化过程(不完整)
初始化过程: 1. 初始化父类中的静态成员变量和静态代码块 ; 2. 初始化子类中的静态成员变量和静态代码块 ; 3.初始化父类的普通成员变量和代码块,再执行父类的构造方法;4.初始化子类的普通成员变量和代码块,再执行子类的构造方法;...原创 2018-06-30 22:12:37 · 269 阅读 · 0 评论 -
从尾到头打印链表 - 牛客剑指Offer3
题目:输入一个链表,从尾到头打印链表每个节点的值。并且给出了链表类:/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* }* }**/思路...原创 2018-06-30 22:04:34 · 86 阅读 · 0 评论 -
空指针的指向问题
空指针是一个特殊的指针值。空指针是指可以确保没有指向任何一个对象的指针。通常使用宏定义NULL来表示空指针常量值。NULL就代表系统的0地址单元空指针确保它和任何非空指针进行比较都不会相等,因此经常作为函数发生异常时的返回值使用。...转载 2018-06-25 23:08:14 · 2009 阅读 · 0 评论 -
SuppressWarnings
API:指示应该在注释元素(以及包含在该注释元素中的所有程序元素)中取消显示指定的编译器警告。注意,在给定元素中取消显示的警告集是所有包含元素中取消显示的警告的超集。例如,如果注释一个类来取消显示某个警告,同时注释一个方法来取消显示另一个警告,那么将在此方法中同时取消显示这两个警告。 根据风格不同,程序员应该始终在最里层的嵌套元素上使用此注释,在那里使用才有效。如果要在特定的方法中取消显示某个警告...转载 2018-06-29 23:24:45 · 90 阅读 · 0 评论 -
正则表达式(用法)
元字符描述\将下一个字符标记符、或一个向后引用、或一个八进制转义符。例如,“\\n”匹配\n。“\n”匹配换行符。序列“\\”匹配“\”而“\(”则匹配“(”。即相当于多种编程语言中都有的“转义字符”的概念。^匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。$匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline...转载 2018-06-29 23:09:12 · 97 阅读 · 0 评论 -
HDU-1023 Train Problem II
没想到卡特兰数上面,大概是因为没有用过吧。看了大佬的说明,很详细很详细,实在提不起兴趣也没有信心写一篇超越大佬的。所以给出连接:题目以及解析需要注意的是:第一次在oj提交Java代码,class的名字要求是Main,否则会报错;import java.math.BigInteger;import java.util.Scanner;public class Main { public s...原创 2018-06-29 22:29:49 · 174 阅读 · 0 评论 -
Java导入包
要导入java/awt/event下面的所有类,叙述正确的是?()正确答案: C 你的答案: A (错误)import java.awt.*和import java.awt.event.*都可以只能是import java.awt.*只能是import java.awt.event.*import java.awt.*和import java.awt.event.*都不可以导入包只会导入当前包...原创 2018-06-24 23:35:00 · 2389 阅读 · 0 评论 -
JVM结构
Java虚拟机结构1:Class文件格式编译后被Java虚拟机所职行的代码使用了一种平台中立(与平台无关的)的二进制格式表示,经常(但不是绝对)以文件格式存储,这种格式就是Class文件格式;2:数据类型可用于变量赋值,参数传递,方法返回和运算操作;原始类型(primitive type): 存在原始值与之对应;引用类型(reference type: 存在引用值对应;编译器应该在编译期间尽...原创 2018-06-24 21:46:18 · 80 阅读 · 0 评论 -
重建二叉树-牛客剑指offer4
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路:二叉树生成问题,习惯采取递归解决;首先前序遍历是先遍历根节点,然后左子树,然后右子树;中序遍历是先遍历左子树,然后父节点,然后右子树;那么,由中序遍历...原创 2018-07-02 00:19:49 · 145 阅读 · 0 评论 -
Java垃圾回收方式
两个最基本的java回收算法:复制算法和标记清理算法复制算法:两个区域A和B,初始对象在A,继续存活的对象被转移到B。此为新生代最常用的算法标记清理:一块区域,标记可达对象(可达性分析),然后回收不可达对象,会出现碎片,那么引出标记-整理算法:多了碎片整理,整理出更大的内存放更大的对象两个概念:新生代和年老代新生代:初始对象,生命周期短的永久代:长时间存在的对象整个java的垃圾回收是新生代和年老...转载 2018-07-02 00:30:00 · 177 阅读 · 0 评论 -
调整数组顺序使奇数位于偶数前面 - 牛客剑指offer 12
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。第一种思路:每次暴力寻找,然后暴力区间往后挪一位;public class Solution { public void reOrderArray(int [] array) { int len=...原创 2018-07-08 22:57:47 · 89 阅读 · 0 评论