当前位置: 首页 > news >正文

电子商务模拟实训报告企业网站建设海外公司推广

电子商务模拟实训报告企业网站建设,海外公司推广,郑州seo价格,高德地图开发平台在java的关键字中#xff0c;static关键字和final关键字是两个必须掌握的关键字。static关键字和final关键字用法多样#xff0c;且在一定环境下使用#xff0c;可以提高程序的运行性能#xff0c;优化程序的结构。下面将依次介绍static关键字和final关键字。注意#xff…在java的关键字中static关键字和final关键字是两个必须掌握的关键字。static关键字和final关键字用法多样且在一定环境下使用可以提高程序的运行性能优化程序的结构。下面将依次介绍static关键字和final关键字。注意某些场景下staic关键字和final关键字可以联合使用这里也记录下。 static 关键字 static 关键字可以修饰多种成员如使用static关键字修饰变量以表示类变量使用static关键字修饰方法以表示类方法使用static关键字代码块以表示静态块使用static关键字修饰内部类以表示静态内部类使用static关键字修饰包以表示静态导包。 static 修饰字段 static关键字可以用来修饰字段这里的字段仅包括成员变量被修饰的成员变量也称静态变量。静态变量可以用于存储所有对象的公共属性。如员工公司名称学生所在的大学名称。在Java中静态变量保存在方法区可以被所有线程共享。静态变量通过较少相同数据的存储来达到节省内存的效果。静态变量的定义很简单就是使用static关键字修饰成员变量。示例如下 public class MyClass {public static String staticVariable; // 这是一个静态变量 }static 修饰方法 static关键字可以用来修饰成员方法被修饰的成员方法也称类方法。注意静态方法属于类不属于类的对象可以直接调用静态方法而无需创建类的实例静态方法可以访问静态变量并可以更改静态变量的值。静态方法通常用于执行与类本身相关的操作而不是与特定实例相关的操作。静态方法的定义很简单就是使用static关键字修饰成员方法。示例如下 public class MyClass {public static String staticVariable; // 这是一个静态变量public static void staticMethod() {System.out.println(This is a static method.);staticVariable foo; // 在静态方法中更改静态变量的值} }静态方法使用上有两个主要限制。它们分别是(1) 静态方法不能直接使用非静态数据成员或调用非静态方法(2) this和super两个关键字不能在静态上下文中使用。简言之静态方法中不能使用对象或对象方法。 最经典的静态方法就是入口类的main方法 public class Main {public static void main(String[] args) {System.out.println(Hello world.);} }这里简单介绍下为什么Java的main方法是静态的。Java的main方法之所以是静态的是因为它充当了程序的入口点。当运行一个Java程序时JVM会首先寻找具有静态main方法的类然后调用该类的main方法。main方法的关键特性有 (1) main方法是一个静态方法。这意味着它不需要创建类的实例就可以被调用减少不必要的对象创建。 (2) main方法具有特定的签名它接收一个字符串数组作为参数。这是因为JVM通过命令行参数将数据传递给程序。 (3) 当运行Java程序时JVM会自动调用具有静态main方法的类的main方法。 static 修饰代码块 static关键字可以用来修饰代码块别修饰的代码块也称静态块。静态块主要用于初始化类为类的静态变量赋初始值提升程序性能。静态块有以下特点 (1) 静态块类似于一个方法但它不可以存在于任何方法体中。 (2) 静态块可以置于类中的任何地方类中可以有多个静态初始化块。 (3) Java 虚拟机在加载类时执行静态代码块很多时候会将一些只需要进行一次的初始化操作都放在静态块中进行。 (4) 如果类中包含多个静态代码块则 Java 虚拟机将按它们在类中出现的顺序依次执行它们每个静态代码块只会被执行一次。 静态块的定义很简单就是使用static {}的方式定义。示例如下 public class MyClass {public static String staticVariable; // 这是一个静态变量static {staticVariable foo-1;System.out.println(staticVariable);}static {staticVariable foo-2;System.out.println(staticVariable);} }在上面的示例代码中两个静态块按照在类中出现的顺序依次执行所以staticVariable先被赋值为foo-1然后被赋值为foo-2。 static 修饰内部类 static关键字可以用来修饰内部类被修饰的内部类称为静态内部类。静态内部类也称为嵌套类这里特指Java语言。静态内部类是一种特殊的内部类当外部类在加载时并不会立即加载其静态内部类而是在第一次调用静态内部时才会初始化静态内部类。所以静态内部类可以实现延迟加载的效果。静态内部类的定义很简单就是使用static关键字修饰内部类。示例如下 public class OuterClass {private String privateField;private static String privateStaticField;private void visit() {// 外部类可以直接访问静态内部类的静态成员System.out.println(StaticInnerClass.privateStaticField);// 外部类可以实例化静态内部类并访问该实例的私有成员StaticInnerClass staticInnerClass new StaticInnerClass();System.out.println(StaticInnerClass.privateStaticField);}static class StaticInnerClass {private String privateField;private static String privateStaticField;public static void visit() {// 静态内部类方法中可以直接使用外部类的静态私有成员System.out.println(OuterClass.privateStaticField);// 静态内部类方法中可以实例化外部类并访问外部类实例的私有成员OuterClass outerClass new OuterClass();System.out.println(outerClass.privateField);}} }静态内部类的经典使用场景是基于静态内部类实现单例模式示例代码如下 public class Singleton {private Singleton() {}// 静态方法public static Singleton getInstance() {return SingletonHolder.INSTANCE;}// 静态内部类private static class SingletonHolder {private static final Singleton INSTANCE new Singleton();} }使用静态内部类实现单例模式不仅可以实现延迟加载还能确保线程安全也能保证单例的唯一性。更多静态内部类的说明可以参考Java内部类一文。 static 修饰包 static关键字可以用来修饰包被修饰的包称为静态导包。JDK 在 1.5 版本支持静态导包。静态导包简化了静态变量或静态方法的使用。采用static导入包后在不与当前类的方法名冲突的情况下无需使用“类名.方法名”的方法去调用类方法而是可以直接可以采用方法名去调用类方法就好像是调用该类自己的方法一样。静态导包的实现很简单就是在导入外部类时额外添加static关键字。示例代码如下 package xxx;// (1) 定义待引用的类并定义静态方法 public class CustomClass {public static void customStaticMethod(Object o){System.out.println(o);} }// (2) 在import包的同时使用static关键字并在引入类的最后加上.* import static xxx.CustomClass.*;public class Main {public static void main( String[] args ) {customStaticMethod(Hello World!);} }需要说明的是虽然静态导包使代码更简洁但可能会导致无法区分类方法和成员方法从而导致代码的可读性和可维护性降低。在日常的编码活动中并不推荐静态导包的写法。 final关键字 final 关键字可以修饰多种成员如使用static关键字修饰数据具体包括成员变量、局部变量、方法参数等使用final关键字修饰方法以防止方法被覆盖使用final关键字修饰类以防止该类被继承。 final 修饰数据 当在一个数据(成员变量、局部变量、方法参数)前使用final关键字时这意味着这个数据的值是固定的不能被改变也即一个永不改变的编译时常量。注意final修饰的数据允许不初始化也即空白final。空白final是指被声明为final但又未给定初值的字段。编译器需确保空白final在使用前必须被初始化。空白final修饰的变量一旦在运行时被初始化就不会再改变。 注意static关键字可以和final关键字联合使用修饰变量表示不可变的类常量。 final修饰数据的方式很简单就是在待修饰的数据前补充final关键字示例如下 public class MyClass {// staticfinal修饰变量表示不可变的类常量private static final String FLAG red;// 空白finalprivate final String code;// final修饰的成员变量private final String name jack;public FinalDemo() {// 空白final修饰变量的初始化this.code foo;}public void testFinalParam(final String param) {// param new value; // Cannot assign a value to final variable paramSystem.out.println(param);final String localVariable test; //final修饰的局部变量// localVariable new value; // Cannot assign a value to final variable localVariableSystem.out.println(localVariable);} }说明final参数的语义是不可在方法体中修改参数。对于基本类型表示该基本类型不可被重新赋值对于引用类型表示不能更改参数引用所指向的对象。 final 修饰方法 final关键字可以用来修饰成员方法这意味着这个方法不能被重写或重载。final关键字用于表示方法已锁定其子类无法修改它的含义。使用final关键字修饰的方法可以在编译期转化为内嵌方法从而提供执行效率。但是因为这种优化效率并不高所以不再作为特性使用。final关键修饰方法很简单就是使用final关键字修饰成员方法。示例如下 public class Main {public final void test1() {System.out.println(test1);} }注意所有private方法都隐式指定为final。 需要说明的是final方法并没有控制方法的访问权限只是保证该方法不可被子类覆盖。如可以使用public权限控制final方法的访问权限。示例如下 public class Main {public final void test1(){System.out.println(test1);}protected final void test2(){System.out.println(test2);}private final void test3(){System.out.println(test3);} }final 修饰类 final关键字可以用来修饰类这意味着这个方法不能被继承。需要说明的是因为final修饰的类不可继承所以其方法均为final。final关键修饰类很简单就是使用final关键字修饰类。示例如下 public final class Main {public final void test1(){System.out.println(test1);} }与final关键字修饰成员方法类似final修饰类时并不能控制类的访问权限只是保证该类不可被继承。常见的String类就是一个使用final修饰的类对应源码如下 public final class String implements java.io.Serializable, ComparableString, CharSequence {Stableprivate final byte[] value;// ... }static和final联合使用 static和final可以联合使用且目前为止只能用来修饰字段和方法。其实两者联合使用并没有特别处理只是各自表示各自的含义并没有112的效果。 static 关键字表示该变量或方法是属于类的而不是属于类的任何一个实例的。因此静态变量或方法可以在没有创建类的实例的情况下进行访问。 而final 关键字表示该变量或方法是一个常量或不可变的方法其值不能被改变或方法不可覆盖。 static 关键字和 final 关键字结合使用就表示以创建不可变的常量或不可变的静态方法。需要注意的是当使用static关键字和final关键字修饰方法时因为静态方法不属于对象所以不存在被覆盖的情况所以实际的应用中使用static关键字修饰的方式可以不用final关键字修饰。示例代码如下 public class MyClass {public static final float MY_CONSTANT 3.14f;public static final void test() {System.out.println(test);} }在上面的代码中使用 static 关键字和 final 关键字定义了一个不可变的静态常量 MY_CONSTANT其值为 3.14。由于 MY_CONSTANT 是静态的因此可以在没有创建 MyClass 类的实例的情况下访问它由于它是常量的因此它的值不能被改变。 使用 static 关键字和 final 关键字定义的test方法由于static修饰的方法已表示静态方法所以不存在被覆盖的情况所以可以省略final关键字。 参考 《Java编程思想》(第四版) Bruce Eckel [译]陈昊鹏 https://www.yiibai.com/java/static-keyword-in-java.html Java static关键字 https://www.cnblogs.com/dotgua/p/6354151.html java static关键字的四种用法 https://www.changchenghao.cn/n/562466.html static变量放JVM哪个区域static关键字基本概念和应用
http://wiki.neutronadmin.com/news/189410/

相关文章:

  • 重庆自助建网站企企业西域数码网站建设
  • 做app网站的软件叫什么网站设置子目录
  • 企业网站建设策划外贸网站经典营销案例
  • 做小程序和做网站哪个好如何在导航网站上做链接
  • 设计软件网站定制开发网页设计用的软件
  • 湘潭做网站找磐石网络一流wordpress右侧菜单
  • 盐城做网站企业杭州cms模板建站
  • 爱站工具包的模块wordpress 焦点图插件
  • 谁会写网站代码游戏网络公司名字
  • icp备案网站管理员有负责吗网站做百度推广怎么推广网站
  • 网站编程培训公司做网站一般图片的比例
  • 修改dns连接外国网站品质好可以说成品质什么
  • 唐山开发网站的公司网站建设要达到什么水平
  • qq推广引流网站自己搭建网站服务器
  • 一共有多少网站输变电壹级电力建设公司网站
  • 为什么不做网站做公众号域名抢注网站
  • 公司网站开发需要多少钱全屏网站模板制作教程
  • 58同城网站建设问题蓝色手机网站模板
  • 专做排版网站wordpress删除全部评论
  • 网站免费建设价格app软件下载免费
  • 实战网站开发个人网站号备案吗
  • 永灿网站建设公司网络优化软件
  • wordpress站群源码深圳网站开发公司 有哪些
  • 网站开发职位个人网址怎么填写
  • 高端网站建设公司兴田德润可以不wordpress 首页图片
  • 上海网站建设培训寿光市网站建设
  • 网站建设首页布局百度网盘服务电话6988
  • 网站开发原型模板交互设计就业前景
  • 两个域名指向同一个网站信息流广告的特点
  • 爱站网seo工具包张店网站开发招聘