
java
文章平均质量分 84
撸码小丑
BUG制造商
展开
-
彻底理解ThreadLocal
ThreadLocal是什么 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线...转载 2020-01-21 18:04:51 · 426 阅读 · 0 评论 -
java8 CompletableFuture_异步执行多个任务
前言CompletableFuture是java8提供的基于异步操作的封装,日常开发中怎能不用上一番呢。1)聚合多个异步任务需求:多个tab页包含不同的表格数据,并且带分页,页面首次加载时需要显示第一页数据,并且在tab顶上显示总量,如下图所示:各个表格数据从es中查询,涉及到计算,此处可以让前端调用多个接口来组装数据,但考虑到查询效率和网络交互,采用后端以多线程的形式查询,组合多个...转载 2020-01-21 18:03:55 · 3693 阅读 · 1 评论 -
Java移位运算符详解实例
移位运算符它主要包括:左移位运算符(<<)、右移位运算符(>>>)、带符号的右移位运算符(>>),移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处理int型整数。运算符 含义 << 左移运算符,将运算符左边的对象向左移动运算符右边指定的位数(在低位补0) >> "有符号"右移运算 符,将运算...转载 2019-12-23 15:00:31 · 182 阅读 · 0 评论 -
JAVA-NIO学习
攻破JAVA NIO技术壁垒 - ImportNew http://www.importnew.com/19816.html转载 2018-03-27 14:26:04 · 979 阅读 · 0 评论 -
统计服务器总核、内存、磁盘的Java工具类
package cn.xt.admin.core.util;import com.jcraft.jsch.*;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.Has...原创 2018-08-08 15:48:21 · 589 阅读 · 0 评论 -
JSch登录sftp,跳过 Kerberos username 身份验证提示
一般情况下,我们登录sftp服务器,用户名认证或者密钥认证即可。 但是如果对方服务器设置了Kerberos 身份验证,而已方又没有对应的配置时,则会提示输入 Kerberos username [xxx] Kerberos password此时,简单的解决办法是,可以去掉Kerberos 身份验证来解决解决办法 session.setConfig(“PreferredAut...转载 2018-09-04 17:47:05 · 1641 阅读 · 0 评论 -
Java List中添加一个对象多次
在实际应用场景中,可以需要在一个List中添加多个对象,在使用的时候有个误区就是将一个对象添加多次到List中,导致数据不一致。测试代码:public class test { public static void main(String[] args) { List<CreditLoanXMLInfo> list = new ArrayList(...原创 2018-09-17 11:51:42 · 8823 阅读 · 0 评论 -
java ssh远程连接服务器,跳过 Kerberos username 身份验证提示
一般情况下,我们登录sftp服务器,用户名认证或者密钥认证即可。 但是如果对方服务器设置了Kerberos 身份验证,而已方又没有对应的配置时,则会提示输入 Kerberos username [xxx] Kerberos password此时,简单的解决办法是,可以去掉Kerberos 身份验证来解决解决办法 session.setConfig(“PreferredAuthent...转载 2018-11-06 17:11:06 · 2987 阅读 · 0 评论 -
zxing实现二维码生成和解析
1、创建一个maven项目,添加zxing和fastjson依赖。 <!-- zxing --> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.1.0</version> </dependency> <原创 2017-11-27 15:54:31 · 2252 阅读 · 0 评论 -
maven中央仓库的地址,搜索坐标
http://mvnrepository.com/原创 2017-11-17 10:03:48 · 3859 阅读 · 0 评论 -
BASE64Encoder无法导入的解决方法
右键项目-属性-java bulid path-jre System Library-access rules-resolution选择accessible,下面填上** 点击确定即可。就是这么简单。原创 2017-11-17 09:02:02 · 8331 阅读 · 1 评论 -
Linux下安装jdk
首先查看系统中原有的java版本:java -version; 如果系统自带有jdk那么先卸载: rpm -qa | gcj查看具体的信息, 用:rpm -e –nodeps java-1.5.0-gcj-1.5.0.0-29.1.el6.x86_64卸载。1.上传jdk.xxx.tar.gz到Linux上 2.解压jdk到/usr/local/apps目录tar -zxvf jdk-7u4原创 2017-10-19 13:46:03 · 2102 阅读 · 0 评论 -
Java同步关键词synchronized和Lock接口
1.synchronized关键字 使用方式:synchronized( 需要一个任意的对象(锁) ){ 代码块中放操作共享数据的代码。 }synchronized的缺陷 synchronized是java中的一个关键字,也就是说是Java语言内置的特性。 如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线原创 2017-09-25 16:55:01 · 2438 阅读 · 0 评论 -
CountDownLatch同步辅助类简用
CountDownLatch是JAVA提供在java.util.concurrent包下的一个辅助类,可以把它看成是一个计数器,其内部维护着一个count计数,只不过对这个计数器的操作都是原子操作,同时只能有一个线程去操作这个计数器,CountDownLatch通过构造函数传入一个初始计数值,调用者可以通过调用CounDownLatch对象的cutDown()方法,来使计数减1;如果调用对象上的aw原创 2017-09-20 09:51:30 · 2212 阅读 · 0 评论 -
inputstream重复使用方法
在项目中需要对同个文件流进行两个操作,一个是上传文件流到HDFS上,一个是上传文件流到solr建立文件索引。因为这两个功能是不同的coder写的,当执行了一个操作后流就被关闭了。于是要想办法让流可以重复使用。在网络上查找到一个方法,就是将inputstream转换成ByteArrayOutputStream,要用流时再用baos转换回来就可以了。 代码如下:ByteArrayOutputStrea原创 2017-09-18 15:47:57 · 6090 阅读 · 2 评论 -
Java异常类小结
异常类基本就那两种类型: Error Exception 如果说Error类代表了系统和编译的错误;那Exception类就代表了标准Java库方法所激发的异常。Error类的异常是不允许捕获的,而发生Exception异常的程序可以通过捕获处理后正常运行保持程序的可读性及可靠性。这其中Exception类还包含运行异常类(Runtime_Exception)和非运行异常类(Non_Run转载 2017-08-08 21:36:48 · 3529 阅读 · 0 评论 -
Java获取本周、本月、本年、及各种时间段的工具类
package tomsz.xinlu.util;import java.sql.Timestamp;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.List;public class原创 2017-07-31 16:03:39 · 4932 阅读 · 0 评论 -
java以一个空格或者多个空格进行字符串的分割
解决思路,使用正则表达式 String的split方法支持正则表达式的使用,匹配一个或多个空格的正则表达式为:“\s+” 代码如下:String [] arr = str.split("\\s+");for(String ss : arr){ System.out.println(ss);}原创 2017-11-09 16:28:43 · 5410 阅读 · 0 评论 -
Runtime.getRuntime().exec()方法的使用
在公司项目中需要调用外包的命令脚本语言来实现功能,Jdk中提供了Runtime.getRuntime().exec()方法来执行。 1.错误的使用方式Runtime.getRuntime().exec("xxx");2.正确的使用方式//需要指定参数一:命令位置;参数二:-c表示先执行第一个参数;参数三:你的命令。Runtime.getRuntime().exec(new String[]{"/原创 2017-10-25 11:09:51 · 25895 阅读 · 10 评论 -
Socket简介以及Java Socket编程
一、网络编程中两个主要的问题一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。 而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。 目前较为流行的转载 2017-08-08 19:07:08 · 1982 阅读 · 0 评论