首先向大家道个歉,前面3天由于在忙着写项目说明文档,所以耽误了一下。今天借着中午这段时间把前面的补回来。话不多说,下面步入正题吧!
Jar命令:jar可以把多个文件打包成一个压缩包,得到的压缩包通常有3种:1)*.jar -它里面包含N个class文件。2)*.war(Web) -它是一个Web应用打包生成的包。3)*.ear(Enterprise) -它是一个企业应用打包生成的包。这里我们学习时常用的*.jar这种方法。在运行命令窗口输入jar我们可以看到jar命令的如下参数选项:
举例说明几个常用的:
命令:jar -cvf test.jar *.class //为新创建的jar包取名为test
jar -cMf test.jar *.class //创建压缩包,不生成清单文件(META-INF下面的manifest.mf文件)
jar -tvf test.jar //查看压缩包
jar -xvf test.jar //解压 (加v可以看到详细的过程,可不加)
jar -uvf test.jar A.class //添加A.class到test.jar中。
【打包成可执行的JAR包】jar -cvfe my.jar UserTest *.class //通过-e告诉JVM UserTest为主类,并打包。
这样如果机器上安装了独立的虚拟机,只要双击“可执行型”的JAR包即可运行。
如果没装则:java -jar my.jar //运行
javaw -jar my.jar //主要用于有界面的程序(javaw和java差不多)
若不需要清单文件,可以使用windows里的WinRAR或WinZi压缩,然后把后缀改成.jar即可。
Jar命令的好处:方便管理。JVM可以直接加载Jar包,这样就可以一次加载N个类,效率更高。
Java程序入口(main)方法说明:public -系统来调用该方法时,不可能在同一个包中,也不会是它的子类
static -无需创建实例,直接用类名调用入口方法。--执行:java 主类类名 数组元素1 数组元素2...
String[] args:args默认是长度为0的数组,可在程序运行时动态传入args参数值。
正则表达式:就是一个可以匹配N个字符串的字符串模板。
正则表达式所支持的通配符:
. -可以匹配任意字符。
\s -代表一个任意空白(空格、Tab)
\S -代表一个任意的非空白
\d -代表一个任意的数字(digital)
\D -代表一个任意的非数字
\w -代表一个单词字符
-W -代表一个任意的非单词字符
str.matches(regex);//判断str字符串是否匹配给定的正则表达式。
"123.123".replaceAll("\\.", "#"); //结果:123#123
特殊字符(实际用时记住要转义\):( ) [ ] { } \ ? * + ^(一行的开头) $(一行的结尾)|
表示出现次数的“副词”:
? --代表它前面的东西可以出现0~1次
* --代表它前面的东西可以出现0~N次
+ --代表它前面的东西可以出现1~N次
{n,m} --代表它前面的东西可以出现n~m次
{n,} --代表它前面的东西至少出现n次
{,m} --代表它前面的东西最多出现m次
{n} --代表它前面的东西必须出现n次
方括号表达式:
枚举:[ab中] --代表a或x或者“中”。
范围:[a-c] --代表a,b,c中的任意一个字符。
枚举与范围:[a-c1-3]--代表a,b,c,1,2,3中的任意一个字符。
表示求否:[^a-c] --代表不含a,b,c其中任意一个字符。
表示求交:[a-g&&[^b-d]]:--代表a,e,f,g中的任意一个字符。--总结:一个字符用\,多个字符用[],字符次数用{}
(com|org|cn):表示必须含有其中之一。
--除此自外,Java专门提供了两个工具类:
Pattern - 它就是代表正则表达式模板。
Matcher -代表一个匹配工具类。
find():查找下一个匹配正则表达式的字符串。group()取出上一次与正则表达式匹配的字串。
举例说明(找出邮箱):
public class RegexTest { public static void main(String[] args) { String str ="这本书价格是52.9元,作者的两个邮箱:一个是123@qq.com,另外一个是234@163.com"; Pattern pattern = Pattern.compile("[a-zA-Z0-9]{2,}@[a-zA-Z0-9]{2,}\\.(com|org|net|cn)"); Matcher matcher = pattern.matcher(str); while(matcher.find()){ System.out.println(matcher.group()); } } }
国际化(简称:i18N):希望一个程序,可以“自适应”所有用户环境。--本质是“查找”、“替换”。
国际化的步骤:
(1)提供资源文件,负责为程序提供国际化消息,同时资源文件的文件名必须满足:<baseName>_语言代码_国家代码.properties。如果资源文件包含了非西欧字符,需要使用native2ascii工具类处理这个文件。
处理格式:native2ascii 要处理的文件 生成的新文件名(资源文件)。
(2)使用ResourceBundle来加载国际化资源文件
(3)从所加载的文件中查找key对应的字符串进行替换。
--调用ResourceBundle的getMessage()方法(负责为消息中的占位符填充参数值)输出国际化消息。
举例说明1:
/* * Description:获取Java语言的所支持的所有Locale * */ public class LocaleTest { public static void main(String[] args) { Locale[] locals = Locale.getAvailableLocales(); for (Locale ls : locals) { System.out.println(ls.getDisplayCountry() + " " + ls.getLanguage() + " " + ls.getCountry()); } } }
举例说明2:
1)我们写一个test.properties文件,内容为:hi=你好!welcome={0},欢迎你!2)执行命令行:native2ascii test.properties test_zh_CN.properties
我们将看到生成的内容如下:hi=\u4f60\u597d\uff01
welcome={0},\u6b22\u8fce\u4f60\uff01
3)编码如下:
/* * Description:获取并替换国际化资源文件信息 * */ public class LocaleTest { public static void main(String[] args) { // Java 虚拟机实例的当前默认语言环境值 Locale currentLocale = Locale.getDefault(); // 加载国际化资源文件,test为资源文件名前缀 ResourceBundle bundle = ResourceBundle.getBundle("test",currentLocale); // 从bundle所加载的文件中查找hi对应的字符串进行替换。 System.out.println(bundle.getString("hi")); //将占位符的内容替换为“张三" System.out.println(MessageFormat.format(bundle.getString("welcome"), "张三")); } }
结束语:
今天内容就讲这么多,明天开始学习Java面向对象之集合框架。内容比较多,所以打算分两次讲。
相关推荐
Java学习系列(六):Java面向对象之Jar命令、正则表达式、国际化详解 本章节主要讲解Java面向对象的其他概念,包括Jar命令、正则表达式、国际化。Jar命令是一种用于压缩和解压缩Java类库的命令。正则表达式是一种...
6. **Java的Jar命令、正则表达式、国际化**:介绍了如何打包Java应用为jar文件,正则表达式的使用,以及如何实现多语言支持。 7. **集合框架详解**:详细分析了ArrayList、LinkedList、HashSet、HashMap等各种集合...
Java和C#是当今流行的两种面向对象的编程语言,它们都源自C语言的语法风格,但各自发展出了独特的特性。以下是对Java和C#之间语法规范的详细比较: 1. 编译及启动程序 - Java使用`javac`进行编译,C#使用`csc`。 ...
- **java.util**:掌握集合框架、日期时间处理类、正则表达式等。 - **java.io**:理解输入输出流的工作原理,熟悉File、InputStream、OutputStream等类。 - **java.math**:掌握BigInteger、BigDecimal等数学计算...
1. 掌握Java核心语法、深入理解面向对象思想、熟练使用Java语言的核心API 2. 掌握Oracle数据库的安装、配置 3. 掌握SQL、PL/SQL数据库编程的核心内容 4. 掌握JDBC的核心API、能编写出健壮的JDBC程序 5. 掌握DBUtils...
2.3 Java的面向对象特征 36 2.3.1 一切都是对象 37 2.3.2 类和对象 37 2.4 本章小结 37 第3章 数据类型和运算符 38 3.1 注释 39 3.1.1 单行注释和多行注释 39 3.1.2 文档注释 40 学生提问:API文档是什么? ...
在Java中,可以利用正则表达式、Trie树等数据结构来提高查询速度。对于多语言支持,还需要考虑字符编码和Unicode处理。 5. **用户交互** 良好的用户体验是电子词典成功的关键。Java提供了丰富的UI组件,如文本框、...
### Java 入门教程知识点详解 ...通过以上详细介绍,我们不仅了解了 Java 的基本概念、环境配置,还深入学习了 Java 的语法结构、流程控制、面向对象等核心内容,这将为后续更深入的学习奠定坚实的基础。
- **java.util**:熟悉集合框架、正则表达式、Zip处理、日期时间处理等。 - **java.io**:理解I/O流的概念,熟悉File、InputStream、OutputStream等类的使用。 - **java.math**:掌握BigInteger、BigDecimal等数学...
### SSH中的Jar包详解 SSH(Struts+Spring+Hibernate)是Java Web开发中非常流行的轻量级框架组合。为了更好地理解和使用SSH框架,我们有必要深入解析这些框架中所涉及的关键Jar包及其功能。 #### 1. **antlr-2.76...
面向对象编程(OOP)是Java的核心思想之一。理解和实践封装、继承、多态等原则,是编写高质量Java程序的关键。 #### 十、规范 遵守良好的编码规范有助于提高代码的可读性和可维护性。这包括但不限于命名约定、注释...
总之,这个用Java编写的通讯录系统展示了如何利用Java的GUI库、文件操作、数据结构和面向对象编程等技术,实现一个实用的桌面应用。通过深入理解这些知识点,开发者不仅可以构建自己的通讯录系统,还能为其他类型的...
- **java.util**:熟悉List、Set、Map等集合框架,以及正则表达式、压缩、日期时间处理、随机数生成等工具类。 - **java.io**:理解输入输出流的概念,熟练使用File、BufferedReader/Writer、InputStream/...
描述中的"该笔记本采用Java语言"说明了该应用的开发环境和编程基础,Java是一种广泛使用的面向对象的编程语言,以其“一次编写,到处运行”的特性著称,适用于桌面应用、服务器端应用以及移动应用等多个领域。...
- **jakarta-oro.jar**: 提供Perl兼容的正则表达式引擎,用于Struts中的表单验证等场景。 - **struts.jar**: Struts核心库,包含了实现MVC模式所需的组件。 - **antlr.jar**: 解析器生成工具,用于Struts的Action...
Java作为一种广泛使用的面向对象的编程语言,提供了丰富的库和工具来支持正则表达式处理和解析器构造。例如,Java的`java.util.regex`包包含了正则表达式的操作类,如`Pattern`和`Matcher`,它们可以帮助我们方便地...
以上是根据传智播客视频JavaSE学习笔记总结的关键知识点,覆盖了Java基础环境配置、字符串操作、多线程编程、集合框架、输入输出流、网络编程、反射机制、正则表达式等多个方面,希望对Java初学者和进阶者有所帮助。
### Java面试题详解 #### 一、Java基础知识 1. **您看过哪些Java方面的书籍?** 这个问题旨在了解求职者对于Java学习的态度和深度。常见的Java学习书籍包括但不限于: - 《Java核心技术》 - 《Effective Java...
Java是一种广泛使用的面向对象的编程语言,具有丰富的库和跨平台的特性。以下是对标题“javase基础笔记总结全套.docx”中提到的一些关键知识点的详细解释: 1. **JDK(Java Developer Kit)**:Java开发工具集,...