优惠码 第75页

鸿蒙OS Thread

Thread java.lang.Object |—java.lang.Thread public class Thread extends Object implements Runnable 线程是程序中的执行线程。 Java 虚拟机允许应用程序同时运行多个执行线程。 每个线程都有一个优先级。具有较高优先级的线程优先于具有较低优先级的线程执行。每个线程可能会也可能不会被标记为守护进程。当在某个线程中运行的代码创建一个新的 Thread 对象时,新线程的优先级最初设置为等于创建线程的优先级,并且当且仅当创建线程是守护进程时,它才是守护线程。 当 Java 虚拟机启动时,通常有一个非守护线程(通常调用某个指定类的名为 main 的方法)。 Java 虚拟机继续执行线程,直到发生以下任一情况: 已调用 Runtime 类的退出方法,并且安全管理器已允许进行退出操作。 所有不是守护线程的线程都已经死亡,要么从调用 run 方法返回,要么抛出传播到 run 方法之外的异常。 有两种方法可以创建一个新的执行线程。一种是将类声明为 Thread 的子类。这个子类应该重写类 Thread 的 run 方法。然后可以分配和启动子类的实例。例如,计算大于规定值的素数的线程可以写成如下: class PrimeThread extends Thread { long minPrime; PrimeThread(long minPrime) { this.minPrime = minPrime; } public void run() { // compute primes larger than minPrime . . . } } 下面的代码将创建一个线程并开始运行: PrimeThread p = new PrimeThread(143); p.start(); 创建线程的另一种方法是声明一个实现 Runnable 接口的类。 然后该类实现 run 方法。 然后可以分配一个类的实例,在创建线程时作为参数传递,然后启动。 这种其他样式的相同示例如下所示: class PrimeRun implements Runnable { long minPrime; PrimeRun(long minPrime) { this.minPrime = minPrime; } public void run() { // compute primes larger than minPrime . . . } } 下面的代码将创建一个线程并开始运行: PrimeRun p = new PrimeRun(143); new Thread(p).start(); 每个线程都有一个用于识别目的的名称。...

鸿蒙OS System

System java.lang.Object |—java.lang.System public final class System extends Object System 类包含几个有用的类字段和方法。 它不能被实例化。 System 类提供的设施包括标准输入、标准输出和错误输出流; 访问外部定义的属性和环境变量; 一种加载文件和库的方法; 以及一种用于快速复制数组的一部分的实用方法。 字段摘要 修饰符和类型 字段 描述 static PrintStream err “标准”错误输出流。 static InputStream in “标准”输入流。 static PrintStream out “标准”输出流。 方法总结 修饰符和类型 方法 描述 static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 将指定源数组中的数组从指定位置开始复制到目标数组的指定位置。 static String clearProperty(String key) 删除由指定键指示的系统属性。 static Console console() 返回与当前 Java 虚拟机关联的唯一 Console 对象(如果有)。 static long currentTimeMillis() 以毫秒为单位返回当前时间。 static void exit(int status) 终止当前运行的 Java 虚拟机。 static void gc() 运行垃圾收集器。 static MapString,String getenv() 返回当前系统环境的不可修改的字符串映射视图。 static String getenv(String name) 获取指定环境变量的值。 static Properties getProperties() 确定当前系统属性。 static String getProperty(String key) 获取指定键指示的系统属性。 static String getProperty(String key, String def) 获取指定键指示的系统属性。 static SecurityManager getSecurityManager() 获取系统安全接口。 static int identityHashCode(Object x) 为给定对象返回与默认方法 hashCode() 返回的相同的哈希码,无论给定对象的类是否覆盖 hashCode()。 static Channel inheritedChannel() 返回从创建此 Java 虚拟机的实体继承的通道。 static String lineSeparator() 返回系统相关的行分隔符字符串。 static void load(String filename) 加载由文件名参数指定的本机库。 static void loadLibrary(String libname) 加载由 libname 参数指定的本机库。 static String mapLibraryName(String libname) 将库名称映射到表示本机库的特定于平台的字符串。 static long nanoTime() 返回正在运行的 Java 虚拟机的高分辨率时间源的当前值,以纳秒为单位。 static void runFinalization() 运行任何等待终结的对象的终结方法。 static void runFinalizersOnExit(boolean value) 已弃用。 这种方法本质上是不安全的。 这可能会导致在其他线程同时操作这些对象时对活动对象调用终结器,从而导致行为不稳定或死锁。 static void setErr(PrintStream err) 重新分配“标准”错误输出流。 static void setIn(InputStream in) 重新分配“标准”输入流。 static void setOut(PrintStream out) 重新分配“标准”输出流。 static void setProperties(Properties props) 将系统属性设置为 Properties 参数。 static String setProperty(String key, String value) 设置由指定键指示的系统属性。 static void setSecurityManager(SecurityManager s) 设置系统安全。 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 字段详细信息...

鸿蒙OS StringBuilder

StringBuilder java.lang.Object |—java.lang.StringBuilder public final class StringBuilder extends Object implements Appendable, CharSequence, Serializable 可变的字符序列。此类提供与 StringBuffer 兼容的 API,但不保证同步。此类设计用于在单个线程正在使用字符串缓冲区的地方(通常情况下)用作 StringBuffer 的替代品。在可能的情况下,建议优先使用此类而不是 StringBuffer,因为它在大多数实现下会更快。 StringBuilder 的主要操作是 append 和 insert 方法,它们被重载以便接受任何类型的数据。每个都有效地将给定的数据转换为字符串,然后将该字符串的字符附加或插入到字符串构建器中。 append 方法总是将这些字符添加到构建器的末尾; insert 方法在指定点添加字符。 例如,如果 z 引用当前内容为 “start” 的字符串构建器对象,则调用 z.append(“le”) 的方法将导致字符串构建器包含 “startle”,而 z.insert(4, ” le”) 将更改字符串生成器以包含“starlet”。 一般来说,如果 sb 引用 StringBuilder 的实例,则 sb.append(x) 与 sb.insert(sb.length(), x) 具有相同的效果。 每个字符串生成器都有容量。只要字符串构建器中包含的字符序列的长度不超过容量,就不需要分配新的内部缓冲区。如果内部缓冲区溢出,它会自动变大。 StringBuilder 的实例对于多线程使用是不安全的。如果需要这种同步,则建议使用 StringBuffer。 除非另有说明,否则将 null 参数传递给此类中的构造函数或方法将导致抛出 NullPointerException。 构造函数摘要 构造函数 描述 StringBuilder() 构造一个其中没有字符且初始容量为 16 个字符的字符串构建器。 StringBuilder(int capacity) 构造一个字符串构建器,其中没有字符,初始容量由容量参数指定。 StringBuilder(CharSequence seq) 构造一个字符串构建器,该构建器包含与指定 CharSequence 相同的字符。 StringBuilder(String str) 构造一个初始化为指定字符串内容的字符串构建器。 方法总结 修饰符和类型 方法 描述 StringBuilder append(boolean b) StringBuilder append(char c) 将指定的字符附加到此 Appendable。 StringBuilder append(char[] str) StringBuilder append(char[] str, int offset, int len) StringBuilder append(double d) StringBuilder append(float f) StringBuilder append(int i) StringBuilder append(long lng) StringBuilder append(CharSequence s) 将指定的字符序列附加到此 Appendable。 StringBuilder append(CharSequence s, int start, int end) 将指定字符序列的子序列附加到此 Appendable。 StringBuilder append(Object obj) StringBuilder append(String str) StringBuilder append(StringBuffer sb) 将指定的 StringBuffer 附加到此序列。 StringBuilder appendCodePoint(int codePoint) int capacity() 返回当前容量。 char charAt(int index) 返回此序列中指定索引处的 char 值。 int codePointAt(int index) 返回指定索引处的字符(Unicode 代码点)。 int codePointBefore(int index) 返回指定索引之前的字符(Unicode 代码点)。 int...

鸿蒙OS StringBuffer

StringBuffer java.lang.Object |—java.lang.StringBuffer public final class StringBuffer extends Object implements Appendable, CharSequence, Serializable 一个线程安全的、可变的字符序列。字符串缓冲区类似于字符串,但可以修改。在任何时候它都包含一些特定的字符序列,但是序列的长度和内容可以通过某些方法调用来改变。 字符串缓冲区可以安全地被多个线程使用。这些方法在必要时同步,以便任何特定实例上的所有操作都表现得好像它们以某种串行顺序发生,该顺序与所涉及的每个单独线程进行的方法调用的顺序一致。 StringBuffer 上的主要操作是 append 和 insert 方法,它们被重载以便接受任何类型的数据。每个都有效地将给定的数据转换为字符串,然后将该字符串的字符附加或插入到字符串缓冲区。 append 方法总是将这些字符添加到缓冲区的末尾; insert 方法在指定点添加字符。 例如,如果 z 引用当前内容为“start”的字符串缓冲区对象,则方法调用 z.append(“le”) 将导致字符串缓冲区包含“startle”,而 z.insert(4, ” le”) 将更改字符串缓冲区以包含“starlet”。 一般来说,如果 sb 引用一个 StringBuffer 的实例,那么 sb.append(x) 与 sb.insert(sb.length(), x) 具有相同的效果。 每当发生涉及源序列的操作(例如从源序列追加或插入)时,此类仅在执行操作的字符串缓冲区上同步,而不在源上同步。请注意,虽然 StringBuffer 旨在安全地从多个线程同时使用,但如果向构造函数或追加或插入操作传递了跨线程共享的源序列,则调用代码必须确保该操作具有一致且不变的视图操作期间的源序列。这可以通过在操作调用期间持有锁的调用者来满足,通过使用不可变的源序列,或者不跨线程共享源序列。 每个字符串缓冲区都有一个容量。只要字符串缓冲区包含的字符序列的长度不超过容量,就不需要分配新的内部缓冲区数组。如果内部缓冲区溢出,它会自动变大。 除非另有说明,否则将 null 参数传递给此类中的构造函数或方法将导致抛出 NullPointerException。 从 JDK 5 开始,该类已经补充了一个为单线程使用而设计的等效类 StringBuilder。通常应优先使用 StringBuilder 类,因为它支持所有相同的操作,但速度更快,因为它不执行同步。 构造函数总结 构造函数 描述 StringBuffer() 构造一个字符串缓冲区,其中没有字符,初始容量为 16 个字符。 StringBuffer(int capacity) 构造一个没有字符且具有指定初始容量的字符串缓冲区。 StringBuffer(CharSequence seq) 构造一个字符串缓冲区,该缓冲区包含与指定 CharSequence 相同的字符。 StringBuffer(String str) 构造一个字符串缓冲区,初始化为指定字符串的内容。 方法总结 修饰符和类型 方法 描述 StringBuffer append(boolean b) StringBuffer append(char c) 将指定的字符附加到此 Appendable。 StringBuffer append(char[] str) StringBuffer append(char[] str, int offset, int len) StringBuffer append(double d) StringBuffer append(float f) StringBuffer append(int i) StringBuffer append(long lng) StringBuffer append(CharSequence s) 将指定的 CharSequence 附加到此序列。 StringBuffer append(CharSequence s, int start, int end) 将指定字符序列的子序列附加到此 Appendable。 StringBuffer append(Object obj) StringBuffer append(String str) StringBuffer append(StringBuffer sb) 将指定的 StringBuffer 附加到此序列。 StringBuffer appendCodePoint(int codePoint) int capacity() char charAt(int index) 返回指定索引处的 char 值。 int codePointAt(int index) int codePointBefore(int index) int codePointCount(int beginIndex, int endIndex) StringBuffer delete(int start, int end) StringBuffer...

鸿蒙OS String

String java.lang.Object |—java.lang.String public final class String extends Object implements Serializable, Comparable<String>, CharSequence String 类表示字符串。 Java 程序中的所有字符串文字,例如“abc”,都是作为此类的实例实现的。 字符串是常量; 它们的值在创建后无法更改。 字符串缓冲区支持可变字符串。 因为 String 对象是不可变的,所以它们可以被共享。 例如: String str = "abc"; 相当于: char data[] = {'a', 'b', 'c'}; String str = new String(data); 以下是有关如何使用字符串的更多示例: System.out.println("abc"); String cde = "cde"; System.out.println("abc" + cde); String c = "abc".substring(2,3); String d = cde.substring(1, 2); String 类包括检查序列的单个字符、比较字符串、搜索字符串、提取子字符串以及创建字符串副本的方法,其中所有字符都转换为大写或小写。大小写映射基于 Character 类指定的 Unicode 标准版本。 Java 语言为字符串连接运算符 ( + ) 以及将其他对象转换为字符串提供了特殊支持。字符串连接是通过 StringBuilder(或 StringBuffer)类及其 append 方法实现的。字符串转换是通过 toString 方法实现的,由 Object 定义并由 Java 中的所有类继承。有关字符串连接和转换的更多信息,请参阅 Gosling、Joy 和 Steele,Java 语言规范。 除非另有说明,否则将 null 参数传递给此类中的构造函数或方法将导致抛出 NullPointerException。 String 表示 UTF-16 格式的字符串,其中补充字符由代理对表示(有关更多信息,请参见 Character 类中的 Unicode Character Representations 部分)。索引值指的是字符代码单元,因此补充字符使用字符串中的两个位置。 除了处理 Unicode 代码单元(即 char 值)的方法之外,String 类还提供了处理 Unicode 代码点(即字符)的方法。 字段摘要 修饰符和类型 字段 描述 static ComparatorString CASE_INSENSITIVE_ORDER 一个比较器,它按照 compareToIgnoreCase 对 String 对象进行排序。 构造函数摘要 构造函数 描述 String() 初始化一个新创建的 String 对象,使其表示一个空字符序列。 String(byte[] bytes) 通过使用平台的默认字符集解码指定的字节数组来构造一个新的字符串。...

鸿蒙OS StrictMath

StrictMath java.lang.Object |—java.lang.StrictMath public final class StrictMath extends Object StrictMath 类包含执行基本数值运算的方法,例如初等指数、对数、平方根和三角函数。 为帮助确保 Java 程序的可移植性,此包中某些数值函数的定义要求它们产生与某些已发布算法相同的结果。这些算法可从著名的网络库 netlib 中以包“Freely Distributable Math Library”fdlibm 的形式获得。这些算法是用 C 编程语言编写的,因此可以理解为按照 Java 浮点运算规则执行所有浮点运算。 Java 数学库是针对 fdlibm 5.3 版定义的。如果 fdlibm 为函数(例如 acos)提供了多个定义,请使用“IEEE 754 核心函数”版本(驻留在名称以字母 e 开头的文件中)。需要 fdlibm 语义的方法有 sin、cos、tan、asin、acos、atan、exp、log、log10、cbrt、atan2、pow、sinh、cosh、tanh、hypot、expm1 和 log1p。 该平台使用带有 int 和 long 原始类型的带符号二进制补码整数算术。开发人员应选择原始类型以确保算术运算始终产生正确的结果,这在某些情况下意味着运算不会溢出计算值的范围。最佳实践是选择原始类型和算法以避免溢出。在大小为 int 或 long 且需要检测溢出错误的情况下,方法 addExact、subtractExact、multiplyExact 和 toIntExact 在结果溢出时抛出 ArithmeticException。对于其他算术运算,例如除法、绝对值、递增、递减和求反,溢出仅发生在特定的最小值或最大值时,应根据需要检查最小值或最大值。 字段摘要 修饰符和类型 字段 描述 static double E 比任何其他值都更接近自然对数的底 e 的双精度值。 static double PI 比任何其他值都更接近 pi 的 double 值,pi 是圆的周长与其直径的比率。 方法总结 修饰符和类型 方法 描述 static double abs(double a) 返回双精度值的绝对值。 static float abs(float a) 返回浮点值的绝对值。 static int abs(int a) 返回 int 值的绝对值。 static long abs(long a) 返回 long 值的绝对值。 static double acos(double a) 返回一个值的反余弦值; 返回的角度在 0.0 到 pi 的范围内。 static int addExact(int x, int y) 返回其参数的总和,如果结果溢出 int,则抛出异常。 static long addExact(long x, long y) 返回其参数的总和,如果结果溢出 long 则抛出异常。 static double asin(double a) 返回一个值的反正弦; 返回的角度在 -pi/2 到 pi/2 的范围内。 static double atan(double a) 返回值的反正切; 返回的角度在 -pi/2 到 pi/2 的范围内。 static double atan2 x) 从直角坐标 (x, y) 到极坐标 (r, theta) 的转换中返回角度 theta。 static double cbrt(double a) 返回双精度值的立方根。 static double ceil(double a) 返回大于或等于参数且等于数学整数的最小(最接近负无穷大)双精度值。 static double copySign(double magnitude, double sign) 返回带有第二个浮点参数符号的第一个浮点参数。 static float copySign(float magnitude, float sign) 返回带有第二个浮点参数符号的第一个浮点参数。 static double cos(double a) 返回角度的三角余弦值。 static double cosh(double x) 返回 double 值的双曲余弦值。 static double exp(double a) 返回欧拉数 e 的双精度次方。...

鸿蒙OS StackTraceElement

StackTraceElement java.lang.Object |—java.lang.StackTraceElement public final class StackTraceElement extends Object implements Serializable 堆栈跟踪中的一个元素,由 Throwable#getStackTrace() 返回。 每个元素代表一个堆栈帧。 除了栈顶的栈帧外,所有栈帧都代表一个方法调用。 堆栈顶部的帧表示生成堆栈跟踪的执行点。 通常,这是创建对应于堆栈跟踪的 throwable 的点。 构造函数摘要 构造函数 描述 StackTraceElement(String declaringClass, String methodName, String fileName, int lineNumber) 创建表示指定执行点的堆栈跟踪元素。 方法总结 修饰符和类型 方法 描述 boolean equals(Object obj) 如果指定对象是另一个 StackTraceElement 实例,表示与此实例相同的执行点,则返回 true。 String getClassName() 返回包含此堆栈跟踪元素表示的执行点的类的完全限定名称。 String getFileName() 返回包含此堆栈跟踪元素表示的执行点的源文件的名称。 int getLineNumber() 返回包含此堆栈跟踪元素表示的执行点的源行的行号。 String getMethodName() 返回包含此堆栈跟踪元素表示的执行点的方法的名称。 int hashCode() 返回此堆栈跟踪元素的哈希码值。 boolean isNativeMethod() 如果包含此堆栈跟踪元素表示的执行点的方法是本机方法,则返回 true。 String toString() 返回此堆栈跟踪元素的字符串表示形式。 从类 java.lang.Object 继承的方法 clone, finalize, getClass, notify, notifyAll, wait, wait, wait 构造函数详细信息 StackTraceElement public StackTraceElement(String declaringClass, String methodName, String fileName, int lineNumber) 创建表示指定执行点的堆栈跟踪元素。 参数: 参数名称 参数描述 declaringClass 包含堆栈跟踪元素表示的执行点的类的完全限定名称 methodName 包含由堆栈跟踪元素表示的执行点的方法的名称 fileName 包含堆栈跟踪元素表示的执行点的文件的名称,如果此信息不可用,则返回 null lineNumber 包含此堆栈跟踪元素表示的执行点的源行的行号,如果此信息不可用,则为负数。 值为 -2 表示包含执行点的方法是本机方法 Throws: Throw名称 Throw描述 NullPointerException 如果 declaringClass 或 methodName 为 null 方法详情 getFileName public String getFileName() 返回包含此堆栈跟踪元素表示的执行点的源文件的名称。 通常,这对应于相关类文件的 SourceFile 属性(根据 Java 虚拟机规范,第 4.7.7 节)。 在某些系统中,名称可能指代文件以外的某些源代码单元,例如源存储库中的条目。 返回: 包含此堆栈跟踪元素表示的执行点的文件的名称,如果此信息不可用,则为 null。 getLineNumber public int getLineNumber() 返回包含此堆栈跟踪元素表示的执行点的源行的行号。 通常,这是从相关类文件的 LineNumberTable 属性派生的(根据 Java 虚拟机规范,第 4.7.8 节)。 返回: 包含此堆栈跟踪元素表示的执行点的源行的行号,如果此信息不可用,则为负数。 getClassName public String getClassName()...

鸿蒙OS Short

Short java.lang.Object |—java.lang.Number |—|—java.lang.Short public final class Short extends Number implements Comparable<Short> Short 类将原始类型 short 的值包装在对象中。 Short 类型的对象包含一个 short 类型的字段。 此外,该类提供了几种将short 转换为String 和String 转换为short 的方法,以及在处理short 时有用的其他常量和方法。 字段摘要 修饰符和类型 字段 描述 static int BYTES 用于以二进制补码形式表示短值的字节数。 static short MAX_VALUE 一个保持空头可以拥有的最大值的常数,215-1。 static short MIN_VALUE 一个保持空头可以拥有的最小值的常数,-215。 static int SIZE 用于以二进制补码形式表示短值的位数。 static ClassShort TYPE 表示原始类型 short 的 Class 实例。 构造函数摘要 构造函数 描述 Short(short value) 构造一个新分配的 Short 对象,该对象表示指定的 short 值。 Short(String s) 构造一个新分配的 Short 对象,该对象表示由 String 参数指示的 short 值。 方法总结 修饰符和类型 方法 描述 byte byteValue() 在缩小原语转换后,将此 Short 的值作为字节返回。 static int compare(short x, short y) 比较两个短数值。 int compareTo(Short anotherShort) 以数字方式比较两个 Short 对象。 static Short decode(String nm) 将 String 解码为 Short。 double doubleValue() 在扩展原始转换之后,将此 Short 的值作为双精度值返回。 boolean equals(Object obj) 将此对象与指定对象进行比较。 float floatValue() 在扩大原始转换后,将此 Short 的值作为浮点数返回。 int hashCode() 返回此 Short 的哈希码; 等于调用 intValue() 的结果。 static int hashCode(short value) 返回短值的哈希码; 与 Short.hashCode() 兼容。 int intValue() 在扩展原始转换后,将此 Short 的值作为 int 返回。 long longValue() 在扩展原始转换后将此 Short 的值作为 long 返回。 static short parseShort(String s) 将字符串参数解析为有符号十进制短。 static short parseShort(String s, int radix) 将字符串参数解析为第二个参数指定的基数中的有符号短整数。 static short reverseBytes(short i) 返回通过反转指定短值的二进制补码表示中的字节顺序获得的值。 short shortValue() 将此 Short 的值作为 short 返回。 String toString() 返回表示此 Short 值的 String 对象。 static String toString(short s) 返回一个表示指定短的新字符串对象。 static int toUnsignedInt(short x) 通过无符号转换将参数转换为 int。 static long toUnsignedLong(short x) 通过无符号转换将参数转换为 long。 static Short valueOf(short s) 返回一个表示指定短值的 Short 实例。 static Short valueOf(String s) 返回一个 Short 对象,该对象保存由指定 String 给出的值。 static Short...

鸿蒙OS SecurityManager

SecurityManager java.lang.Object |—java.lang.SecurityManager public class SecurityManager extends Object 安全管理器是一个允许应用程序实现安全策略的类。 它允许应用程序在执行可能不安全或敏感的操作之前确定该操作是什么以及是否在允许执行该操作的安全上下文中尝试该操作。 应用程序可以允许或禁止该操作。 SecurityManager 类包含许多名称以单词 check 开头的方法。 在这些方法执行某些潜在敏感操作之前,这些方法由 Java 库中的各种方法调用。 这种检查方法的调用通常如下所示: SecurityManager security = System.getSecurityManager(); if (security != null) { security.checkXXX(argument, . . . ); } 因此,安全管理器有机会通过抛出异常来阻止操作完成。 如果操作被允许,安全管理器例程会简单地返回,但如果操作不被允许,则抛出 SecurityException。 此约定的唯一例外是 checkTopLevelWindow,它返回一个布尔值。 当前的安全管理器由 System.class 中的 setSecurityManager 方法设置。 当前的安全管理器通过 getSecurityManager 方法获取。 特殊方法 SecurityManager#checkPermission(java.security.Permission) 确定是否应授予或拒绝由指定权限指示的访问请求。 默认实现调用 AccessController.checkPermission(perm); 如果请求的访问被允许,checkPermission 会安静地返回。如果被拒绝,则会引发 SecurityException。 从 Java 2 SDK v1.2 开始,SecurityManager 中其他每个检查方法的默认实现是调用 SecurityManager 的 checkPermission 方法来确定调用线程是否有权执行请求的操作。 请注意,只有一个权限参数的 checkPermission 方法总是在当前执行线程的上下文中执行安全检查。有时,应该在给定上下文中进行的安全检查实际上需要在不同的上下文中进行(例如,从工作线程中)。针对这种情况提供了包含上下文参数的 SecurityManager#getSecurityContext 方法和 SecurityManager#checkPermission(java.security.Permission, java.lang.Object) 方法。 getSecurityContext 方法返回当前调用上下文的“快照”。 (默认实现返回一个 AccessControlContext 对象。)示例调用如下: Object context = null; SecurityManager sm = System.getSecurityManager(); if (sm != null) context = sm.getSecurityContext(); checkPermission 方法除了权限外还接受上下文对象,根据该上下文而不是当前执行线程的上下文做出访问决策。 因此,不同上下文中的代码可以调用该方法,传递权限和先前保存的上下文对象。 使用如上例中获得的 SecurityManager sm 的示例调用如下: if (sm != null) sm.checkPermission(permission, context); 权限分为以下类别:文件、套接字、网络、安全性、运行时、属性、AWT、反映和可序列化。管理这些不同权限类别的类是 java.io.FilePermission、java.net.SocketPermission、java.net.NetPermission、java.security.SecurityPermission、java.lang.RuntimePermission、java.util.PropertyPermission、java.awt.AWTPermission、 java.lang.reflect.ReflectPermission 和 java.io.SerializablePermission。 除了前两个(FilePermission 和 SocketPermission)之外的所有都是 java.security.BasicPermission 的子类,它本身是顶级权限类 java.security.Permission 的抽象子类。 BasicPermission...

鸿蒙OS RuntimePermission

RuntimePermission java.lang.Object |—java.security.Permission |—|—java.security.BasicPermission |—|—|—java.lang.RuntimePermission public final class RuntimePermission extends BasicPermission 此类用于运行时权限。 RuntimePermission 包含一个名称(也称为“目标名称”)但没有操作列表; 您要么拥有命名权限,要么没有。 目标名称是运行时权限的名称(见下文)。 命名约定遵循分层属性命名约定。 此外,星号可能出现在名称的末尾,跟在“.”之后,或者单独出现,表示通配符匹配。 例如:“加载库”。 和 “” 表示通配符匹配,而 “loadLibrary” 和 “ab” 不表示。 下表列出了所有可能的 RuntimePermission 目标名称,并为每个目标名称提供了权限允许的描述以及授予代码权限的风险的讨论。 构造函数摘要 构造函数 描述 RuntimePermission(String name) 创建具有指定名称的新 RuntimePermission。 RuntimePermission(String name, String actions) 创建具有指定名称的新 RuntimePermission 对象。 方法总结 从类 java.security.BasicPermission 继承的方法 getActions, implies 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 从类 java.security.Permission 继承的方法 checkGuard, getName, newPermissionCollection 构造函数详细信息 RuntimePermission public RuntimePermission(String name) 创建具有指定名称的新 RuntimePermission。 该名称是 RuntimePermission 的符号名称,例如“exit”、“setFactory”等。星号可以出现在名称的末尾,跟在“.”之后,或者单独出现,表示通配符匹配。 参数: 参数名称 参数描述 name RuntimePermission 的名称。 Throws: Throw名称 Throw描述 NullPointerException 如果名称为null IllegalArgumentException 如果名称为empty RuntimePermission public RuntimePermission(String name, String actions) 创建具有指定名称的新 RuntimePermission 对象。 该名称是 RuntimePermission 的符号名称,且操作字符串当前未使用且应为空。 参数: 参数名称 参数描述 name RuntimePermission 的名称。 actions 应该为 null。 Throws: Throw名称 Throw描述 NullPointerException 如果名称为null IllegalArgumentException 如果名称为empty