广州优俊网站制作公司如何通过WordPress实现CDN加速?
摘要:广州优俊网站制作公司,wordpress的cdn加速,网站开发怎样搭建,北大荒建设集团网站目录1.Java 中的关键字是指什么?有哪些关键字?2.instanceof 关键字的作用
广州优俊网站制作公司,wordpress的cdn加速,网站开发怎样搭建,北大荒建设集团网站目录1.Java 中的关键字是指什么#xff1f;有哪些关键字#xff1f;2.instanceof 关键字的作用是什么#xff1f;3.访问修饰符 public、private、protected、以及不写#xff08;default#xff09;时的区别#xff1f;4.Java 中有没有 goto 关键字?5.在 Java 中#x…
目录1.Java 中的关键字是指什么有哪些关键字2.instanceof 关键字的作用是什么3.访问修饰符 public、private、protected、以及不写default时的区别4.Java 中有没有 goto 关键字?5.在 Java 中如何跳出当前的多重嵌套循环6.switch 是否能作用在 byte 上是否能作用在 long 上是否能作用在 String 上7.final 关键字在 Java 中的用法有哪些8.static 关键字的用法有哪些9.this 和 super 这两个关键字有什么区别10.throw 和 throws 的区别是什么11.return 与 finally 的执行顺序对返回值有什么影响12.什么时候用 assert如何使用 assert1.Java 中的关键字是指什么有哪些关键字
1Java 关键字是对 Java 编译器有特殊含义的字符串是编译器和程序员的一个约定程序员利用关键字来告诉编译器其声明的变量类型、类、方法特性等信息。
2Java语言共定义了如下所示的关键字
分类关键字访问控制private、protected、public类方法和变量修饰符abstract、class、extends、final、implements、interface、native、new、static、strictfp、synchronized、transient、volatile、enum程序控制break、continue、return、do、while、if、else、for、instanceof、switch、case、default、assert错误处理try、catch、throw、throws、finally包相关import、package基本类型boolean、byte、char、double、float、int、long、short变量引用super、this、void保留字goto、const
3注意事项
所有的关键字均是小写的并且在 IDE 中会以特殊的颜色显示在所有关键字中default 这一关键字较为特殊它既属于程序控制也属于类方法和变量修饰符还属于访问控制 在程序控制中当在 switch 中匹配不到任何情况时可以使用 default 来编写默认匹配的情况在类方法和变量修饰符中从 JDK8 开始引入了默认方法可以使用 default 关键字来定义一个方法的默认实现在访问控制中如果一个方法前没有任何修饰符则默认会有一个修饰符 default但是加上这个修饰符反而会报错。
2.instanceof 关键字的作用是什么
instanceof 严格来说是 Java 中的一个双目运算符用来测试一个对象是否为一个类的实例具体用法如下
boolean result obj instanceof Class其中 obj 为一个对象Class 表示一个类或者一个接口当 obj 为 Class 的对象或者是其直接或间接子类或者是其接口的实现类结果result 都返回 true否则返回 false。此外编译器会检查 obj 是否能转换成右边的 class 类型如果不能转换则直接报错如果不能确定类型则通过编译具体看运行时定。见下面的示例
class A {}class AA extends A {}class AAA extends AA {}public class Test {public static void main(String[] args) {A a new A();AA aa new AA();AAA aaa new AAA();System.out.println(a instanceof A); //trueSystem.out.println(a instanceof AA); //falseSystem.out.println(aa instanceof AAA); //falseSystem.out.println(aaa instanceof A); //trueint i 0;System.out.println(i instanceof Integer); //编译不通过i 必须是引用类型不能是基本类型System.out.println(i instanceof Object); //编译不通过//在 JavaSE 规范中对 instanceof 运算符的规定是如果 obj 为 null那么将返回 falseSystem.out.println(null instanceof Object); //false}
}3.访问修饰符 public、private、protected、以及不写default时的区别
作用域当前类同包子类外部包public√√√√protected√√√×default√√××private√×××
类的成员不写访问修饰时默认为 default。默认对于同一个包中的其他类相当于公开 (public)对于不是同一个包中的其他类相当于私有 (private)。受保护 (protected) 对子类相当于公开对不是同一包中的没有父子关系的类相当于私有。
4.Java 中有没有 goto 关键字?
1goto 是 Java 中的保留字在 Java 8 中没有使用。但是其实 goto 是 C 语言中的goto 语句通常与条件语句配合使用可用来实现条件转移 构成循环跳出循环体等功能。而在结构化程序语言中一般不主张使用 goto 语句以免造成程序流程的混乱使理解和调试程序都产生困难。但是在 Java 语言中goto 只是作为了保留字还没有使用因为 Java 追求简单方便。
5.在 Java 中如何跳出当前的多重嵌套循环
在要跳出的循环前加一个标记如 A然后用 “break A” 可以跳出多重循环。Java 支持带标签的 break 和 continue 语句作用有点类似于 C 和 C中的 goto但是就像要避免使用 goto 一样应该避免使用带标签的 break 和 continue因为它可能会造成程序流程的混乱。例子如下
class Test {public static void main(String[] args) {A: for (int i 0; i 10; i) {for (int j 0; j 10; j) {System.out.print(j );if (j 5) {break A;}}}}
}结果如下
0 1 2 3 4 5 6.switch 是否能作用在 byte 上是否能作用在 long 上是否能作用在 String 上
在 Java 5 以前switch(expr)中expr 只能是 byte、short、char、int。从 Java 5 开始Java 中引入了枚举类型expr 也可以是 enum 类型从 Java 7 开始expr 还可以是字符串 (String)但是长整型 (long) 在目前所有的版本中都是不可以的。
7.final 关键字在 Java 中的用法有哪些
1被 final 修饰的类不能够被继承所有的方法不可以被重写但其内的非 final 变量可以被修改 2被 final 修饰的成员变量必须要初始化赋初值后不能再重新赋值可以调用对象方法修改属性值对基本类型来说是其值不可变 3对引用变量来说其引用不可变即不能再指向其他的对象但对象中的内容可以变化 4被 final 修饰的方法不能重写但 JVM 会尝试将其内联以提高运行效率
8.static 关键字的用法有哪些
1static 修饰变量 ① 被 static 修饰的成员变量属于类不属于某个对象多个对象访问或修改 static 修饰的成员变量时其中一个对象将 static 成员变量进行了修改其他的对象的 static 成员变量值跟着改变多个对象共享同一个 static 成员变量 ② 被 static 修饰的成员可以通过类名直接访问 ③ 在静态方法中不能访问非静态的内容变量不能使用 this/super非静态中可以访问静态中的变量
2static 修饰方法 ① static 修饰的方法被称之为静态方法也叫类方法 ② 加 static 的方法可以通过类名直接访问也可以通过对象名访问且不能再内部写this因为直接用类名.方法的时候没有当前对象。而不加 static 只能通过对象名访问 ③ 加了 static 的方法不能在内部访问非 static 的属性和行为因为在静态方法的内部无法确定非 static 的内容属于那个对象它是通过类名调用。
3static 修饰代码块 ① 静态代码块在非静态代码块之前执行静态代码块—非静态代码块—构造方法。 ② 静态代码块只在第一次 new 执行一次之后不再执行而非静态代码块在每 new 一次就执行一次。非静态代码块可在普通方法中定义不过作用不大而静态代码块不行。
4static 修饰类 ① static 有一种特殊用法是修饰内部类普通类是不允许声明为静态的只有内部类才可以被 static 修饰的内部类可以直接作为一个普通类来使用而不需实例一个外部类 ② 当一个内部类没有使用 static 修饰的时候不能直接使用内部类创建对象需要先使用外部类对象 . new内部类对象。
9.this 和 super 这两个关键字有什么区别
1this
可以近似看作对象内部指代自身的引用但不能将 super 与 this 赋给另一个对象变量解决成员变量和局部变量同名问题可以调用成员变量、成员方法但是不能调用局部变量this() 可以调用本类的构造器但只限构造方法中使用且必须是第一条语句在普通方法中可以省略 this但在静态方法当中不允许出现 this 关键字
2super
代表对当前对象的直接父类对象的引用可以调用父类的非 private 成员变量和方法super() 可以调用父类的构造方法只限构造方法中使用且必须是第一条语句
class Demo {public Demo () {System.out.println(init Demo without arg...);}public Demo (int a) {System.out.println(init Demo with an arg...);}
}public class SubDemo extends Demo{public SubDemo() {super(1);System.out.println(init SubDemo without arg...);}public SubDemo(int a) {//调用本类的无参构造方法但注意不能在无参构造方法的第一行调用 this(1)否则会出现构造方法循环调用this();System.out.println(init SubDemo with an arg...);}public SubDemo(int a, int b) {super();System.out.println(init SubDemo with two args...);}public static void main(String[] args) {SubDemo demo1 new SubDemo(3);SubDemo demo2 new SubDemo(3, 4);}
}init Demo with an arg...
init SubDemo without arg...
init SubDemo with an arg...
init Demo without arg...
init SubDemo with two args...10.throw 和 throws 的区别是什么
1throw ① 表示方法内抛出某种异常对象只能是一个 ② 用于程序员自行产生并抛出异常 ③ 位于方法体内部可以作为单独语句使用 ④ 如果异常对象是非 RuntimeException则需要在方法申明时加上该异常的抛出即需要加上 throws 语句或者在方法体内使用 try catch 处理该异常否则编译报错 ⑤ 执行到 throw 语句则后面的语句块不再执行
2throws ① 方法的定义上使用 throws 表示这个方法可能抛出某些异常可以有多个 ② 用于声明在该方法内抛出了异常 ③ 必须跟在方法参数列表的后面不能单独使用 ④ 需要由方法的调用者进行异常处理
package test;import java.io.IOException;class Solution {/*** 测试 throws 关键字* throws NullPointerException*/public static void testThrows() throws NullPointerException {Integer i null;System.out.println(i 1);}/*** 测试 throw 关键字抛出运行时异常* param i*/public static void testThrow(Integer i) {if (i null) {//运行时异常不需要在方法上申明throw new NullPointerException();}}/*** 测试 throw 关键字抛出非运行时异常需要方法体需要加 throws 异常抛出申明* param filePath*/public static void testThrow(String filePath) throws IOException {if (filePath null) {//非运行时异常需要方法体需要加 throws 异常抛出申明throw new IOException();}}public static void main(String[] args) {testThrows();Integer i null;testThrow(i);String filePath null;try {testThrow(filePath);} catch (IOException e) {e.printStackTrace();}}
}上述代码中三个方法对应的异常如下 11.return 与 finally 的执行顺序对返回值有什么影响
对于 try 和 finally 至少有一个语句块包含 return 语句的情况 ① 正常情况下例如没有系统退出、出现异常等情况finally 语句块会执行 ② 如果 finally 语句块中没有 return 语句则 finally 对 return 语句中变量的重新赋值修改无效 ③ 如果 try 和 finally 语句块中都包含 return 语句则 return 值会以 finally 语句块中的 return 值为准
public class Test {public static void main(String args[]) {try {int a 10 / 0;System.out.println(a);} catch (Exception e) {e.printStackTrace();//退出程序finally 中的代码不会被执行System.exit(0);} finally {System.out.println(finally...);}}
}结果如下
java.lang.ArithmeticException: / by zeroat test.Test.main(Test.java:8)public static void main(String[] args) {System.out.println(getInt());
}public static int getInt() {int a;try {a 200;return a;} finally {System.out.println(finally...);a 300;}
}结果如下
finally...
200public static void main(String[] args) {System.out.println(getInt());
}public static int getInt() {int a;try {a 200;return a;} finally {System.out.println(finally...);a 300;return a;}
}结果如下
finally...
30012.什么时候用 assert如何使用 assert
1assertion断言在软件开发中是一种常用的调试方式很多开发语言中都支持这种机制。一般来说assertion 用于保证程序最基本、关键的正确性。assertion 检查通常在开发和测试时开启。 2为了提高性能在软件发布后 assertion 检查通常是关闭的。在实现中断言是一个包含布尔表达式的语句在执行这个语句时假定该表达式为 true如果表达式计算为 false那么系统会报告一个 AssertionError。 3断言用于调试目的
assert(a 0); // throws an AssertionError if a 04断言有以下两种形式
assert Expr1;
assert Expr1 : Expr2;Expr1 应该总是产生一个布尔值。 Expr2 可以是得出一个值的任意表达式这个值用于生成显示更多调试信息的字符串消息。这两种表达形式本质是一样的不同在于第二种方式中可以指定输出错误的信息。
5断言在默认情况下是禁用的。 ① 要在编译时启用断言需使用 source 1.4 标记
javac -source 1.4 Test.java② 要在运行时启用断言可使用 -ea 或者 -enableassertions 标记。 ③ 要在运行时选择禁用断言可使用 -da 或者 -disableassertions 标记。 ④ 要在系统类中启用断言可使用 -esa 或者 -dsa 标记。还可以在包的基础上启用或者禁用断言。
6可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不过断言不应该用于验证传递给公有方法 的参数因为不管是否启用了断言公有方法都必须检查其参数。不过既可以 在公有方法中也可以在非公有方法中利用断言测试后置条件。另外断言不应该以任何方式改变程序的状态。
