Java
文章平均质量分 61
lulu19870526
这个作者很懒,什么都没留下…
展开
-
ThreadLocal原理以及为什么会出现内存泄漏
ThreadLocal原理以及为什么会出现内存泄漏一、ThreadLocal ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 ...原创 2018-11-03 17:27:46 · 2579 阅读 · 0 评论 -
java中的==和equals()以及instanceof
java中的==和equals()以及instanceof 一、"==" 1、 "=="操作符的作用 1)用于基本数据类型的比较. 基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean, 他们之间的比较,是用双等号(==)来比较他们的值。 2)判断引用是否指向堆内原创 2017-05-15 19:43:50 · 659 阅读 · 0 评论 -
如何查看linux系统的jdk版本
如何查看linux系统的jdk版本1.查找使用的jdk安装后的目录 echo $JAVA_HOME; 假设为:/opt/soft/java2.进入到jdk安装目录下面的bin目录 /opt/soft/java/bin3.在上面的目录中查看jdk版本 ./java -version转载 2017-04-13 17:53:37 · 65266 阅读 · 0 评论 -
并发insert情况下会发生重复的数据插入问题
并发insert情况下会发生重复的数据插入问题1.背景 用多线程接收推送的订单数据,把接收的订单数据存到一个表中,实现的需求是:如果接收的订单消息在数据库中已经存在,那么执行update操作;如果没有存在,那么执行insert操作 代码逻辑: if(该订单在数据库表中存在){ update();}else{ insert();}原创 2017-03-06 20:58:53 · 43745 阅读 · 8 评论 -
java序列化与反序列化
java序列化与反序列化 1.什么是序列化 Java序列化是指把Java对象转换成与平台无关的二进制流的过程,这些二进制流可以使Java对象脱离程序存在,从而可以保存在磁盘上,也可以在网络间传输;Java序列化是将一个Java对象写入IO流 Java反序列化是指把二进制流恢复为Java对象的过程,反序列化则是从IO流中恢复一个Java对象。2.为什么进行序列原创 2017-02-10 18:43:07 · 422 阅读 · 0 评论 -
log4j 2.x读取配置文件以及使用
log4j 2.x读取配置文件以及使用1.引用log4j jar包 org.apache.logging.log4j log4j-api 2.2 org.apache.logging.log4j log4j-core 2.2 org.apache.logging.log4j lo原创 2016-11-23 10:44:39 · 3387 阅读 · 0 评论 -
java 线程池ThreadPoolExecutor
java 线程池ThreadPoolExecutor1.线程池的作用 1)降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 2)提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 3)提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和转载 2016-11-22 11:55:17 · 876 阅读 · 0 评论 -
java 判断两个日期的大小
Date.getTime()方法getTime 方法返回一个整数值,这个整数代表了从 1970 年 1 月 1 日开始计算到 Date 对象中的时间之间的毫秒数。importjava.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;/**** @author jinxin原创 2014-11-03 16:23:10 · 24323 阅读 · 2 评论 -
用XPath解析XML文件
用XPath解析XML文件一、XPath XPath 是一门在 XML 文档中查找信息的语言, 可用来在 XML 文档中对元素和属性进行遍历。 XPath表达式比繁琐的文档对象模型(DOM)代码要容易编写得多。如果需要从XML文档中提取信息,最快捷、最简单的办法就是在Java程序中嵌入XPath表达式。在Java版本中推出了javax.xml.xpath包原创 2016-11-10 15:41:26 · 9760 阅读 · 0 评论 -
负载均衡之权重轮询调度算法
负载均衡之权重轮询调度算法一、负载均衡 nginx不单可以作为强大的web服务器,也可以作为一个反向代理服务器。如果nginx是以反向代理的形式配置运行,那么对请求的实际处理需要转发到后端服务器运行,如果后端服务器有多台,如何选择一台合适的后端服务器来处理当前请求,这就是负载均衡二、nginx负载均衡策略之round_robin round_robin策略做为默认策略:原创 2016-11-09 16:52:04 · 13848 阅读 · 2 评论 -
最大公约数-----欧几里德算法
最大公约数-----欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个正整数a,b的最大公约数。 算法: 两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。最大公约数(greatest common divisor)缩写为gcd。 gcd(a,b) = gcd(b,a mod b) (不妨设a>转载 2016-11-09 17:09:56 · 553 阅读 · 0 评论 -
java中split()在遇到空有时不能成功分隔
java中split()在遇到空有时不能成功分隔 Java中的我们可以利用split把字符串按照指定的分割符进行分割,然后返回字符串数组 split 方法 该方法的作用是:将一个字符串分割为子字符串,然后将结果作为字符串数组返回。 stringObj.split([separator,[limit]]) stringObj原创 2015-09-09 18:54:06 · 15623 阅读 · 1 评论 -
System.arraycopy实现数组之间的复制以及Arrays类的copyOf()实现数组复制
用System.arraycopy实现数组之间的复制 System提供了一个静态方法arraycopy(),可以使用它来实现数组之间的复制,其函数的原型是: public static native void arraycopy(Object src, int srcPos,原创 2017-04-26 16:28:44 · 1484 阅读 · 0 评论 -
java list中删除元素用remove()报错的fail-fast机制原理以及解决方案
java list中删除元素用remove()报错的fail-fast机制原理以及解决方案 现在有一个list,有6个元素,值分别是1、5、5、8、5、10,现需要删除值为5的元素 第一种 import java.util.ArrayList;import java.util.List;public class ListRemove1 { pub原创 2017-04-26 18:20:59 · 3489 阅读 · 0 评论 -
Java虚拟机架构
Java虚拟机架构 一、概述 Java 虚拟机是物理机的软件实现。Java的设计理念是WORA(Write Once Run Anywhere,一次编写随处运行) 一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序。程序开始执行时他才运行,程序结束时他就停止。你在同一台机器上运行三个程序,就会有三个运行中的Java虚拟机。Java虚拟原创 2017-10-20 16:10:16 · 612 阅读 · 0 评论 -
SimpleDateFormat线程安全问题详解
SimpleDateFormat线程安全问题详解 在平时的工作中,我们经常需要将日期在String和Date之间做转化,此时需要使用SimpleDateFormat类。使用SimpleDateFormat类的parse方法,可以将满足格式要求的字符串转换成Date对象;使用SimpleD...原创 2018-11-03 10:17:44 · 7603 阅读 · 0 评论 -
java反射机制
java反射机制一、什么是反射 1.jvm的大体工作原理package test;/** * Created by on 2017/12/13. */public class TestHelloWorld { private String desc; public TestHelloWorld(String desc) { this.转载 2017-12-13 10:46:03 · 429 阅读 · 0 评论 -
动态代理以及动态代理如何实现AOP
动态代理以及动态代理如何实现AOP一、代理设计模式 什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道被代理人能做哪些事情不能做哪些事情吧,那就是两个人具备同一个接口,代理人虽然不能干活,但是被代理的人能干活呀。 举例:晚会的主办方要举行歌舞表演,要找歌手唱歌和跳舞 ,主办方会找歌手的经纪人来确认沟通直至签合同,这样在原创 2018-01-03 15:40:48 · 1618 阅读 · 0 评论 -
求一个数的阶乘且防止溢出
求一个数的阶乘且防止溢出一、阶乘的定义 一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。亦即n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。二、如何求一个数的阶乘 1、递归方法 我们首先想到的就是递归求一个数的阶乘 publ转载 2017-12-27 15:55:38 · 2210 阅读 · 1 评论 -
获取jar包中的class类
获取jar包中的class类1、fastjson jar包 com.alibaba fastjson 1.2.6 2.解析jar包中的内容import java.util.Enumeration;import java.util.jar.JarEntry;import java.原创 2017-12-18 21:03:14 · 5489 阅读 · 0 评论 -
单例设计模式
单例设计模式 一、单例模式 1.单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意: 1)、单例类只能有转载 2017-12-18 20:53:05 · 279 阅读 · 0 评论 -
jdk1.8 String源码解析
jdk1.8 String 源码解析 一、String类 public final class String implements java.io.Serializable, Comparable, CharSequence { //用于存储字符的字符数组,值不可更改 private final char value[]; //该原创 2017-12-11 15:20:15 · 642 阅读 · 0 评论 -
Java把一个大的文本文件拆分成几个小的文件
Java把一个大的文本文件拆分成几个小的文件 一、背景 本地调用线上服务运行了一个程序,运行完成后,日志文件644MB,由于日志中没有统计数据的代码,所以想用日志文件统计一个运行的结果。但是发现:用Notepad++打不开日志文件,原因是文件太大。所以才想到用程序实现 拆分的粒度:每个拆分后的小文件在100MB左右。二、java代码 1原创 2017-12-08 20:17:26 · 11900 阅读 · 1 评论 -
jdk1.8----ArrayList源码解析
jdk1.8----ArrayList源码解析1.ArrayList类的结构public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, java.io.Serializable { private static final long serialVersi原创 2017-11-09 17:38:48 · 577 阅读 · 1 评论 -
java jdk1.8 LinkedList源码解析
java jdk1.8 LinkedList源码解析 LinkedList底层使用双向链表来实现的,双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点 1.LinkedList的结点类型 //LinkedList的结点类型 pri原创 2017-11-17 14:51:24 · 463 阅读 · 0 评论 -
java类加载器以及双亲委派机制
java类加载器以及双亲委派机制一、类加载器 JVM定义了三类类加载,分别是: 1)Bootstrap ClassLoader /启动类加载器 是用本地代码实现的类装入器,它负责将$JAVA_HOME中jre/lib/rt.jar下面的类库加载到内存中。由于引导类加载器涉及到虚拟机本地实现细节,由C++实现,不是ClassLoader子类,开发者无法直转载 2017-10-24 19:51:53 · 539 阅读 · 0 评论 -
cookie的相关知识
1.cookie是什么?cookie是web应用当中非常常用的一种技术,用于储存某些特定的用户信息。2.cookie的作用?在用户登陆时将用户的信息存放在cookie中,用户在一定的时间中再次登陆时不需要输入用户名和密码直接跳转到下一个界面。3.设置cookieCookie cookie = new Cookie("key", "value");cookie.setMax转载 2014-12-15 14:24:26 · 530 阅读 · 0 评论 -
Java解析url中的路径和参数
Java解析url中的路径和参数解析url,本想用正则表达式处理,但正则表达式速度较慢,所以用split来解析urlpublic class Test { public static void main(String args[]){ String baseUrl = "https://www.baidu.com?a=123&b=456&c=789"; Strin原创 2016-09-19 15:41:45 · 11298 阅读 · 0 评论 -
Java根据生日得出是十二星座的哪一个星座
Java根据生日得出是十二星座的哪一个星座方法一:public static String star(int month, int day) { String star = ""; if (month == 1 && day >= 20 || month == 2 && day <= 18) { star = "水瓶座";转载 2015-07-01 13:21:10 · 6009 阅读 · 0 评论 -
java得到此时此刻的2个半小时后的时间,返回一个Date类型
java得到此时此刻的4个半小时后的时间,返回一个Date类型Date date = new Date();Calendar c = Calendar.getInstance();c.setTime(date);c.add(Calendar.MINUTE, 270);return c.getTime();转载 2015-05-21 18:05:27 · 823 阅读 · 0 评论 -
java.lang.ThreadLocal类
java.lang.ThreadLocal类1.ThreadLocal类 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提转载 2015-05-08 14:29:43 · 464 阅读 · 0 评论 -
Java两个list合并取交集
有两个List,分别是lsit1和list2,取这两个List的交集List citylist1 = new ArrayList();citylist1.add("青岛");citylist1.add("济南");citylist1.add("威海");citylist1.add("日照");第一个list含有四个元素,分别是:青岛、济南、威海、日照List cityl原创 2015-01-04 17:07:26 · 4568 阅读 · 1 评论 -
Java随机数工具类总结
import java.util.Random; public class RandomUtils { public static final String allChar = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; public static final String转载 2014-12-15 16:34:21 · 622 阅读 · 0 评论 -
log4j简介
log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。 log4j与system.out.println的区别: Log4j除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。程序员经常会遇到脱离java ide环境调试程序的情况,这时大多数人会选择使用Sys转载 2015-01-30 18:29:15 · 413 阅读 · 0 评论 -
Java以及JS 手机号当中4位用“*”代替
String mobile = "18888888888";if (mobile != null && !mobile.equals("")) { String usermobile1 = mobile.substring(0, mobile.length() - (mobile.substring(3)).length()) + "****" + mobile.substring(7原创 2014-12-15 16:07:14 · 977 阅读 · 0 评论 -
用户登录用session和cookie来实现
1. 用户通过手机号mobile登录或注册,此时调用一个接口,通过该接口得到该手机号对应的userid,调用该接口后,把userid以及对应的手机号存到session中,代码如下:HttpSessionsession=beat.getRequest().getSession();session.setAttribute("useridsession",userid);sess原创 2014-12-15 14:07:34 · 5727 阅读 · 0 评论 -
java.lang.String.charAt() 方法
java.lang.String.charAt() 方法返回指定索引处的char值。索引范围是从0到length() - 1。对于数组索引,序列的第一个char值是在索引为0,索引1,依此类推,声明 以下是声明java.lang.String.转载 2014-12-15 16:52:31 · 5903 阅读 · 0 评论 -
substring和substr的用法
1.substring方法 定义和用法 substring方法用于提取字符串中介于两个指定下标之间的字符。 语法 stringObject.substring(start,stop) 参数 描述 start 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。 stop 可选。一个转载 2014-12-15 16:09:58 · 472 阅读 · 0 评论 -
java 字符串,字符数组,list间的转化
java 字符串,字符数组,list间的转化1.关于java.lang.string.split xxx.split()方法可以将一个字符串分割为子字符串,然后将结果作为字符串数组返回。2.字符串转字符数组 String str ="aa.png,a2.png,a3.png"; String[] arrayStr =new转载 2014-11-03 16:40:06 · 926 阅读 · 0 评论 -
java.util.List接口的方法subList()进行分页
java.util.List中有一个subList方法,用来返回一个list的一部分的视图。List subList(int fromIndex, int toIndex);它返回原来list的从[fromIndex, toIndex)之间这一部分的视图,之所以说是视图,是因为实际上,返回的list是靠原来的list支持的。返回一个以fromIndex为起始索引(包含),以toInde原创 2015-07-03 15:44:54 · 29072 阅读 · 3 评论