Java学习笔记(十六)国际化

国际化:让世界上每个人都能看懂。
Locale类(java.util包下):包括所有国家、地区、语言
存在很多的静态属性,来表示国家、语言
三种构造方法
Locale(String language) 
根据语言代码构造一个语言环境。 
Locale(String language, String country) 
根据语言和国家构造一个语言环境。 
Locale(String language, String country, String variant) 
根据语言、国家和变量构造一个语言环境。 
常用方法
Locale getDefault() 
          获得此 Java 虚拟机实例的当前默认语言环境值。 
  String getDisplayCountry() 
          返回适合向用户显示的语言环境国家名。 
          void setDefault(Locale newLocale) 
          为此 Java 虚拟机实例设置默认语言环境。 
String getLanguage() 
          返回此语言环境的语言代码。 
String getCountry() 
          返回此语言环境的国家/地区代码。 
          注意:
          国家会兼容语言,但语言不会兼容国家。
          
java.text.*:该包下存在许多格式化类
          NumberFormat抽象类:
          常用方法:
          NumberFormat getInstance() 
          返回当前默认语言环境的通用数字格式。 
NumberFormat getInstance(Locale inLocale) 
          返回指定语言环境的通用数字格式。 
          String format(double number) 
          根据国家,进行格式规范。
          NumberFormat getCurrencyInstance(Locale inLocale) 
          返回指定语言环境的货币格式。  
         
          SimpleDateFormat类:
          模式字母:
y  年  
M  年中的月份  
H  一天中的小时数(0-23) 
h  am/pm 中的小时数(1-12) 
m  小时中的分钟数
s  分钟中的秒数  
构造器:
SimpleDateFormat(String pattern) 
          用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
常用方法:
String format(Date date) 
          将一个 Date 格式化为日期/时间字符串。
          注意:
          看到相应的模式字母,就会进行转换。
         
实现国际化:
1、先写各个语言对应的文字类,使其extends ListResourceBundle,然后重写getContents(),返回一个二维数组。
2、在程序中按照Local和ListResourceBundle的baseName来选择对应的资源,调用getString()/getObject()取得value
ResourceBundle类:
ResourceBundle getBundle(String baseName, Locale locale) 
baseName为对应的ListResourceBundle的类名(包名.类名)
使用指定的基本名称和语言环境,以及调用方的类加载器获取资源包。 
注意:根据key去查找value时,当前没有会去查找默认的,默认的也没有则会抛出异常

Java5.0新特性:
1、自动装箱,自动解箱(简单类型->对象类型)
小于127的数值在自动装箱时只做一次装箱,做" == "时相等。
null无法自动解箱。
先装箱后赋值和先解箱后赋值时,需要注意是否能够匹配。

2、静态import
用于导入类中的静态属性和静态方法。
格式:import static 包名.类名.属性/方法/*
注意:
必须是静态的成员。
静态导入时,不允许导入同名方法/属性。
使用时,可省略" 类名. "就像使用本类方法一样

3、增强for循环:for(  :  )
方式统一,可以处理数组和集合。
不可以同时对两个以上的集合进行操作。
不支持删除元素。

4、可变长的参数:(...)
用于取代数组,实际上还是按数组进行处理,允许传递非数组的值(0到n个,中间用逗号分隔)。
可变长参数只能出现一次,且一定会放在参数列表的最后。
作参数时,可变长参数可以不传,但数组不可以。

5、格式化输入输出:Scanner类
了解下就可以,知道有这个类就OK。

6、枚举Enum:本质上也是一个类,具有类所有特性
格式:
enum 枚举名{ 
枚举值1,
枚举值2,
.....
}

特性:
显示一些同类型的清单。
一个枚举值就是一个枚举对象。
可以有构造器,但不能是public的。
具有一个私有的默认无参的构造器,显式构造后,默认的构造器会消失。
属性,方法和类一样。
枚举是final的(对于外部无法继承),但在内部可以去实现。

注意:
清单里的类,会调用匹配的构造器,如无,则会报错。
在枚举中可以有抽象方法,但在清单中的所有子类都必须实现他。
如果要写属性和方法,则最后的一个枚举值要以分号结束。
枚举中的values()方法会返回枚举中的所有枚举值:  Color[] ss = Color.values();  

7、泛型


8、元数据(注释),项目中推广度一般

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值