- 浏览: 189799 次
- 性别:
- 来自: 杭州
博客专栏
-
Percolator与分布...
浏览量:5547
文章分类
最新评论
-
heglase:
好牛逼 竟然解决了我别的问题
使用jdk工具tools.jar引发的问题 -
wqcva:
在使用这个类的时候workerId应该怎么传
java时间有序id生成 -
沙漠绿树:
增加虚拟节点解决数据均衡的问题。我有个疑问:1.使用虚拟节点后 ...
一致性hash的实现 -
BucketLi:
wangjian95 写道tddl.....?不是
java唯一ID生成 -
wangjian95:
tddl.....?
java唯一ID生成
看代码过程中一些细节记录,不断补充。质量可靠,开发高效的捷径在于使用一些成熟的库和代码,并且了解其特性和主要原理,特别是工具类。
1.向左补充特定字符
2.值为null抛IllegalArgumentException
3.截取特定字符之前的字符串
4.匹配任意一个字符
5.将一个类转换成一个特定格式的string
6.反射设置值之前让字段可访问
7.拷贝同一个类的对象之间字段
8.对collection进行排序
9.fastJson转换json String到特定对象
10.使用String format字符串
11.使用apache commons 包的RandomUtil进行随机数选择
12.按某个分隔符拼接字符串列表
13.获取Collection中最小值
14.拷贝两个对象之间的同名属性,不需要对象类型一致
15.有时候使用系统启动时设置的系统变量也能达到不错的效果
16.单点到单点(可能有HA)的面向对象编程可以使用rmi来(比如spring)做通讯
17.有时候可以内嵌jetty容器(org.eclipse.jetty)来构建web应用,特别是快速测试阶段,具备动态代码更新的能力
18.使用spring的时候不一定使用init-method方式初始化bean,也可以实现InitializingBean接口实现afterPropertiesSet()的方式初始化。
19. 添加shutdownhook在程序关闭的时候做一些操作
20.得到异常的整个堆栈
21.得到内存使用率
22.大量产生String的时候,并且有很大概率相同的时候,可以用intern优化
23.不可变map
24.根据host获取ip
25.获取原始类型数据,valueOf是多了一个装箱操作
26.直接读取文件内容为string的便利方法
27.多行join成一行
28.可以使用apache的Configuration来load各种配置,其有很多便利功能
29.使用apache的StringUtils截取字符串
30.google guava包中的一些有用的细节
1.向左补充特定字符
StringUtils.leftPad(String.valueOf(i), startStr.length(), '0')
2.值为null抛IllegalArgumentException
Assert.notNull(mode);
3.截取特定字符之前的字符串
StringUtils.substringBefore(rawValue, "[")
4.匹配任意一个字符
StringUtils.containsAny(value, new char[] { '*', '?', '+', '|', '(', ')', '{', '}', '[', ']', '\\', '$','^', '.' })
5.将一个类转换成一个特定格式的string
ToStringBuilder.reflectionToString(this);
6.反射设置值之前让字段可访问
ReflectionUtils.makeAccessible(field);
7.拷贝同一个类的对象之间字段
BeanUtils.copyProperties(this, globalParmeter);
8.对collection进行排序
Collections.sort(processIds);
9.fastJson转换json String到特定对象
JSON.parseObject(json, targetClass);
10.使用String format字符串
private static final String PATH = "/destinations/%s"; private static final String CURSOR_PATH = PATH + "/%s/cursor" String path = String.format(CURSOR_PATH, destination, String.valueOf(clientId));
11.使用apache commons 包的RandomUtil进行随机数选择
this.index = RandomUtils.nextInt(this.managerAddress.size());
12.按某个分隔符拼接字符串列表
String addr = StringUtils.join(node.getParameters().getZkCluster().getServerList(), ',');
13.获取Collection中最小值
Collections.min(progress.keySet())
14.拷贝两个对象之间的同名属性,不需要对象类型一致
BeanUtils.copyProperties(authenticationInfo, datasourceInfo);
15.有时候使用系统启动时设置的系统变量也能达到不错的效果
String nid = System.getProperty(NID_NAME);
16.单点到单点(可能有HA)的面向对象编程可以使用rmi来(比如spring)做通讯
RmiServiceExporter export = new RmiServiceExporter(); export.setServiceName("endpoint"); export.setService(this);// 暴露自己 export.setServiceInterface(CommunicationEndpoint.class); export.setRegistryHost(host); export.setRegistryPort(port); export.setAlwaysCreateRegistry(alwaysCreateRegistry);/
17.有时候可以内嵌jetty容器(org.eclipse.jetty)来构建web应用,特别是快速测试阶段,具备动态代码更新的能力
<dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-server</artifactId> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-webapp</artifactId> </dependency>
public void start() throws Exception { Resource configXml = Resource.newSystemResource("jetty.xml"); XmlConfiguration configuration = new XmlConfiguration(configXml.getInputStream()); server = (Server) configuration.configure(); Handler handler = server.getHandler(); if (handler != null && handler instanceof WebAppContext) { WebAppContext webAppContext = (WebAppContext) handler; webAppContext.setResourceBase(JettyEmbedServer.class.getResource("/webapp").toString()); } server.start(); if (logger.isInfoEnabled()) { logger.info("##Jetty Embed Server is startup!"); } }
18.使用spring的时候不一定使用init-method方式初始化bean,也可以实现InitializingBean接口实现afterPropertiesSet()的方式初始化。
19. 添加shutdownhook在程序关闭的时候做一些操作
Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { } });
20.得到异常的整个堆栈
ExceptionUtils.getFullStackTrace(e));
21.得到内存使用率
MemoryUsage memoryUsage = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage();
22.大量产生String的时候,并且有很大概率相同的时候,可以用intern优化
sql.toString().intern();// intern优化,避免出现大量相同的字符串
23.不可变map
Collections.unmodifiableMap(parameters);
24.根据host获取ip
InetAddress.getByName(hostName).getHostAddress();
25.获取原始类型数据,valueOf是多了一个装箱操作
Double.parseDouble(xx);
26.直接读取文件内容为string的便利方法
String json = FileUtils.readFileToString(dataFile, charset.name());
27.多行join成一行
String ruleStr = StringUtils.join(IOUtils.readLines(resource.getInputStream()), SystemUtils.LINE_SEPARATOR);
28.可以使用apache的Configuration来load各种配置,其有很多便利功能
PropertiesConfiguration config = new PropertiesConfiguration(); config.load(new FileInputStream(conf));
29.使用apache的StringUtils截取字符串
StringUtils.substringAfter(conf, CLASSPATH_URL_PREFIX);
30.google guava包中的一些有用的细节
this.queries = ImmutableList.copyOf(checkNotNull(queries, "queries is null")); HostAndPort host = HostAndPort.fromString(server); Splitter NAME_VALUE_SPLITTER = Splitter.on('=').limit(2).trimResults(); MapSplitter TAGS_SPLITTER=Splitter.on("\n").trimResults().withKeyValueSeparator('=') checkArgument(name.indexOf('=') < 0, "Session property name must not contain '=': %s", name); ImmutableList.builder() .add("suite") .add("query") .addAll(tagNames) .add("wallTimeP50") .add("wallTimeMean") .add("wallTimeStd") .add("processCpuTimeP50") .add("processCpuTimeMean") .add("processCpuTimeStd") .add("queryCpuTimeP50") .add("queryCpuTimeMean") .add("queryCpuTimeStd") .add("status") .add("error") .build() Joiner.on('\t').join(values);//value是list MoreObjects.toStringHelper(this) .add("name", name) .add("tags", tags) .toString(); Map<Type, String> SQL_TYPES = ImmutableMap.<Type, String>builder() .put(BOOLEAN, "boolean") .put(BIGINT, "bigint") .put(DOUBLE, "double precision") .put(VARCHAR, "varchar") .put(VARBINARY, "varbinary") .put(DATE, "date") .put(TIME, "time") .put(TIME_WITH_TIME_ZONE, "time with timezone") .put(TIMESTAMP, "timestamp") .put(TIMESTAMP_WITH_TIME_ZONE, "timestamp with timezone") .build(); int jitter = ThreadLocalRandom.current().nextInt(100);//jdk自带的
发表评论
-
Spring Validator 部分注解说明
2021-01-30 17:13 308@AssertFalse Boole ... -
Mac 安装 OpenJDK
2019-07-17 08:05 776现在 ORACLE 新版本 JDK 越发越快,新版本固然好,但 ... -
git fork 分支合并原分支
2019-06-27 10:35 10251. List the current configured ... -
Cobar内存快速检测tips
2017-11-07 17:20 337很长时间没有使用mat,技巧生疏,趁这次使用Cobar(htt ... -
ORACLE CDC增量同步初始化
2016-09-07 22:29 711// Step 1 Find the source tab ... -
一些文章
2015-09-04 14:38 0http://www.biaodianfu.com/herme ... -
java资源加载
2015-04-22 10:04 557tips下。 this.getClass().getReso ... -
使用jdk工具tools.jar引发的问题
2015-04-22 09:31 1676这里tips下这个问题 之前本地开发机使用jdk7进行开发和 ... -
eclipse for mac快捷键
2015-02-26 13:16 666Command + O:显示大纲 Command + D:删除 ... -
zookeeper client的一些操作
2014-11-07 12:30 6661.登陆 ./zkcli.sh -server 127.0.0 ... -
java获取类版本和检查重复代码
2014-10-13 21:59 1341public final class Version { ... -
java程序启动的一些设置
2014-09-19 11:14 01. 开启debug,suspend值设置成y会等待debug ... -
java_web开发tips
2014-07-21 09:44 01.这两天接手一个新的应用,打算在上面开发几个api,因为功能 ... -
信息安全基础
2014-07-21 09:46 710转自某微博,这边tips下,虽然很不完全,但是有一些思路 信 ... -
java 的一些排序方法(转)
2014-07-21 09:48 680一些java排序方法,记录下。 package com.ta ... -
Shift-And和Shift-Or ByteBuffer匹配器
2012-09-07 18:15 1475两个ByteBuffer的匹配算法java实现,原作者 庄大侠 ... -
一个简单的BufferPool
2012-08-31 10:15 923一个简单的buffer分配和收集代码,将一大段buffer分片 ... -
一个典型md5生成工具类
2012-08-23 09:27 1126import java.io.UnsupportedEnc ... -
Java程序员常用工具集(转)
2012-08-31 10:18 988转自庄大侠(killme2008)的博客,我这边收藏下。 原 ... -
spring mvc的参数获取(转)
2014-09-26 11:54 588原文地址:http://www.blogjava.net/wm ...
相关推荐
java代码细节总结1.0版本.zip
java代码细节总结1.0版本.7z
代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,...
java代码优化细节总结1.0版本.zip
NULL 博文链接:https://lullabyus.iteye.com/blog/848552
java代码优化细节总结1.0版本.7z
必会的40个Java代码优化细节 自学成长,成为大拿
java代码checkstyle的规范检查点特别多。再加上同时还有部门自己的一套编码规范,在eclipse开发环境中,研发人员很难驾驭如此多的条条框框。本文提供的技术能轻松的解决研发人员关于编码规范的苦恼,因为这部分工作...
java细节优化代码1.0版本.zip
java细节优化代码1.0版本.7z
代码审查是消灭Bug最重要的方法之一,这些审查在大多数时候都特别奏效。由于代码审查本身所...本文就常见的Java代码中容易出现的问题提出一些建设性建议,以便您在审查代码的过程中注意到这些常见的细节性错误。
主要为大家详细介绍了Java代码优化细节,通过不同细节对java代码进行优化,感兴趣的小伙伴们可以参考一下
适合一些卖课程或者有学习过Java的人选。里面是Java一开始需要掌握的一些代码知识和常识,一些基础知识的笔记,Java代码的基本运用和代码里需要掌握的一些细节。
Java编写的显示器显示模式测试代码Java编写的显示器显示模式测试代码
它包含了安装和有效使用本系统的全部资料,详细讲述了包括基本概念、使用技巧、专家提示以及技术细节。 安装的运行环境:TOMCAT和浏览器以及JDK, 数据库要求MySQL。Tomcat下载地址:...
其中许多细节可以先放一放,比如 五子棋咋样就算胜利,我们且先不管,写用一个win()方法代替,等答题架子搭起来后,在去细细的琢磨,这样往往要比只在脑子空想不去认真敲代码要强很多。我也是初学者,高手么见笑。
第5章介绍Java并发包中与锁相关的API和组件,以及这些API和组件的使用方式与实现细节。 第6章介绍了Java中的大部分并发容器,并深入剖析其实现原理,让读者领略大师的设计技巧。 第7章介绍了Java中的原子操作类,并...
《亮剑 Java项目开发案例导航》包含项目源代码及代码详细注释,代码非常完善,尽量能帮助读者读懂代码中的每一个细节。