子类和父类的构造器调用顺序:
- 父类有无参构造器,子类才可以写无参构造器;父类有含参构造器,子类才可以写含参构造器;
- 构造器不能被继承、重写;
- 当进行无参构造时,先调用父类无参构造器,然后调用子类无参构造器;当进行含参构造时,先调用父类含参构造器, 然后调用子类含参构造器。
一个“.java”元未见中是否可以包含多个类(不是内部类)?有什么限制?
可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。一个文件中可以只有非public类,如果只有一个非public类,此类可以跟文件名不同。
为什么一个java源文件中只能有一个public类?
- 每个编译单元(文件)都只能有一个public类,这表示,每个编译单元都有单一的公共接口,用public类来表现。该接口可以按照要求包含众多的支持包访问权限的类。如果某个编译单元里面有一个以上的类,编译器就会给出错误信息。
- public类的名称你必须完全与含有改变一单元的文件名相同,包含大小写。如果不匹配,同样将得到编译错误。
- 虽然不是很常用,但编译单元内完全不带public类也是可能的。在这种情况下,可以随意对文件命名。
编译单元与类的关系
一个编译单元(java文件)可以存在多个类,在编译时产生多个不同的.class文件,.class文件便是程序运行的数据来源。Java将public类作为每个编译单元的书接口,只能有一个,不然不能处理存在多个类的Java文件。当一个编译单元(java文件)有多个非public类时,运行时需要对数据来源进行选择。
字符串与字符数组之间的相互转化
String str;
char [] s;
1. 字符数组——>字符串
char [] s = str.toCharArray();
2. 字符串——>字符数组
String str = new String(s);
String str = String.valueOf(s);
String str = s.toString(s);
DecimalFormat的主要功能及使用方法
DecimalFormat是NumberFormat的一个子类,用于格式化十进制数字。该类设计有各种功能,使其能够分析和格式化任意语言环境中的数,包括对西方语言、阿拉伯语以及印度语数字的支持。
它支持不同类型的数,包括整数(110)、浮点数(10.1)、科学计数法表示的数(1.01E5)、百分数(10%)和金额($123)。所有这些内容都可以本地化。
DecimalFormat包含一个模式和一个符号。
符号 | 位置 | 含义 |
---|---|---|
0 | 数字 | 阿拉伯数字 |
# | 数字 | 阿拉伯数字,如果不存在则不显示 |
. | 数字 | 小数分隔符或货币分隔符 |
E | 数字 | 分隔科学计数法的尾数和指数,在前缀或后缀中无需加引号 |
% | 前缀或后缀 | 乘以100并显示为千分数 |
主要用法举例:
Java数组初始化方式
不能同时使用静态初始化和动态初始化!!!
即不要在进行数组初始化是,既指定数组的长度,也为每个数组元素分配初始值!
一旦完成数组初始化,数组在内存中所占的空间将被固定下来,所以数组的长度不可改变!
1. 静态初始化方式
格式:
arrayName = new type[]{element1,element2,element3...};
示例:
int [] intArray;
intArray = new int []{1,2,3,4,5};
2. 简化的静态初始化方式
格式:
type[] arrayName = {element1,element2,element3...};
示例:
str [] strArray = {“张三”,”李四”,”王五”};
3. 动态初始化
格式:
arrayName = new type [length];
示例:
int [] price = new int[4];
Java数组与字符串相互转换、整形与字符串相互转换
1. Char 数组(字符数组)——>字符串
String.copyValueOf(charArray)函数
2. String数组——>字符串
String [] arr = {“0123”,”sb”,”12f”};
StringBuffer sb = new StringBuffer();
for(int i = 0;i < arr.length; i++)
sb.append(arr[i]);
String sb2 = sb.toString();
System.out.println(sb1); //0123sb12f
3. 字符串——>数组
4. 整型与字符串相互转化
- 字符串——>整型
int i = Integer.parseInt([String]);
int i = Integer.parseInt([String],[int radix])
- 整型——>字符串
String s = Sring.valueOf(i);
String s = Integer.toString(i);
String s = “” + i;