![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 73
大海深处的星星
等不到天亮等时光
展开
-
Url参数中出现+、空格、=、%、&、#等字符的解决办法
原文链接:http://www.jeffjade.com/2015/04/16/2015-04-16-deal-url-special-char/Url出现了有+,空格,/,?,%,#,&,=等特殊符号的时候,可能在服务器端无法获得正确的参数值,抑或是造成不能正常下载文件(作为Download Url时候),如何是好?解决办法:就是需要将这些字符转化成服务器可以识别的字符;但是为何Url中有这些字符转载 2016-09-05 17:34:56 · 19486 阅读 · 0 评论 -
如何线程安全地遍历List:Vector、CopyOnWriteArrayList
原文链接:http://blog.csdn.net/xiao__gui/article/details/51050793遍历List的多种方式在讲如何线程安全地遍历List之前,先看看通常我们遍历一个List会采用哪些方式。方式一:for(int i = 0; i < list.size(); i++) { System.out.println(list.get(i));}方式二:Iter转载 2016-10-20 17:47:41 · 450 阅读 · 0 评论 -
Java线程同步:synchronized锁住的是代码还是对象
原文链接:http://blog.csdn.net/xiao__gui/article/details/8188833在Java中,synchronized关键字是用来控制线程同步的,就是在多线程的环境下,控制synchronized代码段不被多个线程同时执行。synchronized既可以加在一段代码上,也可以加在方法上。关键是,不要认为给方法或者代码段加上synchronized就万事大吉,看下转载 2016-10-20 17:54:23 · 318 阅读 · 0 评论 -
Java线程安全和非线程安全
原文链接:http://blog.csdn.net/xiao__gui/article/details/8934832ArrayList和Vector有什么区别?HashMap和HashTable有什么区别?StringBuilder和StringBuffer有什么区别?这些都是Java面试中常见的基础问题。面对这样的问题,回答是:ArrayList是非线程安全的,Vector是线程安全的;Hash转载 2016-10-20 18:01:40 · 434 阅读 · 0 评论 -
基本的JVM内存分配过程案例
下图为创建Student类和为Student对象的属性赋值以及调用Student类的方法的JVM的内存调用分配过程:原创 2016-12-04 14:55:34 · 269 阅读 · 0 评论 -
对于Java回调的最深刻解析
原文链接:http://www.jianshu.com/p/f177a6a41a43第一站,来个骚问题开始之前,先想象一个场景:幼稚园的小朋友(邱同学)刚刚学习了10以内的加法。老师大人在黑板上写一个式子 “1 + 1 = ”,由邱同学来填空。由于已经学习了10以内的加法,邱同学可以完全靠自己来计算这个题目,额,这个需求简单吧,就写一个add(int a,int b) 不就解决了么,是的。那动手吧:转载 2016-11-26 16:17:03 · 289 阅读 · 0 评论 -
Oracle报错:类型长度大于最大值解决办法
java调用以下存储过程时报错:--1.创建一个包,在该包中定义了一个游标类型yh_cursor1create or replace package testpackage as type test_cursor is ref cursor;end testpackage;--2.创建存储过程create or replace procedure sp_13(spNo in number,p原创 2016-11-27 21:13:17 · 3394 阅读 · 0 评论 -
Maven仓库搭建(二):GitHub、又拍云、七牛云存储
转载自:http://blog.csdn.net/xiao__gui/article/details/52640280在上一篇博文中,主要介绍了Maven仓库搭建原理,除了Nexus外,随意使用一个HTTP服务器,例如Tomcat或Nginx,都可搭建一个自己的Maven仓库。无论是用Nexus还是HTTP服务器搭建Maven仓库,总归需要一台服务器,一台服务器需要花钱买和花时间维护,成本比较大。N转载 2017-02-09 13:59:18 · 1126 阅读 · 0 评论 -
关于Integer大小比较的问题
转载自:http://www.blogjava.net/zhangyuan/archive/2010/07/24/327011.html昨天跟朋友一起吃饭,他说到两个Integer类型值比较是否相等的问题。经理也在这里把java的Integer值比较的问题拿出来说一说。因为在面试的时候这个是经常遇到的问题。 首先给大家看一个例子:public class Test { /** *转载 2017-02-09 20:50:42 · 1011 阅读 · 0 评论 -
java中int转成String位数不足前面补零
转载自:http://ych0108.iteye.com/blog/2174134java中int转String位数不够前面补零String.format("%010d", 25); //25为int型 0代表前面要补的字符 10代表字符串长度 d表示参数为整数类型 今天想将int 转String 位数不够前面补零,在本来想看看有没有现成的API的,结果搜出来的大多数下面这个 public转载 2017-02-19 21:40:49 · 101712 阅读 · 17 评论 -
for循环的break和continue
break for(int i=0;i<100;i++) { if(i==10) break; }break表示跳出整个for循环,也就是说,当i=10的时候,这个循环就结束了,之后执行for循环下面的代码。continue for(int i=0;i<100;i++) { if(i==5) continue; }continue表示跳出当前循环,执行下面的循环,就是说,原创 2017-02-14 11:48:27 · 1288 阅读 · 0 评论 -
阻塞队列
原文链接:http://www.jianshu.com/p/057e94b71df9前言在 Android多线程(一)线程池这篇文章时,当我们要创建ThreadPoolExecutor的时候需要传进来一个类型为BlockingQueue的参数,它就是阻塞队列,在这一篇文章里我们会介绍阻塞队列的定义、种类、实现原理以及应用。1.什么是阻塞队列阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素转载 2016-11-07 18:18:30 · 2394 阅读 · 0 评论 -
ConcurrentLinkedQueue的实现原理和源码分析
原文链接:http://www.jianshu.com/p/26d9745614dd前言我们要实现一个线程安全的队列有两种实现方式一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CAS的方式来实现,本节我们就来研究下ConcurrentLinkedQueue是如何保证线程安转载 2016-11-07 18:00:39 · 3475 阅读 · 3 评论 -
Java服务CPU飙到99%问题排查
原文链接:http://www.jianshu.com/p/e96c74133be6一大早刚来到公司工位上,电话响起来了,一看是运维老湿打过来到,紧张的接起电话,小心脏扑通扑通跳。“小路啊,你有个服务CPU飙到99%,现场给你保留了,赶紧看看吧!”挂了电话一看短信,果然有告警过来了!还好服务没有重启,现场保留了,赶紧上到服务器上看看。看到是一个用户评分的服务,六台机器的其中一台CPU飙升,下面介绍一转载 2016-09-17 17:54:16 · 5516 阅读 · 0 评论 -
java的命令笔记
1、java.exe:运行java程序,这个相信每一位用Java的人知道了。2、javac.exe:编译的Java程序,生成.class文件3、javaw.exe:功 能:跟java命令相对的,可以运行.class文件,主要用来执行图形界面的java程序运行java命令时,会出现并保持一个console窗口,程 序中的信息可以通过System.out在console内输出,而运行javaw,开始时会转载 2016-09-18 17:21:22 · 1917 阅读 · 0 评论 -
java性能调优工具--笔记
1、JDK命令行工具1.1、jps命令jps用于列出Java的进程,jps可以增加参数,-m用于输出传递给Java进程的参数,-l用于输出主函数的完整路径,-v可以用于显示传递给jvm的参数。jps -l -m -v31427 sun.tools.jps.Jps -l -m -v -Dapplication.home=/Library/Java/JavaVirtualMachines/jdk1.7转载 2016-09-18 22:22:24 · 2210 阅读 · 0 评论 -
JAVA线程池的分析和使用--笔记
1. 引言合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线程池,必须对其原理了如指掌。2. 线程池的使用转载 2016-09-19 09:55:04 · 274 阅读 · 0 评论 -
final关键字的深入理解
原文链接:http://www.jianshu.com/p/09b758c4000d1.final方法在编译阶段绑定,称为静态绑定(static binding),编译时常量,永远不可改变。 2.运行期初始化,我们希望它不会改变。 3.接口中声明的所有变量本身是final的。 4.对于集合对象声明为final指的是引用不能被更改,但是你可以向其中增加、删除或者修改内容。eg:private f转载 2016-08-01 22:17:36 · 1171 阅读 · 0 评论 -
记一次线上Java程序导致服务器CPU占用率过高的问题排除过程
1、故障现象客服同事反馈平台系统运行缓慢,网页卡顿严重,多次重启系统后问题依然存在,使用top命令查看服务器情况,发现CPU占用率过高。2、CPU占用过高问题定位2.1、定位问题进程使用top命令查看资源占用情况,发现pid为14063的进程占用了大量的CPU资源,CPU占用率高达776.1%,内存占用率也达到了29.8%[ylp@ylp-web-01 ~]$ toptop - 14:51:10转载 2016-10-10 20:30:26 · 24565 阅读 · 2 评论 -
Linux下安装Tomcat服务器和部署Web应用
一、上传Tomcat服务器二、安装Tomcat服务器2.1、解压tomcat服务器压缩包2.2、配置环境变量 tomcat服务器运行时是需要JDK支持的,所以必须配置好JDK用到的那些环境变量 编辑/etc下的profile文件,加上如下内容: 2.3、修改tomcat服务器的启动端口修改将Tomcat服务器启动时使用的端口,例如改成9999修改完server.xml文件之后,保存,退转载 2016-10-11 22:08:37 · 523 阅读 · 0 评论 -
快速解决工作中遇到经典的括号匹配问题
问题来源:从缓存中取出的数据没有空格和换行,很难阅读,但又找不到像JSON一样的在线格式化工具。灵机一动,自己写了一个小程序将其格式化。一、先看效果 1、原始数据长这样,难以阅读MemCachedItem{同一申请客户Xh内登录的设备列表=TimedItems {allItems={2016-09-23 22:08:08.253={merged=false, limit=0, list=[caZ8转载 2016-09-26 23:08:50 · 763 阅读 · 0 评论 -
Java主线程等待子线程、线程池
public class TestThread extends Thread { public void run() { System.out.println(this.getName() + "子线程开始"); try { // 子线程休眠五秒 Threa转载 2016-10-12 19:37:20 · 337 阅读 · 0 评论 -
ConcurrentHashMap的实现原理和源码分析
原文链接:http://www.jianshu.com/p/7f42ba895a64前言在Java1.5中,并发编程大师Doug Lea给我们带来了concurrent包,而该包中提供的ConcurrentHashMap是线程安全并且高效的HashMap,本节我们就来研究下ConcurrentHashMap是如何保证线程安全的同时又能高效的操作。1.为何用ConcurrentHashMap在并发编程转载 2016-11-04 10:12:44 · 1986 阅读 · 0 评论 -
java注解---@SuppressWarnings
原文链接:http://www.cnblogs.com/fsjohnhuang/p/4040785.html一、前言编码时我们总会发现如下变量未被使用的警告提示:上述代码编译通过且可以运行,但每行前面的“感叹号”就严重阻碍了我们判断该行是否设置的断点了。这时我们可以在方法前添加 @SuppressWarnings(“unused”) 去除这些“感叹号”。二、@SuppressWarings注解作用:转载 2017-02-15 16:21:41 · 338 阅读 · 0 评论 -
java定时任务的两种实现方式
一、Timer现在项目中用到需要定时去检查文件是否更新的功能。timer正好用于此处。用法很简单,new一个timer,然后写一个timertask的子类即可。package comz.autoupdatefile; import java.util.Timer; import java.util.TimerTask; public class M { public static原创 2017-02-15 17:48:33 · 2617 阅读 · 0 评论 -
细思极恐-你真的会写java吗?
转载自:https://www.itcodemonkey.com/article/6309.html导语 自2013年毕业后,今年已经是我工作的第4个年头了,总在做java相关的工作,终于有时间坐下来,写一篇关于java写法的一篇文章,来探讨一下如果你真的是一个java程序员,那你真的会写java吗? 笔者是一个务实的程序员,故本文绝非扯淡文章,文中内容都是干货,望读者看后,...转载 2018-07-23 21:25:14 · 387 阅读 · 0 评论 -
循环往list中add对象却总是add的是一个对象
原因解释:在new 一个对象的时候,对象的ID是唯一确定的;将对象add入list中时,放入list中的其实是对象的引用 ;而每次循环只是简单 的set 对象的属性,set新的属性值,而add进list中的对象还是同一个对象id,也就是同一个对象;所以每次add之后,list发现对象引用和之前元素一样,就覆盖掉了之前add的对象。所以循环之后list中的对象是重复的对象。...原创 2018-07-05 20:42:44 · 3646 阅读 · 0 评论 -
Disruptor并发框架--学习笔记
Disruptor并发框架简介Martin Fowler在自己网站上写了一篇LMAX架构的文章,在文章中他介绍了LMAX是一种新型零售金融交易平台,它能够以很低的延迟产生大量交易。这个系统是建立在JVM平台上,其核心是一个业务逻辑处理器,它能够在一个线程里每秒处理6百万订单。业务逻辑处理器完全是运行在内存中,使用事件源驱动方式。业务逻辑处理器的核心是Disruptor。Disruptor它...原创 2018-07-18 19:20:29 · 1413 阅读 · 1 评论 -
MyBatis配置:在控制台打印SQL语句
转载自:https://blog.csdn.net/qq_37816259/article/details/786432101.在spring-mybatis.xml中配置语句 注意:value=”classpath:mybatis-config.xml”这个文件如果之前没有,是需要新建的 2.新建mybatis-config.配置文件代码:<?xml version=...转载 2018-07-18 19:38:57 · 7222 阅读 · 1 评论 -
maven打jar包pom配置
<build> <plugins> <!-- 打包jar文件时,配置manifest文件,加入lib包的jar依赖 --> <plugin> <groupId>org.apache.maven.plugins</groupId> &...原创 2018-07-22 18:45:13 · 3143 阅读 · 0 评论 -
netty的Helloworld---netty学习笔记
可参考博客:http://ifeve.com/netty5-user-guide/Server类:package com.zyh.study.netty.helloworld;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel....原创 2018-07-22 19:13:25 · 217 阅读 · 0 评论 -
mybatis中foreach标签详解
转载自:https://blog.csdn.net/gwd1154978352/article/details/75408498 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach元素的属性主要有 item,index,collection,open,separator,close。item表示集合中每一个元素进行迭代时的别名,ind...转载 2018-06-27 10:53:41 · 3450 阅读 · 2 评论 -
spring定时任务详解(@Scheduled注解)
原文链接:http://blog.csdn.net/qq_33556185/article/details/51852537配置定时任务的步骤在springMVC里使用spring的定时任务非常的简单,如下: (一)在xml里加入task的命名空间xmlns:task="http://www.springframework.org/schema/task" http://www.spring转载 2017-02-15 18:17:05 · 1177 阅读 · 0 评论 -
java中比较两个日期的大小
String beginTime=new String("2014-08-15 10:22:22"); String endTime=new String("2014-09-02 11:22:22"); 1.把字符串类型的日期数据转化成长整型,然后比较大小。如果日期格式有时分秒,则”-“写成”[-\s:]” if(Long.valueOf(beginTime.replaceAll(“-“,”“)2原创 2017-03-05 19:40:49 · 206637 阅读 · 7 评论 -
System.getProperty("user.dir"); 获得系统属性
转载自:http://201111181922.iteye.com/blog/1335869System.getProperty()这个系统属性集合总是包含以下键的值: 键 相关值的描述 java.version Java运行时环境版本 java.vendor Java运行时环境供应商 java.vendor.url Java供应商的转载 2017-10-19 21:30:46 · 6672 阅读 · 0 评论 -
java.lang.ExceptionInInitializerError的原因
转载自:http://blog.csdn.net/fykhlp/article/details/6236316这个错误是说变量初始化出现问题,通常出现在静态变量尤其是单例模式。这种问题往往是初始化顺序不对造成的,下面举个简单的例子。import java.util.HashMap; import java.util.Map; public class Example { privat转载 2017-10-20 12:05:59 · 3995 阅读 · 0 评论 -
java.lang.IllegalMonitorStateException
转载自:https://blog.csdn.net/intlgj/article/details/6245226java.lang.IllegalMonitorStateException 违法的监控状态异常。当某个线程试图等待一个自己并不拥有的对象(O)的监控器或者通知其他线程等待该对象(O)的监控器时,抛出该异常。例子://计算线程package com.intlgj....转载 2018-05-31 12:32:28 · 434 阅读 · 0 评论 -
String、StringBuffer与StringBuilder之间区别
转载自:https://www.cnblogs.com/zhangzongle/p/5912266.html最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下。关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 1.三...转载 2018-05-31 23:20:12 · 143 阅读 · 0 评论 -
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal res
转载自:https://www.cnblogs.com/LeoBoy/p/5897754.html今天在写一个JAVA程序的时候出现了异常:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result。 发现报错的语句是:foo.divid...转载 2018-06-02 14:15:33 · 317 阅读 · 0 评论 -
mybatis项目报java.sql.SQLException: Numeric Overflow的异常
转载自:http://www.easytd.com/yichangjijin/d_1411081846.html项目报java.sql.SQLException: Numeric Overflow的异常,数据库oracle,使用的mybatis异常信息如下:java.sql.SQLException: Numeric Overflow; uncategorized SQLExcep...转载 2018-06-02 14:19:14 · 10870 阅读 · 1 评论