JAVA 技术文章收集(5)
static boolean isIdentifierIgnorabfalse le(int cp) static boolean isJavaIdentifierPartrue t(int cp) static boolean isJavaIdentifierStatrue rt(int cp) static boolean true isLetter(int cp) static boolean isLetterOrDigit(int true cp) static boolean false isLowerCase(int cp) static boolean false isMirrored(int cp) static boolean false isSpaceChar(int cp) static boolean isSupplementaryCodefalse Point(int cp) static boolean false isTitleCase(int cp) static boolean isUnicodeIdentifiertrue Part(int cp) static boolean isUnicodeIdentifiertrue Start(int cp) static boolean false isUpperCase(int cp) static boolean isValidCodePoint(intrue t cp) static boolean false isWhitespace(int cp) static int (不可更改) toLowerCase(int cp) static int (不可更改) toTitleCase(int cp) false false true false true false true false true false false false false false false false true false false false true false true false false false true true false false static int (不可更改) toUpperCase(int cp) Character. Character.UnicodeBlCJK_UNIFIED_IDECJK_UNIFIED_IDEOGRAPHS_HIGH_SURROUnicodeBock of(int cp) OGRAPHS EXTENSION_B GATES lock Font boolean (取决于 Font 实例) canDisplay(int cp) FontMetrint charWidth(int (取决于 FontMetrics 实例) ics cp) String int indexOf(int cp) (取决于 String 实例) int lastIndexOf(int (取决于 String 实例) cp) 本小节介绍前面的小节中没有讨论的代理对相关 API。表 3 展示所有这些剩余的 API。所有代理对 API 都包含在表 1、2 和 3 中。 表 3. 其他代理 API
类 Character String StringBuffer StringBuilder 方法/构造函数 static int codePointAt(char[] ach, int index, int limit) static int codePointBefore(char[] ach, int index) static int codePointBefore(char[] ach, int index, int start) static int codePointBefore(CharSequence seq, int index) static int digit(int cp, int radix) static int offsetByCodePoints(char[] ach, int start, int count, int index, int cpOffset) static int offsetByCodePoints(CharSequence seq, int index, int cpOffset) static char[] toChars(int cp) static int toChars(int cp, char[] dst, int dstIndex) String(int[] acp, int offset, int count) int indexOf(int cp, int fromIndex) int lastIndexOf(int cp, int fromIndex) StringBuffer appendCodePoint(int cp) int codePointAt(int index) int codePointBefore(int index) int codePointCount(int beginIndex, int endIndex) int offsetByCodePoints(int index, int cpOffset) StringBuilder appendCodePoint(int cp) int codePointAt(int index) int codePointBefore(int index) 4、 其他 API int codePointCount(int beginIndex, int endIndex) int offsetByCodePoints(int index, int cpOffset) IllegalFormat IllegalFormatCodePointException(int cp) CodePointException
清单 11 展示了从一个码位创建一个字符串的 5 种方法。用于测试的码位是 U+53F1 和 U+20B9F,它们在一个字符串中重复了 100 亿次。清单 11 中的注释部分显示了处理时间:
清单 11. 从一个码位创建一个字符串的 5 种方法 int cp = 0x20b9f; // CJK Ideograph Extension B String str1 = new String(new int[]{cp}, 0, 1); // processing time: 206ms String str2 = new String(Character.toChars(cp)); // 187ms String str3 = String.valueOf(Character.toChars(cp)); // 195ms String str4 = new StringBuilder().appendCodePoint(cp).toString(); // 269ms String str5 = String.format(\int getCodePoint() str1、str2、str3 和 str4 的处理时间没有明显不同。相反,创建 str5 花费的时间要长得多,因为它使用 String.format(),该方法支持基于本地和格式化信息的灵活输出。str5 方法应该只用于程序的末尾来输出文本。
5、 结束语
Unicode 的每个新版本都包含了通过代理对表示的新定义的字符。东亚字符集标准并不是这样的字符的惟一来源。例如,移动电话中还需要支持 Emoji 字符(表情图释),还有各种古字符需要支持。您从本文收获的技术和性能分析将有助于您在您的 Java 应用程序中支持所有这些字符。
关于 JAR 您不知道的 5 件事
把它放在 JAR 中
通常,在源代码被编译之后,您需要构建一个 JAR 文件,使用 jar 命令行实用工具,或者,更常用的是 Ant jar 任务将 Java 代码(已经被包分离)收集到一个单独的集合中,过程简洁易懂,我不想在这做过多的说明,稍后将继续说明如何构建 JAR。现在,我只需要存档 Hello,这是一个独立控制台实用工具,对于执行打印消息到控制台这个任务十分有用。如清单 1 所示:
清单 1. 存档控制台实用工具
package com.tedneward.jars; public class Hello { public static void main(String[] args) { System.out.println(\ } } Hello 实用工具内容并不多,但是对于研究 JAR 文件却是一个很有用的 “脚手架”,我们先从执行此代码开始。
1、 JAR 是可执行的
.NET 和 C++ 这类语言一直是 OS 友好的,只需要在命令行(helloWorld.exe)引用其名称,或在 GUI shell 中双击它的图标就可以启动应用程序。然而在 Java 编程中,启动器程序 — java — 将 JVM 引导入进程中,我们需要传递一个命令行参数(com.tedneward.Hello)指定想要启动的 main() 方法的类。
这些附加步骤使使用 Java 创建界面友好的应用程序更加困难。不仅终端用户需要在命令行输入所有参数(终端用户宁愿避开),而且极有可能使他或她操作失误以及返回一个难以理解的错误。
这个解决方案使 JAR 文件 “可执行” ,以致 Java 启动程序在执行 JAR 文件时,自动识别哪个类将要启动。我们所要做的是,将一个入口引入 JAR 文件清单文件(MANIFEST.MF 在 JAR 的 META-INF 子目录下),像这样: 清单 2. 展示入口点!
Main-Class: com.tedneward.jars.Hello 这个清单文件只是一个名值对。因为有时候清单文件很难处理回车和空格,然而在构建 JAR 时,使用 Ant 来生成清单文件是很容易的。在清单 3 中,使用 Ant jar 任务的 manifest 元素来指定清单文件: 清单 3. 构建我的入口点!
2、 JAR 可以包括依赖关系信息
似乎 Hello 实用工具已经展开,改变实现的需求已经出现。Spring 或 Guice 这类依赖项注入(DI)容器可以为我们处理许多细节,但是仍然有点小问题:修改代码 …… 此处隐藏:3332字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [政务民生]2013年公共基础知识热点问题(七)
- [政务民生]检验检测机构资质认定评审准则及释义20
- [政务民生]关于印发重庆市房屋建筑和市政基础设施
- [政务民生]1、隧道洞身开挖支护施工技术交底书
- [政务民生]2015年山东省17地市中考语文试题分类汇
- [政务民生]2-高级会计师资格考试和评审流程图
- [政务民生]2018版中国清分机行业发展分析及前景策
- [政务民生]新课改高中政治探究
- [政务民生]2018-2024年中国新型组合房屋行业投资
- [政务民生]2015年上海市春季高考数学模拟试卷五
- [政务民生]灌砂法及环刀法测压实度(带计算过程)
- [政务民生]运筹学实验2求解非线性规划
- [政务民生]劝学、逍遥游默写(教师卷)
- [政务民生]《运筹学》 - 期末考试 - 试卷A - 答案
- [政务民生]八年级英语下册 Module 6 Hobbies测试
- [政务民生]2019年宪法知识竞赛试题库100题(含答
- [政务民生]自动化英文文献翻译
- [政务民生]公文格式实施细则
- [政务民生]高一地理上册课堂跟踪练习题6
- [政务民生]会计继续教育习题及答案
- 第三章 无约束最优化方法
- 泛读教程第三册答案
- 魏晋南北朝文学
- 幂的运算复习题
- 城市环境问题的成因与治理策略_以社会
- 钢结构行业产业链及竞争分析研究
- 新型热塑性弹性体增韧聚丙烯的研究
- 中国旅游地理B卷试题及答案
- (苏教版)五年级数学上册第三单元测试卷
- 不稳定性心绞痛诊断与治疗
- 俞氏国际后勤职能部门绩效考核办法
- GB7258-2017新标准考试题含答案
- 小学生汉字听写比赛活动方案
- 1.3《平抛运动》学案 教科版必修2
- 2011香港特别行政区公务员考试复习资料
- 考虑水力条件变化的城市给水管网可靠性
- 表面活性剂在油田开发和生产中的应用
- ITT内部培训资料-FI端吸泵的介绍
- 文明守纪,从我做起学生发言稿
- 初中读《聊斋志异》心得体会800字范文




