631 次浏览
在超类中声明为 protected 的变量、方法和构造函数只能被其他包中的子类或 protected 成员类所在包中的任何类访问。protected 访问修饰符不能应用于类和接口。方法、字段可以声明为 protected,但是接口中的方法和字段不能声明为 protected。protected 访问使子类有机会使用辅助方法或变量,同时防止不相关的类尝试使用它。示例:下面的父类使用 protected 访问控制,允许其子类重写 openSpeaker() 方法 - class AudioPlayer ... 阅读更多
4K+ 次浏览
默认访问修饰符意味着我们没有显式声明类的访问修饰符、字段、方法等。没有声明任何访问控制修饰符的变量或方法可用于同一包中的任何其他类。接口中的字段隐式为 public static final,接口中的方法默认为 public。示例:变量和方法可以不带任何修饰符声明,如下例所示 -String version = "1.5.1"; boolean processOrder() { return true; }
440 次浏览
声明为 private 的方法、变量和构造函数只能在其声明的类本身中访问。private 访问修饰符是最严格的访问级别。类和接口不能是 private。如果类中存在公共 getter 方法,则可以访问声明为 private 的变量。使用 private 修饰符是对象封装自身并隐藏外部世界数据的首要方法。示例:下面的类使用 private 访问控制 - public class Logger { private String format; public String getFormat() { return this.format; } public void setFormat(String ... 阅读更多
3K+ 次浏览
下面的程序创建一个包含 null 值的数组。将其转换为仅包含非 null 值的列表,然后获取该列表的数组。示例:import java.util.ArrayList; import java.util.List; public class Tester { public static void main(String[] args) { String[] array = {"I", null, "love", null, "Java" }; List values = new ArrayList(); for(String data: array) { if(data != null) { values.add(data); } } String[] target = values.toArray(new String[values.size()]); for(String data: target) { System.out.println(data + " "); } } }输出:I love Java
162 次浏览
是的,可以从 Java 函数返回数组。请参见下面的示例 - 示例:public class Tester { public static void main(String[] args) { int[] array = getData(); for(int i: array) { System.out.println(i); } } public static int[] getData() { int[] dataArray = {1, 2, 3, 4}; return dataArray; } } 输出:1 2 3 4
159 次浏览
下面的程序打印数组中所有数字的总和。示例:public class Tester { public static void main(String[] args) { int[] dataArray = {1, 2, 3, 4}; int sum = 0; for(int i: dataArray) { sum += i; } System.out.println(sum); } }输出:10
797 次浏览
在访问元素的情况下,数组更快;在向集合添加/删除元素的情况下,列表更快。
2K+ 次浏览
在需要频繁修改集合(例如添加/删除操作)的情况下,应使用 LinkedList。在这种情况下,LinkedList 比 ArrayList 快得多。对于只读集合或很少修改的集合,ArrayList 更合适。
下面的示例将展示如何使用 Reader 和 Writer 类将 Unicode 字符串转换为 UTF8 byte[],以及将 UTF8 byte[] 转换为 Unicode byte[]。示例:IOTester.javaimport java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.Reader; import java.io.Writer; import java.nio.charset.Charset; import java.text.ParseException; public class I18NTester { public static void main(String[] args) throws ParseException, IOException { String input = "This is a sample text" ; InputStream inputStream = new ByteArrayInputStream(input.getBytes()); //获取 UTF-8 数据读取器 reader = new InputStreamReader(inputStream, Charset.forName("UTF-8")); //将 UTF-8 转换为 Unicode int data = reader.read(); while(data != ... 阅读更多
145 次浏览
下面的程序反转一个 int 数组。示例:public class Tester { public static void main(String[] args) { int[] numbers = {1,2,3,4,5}; //交换数字直到到达中点 for (int start = 0, end = numbers.length - 1; start