java面试第十六天

时间:2022-06-27 07:17:48

国际化:让世界上每个人都能看懂。

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时,当前没有会去查找默认的,默认的也没有则会抛出异常

5.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、元数据(注释),项目中推广度一般