Java
低至一折起
Write the Code,Change the World!!!
展开
-
小技巧:为List<String>添加分隔符
public static void join1(){ List<String> list = Arrays.asList("11","22","23"); // 最传统写法: StringBuilder sb = new StringBuilder(); for(String s : list){ sb.appe原创 2017-12-05 09:47:23 · 3284 阅读 · 0 评论 -
Java代码注释XXX-todo-fixme-的意义
特殊注释: 1. TODO 表示需要实现,但目前还未实现的功能 2. XXX 勉强可以工作,但是性能差等原因 3. FIXME 代码是错误的,不能工作,需要修复TODO: + 说明: 如果代码中有该标识,说明在标识处有功能代码待编写,待实现的功能在说明中会简略说明。FIXME: + 说明: 如果代码中有该标识,说明标识处代码需要修正,甚至代码是错误的,不能工作,需要修复,如何修正原创 2017-12-06 11:04:14 · 209 阅读 · 0 评论 -
Java-RMI-框架(远程方法调用)
转载自 51CTO 作者:xxxx66yyyyRMI(即Remote Method Invoke 远程方法调用)。在Java中,只要一个类extends了java.rmi.Remote接口,即可成为存在于服务器端的远程对象,供客户端访问并提供一定的服务。JavaDoc描述:Remote 接口用于标识其方法可以从非本地虚拟机上调用的接口。任何远程对象都必须直接或间接实现此接口。只有在“远程接口”(扩展转载 2017-12-06 11:04:38 · 222 阅读 · 0 评论 -
HashMap与ConcurrentHashMap的区别
从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。 在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从此Map也有安全的了。 ConcurrentHashMap具体是怎么实现线程安全的呢,肯定不可能是每个方法加synchronized,那样就变成了HashTable。 从ConcurrentHas原创 2017-12-06 11:06:23 · 184 阅读 · 0 评论 -
数组动态设置长度
String[] showArr = new String[1];List< String> showList = new ArrayList< String>();showArr = showList.toArray(showArr);原创 2017-12-07 10:36:01 · 1459 阅读 · 0 评论 -
最简单---单例模式
public class Person { // Person 引用 private static Person p = null; static { if (p == null) { p = new Person(); } } /** *单例模式获取Person对象. * @retur原创 2017-12-07 10:36:27 · 146 阅读 · 0 评论 -
Yoda表达
在C/Objective-C中,if、while、for之后的判断式并不需要一定传入布尔类型。也可以传入整型、指针等类型,只要非0就为真,并且赋值是有副作用的。比如: a = 0 上面代码返回a的数值,这样就有可能出现将判断: if ( a == 0 ) 错写成: if ( a = 0 ) 为避免这个问题,有种变通写法: if ( 0 == a ) 这种写法被称为Yoda表达式,因为原创 2017-12-27 15:29:16 · 538 阅读 · 0 评论 -
JiBX 入门级使用
简介 JiBX is a tool for binding XML data to Java objects这是官网开篇介绍,JiBX 是绑定XML结构数据到Java对象上的工具,效率是Xstream的3倍。 官网:http://jibx.sourceforge.net/index.html使用方法例子: Java 对象package com.zb;原创 2018-01-23 16:58:33 · 629 阅读 · 0 评论 -
别再说你不懂线程池——做个优雅的攻城狮
作者:爱撸铁的攻城狮 链接:https://juejin.im/post/5a743c526fb9a063557d7eba 来源:掘金什么是线程池线程池,顾名思义就是装线程的池子。其用途是为了帮我们重复管理线程,避免创建大量的线程增加开销,提高响应速度。 为什么要用线程池作为一个严谨的攻城狮,不会希望别人看到我们的代码就开始吐槽,new Thread().start(...转载 2018-02-08 14:15:51 · 268 阅读 · 0 评论 -
通用任务定时执行实现
Quartz触发器配置从触发器中配置一个通用触发MainStarter<bean id="mainStarter" class="com.zb.timer.MainStarter" ></bean><bean id="mainStarterDetail" class="org.springframework.scheduling.quartz.Met.原创 2018-04-13 10:41:39 · 267 阅读 · 0 评论 -
Sonar问题解决:普通方法调用静态属性
问题:普通方法调用静态属性时,Sonar会认为有问题这是我们经常用的,实现Spring的Bean工厂,写一个工具类, 开放一个静态方法:获取实体类public class BeanHelper implements BeanFactoryAware { private static BeanFactory factory; /** * 获取实体类 ...原创 2018-05-10 20:21:37 · 2550 阅读 · 0 评论 -
优雅的转换字符串首字母为大写
将字符串,首字母转换为大写,通常写法public static void main(String[] args) { String name = &quot;ddAaa&quot;; name = name.substring(0, 1).toUpperCase() + name.substring(1); System.out.println(name); ...原创 2018-05-23 18:04:31 · 595 阅读 · 0 评论 -
高效判断数组中是否包含某个特定的值
4 种方式使用List:public static boolean useList(String[] arr, String targetValue) { return Arrays.asList(arr).contains(targetValue); }使用Set:public static boolean useSet(String[] ...转载 2018-06-26 20:07:07 · 326 阅读 · 0 评论 -
PO/VO/BO/DTO/POJO 解释
POPersistant Object 持久对象最形象的理解就是一个PO就是数据库中的一条记录。好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。VO1. Value Object 值对象2. View Object 表现层对象主要对应界面显示的数据对象。对于一个 WEB 页面,或者 SWT、SWING 的一个界面,用一个 VO 对象对应整个界面的值。BOBusin...原创 2018-10-08 17:10:34 · 258 阅读 · 0 评论 -
Java解析xml、解析xml四种方法、DOM、SAX、JDOM、DOM4j、XPath
【引言】目前在Java中用于解析XML的技术很多,主流的有DOM、SAX、JDOM、DOM4j,下文主要介绍这4种解析XML文档技术的使用、优缺点及性能测试。一、【基础知识——扫盲】sax、dom是两种对xml文档进行解析的方法(没有具体实现,只是接口),所以只有它们是无法解析xml文档的;jaxp只是api,它进一步封装了 sax、dom两种接口,并且提供了DomcumentBuilderFact转载 2017-12-06 11:03:00 · 304 阅读 · 0 评论 -
java-判断字符串是否为数字
正则表达式方法一: public static boolean isNumeric1(String str) { Pattern pattern =Pattern.compile("[0-9]*"); return pattern.matcher(str).matches();}方法二:public static boolean isNumeric(String str) { if(s原创 2017-12-06 11:02:18 · 171 阅读 · 0 评论 -
Java lambda 实现sort
不用lambda的实现List<Human> list = new ArrayList<>();list.sort(new Comparator<Human>() { @Override public int compare(Human h1, Human h2) { return h1.getName().compareTo(h2.getName()); }});使用lam原创 2017-12-05 09:50:43 · 7807 阅读 · 0 评论 -
-Xdebug 启动命令
-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=nJAVA的调试方法如下: 1。首先支持JVM,并设置参数,使之工作在DEBUG模式下,加入参数:-Xdebug -Xrunjdwp,transport=dt_socket,server=y,address=5432,suspend=n,onthrow=java原创 2017-12-05 09:52:21 · 7627 阅读 · 0 评论 -
java 文件处理
public static void main(String[] args) throws IOException { FileInputStream fileInputStream = null; OutputStream os = null; try { fileInputStream = new FileInputStre原创 2017-12-05 09:53:42 · 164 阅读 · 0 评论 -
Java8 lambda表达式10个示例
Java 8 lambda表达式示例转自importNew 原文链接例1、用lambda表达式实现Runnable我开始使用Java 8时,首先做的就是使用lambda表达式替换匿名类,而实现Runnable接口是匿名类的最好示例。看一下Java 8之前的runnable实现方法,需要4行代码,而使用lambda表达式只需要一行代码。我们在这里做了什么呢?那就是用() -> {}代码块替代了整个匿名转载 2017-12-05 09:59:25 · 273 阅读 · 0 评论 -
Java 写文件
public static void main(String[] args) throws IOException { // 获取文件流 InputStream fis= new FileInputStream("D:\\桌面\\111\\111.txt"); int index; byte[] bytes = new byte[10原创 2017-12-05 10:02:12 · 178 阅读 · 0 评论 -
JVM实用参数(一)JVM类型以及编译器模式
转载自 51CTO 作者:xxxx66yyyyRMI(即Remote Method Invoke 远程方法调用)。在Java中,只要一个类extends了java.rmi.Remote接口,即可成为存在于服务器端的远程对象,供客户端访问并提供一定的服务。JavaDoc描述:Remote 接口用于标识其方法可以从非本地虚拟机上调用的接口。任何远程对象都必须直接或间接实现此接口。只有在“远程接口”(扩展转载 2017-12-05 10:20:38 · 232 阅读 · 0 评论 -
JVM实用参数(二)参数分类和即时(JIT)编译器诊断
作者: PATRICK PESCHLOW原文地址译者:赵峰 校对:许巧辉在这个系列的第二部分,我来介绍一下HotSpot JVM提供的不同类别的参数。我同样会讨论一些关于JIT编译器诊断的有趣参数。JVM 参数分类HotSpot JVM 提供了三类参数。第一类包括了标准参数。顾名思义,标准参数中包括功能和输出的参数都是很稳定的,很可能在将来的JVM版本中不会改变。你可以用java命令(或者是用转载 2017-12-05 10:22:27 · 136 阅读 · 0 评论 -
JVM实用参数(三)打印所有XX参数及值
原文地址:https://blog.codecentric.de/en/2012/07/useful-jvm-flags-part-3-printing-all-xx-flags-and-their-values/ 译者:李洪柱 校对:方腾飞本篇文章基于Java 6(update 21oder 21之后)版本, HotSpot JVM 提供给了两个新的参数,在JVM启动后,在命令行中可以输出所有转载 2017-12-05 10:24:59 · 229 阅读 · 0 评论 -
JVM实用参数(四)内存调优
原文地址,译文地址,作者:PATRICK PESCHLOW,译者:郑旭东 校对:梁海舰理想的情况下,一个Java程序使用JVM的默认设置也可以运行得很好,所以一般来说,没有必要设置任何JVM参数。然而,由于一些性能问题(很不幸的是,这些问题经常出现),一些相关的JVM参数知识会是我们工作中得好伙伴。在这篇文章中,我们将介绍一些关于JVM内存管理的参数。知道并理解这些参数,将对开发者和运维人员很有帮转载 2017-12-05 10:25:41 · 132 阅读 · 0 评论 -
JVM实用参数(五)新生代垃圾回收
原文链接 作者: PATRICK PESCHLOW ;译者:严亮本部分,我们将关注堆(heap) 中一个主要区域,新生代(young generation)。首先我们会讨论为什么调整新生代的参数会对应用的性能如此重要,接着我们将学习新生代相关的JVM参数。单纯从JVM的功能考虑,并不需要新生代,完全可以针对整个堆进行操作。新生代存在的唯一理由是优化垃圾回收(GC)的性能。更具体说,把堆划分为新生转载 2017-12-06 10:55:48 · 240 阅读 · 0 评论 -
JVM实用参数(六)-吞吐量收集器
原文链接 本文连接 译者:张军 校对:梁海舰在实践中我们发现对于大多数的应用领域,评估一个垃圾收集(GC)算法如何根据如下两个标准: - 吞吐量越高算法越好 - 暂停时间越短算法越好首先让我们来明确垃圾收集(GC)中的两个术语:吞吐量(throughput)和暂停时间(pause times)。 JVM在专门的线程(GC threads)中执行GC。 只要GC线程是活动的,它们将与应用程转载 2017-12-06 10:56:29 · 134 阅读 · 0 评论 -
JVM实用参数(七)CMS收集器
原文连接 转载连接 译者: iDestiny 校对:梁海舰HotSpot JVM的并发标记清理收集器(CMS收集器)的主要目标就是:低应用停顿时间。该目标对于大多数交互式应用很重要,比如web应用。在我们看一下有关JVM的参数之前,让我们简要回顾CMS收集器的操作和使用它时可能出现的主要挑战。就像吞吐量收集器(参见本系列的第6部分),CMS收集器处理老年代的对象,然而其操作要复杂得多。吞吐量收转载 2017-12-06 10:58:09 · 120 阅读 · 0 评论 -
Java 中的 String 有没有长度限制
转载:https://juejin.im/post/5d53653f5188257315539f9aString是Java中很重要的一个数据类型,除了基本数据类型以外,String是被使用的最广泛的了,但是,关于String,其实还是有很多东西容易被忽略的。就如本文我们要讨论的问题:Java中的String有没有长度限制?这个问题要分两个阶段看,分别是编译期和运行期。不同的时期限制不一样。...转载 2019-08-16 11:07:01 · 4771 阅读 · 1 评论