- 浏览: 195848 次
- 性别:
- 来自: 杭州
博客专栏
-
Percolator与分布...
浏览量:5686
文章分类
最新评论
-
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 352@AssertFalse Boole ... -
Mac 安装 OpenJDK
2019-07-17 08:05 826现在 ORACLE 新版本 JDK 越发越快,新版本固然好,但 ... -
git fork 分支合并原分支
2019-06-27 10:35 11251. List the current configured ... -
Cobar内存快速检测tips
2017-11-07 17:20 426很长时间没有使用mat,技巧生疏,趁这次使用Cobar(htt ... -
ORACLE CDC增量同步初始化
2016-09-07 22:29 760// Step 1 Find the source tab ... -
一些文章
2015-09-04 14:38 0http://www.biaodianfu.com/herme ... -
java资源加载
2015-04-22 10:04 596tips下。 this.getClass().getReso ... -
使用jdk工具tools.jar引发的问题
2015-04-22 09:31 1727这里tips下这个问题 之前本地开发机使用jdk7进行开发和 ... -
eclipse for mac快捷键
2015-02-26 13:16 704Command + O:显示大纲 Command + D:删除 ... -
zookeeper client的一些操作
2014-11-07 12:30 7341.登陆 ./zkcli.sh -server 127.0.0 ... -
java获取类版本和检查重复代码
2014-10-13 21:59 1390public 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 743转自某微博,这边tips下,虽然很不完全,但是有一些思路 信 ... -
java 的一些排序方法(转)
2014-07-21 09:48 718一些java排序方法,记录下。 package com.ta ... -
Shift-And和Shift-Or ByteBuffer匹配器
2012-09-07 18:15 1519两个ByteBuffer的匹配算法java实现,原作者 庄大侠 ... -
一个简单的BufferPool
2012-08-31 10:15 958一个简单的buffer分配和收集代码,将一大段buffer分片 ... -
一个典型md5生成工具类
2012-08-23 09:27 1155import java.io.UnsupportedEnc ... -
Java程序员常用工具集(转)
2012-08-31 10:18 1030转自庄大侠(killme2008)的博客,我这边收藏下。 原 ... -
spring mvc的参数获取(转)
2014-09-26 11:54 624原文地址:http://www.blogjava.net/wm ...
相关推荐
本资料“java代码细节总结1.0版本.zip”是针对Java编程的一些关键知识点和最佳实践的详细概述,旨在帮助开发者提升代码质量和效率。以下是根据提供的文件名“java代码细节总结1.0版本.md”可能涵盖的一些核心Java...
代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,...
- **在“Selection”栏目中选择要导出JAVA代码的类**:可以通过选择特定的类来导出相应的JAVA代码。 - **点击“确定”**:完成导出操作。导出完成后,系统会弹出一个提示框显示导出文件的存放目录。 示例截图如下...
【标题】:“把wsdl文件或地址转化成java代码工具” 在软件开发中,Web服务是一种通过网络(通常是HTTP)交换数据的方式。WSDL(Web Services Description Language)是描述Web服务的标准XML格式,它定义了服务的...
在某些情况下,开发者可能需要将已有的C++代码转换为Java代码,以便在Java平台上运行或利用Java的生态系统。 标题“C++代码转Java工具”暗示了一个软件或服务的存在,它的功能是自动化C++源代码到Java源代码的转换...
Java代码和Smali代码是两种不同的编程语言,它们在Android应用开发中扮演着不同角色。Java是高级语言,而Smali是Dalvik虚拟机(DVM)的汇编语言,通常用于逆向工程和安全分析。这个“Java代码直接转化成Smali代码...
在Java编程语言的世界里,对细节的掌握是提升代码质量、效率和可维护性的关键。这篇集合了关于Java编程的一些重要细节,旨在帮助开发者更好地理解和运用这个强大的后端语言。以下是一些基于提供的文件名和标签所衍生...
对于那些需要频繁查看或分析Java代码的开发者来说,这是一款不可或缺的辅助工具。 在实际应用中,此工具可以广泛应用于以下场景: 1. **逆向工程**:当没有源代码的情况下,需要分析或修改已有的二进制Java程序,...
【标题】"onvif wsdl转成java代码"涉及的主要知识点是ONVIF协议、Web服务描述语言(WSDL)以及Java编程在服务端开发中的应用。 ONVIF(Open Network Video Interface Forum,开放网络视频接口论坛)是一种全球性的...
- **知识点解释**:标题中提到这是“经典的资料,书籍”,这意味着这些Java代码不仅限于简单的示例,可能还包含了更深入的理论知识和技术细节。 - **实践意义**:结合书籍中的理论知识来实践代码,可以让学习者更加...
本文将深入探讨在Qt平台上如何实现C++与Java代码的交互。 首先,理解C++与Java交互的基本原理至关重要。这种交互通常通过JNI(Java Native Interface)来实现,它允许Java代码调用本地(如C++)代码,反之亦然。JNI...
5. **代码审查**:在代码审查或团队协作时,折叠功能有助于集中讨论重点部分,避免无关细节的干扰。 "说明.txt"文件应该是提供关于如何安装和使用该插件的指南。通常,这会包括以下步骤: 1. **下载插件**:获取...
在这个“课程设计Java代码”的资源中,我们可以期待一系列与Java学习相关的实践示例,这些示例涵盖了从基础到进阶的各个阶段。 首先,让我们了解一下Java的基础知识。Java程序由类组成,类是对象的模板。类定义了...
Java 代码性能优化技巧总结 Java 代码性能优化是每个 Java 开发者都需要掌握的重要技能。以下是对 Java 代码性能优化的各种技巧的总结: 字符串池的实现 在 Java 中,字符串池(String Intern Pool)是通过使用...
Java代码实现CMPP 2.0协议是一种在移动通信领域常见的技术,主要用于短信服务。CMPP(China Mobile Packet Protocol)是中国移动制定的一种基于TCP/IP的通信协议,用于连接SP(Service Provider)与SCP(Service ...
在这个"java一些细节知识"的压缩包中,包含了一份名为"java test.doc"的文档,我们可以期待它涵盖了作者个人测试后总结的Java关键知识点。以下是对这些可能包含的内容的详细解释: 1. **变量与数据类型**:Java支持...
6. **注释**:好的源代码通常包含清晰的注释,帮助解释代码的功能和实现细节。 通过深入学习和理解这些源代码,你可以增强对Java编程的理解,进一步提升编程技能。同时,这也是一个很好的机会去实践代码阅读和调试...
总的来说,WinMerge作为一款优秀的Java代码比较工具,它的强大功能和易用性使其成为开发人员不可或缺的助手,尤其是在代码管理和协同开发的过程中。掌握并熟练使用WinMerge,无疑能够提升开发效率,降低出错概率,...
以下是对`java代码优化细节总结1.0版本`的一些核心知识点的阐述: 1. **避免冗余计算**:在Java编程中,如果一个值在多处被使用,应当将其存储在变量中,避免重复计算,提升执行速度。 2. **减少对象创建**:频繁...