- 博客(35)
- 收藏
- 关注
原创 Synchronized
涉及面试题:1. synchronized常用的使用方法有哪些:1)修饰代码块,指定对象加锁,对对象加锁2)修饰实例方法,对当前实例对象加锁3)修饰静态方法,对当前类的Class字节码对象加锁(所有通过该类new出来的实例对象都要同步,用的是同一个锁)2. synchronized锁升级(jdk1.6对synchronized底层做了那些优化)1)无锁态 -> 偏向锁 -> 轻量级锁 -> 重量级锁。
2023-10-26 10:11:44 139
原创 测试自定义JDBC连接池
最近开发一个项目会使用MySQL,SqlServer,Oracle,Hive,SparkSql等多类型数据源,通过JDBC形式连接数据源操作数据库。初始频繁的创建JDBC连接和关闭发现非常消耗资源,并且连接hive2和SparkSql时耗时比较长,基于此类需求发现是否可以自定JDBC连接池,实现一次连接反复使用。下面是基于JDBC连接写的一个多线程测试类,该测试方法主要是实现初始化一组数据,线程访问到数据后将数据输出并再返回数据列表中,基本可以实现JDBC连接池功能:public cl...
2020-08-17 17:35:53 313
原创 MAPREDUCE结果导入elastic
hadoop连接es配置Configuration conf = new Configuration();//禁止speculative机制,该机制会启动多个相同task,使数据重复索引conf.setBoolean("mapred.map.tasks.speculative.execution", false);conf.setBoolean("mapred.reduce.tasks.speculative.execution", false);//设置ES集群中任意节点的IP地址和端口号co
2020-06-01 17:27:14 517
原创 SQL Server 返回的响应不完整。连接已关闭
使用Jenkins发布项目,链接sqlserver报错,错误信息如下:java.ext.dirs: /usr/local/jre1.8.0_101/lib/ext:/usr/java/packages/lib/ext20-Mar-2020 14:04:16.482 警告 [C3P0PooledConnectionPoolManager[identityToken->1hge1i0a81...
2020-03-20 15:29:00 2427
原创 Tomcat启动时执行到Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource...时卡住
我可能是一个假程序员时不时遇到一些意想不到的坑,现在特意准备记录一下,防止踩坑。 作为一个java开发而言,也许太简单然而就更容易出错,比如下面的:Tomcat启动时执行到Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource...时卡住可能原因:1.电脑的m...
2019-11-29 15:09:02 1346
原创 Not allowed to load local resource 的解决方法
出现这样的错一般为直接引用项目外的资源(图片,视频).然后打开网页结果不允许直接访问我们就需要配置一个虚拟路径来访问系统中的资源.容器为tomcat解决方法方法一 :1. 打开tomcat服务界面 在下面选择Modules 然后选择Add Web Module2. 选择Browse 选择你的资源目录,然后填写path 假如选择的为d盘 d盘下有一张a.png 那么你再写...
2019-06-18 10:49:57 31925 1
原创 关于 O(1), O(n), O(logn), O(nlogn)
O(1), O(n), O(logn), O(nlogn)经常用来表示对应算法的时间复杂度,不仅仅可以用于表示时间复杂度,也可以用于表示空间复杂度。 O后面的括号中有一个函数,指明某个算法的耗时/耗空间与数据增长量之间的关系。其中的n代表输入数据的量。 如时间复杂度为O(n),就代表数据量增大几倍,耗时也增大几倍。比如常见的遍历算法。 如时间...
2019-05-23 17:11:06 368
原创 Map-Reduce Framework参数说明
Map-Reduce Framework参数说明 Combine input records: Combiner是为了减少尽量减少需要拉取和移动的数据,所以combine输入条数与map的输出条数是一致的。 Combine output records 经过Combiner后,相同key的数据经过压缩,在map端自己解决了很多重复数据,表示最终在map端中间文件中的所有条目数 ...
2018-11-13 16:53:33 1118
原创 java split方法注意事项
最近分析数据时,需要将数据分割组合,再分割,清洗后获得需要的数据。分割数据时,会使用到split方法,分割后有时会遇到问题。例如,是否以分割 符结尾时,分割出来的字符数组长度是不一样的。一 , java split简单用法public class SplitTest { public static void main(String[] args) { //一般分割 ...
2018-09-27 14:11:55 3550
原创 hdfs文件目录中查找某个字符串所在位置
最近写一个MR处理数据时,遇到某一条文件乱码,需要查找改条记录的原始数据.由于文件全部保存在hdfs上面,因此需要查看该字符串在文件中的位置.hadoop fs -text $file |fgrep "$param" --color参数说明:$file 文件在hdfs上路径$param 需要查找的字段使用shell脚本循环遍历目录时:for file in `hado...
2018-09-25 19:00:03 5753
原创 hive 自定义函数UDF
1. 在Hive中给我们内置了很多函数进入hive客户端,查看hive内置函数:hive > show functions;OK!!=%&*+-/<<=<=><>===>>=^absacosadd_monthsandarray... 查看函数的具体方法:hive&...
2018-09-18 13:49:10 375
原创 linux查看文件前几行和后几行的命令
可以使用head(查看前几行)、tail(查看末尾几行)两个命令。例如:查看/etc/profile的前10行内容,应该是:# head -n 10 /etc/profile查看/etc/profile的最后5行内容,应该是:# tail -n 5 /etc/profile如果想同时查看可以将前10行和后5行的显示信息通过输出重定向的方法保存到一个文档,这样查看文档即可一目了然。例...
2018-09-14 16:28:08 2116
原创 用shell切分文件--split
问题: 最近在做一个接口,日志记录接口停用时的数据,当日志文件过大,读取日志修补数据时会出现Read Rimeout。此时需要将linux上的日志文件切分成小文件。因为很大,所以想把它切成若干份,每份N行,以便并行处理。shell现成的工具--split。语法: split [-bl] file [prefix]说明: -b, --byt...
2018-09-10 10:25:39 4861
原创 Python判断列表为空
>>> [] is not NoneTrue>>> [1] is not NoneTrue>>> [] == NoneFalse>>> [1] == NoneFalse>>> [] == FalseFalse>>> [] is NoneFalse
2018-09-05 15:09:51 6847
原创 POI CellType类型
CellType 类型 值CELL_TYPE_NUMERIC 数值型 0CELL_TYPE_STRING 字符串型 1CELL_TYPE_FORMULA 公式型 2CELL_TYPE_BLANK 空值 3CELL_TYPE_BOOLEAN 布尔型 4CELL_TYPE_ERROR 错误 5
2018-09-05 10:46:06 3097
原创 non-default argument follows default argument 解决方法
错误描述: Python定义方法时,给方法的部分参数指定默认值。调用参数时,报异常:SyntaxError:non-default argument follows default argument。错误原因:没有默认值的参数不能放在有默认值的参数的后面错误示例def test(n = 2, x): s = 1 while n > 0: ...
2018-09-04 15:44:32 13864
原创 The field file exceeds its maximum permitted size of 1048576 bytes.解决方法
问题: springboot上传文件,文件内容超过2M报错,上传不成功.错误提醒: Caused by: org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permit...
2018-09-03 18:03:16 5733 4
原创 java获得excel最后一列,最后一行
最近遇到一个需求是需要向excel表格中追加数据,由于报表格式要求需要按列添加,因此需要获得excel表格最后一列值,然后列插入值:private static int findRealCloumns(XSSFSheet sheet, int... flag) { int realCloumn = 0; while (true) { ...
2018-08-23 13:34:48 12402
原创 JavaMail 邮件附件名乱码问题
问题:用JavaMail 发邮件,带上附件,附件名有时乱码,有时非乱码。查看Java端代码:最终生成的邮件附件名称为:=UTF-8Q=E6=97=A0=E5=BF=A7Hour=E6=8A=A5=E8=A1=A8=E7=BB=9F=E8=AE=A1.xlsx=根据网上部分百度结果修改: 在设置邮件附件的时候调用javax.mail.internet.Mi...
2018-08-22 13:43:21 6393 7
原创 SVN不小心删除了服务器上的文件夹解决办法
一、本地删除SVN删除文件中的本地删除,指的是在客户端delete了一个文件,但还没有commit,使用revert来撤销删除。二、服务器删除1.通过本地删除后提交服务器a)Update上一个版本,但只适用于修改较少的情况;b)通过showLog,找到被删的项,选中,点击右键->Revertchangesfromthisrevision;2.在Repo-Browser中删...
2018-08-21 12:08:53 9013
原创 用java解决浏览器的缓存问题
对html页面和jsp最好都加一些设置对于HTM网页,加入:<meta HTTP-EQUIV="pragma" CONTENT="no-cache"><meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"><meta HTTP-EQUIV="expires
2018-08-20 14:14:23 1433
原创 com.sun.mail.util.MailConnectException: Couldn't connect to host异常解决
最近在做一个接口项目,需要捕获所有的异常信息,并发送邮件给管理员。使用了JavaMail来实现,然后发现在本地(windows环境)上可以正常发送邮件,而放到了linux环境上就无法发送邮件。相关错误如下:org.springframework.mail.MailSendException: Mail server connection failed; nested exception is...
2018-08-16 12:19:51 20503 2
原创 SpringBoot自动重启、热部署
SpringBoot自动重启的两种方法:1)在项目的pom中直接添加plugin,如下:<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <arti...
2018-08-16 12:12:52 3244
原创 springboot集成quartz时,注入bean为null
原因: Spring容器可以管理Bean,但是Quartz的job是自己管理的,如果在Job中注入Spring管理的Bean,需要先把Quartz的Job也让Spring管理起来,因此,我们需要重写JobFactory。解决办法: Quartz与Spring集成 Job如何自动注入Spring容器托管的对象package com.jobs.common....
2018-08-15 10:05:29 3357
原创 springboot配置logback日志
spring boot中默认继承了logback的日志配置。(pom中不需要另行引用logback的jar包)配置application.propertiesspringboot默认使用classpath路径下的logback-test.xml配置文件,找不到该文件时,会访问logback.xml文件,此时不需要在application中进行补充配置。自定义logback配置文件名时需要在a...
2018-08-15 09:33:30 625
原创 jdbc连接greenplum
使用jdbc连接greenplumpackage aaaa; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class TestJDBC { public static...
2018-08-01 15:44:27 3763
原创 定时任务表达式详解
cron表达式用于配置cronTrigger的实例。cron表达式实际上是由七个子表达式组成。这些表达式之间用空格分隔。1.Seconds (秒)2.Minutes(分)3.Hours(小时)4.Day-of-Month (天)5.Month(月)6.Day-of-Week (周)7.Year(年)例:"0 0 12 ? * WED” 意思是:每个星期三的中午12点执行。...
2018-07-27 14:22:29 526
原创 清除字符串中HTML标签
在使用Editor(所见即所得编辑器)的时候,有时候可能会碰到需要在后台修改编辑器的内容,而且这些内容还都是HTML格式的数据,这个时候如果需要定位到某个标签的话就比较困难,毕竟是后台语言,不像前端的js一样可以在页面上直接取到某个标签,今天就分析一下使用Java如何操作HTML格式的字符串。 /** * 清除html标签 * @param li...
2018-07-24 16:20:12 965
原创 Mysql 处理回车换行符
今天遇到一个需求,要从Mysql中查询一部分数据,然后将数据导出为.txt。直接在linux执行命令, mysql -uusername -ppwd -hip -D database -N -e "select jobid , ctmid,coid,cjobname,replace(replace(cjobinfo,CHAR(13),''),CHAR(10),'') from jo...
2018-07-24 15:28:57 5542
原创 springboot动态切换数据源
本文实现案例场景: 某系统除了需要从自己的主要数据库上读取和管理数据外,还有一部分业务涉及到其他多个数据库,要求可以在任何方法上可以灵活指定具体要操作的数据库。 为了在开发中以最简单的方法使用,本文基于注解和AOP的方法实现,在spring boot框架的项目中,添加本文实现的代码类后,只需要配置好数据源就可以直接通过注解使用,简单方便。 配置文件配置内容为:...
2018-07-24 10:25:31 1930 2
原创 动态创建对象,并给对象属性赋值
在开发过程中经常会遇到java对象的属性特征不确定的情况,比如属性的名称,属性的类型,属性的取值等不确定的情况,如何在java运行时获取这些信息?动态的设置java对象的属性值?借助java反射机制以及javassist能够轻松解决这些问题。简单介绍Java的反射原理 Java的反射机制是Java特性之一,反射机制是构建框架技术的基础所在。Java程序要能够运行,j...
2018-07-24 10:04:28 8556 1
原创 java反射获取Object的属性和值
import java.lang.reflect.Field;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** * 反射处理Bean,得到里面的属性值 * * @author liulinsen * */public class...
2018-07-24 09:51:32 3165
原创 Hadoop合并小文件
在运行hadoop程序时,从hdfs上读取数据,可能会由于小文件过多而影响内存资源大量被占用,从而导致hadoop集群崩溃,或者程序执行耗时过长。(在Hadoop的世界中,小文件是指文件大小远远小于HDFS块大小的文件,Hadoop2.0中,HDFS默认的块大小是128MB,所以,比如2MB,7MB或9MB的文件就认为是小文件。) Hadoop的应用中,Hadoop可以...
2018-07-23 12:10:11 2017
原创 hdfs统计行数和统计文件大小
使用hdfs有时候需要统计文件行数和文件的大小1.hdfs下载文件夹中多个文件hadoop fs -get /目录 目录 2.统计多个文件行数hadoop fs -cat /文件* | wc -l 3.统计文件大小hadoop fs -count /文件* 统计单个文件 只需要精确到文件即可...
2018-07-23 11:51:35 5981
转载 Java线程的基本知识总结
(一)创建线程的方式(1)实现Runnable接口(2)继承Thread类推荐使用接口,能够做到定义与实现分离,耦合更低(二)关于线程的优先级thread2.setPriority(Thread.MAX_PRIORITY)等级越高,优先运行(三)关于线程的yield的方法关于yield方法,是指当前线程可能运行不太重要的任务,可以通过这个方法暗示操作系统线程调度我可...
2018-07-17 09:42:18 128
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人