
java
lip86
这个作者很懒,什么都没留下…
展开
-
Linux运行jar包
要运行java的项目需要先将项目打包成war包或者jar包,打包成war包需要将war包部署到tomcat服务器上才能运行。而打包成jar包可以直接使用java命令执行。在linux系统中运行jar包主要有以下几种方式。一、java -jar XXX.jar这是最基本的jar包执行方式,但是当我们用ctrl+c中断或者关闭窗口时,程序也会中断执行。二、java -jar XXX.jar &&代表在后台运行,使用ctrl+c不会中断程序的运行,但是关闭窗口会中断程序的运行。转载 2022-03-08 09:15:12 · 2618 阅读 · 0 评论 -
图片转base64编码的两种方法(本地图片和网络图片url)
图片转base64编码的两种方法(本地路径和网络url)1.对于前段时间遇到的问题现在给大家说一下,,希望大家共勉,以后尽量避免(直接贴代码了)一、本地图片转base64编码 二、网络图片url转base64编码 ...转载 2021-06-09 13:34:29 · 12213 阅读 · 2 评论 -
JDK 8 如何通过 LocalDate 计算两个日期相差的天数
JDK 8 如何通过 LocalDate 计算两个日期相差的天数1. 获取总的日期间隔 2. 获取年月日单独的日期间隔 3. 注意事项JDK 8 提供了新的日期类LocalDate,通过LocalDate可以轻松的对日期进行操作,在实际的开发过程中也会经常需要计算两个日期相差的天数。1. 获取总的日期间隔// 指定转换格式DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd");LocalDate s...转载 2020-11-23 08:47:54 · 7826 阅读 · 1 评论 -
java实现小写金额转换大写金额
package com.sunboon.jiexi; /** * * @author qizhenglong * */ public class MoneyUtil { /** 大写数字 */ private static final String[] NUMBERS = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" }; /** 整数部分的单位 .转载 2020-08-07 15:07:56 · 806 阅读 · 0 评论 -
SimpleDateFormat线程不安全原因及解决方案
一、线程不安全验证:/** * SimpleDateFormat线程安全测试 * 〈功能详细描述〉 * * @author 17090889 * @see [相关类/方法](可选) * @since [产品/模块版本] (可选) */public class SimpleDateFormatTest { private SimpleDateFormat simpl...转载 2020-04-27 11:22:56 · 625 阅读 · 0 评论 -
java静态(static)方法中依赖注入调用Service层
要求:CommonUtil类中的静态方法需要调用trUserRoleService中的方法以获取用户角色实现如下:@Component // 交由spring管理public class CommonUtil { @Autowired // 注入 private TRUserRoleService trUserRoleService; // 声明对象...转载 2020-04-15 10:19:38 · 5683 阅读 · 0 评论 -
分布式ID生成 - 雪花算法
雪花算法是一种生成分布式全局唯一ID的经典算法,关于雪花算法的解读网上多如牛毛,大多抄来抄去,这里请参考耕耘的小象大神的博客ID生成器,Twitter的雪花算法(Java)网上的教程一般存在两个问题:1. 机器ID(5位)和数据中心ID(5位)配置没有解决,分布式部署的时候会使用相同的配置,任然有ID重复的风险。2. 使用的时候需要实例化对象,没有形成开箱即用的工具类。本文针对上面...转载 2019-12-16 10:40:31 · 215 阅读 · 2 评论 -
java字符串截取--截取倒数第二个指定字符之后的字符串
截取倒数第二个"/"之后的字符串String path="/home/henry/Desktop/1.txt"; //获得"Desktop/1.txt",并且不需要前面的"/"String oo=path.substring(path.lastIndexOf("/",path.lastIndexOf("/")-1)+1);//"+1"代表在定位时往后取一位,即去掉"/"//"-1"...转载 2019-11-18 17:14:04 · 5298 阅读 · 1 评论 -
java根据url下载文件到指定路径(支持压缩包)
url是下载地址import java.net.URL;import java.io.File;import org.apache.commons.io.FileUtils;@Autowiredprivate ImProperties imProperties;private String downloadFromUrl(String url) { String fileN...原创 2019-11-15 15:10:34 · 1308 阅读 · 0 评论 -
java不解压直接读取gzip压缩包文件内容
之前一直以为压缩包都是zip格式的,所以用java在对压缩包内容进行读取数据时一直报error in open zip file错误,在此记录一下另外一种gzip的内容读取方法。String path = "E:\\" + fileName;BufferedReader reader = new BufferedReader( new InputStreamReader( ne...原创 2019-11-14 16:05:20 · 1593 阅读 · 0 评论 -
为什么在重写了equals()方法之后也必须重写hashCode()方法
我们都知道Java语言是完全面向对象的,在java中,所有的对象都是继承于Object类。Ojbect类中有两个方法equals、hashCode,这两个方法都是用来比较两个对象是否相等的。在未重写equals方法我们是继承了object的equals方法,那里的 equals是比较两个对象的内存地址,显然我们new了2个对象内存地址肯定不一样对于值对象,==比较的是两个对象的值对于引用对象,比较...转载 2018-05-04 11:12:34 · 191 阅读 · 0 评论 -
String.getBytes()
在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。表示在不同OS下,返回的东西不一样! String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如 byte[] b_gbk = "中".getBytes("GBK"); byte[] b_utf8 = "中".getByte...转载 2018-06-26 15:52:59 · 5574 阅读 · 0 评论 -
Iterator迭代器
//获得map的迭代器,用作遍历map中的每一个键值对Iterator是迭代器,map之前应该定义过,姑且认为是HashMap。<Entry<String,String>>表示map中的键值对都是String类型的。map.entrySet()是把HashMap类型的数据转换成集合类型map.entrySet().iterator()是去获得这个集合的迭代器,保存在iter...转载 2018-06-26 16:11:13 · 135 阅读 · 0 评论 -
Java 原子操作与并发
由一个简单的例子引出并发处理时容易被忽视的陷阱,用来作为面试问题应该很适合。某日,工作了 4 年多的 Java 程序员小 K 跳槽,面试时碰到这样一个题目.... public class P1 { private long b = 0; public void set1() { b = 0; } public void set2() { ...转载 2018-07-09 14:44:55 · 164 阅读 · 1 评论 -
使用fastjson进行json字符串和List的转换
使用fastjson进行自定义类的列表和字符串转换1.环境jdk1.8,fastjson2.pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apach...转载 2018-06-27 19:34:57 · 1347 阅读 · 0 评论 -
JSON.parseObject(String str)与JSONObject.parseObject(String str)的区别
一、首先来说说fastjsonfastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。其主要特点是:① 快速:fastjson采用独创的算法,将parse的速度提升到极致,超过所有基于Java的json库,包括曾经号称最快的jackson;② 强大:Fastjson完全支持http://json.org的标准(也是Google官方网站收录的参考...转载 2018-06-27 20:05:07 · 824 阅读 · 0 评论 -
String与StringBuffer之间的转换
package demo;/* String与StringBuffer之间的转换 * String -> StringBuffer * 方式一:构造方法 * 方式二:通过append方法 * StringBuffer -> String * 方式一:通过构造方法 * 方式二:通过toString方法 * */public class StringAndStringB...转载 2018-08-03 22:42:43 · 515 阅读 · 0 评论 -
转发跟重定向的区别
什么转发,什么是重定向,对于一个初学者也许是时不时就忘了时不时就忘了,其实说到底就是没有理解其中的本质区别。没错,这个人就是我,为了让自己更加充分理解,所以决定写下来,记忆深刻! 在servlet中转发的语句为:request.getRequestDispatcher("xxx.jsp").forward(request,response);在servlet中重定向的语句为:...转载 2018-07-27 17:07:27 · 228 阅读 · 0 评论 -
JSON字符串和java对象的互转【json-lib】
在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML、JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好,下面先看下JSON的格式,JSON可以有两种格式,一种是对象格式的,另一种是数组对象。{"name":"JSON","address":"北京市西城区","age":25}//JSON的对象格式...转载 2018-08-01 15:16:17 · 220 阅读 · 0 评论 -
log4j在javaWeb项目中的使用
在前边的文章中对log4j的配置文件进行了说明,今天介绍如何在普通的javaWeb项目中使用log4j。在日常的开发过程中,日志使用的很频繁,我们可以利用日志来跟踪程序的错误,程序运行时的输出参数等,很多情况下可能会使用System.out.println()这个方法,但是还有一种更加简洁的方式,那就是使用日志框架,今天就看看log4j这个日志框架如何在javaWeb的类中使用。一、log...转载 2018-08-03 11:22:07 · 244 阅读 · 0 评论 -
如何使用mybatis《一》
mybatis作为ORM轻量级框架一出现就吸引了无数人的眼球,比hibernate要简单且入门较容易,下面开始我的第一个mybatis程序。一、下载mybatis的包我们知道任何一个框架都会有其包,我们从其官方网站下载其包,官网网址为:http://www.mybatis.org/mybatis-3/,我这里使用的版本为3.3.0。下载完成之后解压可看到如下的目录结构: mybat...转载 2018-08-03 14:13:11 · 167 阅读 · 0 评论 -
如何使用mybatis《二》
前边阐述了如何在java项目中使用mybatis,我们使用的是映射文件的方式,在获得具体的数据操作方法时需要传入映射文件中namespace+“.”方法名称,这种方式有时候会感觉很不爽,很麻烦。我们在开发中不是常说要面向接口变成吗,mybatis也支持接口,下面在前面的例子的基础上做相应修改。前面的例子的环境及映射文件均保持不变,如下是我的映射文件,<mapper namespac...转载 2018-08-03 15:29:52 · 150 阅读 · 0 评论 -
String的getBytes()方法
在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。这表示在不同的操作系统下,返回的东西不一样!String.getBytes(Stringdecode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如:byte[] b_gbk = "中".getBytes("GBK");byte[] b_utf8 = "中".g...转载 2018-09-10 10:44:08 · 1001 阅读 · 0 评论 -
Java IO流操作汇总: inputStream 和 outputStream
我们在进行Android java 开发的时候,经常会遇到各种IO流操作。IO流操作一般分为两类:字符流和字节流。以“Reader”结尾都是字符流,操作的都是字符型的数据;以“Stream”结尾的都是字节流,操作的都是byte数据。现将各种常见IO流总结如下:一、字节流1. InputStream 和 OutputStreamInputStream 和 OutputStream为各种输...转载 2018-09-10 14:28:17 · 253 阅读 · 0 评论 -
HttpURLConnection与HttpClient浅析
1. GET请求与POST请求HTTP协议是现在Internet上使用得最多、最重要的协议了,越来越多的Java应用程序需要直接通过HTTP协议来访问网络资源。在介绍HttpURLConnection前,我们还是再来说一下URL请求最常用的两种方式:GET请求与POST请求。GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&am...转载 2018-09-10 16:35:03 · 145 阅读 · 0 评论 -
利用原始HttpURLConnection发送POST数据
URLConnection是个抽象类,它有两个直接子类分别是HttpURLConnection和JarURLConnection。另外一个重要的类是URL,通常URL可以通过传给构造器一个String类型的参数来生成一个指向特定地址的URL实例。每个 HttpURLConnection 实例都可用于生成单个请求,但是其他实例可以透明地共享连接到 HTTP 服务器的基础网络。请求后在 HttpU...转载 2018-09-10 17:01:42 · 191 阅读 · 0 评论 -
腾讯地图逆地址解析,通过经纬度获取详细的信息数据
根据腾讯地图API,以图文的方式一步一步的来说明如何获取详细的位置信息数据。具体参考腾讯地图Webservice API的简介。腾讯地图WebService API 第一步:申请开发者密钥(key)申请密钥 我选择的应用类型为浏览器类型(调用Javascript API、JSONP调用WebService API、静态图API等)。 填写完成提交好既可以获取属于自...原创 2018-09-14 10:37:30 · 9234 阅读 · 0 评论 -
ArrayList和数组间的相互转换
一、ArrayList转换为数组ArrayList提供public <T> T[] toArray(T[] a)方法返回一个按照正确的顺序包含此列表中所有元素的数组,返回数组的运行时类型就是指定数组的运行时类型。import java.util.ArrayList;import java.util.List;public class Test { public ...转载 2018-10-12 16:51:40 · 25411 阅读 · 1 评论 -
运用redis键的expire时间,控制1一分钟内的访问量
客户端频繁的访问网站,会对网站资源造成很大的压力,所以,需要限制时间段内的访问次数,如果访问过于频繁,应该禁止访问,采用redis实现这一需要,redis中,可以使用expire设置key的生存时间,这一特性很好的满足我们的需求,解决代码如下:工具类:package cn.sniper.tjfxpt.utils;import redis.clients.jedis.Jedis;imp...转载 2018-10-18 09:59:16 · 1570 阅读 · 0 评论 -
JAVA学习篇--静态代理VS动态代理
本篇博客的由来,之前我们学习大话设计,就了解了代理模式,但为什么还要说呢?原因:1,通过DRP这个项目,了解到了动态代理,认识到我们之前一直使用的都是静态代理,那么动态代理又有什么好处呢?它们二者的区别是什么呢?2,通过学习动态代理了解到动态代理是一种符合AOP设计思想的技术,那么什么又是AOP?下面是我对它们的理解! 代理Proxy: Proxy代理模式是一种结构...转载 2018-10-08 09:38:27 · 106 阅读 · 0 评论 -
Java 浮点数在实际应用场景中踩坑题目解析
问:请用 java 实现如下描述流程;你买了价值 1.1 元的东西,你给收银员 2.0 元钱,收银员找你 0.9 元?答:你可能觉得这道题太 TM 简单了,上来就给出如下代码答案。double total = 2.0;double used = 1.1;double result = total - used;结果得到的结果是 0.8999999999999999,因为JAVA中...转载 2018-10-15 16:56:54 · 641 阅读 · 0 评论 -
Java动态代理演变之路
1、什么是代理? 代理,英文成文Proxy。意思是你不用去做,别人代替你去处理。比如有人想找明星周董去唱歌,他需要做签约、讨论、唱歌和付款等等过程,但真正周董擅长的事情是唱歌,其他的事情可以交代给他的经纪人来做,经纪人就是一个代理,周董就是被代理的人。2、我们为什么要引入代理? 比如我们要统计每个方法的执行时间,以对性能做出评估,那我们就需要在每个方法的头尾...转载 2018-09-30 10:59:44 · 177 阅读 · 0 评论 -
Java 数组如何转成List集合
问题描述:对于给定的如下数组,如何转换成List集合?String[] array = {"a","b","c"};总结如下几种写法:1.使用原生方式,拆分数组,添加到ListList<String> resultList = new ArrayList<>(array.length);for (String s : array) { resu...转载 2018-10-09 17:59:55 · 511 阅读 · 0 评论 -
定时器的实现,java定时器Timer和Quartz的介绍
我们可能经常遇到项目需要定时器,如果我们不了解定时器就会用线程去实现,例如:package org.lzstone.action public class FinanceAction extends Thread{ private Date date; public void run{ try{ while(true...原创 2018-10-16 16:15:37 · 204 阅读 · 0 评论 -
Java String indexOf()方法
public class Test { public static void main(String[] args) { String s = "xXccxxxXX"; // 从头开始查找是否存在指定的字符,索引从0开始 //结果如下 System.out.println(s.indexOf("c")); //2 // 从第四个字符位...转载 2018-10-10 15:06:03 · 3367 阅读 · 0 评论 -
java Future用法和意义一句话击破
在并发编程时,一般使用runnable,然后扔给线程池完事,这种情况下不需要线程的结果。 所以run的返回值是void类型。 如果是一个多线程协作程序,比如菲波拉切数列,1,1,2,3,5,8...使用多线程来计算。 但后者需要前者的结果,就需要用callable接口了。 callable用法和runnable一样,只不过调用的是call方法,该方法有一个泛型返回值类型,你可以任意指定。 ...转载 2018-10-19 16:19:11 · 129 阅读 · 0 评论 -
BigDecimal 加减乘除
BigDecimal bignum1 = new BigDecimal("10"); BigDecimal bignum2 = new BigDecimal("5"); BigDecimal bignum3 = null; //加法 bignum3 = bignum1.add(bignum2); System.out.println("和 是:" + big...转载 2018-10-19 17:46:59 · 139 阅读 · 0 评论 -
Java并发编程必懂知识点解析
1.并发编程三要素原子性原子,即一个不可再被分割的颗粒。在Java中原子性指的是一个或多个操作要么全部执行成功要么全部执行失败。有序性程序执行的顺序按照代码的先后顺序执行。(处理器可能会对指令进行重排序)可见性当多个线程访问同一个变量时,如果其中一个线程对其作了修改,其他线程能立即获取到最新的值。2. 线程的五大状态创建状态当用 new 操作符创建一个线程的时候...转载 2018-10-25 16:43:50 · 266 阅读 · 0 评论 -
null 对象访问 static 属性或方法相关面试题解析
问:定义一个赋值为 null 的类类型变量名 a,能否通过 a 不进行实例化而直接访问其 static 属性或者方法?答:答案是肯定的,能。譬如如下例子:public class Test { public static int NUM = 100; public static void funcDo() { System.out.println("Nu...转载 2018-10-24 16:17:38 · 203 阅读 · 0 评论 -
Java 异常(Part 1)相关面试题
问:java 异常有哪几种,特点是什么?答:异常是发生在程序执行过程中阻碍程序正常执行的错误操作,只要在 Java 语句执行中产生异常则一个异常对象就会被创建。Throwable 是所有异常的父类,它有两个直接子类 Error 和 Exception,其中 Exception 又被继续划分为被检查的异常(checked exception)和运行时的异常(runtime exception,即...转载 2018-10-24 16:44:02 · 382 阅读 · 0 评论