Java
文章平均质量分 60
-兰天白云-
成功= 一个明确的职业目标+持续的行业积累+不断的知识补充。
展开
-
javax.validation.constraints校验
NotBlank 只能用在 string ,并且去掉空格之后要大于0。@NotEmpty 长度要大于0 (可以为空格,因为空格也有长度)三者都得不为null (没有参数传过来即为null )@notNull 可以为空白或空格(长度不限)原创 2023-09-22 15:46:33 · 328 阅读 · 0 评论 -
线程execute()与submit()区别
Execute()方法只能接收Runnable类型的参数,而submit()方法可以接收Callable、Runnable两种类型的参数。execute()方法主要用于启动任务的执行,而任务的执行结果和可能的异常调用者并不关心。在ThreadPoolExecutor类的实现中,内部核心的任务提交方法是execute()方法,虽然用户程序通过submit()也可以提交任务,但是实际上submit()方法中最终调用的还是execute()方法。以上的submit()和execute()两类方法的区别在哪里呢?原创 2023-01-30 16:44:14 · 385 阅读 · 0 评论 -
阿里巴巴规范摘录
【强制】任何货币金额,均以最小货币单位且整型类型来进行存储。【强制】浮点数之间的等值判断,基本数据类型不能用==来比较,包装数据类型不能用 equals来判断。说明:浮点数采用“尾数+阶码”的编码方式,类似于科学计数法的“有效数字+指数”的表示方式。二进制无法精确表示大部分的十进制小数,具体原理参考《码出高效》。【强制】如上所示 BigDecimal 的等值比较应使用 compareTo()方法,而不是 equals()方法。说明:equals()方法会比较值和精度(1.0 ..原创 2020-12-29 17:00:40 · 1154 阅读 · 1 评论 -
经典排序算法(动图演示)
原文:https://www.cnblogs.com/l199616j/p/10594363.html1、冒泡排序(Bubble Sort)冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。1.1 算法描述比较相邻的元素。如果第一个比第二个大,就交换它们两个; 对每一对相邻元素作同..转载 2020-06-14 15:50:31 · 315 阅读 · 0 评论 -
LocalDateTime用法
前言最近看别人项目源码,发现Java8新的日期时间API很方便强大,所以转载该入门介绍博客,记录一下。使用新时间日期API的必要性在java8以前,或许:当你在做有关时间日期的操作时,你会想到用Date; 当你在做日期、月份、天数相加减时,你会想到用Calendar; 当你需要对时间日期进行格式化时,你会想到使用SimpleDateFormat或DateFormat下的其他子类...转载 2020-01-05 23:38:36 · 1162 阅读 · 0 评论 -
线程池java.util.concurrent.ThreadPoolExecutor总结
原文:http://uule.iteye.com/blog/1123185线程池还具有提高系统性能的优点,因为创建线程和清除线程的开销比较大。 有两种不同类型的线程池:一是固定线程数量的线程池;二是可变数量的线程池。 对于固定数量的线程池,可以使用Executors的静态方法 newFixedThreadPool 来创建 ExecutorServi转载 2014-03-06 02:07:14 · 1404 阅读 · 0 评论 -
线程-synchronized方法和同步块的作用范围;synchronized(this)和synchronized(obj)的区别
原文:http://m.blog.csdn.net/blog/u010802573/38661719参考资源:http://www.cnblogs.com/oracleDBA/archive/2010/05/22/1741642.htmlhttp://www.cnblogs.com/highriver/archive/2011/12/18/2291965.htm转载 2015-12-29 12:04:28 · 5567 阅读 · 0 评论 -
深入理解Java:内省(Introspector)
内省(Introspector) 是Java 语言对 JavaBean 类属性、事件的一种缺省处理方法。 JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。如果在两个模块之间传递信息,可以将信息封装进JavaBean中,这种对象称为“值对象”(Value Object),或“VO”。方法比较少。这些信息储存在类的私有变量原创 2015-07-16 23:52:41 · 430 阅读 · 0 评论 -
java中的深复制和浅复制
原文 :http://blog.csdn.net/naughty610/article/details/6598943 http://www.cnblogs.com/yxnchinahlj/archive/2010/09/20/1831615.html 1.浅复制与深复制概念⑴浅复制(浅克隆)被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的转载 2015-06-16 00:10:46 · 515 阅读 · 0 评论 -
ThreadLocal-分析-总结
原文: http://mxdba.iteye.com/blog/777716 ThreadLocal类在Spring,Hibernate等框架中起到了很大的作用,对于其工作原理,很多网上的文章分析的不够彻底,甚至有些误解。 首先,为了解释ThreadLocal类的工作原理,必须同时介绍与其工作甚密的其他几个类(内部类)1.ThreadLocalMap转载 2015-05-24 10:22:16 · 785 阅读 · 0 评论 -
Base64编码
图片 转换为 Base64小工具:http://tool.css-js.com/base64.html base64编码:data:image/PNG;base64,iVBORw0KGgoAAAANSUhEUgAAANYAAAA/CAYAAACcqDZkAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvq原创 2015-06-10 15:24:25 · 7403 阅读 · 0 评论 -
Java内存泄露的理解与解决
原文:http://www.cnblogs.com/qq78292959/archive/2011/07/25/2116123.html在C++语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期。从申请分配、到使用、再到最后的释放。这样的过程非常灵活,但是却十分繁琐,程序员很容易由于疏忽而忘记释放内存,从而导致内存的泄露。Java语言对内存管理做了自己的优化,这就是转载 2014-02-26 23:56:04 · 511 阅读 · 0 评论 -
Java序列化的机制和原理
原文:http://developer.51cto.com/art/200908/147650.htm有关Java对象的序列化和反序列化也算是Java基础的一部分,下面对Java序列化的机制和原理进行一些介绍。Java序列化算法透析Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些转载 2014-03-11 22:23:19 · 572 阅读 · 0 评论 -
字符串格式化-String.format()的使用
原文:http://blog.csdn.net/lonely_fireworks/article/details/7962171常规类型的格式化String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。format(String转载 2016-03-09 23:17:39 · 1157 阅读 · 0 评论 -
字符编码简介 ASCII UTF-8 ISO8859-1
原文:http://ethen.iteye.com/blog/797696计算机中的一切都是以数字来表示的,字符同样如此。字符编码就是将字符集编码成为数字序列,以便能让计算机识别。各个地区和国家使用的语言有别,将本地使用的语言符号进行编码就得到本地编码字符集。例如西欧国家使用的本地编码是ISO8859-1,中国大陆和新加坡等地区使用本地编码是GB2312或GBK,中国港台地区使转载 2016-05-27 10:59:23 · 949 阅读 · 0 评论 -
Java8 lambda表达式10个示例
原文:https://www.cnblogs.com/coprince/p/8692972.html 例1、用lambda表达式实现Runnable我开始使用Java 8时,首先做的就是使用lambda表达式替换匿名类,而实现Runnable接口是匿名类的最好示例。看一下Java 8之前的runnable实现方法,需要4行代码,而使用lambda表达式只需要一行代码。我们在这里做了什么...转载 2018-11-28 19:02:51 · 232 阅读 · 0 评论 -
User-Agent分析及其价值简析
查看电脑流泪拿起的userAgent:http://tools.jb51.net/table/useragent 原文:http://blog.csdn.net/laozhaokun/article/details/42024663 User-Agent,用户代理。用户在上网访问的时候会作为HTTP的包头的一部分向服务器发送,用于识别用户的当前环境转载 2018-01-07 10:32:22 · 6445 阅读 · 0 评论 -
java获取路径
原文:http://zygysat1989.blog.163.com/blog/static/269982802011575029129/1、利用System.getProperty()函数获取当前路径:System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径2、使用File提供的函数获取当前路径:原创 2012-07-20 23:18:38 · 607 阅读 · 0 评论 -
如何获取客户端IP地址
原文:http://www.tuicool.com/articles/jym22aB根据客户端的http请求,利用request.getRemoteAddr()获取客户端Ip地址。在局域网内getRemoteAddr()和getRemoteHost()获得的结果相同。request.getRemoteAddr()是获得客户端的ip地址 。getRemoteHost()是转载 2017-05-11 22:21:18 · 3362 阅读 · 1 评论 -
HTTP Header 详解
原文:http://kb.cnblogs.com/page/92320/HTTP(HyperTextTransferProtocol)即超文本传输协议,目前网页传输的的通用协议。HTTP协议采用了请求/响应模型,浏览器或其他客户端发出请求,服务器给与响应。就整个网络资源传输而言,包括message-header和message-body两部分。首先传递message- head转载 2017-03-14 16:01:16 · 561 阅读 · 0 评论 -
JVM 之 GC日志分析
常用JVM参数http://blog.csdn.net/gzh0222/article/details/8223277 分析gc日志后,经常需要调整jvm内存相关参数,常用参数如下-Xms:初始堆大小,默认为物理内存的1/64(;默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制-Xmx:最大堆大小转载 2016-07-21 17:53:57 · 21125 阅读 · 0 评论 -
并发容器之CopyOnWriteArrayList
原文:http://www.cnblogs.com/dolphin0520/p/3938914.html Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用Co转载 2016-05-05 00:02:26 · 299 阅读 · 0 评论 -
Java类中的初始化顺序
原文:http://liujiacai.net/blog/2014/07/12/order-of-initialization-in-java/Java中类成员初始化顺序,十分基础但同时也是容易出错的地方,我从去年参加阿里校招笔试到现在的公司笔试,都有这个问题,不能老是在同一个坑下跌倒,现根据《Thinking in Java》相关章节及自己的理解举例来说明类初始化顺序。这篇文转载 2015-06-24 10:41:44 · 441 阅读 · 0 评论 -
HashMap的非线程安全性和ConcurrentHasMap
原文:http://www.blogjava.net/lukangping/articles/331089.html在平时开发中,我们经常采用HashMap来作为本地缓存的一种实现方式,将一些如系统变量等数据量比较少的参数保存在HashMap中,并将其作为单例类的一个属性。在系统运行中,使用到这些缓存数据,都可以直接从该单例中获取该属性集合。但是,最近发现,HashMap并不是转载 2015-05-21 23:33:45 · 1326 阅读 · 0 评论 -
Java程序员应该知道的10个调试技巧
原文:http://www.csdn.net/article/2012-09-03/2809495-Java-Debugging-Tips-with-Eclipse1.条件断点如果你不知道如何添加断点,只需点击左边面板(行号前面)断点即被创建。在调试界面中,“断点”视图会把所有被创建的断点列出来。我们可以给它加一个布尔条件,也就是说,该断点会被激活并且如果布尔条件为真,就会执行该断点,否则转载 2012-09-13 00:16:21 · 422 阅读 · 0 评论 -
JVM中的Hello World是如何运行的?
原文:http://www.oschina.net/question/82993_66457每一个Java开发者都是通过Hello World敲开面向对象世界的大门。但是在一开始,我们考虑的只是这个语言是什么样的,我们如何更好的编码,却很少有人关心他内部是怎么运行的。看下面一个简单的hello worldpackage com.wordpress.kkarthikeyanblo转载 2012-09-18 23:34:51 · 468 阅读 · 0 评论 -
枚举定义
package com.endplay.feeds.enums;public enum StatusTypeEnum { TYPE_OFF("Off", 0), TYPE_ON("On", 1), TYPE_ACTIVE("Active", 2), TYPE_IDLE("Idle", 3), TYPE_SUCCESS("Success", 11), TYPE_FAIL原创 2012-05-25 10:55:01 · 665 阅读 · 0 评论 -
springframework 一些 有用的 工具类
1、实体之间的复制。public Schedule addSchedule(Schedule schedule) throws SystemException { long scheduleId = this.counterLocalService.increment(); Schedule newSchedule = this.createSchedule(scheduleId)原创 2012-06-08 17:40:36 · 1012 阅读 · 0 评论 -
时间转换Utill
package com.fim.cms.services.util;//~--- non-JDK imports --------------------------------------------------------import java.sql.Timestamp;import java.text.DateFormat;import java.text.DateFormat原创 2012-05-25 09:59:52 · 860 阅读 · 0 评论 -
JAVA坏境变量中的JAVA_HOME path classpath 的设置与作用。
JAVA_HOME:C:\jdk1.6path : %JAVA_HOME%\binclasspath: .;%JAVA_HOME%\lib今天再次设置java的环境变量,突然发现每次设置都只是按照步骤一步步将其设置完,并不了解为啥要设置,于是上网找了找,找到遍文章,觉得不错,就留下了。仅供记录学习。转自:http://bbs.tech.163.com/...原创 2012-03-18 23:59:44 · 492 阅读 · 0 评论 -
sdk、jdk、jre的区别
一、JDK与jre简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。 JDK就是Java Development Kit JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。 如果安装了转载 2012-03-26 00:44:27 · 579 阅读 · 0 评论 -
匿名类、内部类、匿名内部类
原文:http://xdwangiflytek.iteye.com/blog/1340872 匿名类: 1、new 类或接口>类的主体>,匿名类的声明是在编译时进行的,实例化是在运行时进行的,所以在for循环中一个new语句会创建相同匿名类的几个实例,而不是创建几个不同匿名类的一个实例。 2、如果要执行的对象需要一个对象,但却不值得创建全新的对象(可能是因为该对象只原创 2012-02-15 09:23:49 · 573 阅读 · 0 评论 -
面向对象和面向过程区别
原文:http://club.tech.sina.com.cn/thread-697927-1-1.html?retcode=0 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。转载 2012-10-07 09:58:02 · 1083 阅读 · 0 评论 -
JAVA的字符串拼接与性能
原文:http://java.chinaitlab.com/advance/804650.html 在JAVA中拼接两个字符串的最简便的方式就是使用操作符”+”了。如果你用”+”来连接固定长度的字符串,可能性能上会稍受影响,但是如果你是在循环中来”+”多个串的话,性能将指数倍的下降。假设有一个字符串,我们将对这个字符串做大量循环拼接操作,使用”+”的话将得到最低的性能。但是究竟这个转载 2013-01-02 09:55:09 · 554 阅读 · 0 评论 -
java定时器的使用(Timer)
原文 : http://blog.csdn.net/ecjtuxuan/article/details/20937571、在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等。对于这样的操作最方便、高效的实现方式就是使用java.util.Timer工具类。private java.util.Timer timer;timer = new Timer(tr转载 2015-05-21 23:28:45 · 507 阅读 · 0 评论 -
java获取系统的属性Properties
public static void testProperties() { Properties p = System.getProperties(); for (Enumeration e = p.propertyNames(); e.hasMoreElements();) { String key = (String) e.nextElement(); System.原创 2013-03-05 11:15:02 · 899 阅读 · 0 评论 -
时间处理
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ /** * * poj3751 easy * * API里的 * 字母 日期或时间元素 表示 示例 *G Era 标志符 Text AD原创 2013-04-01 17:34:01 · 852 阅读 · 0 评论 -
java 中hashcode 与 equals的关系
原文:http://hi.baidu.com/xxgshxs/item/e1620caa197b06f615329b91先来看能表明hashcode和equals的关系的几句话:equals()相等的两个对象,hashcode()一定相等;equals()不相等的两个对象,却并不能证明他们的hashcode()不相等。反过来:hashco转载 2014-02-26 22:46:00 · 647 阅读 · 0 评论 -
如何确定Java类是从哪个包加载的
原文:http://kejun.iteye.com/blog/510999 java的类装载器使用的是优先策略,加载类的时候先找到哪个就加载哪个。有时候我们做一个系统,当类库非常庞大的时候,类可能会出现冲突,也就是类路径中存在不同版本的两个相同的类,这往往给调试带来非常大的麻烦,我们可能修改了类,但由于类加载器却使用的是另外一个未被更新的类,这个时候就会丈二和尚摸不着头脑,一度使调试过程误入歧转载 2014-01-21 21:29:51 · 1543 阅读 · 0 评论 -
Java 中的中文编码问题
原文:http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/几种常见的编码格式为什么要编码不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言。由于人类的语言有太多,因而表示这些转载 2013-12-06 00:15:00 · 761 阅读 · 0 评论