ToB企服应用市场:ToB评测及商务社交产业平台

标题: static关键字,main方法,代码块,final关键字 [打印本页]

作者: 曂沅仴駦    时间: 2023-4-6 20:54
标题: static关键字,main方法,代码块,final关键字
static关键字,main()方法,代码块,final关键字

static关键字的使用:

类变量VS实例变量内存解析:


单例设计模式

什么是单例设计模式?

单例模式优缺点

优点:
缺点:
区分饿汉式和懒汉式

​        饿汉式:
​                        好处:饿汉式是线程安全的
​                        坏处:对象加载时间过长
​        懒汉式:
​                        好处:延迟对象创建。
​                        坏处:
单例模式的饿汉式实现

先创建实例
  1. /**
  2. *饿汉式:
  3. * 1.类的单例设计模式就是采取一定方法保证整个软件系统中,对某个类只能存在一个对象实例。
  4. *
  5. */
  6. public class Bank {
  7.     //1.私有化构造器
  8.     private Bank(){
  9.     }
  10.     //2.内部创建类的对象
  11.     //4.因此对象也要声明为静态的
  12.     private static Bank instance = new Bank();
  13.     //3.提供公共方法,返回类的对象
  14.     public static Bank getInstance(){
  15.         return instance;
  16.     }
  17. }
复制代码
单例模式的懒汉式实现

先判断是否创建,未创建就先创建,创建好了就返回实例
  1. /**
  2. *懒汉式单例模式
  3. *!!!目前线程不安全!!!
  4. */
  5. public class Order {
  6.     //1.私有化构造器
  7.     private Order(){
  8.     }
  9.     //2.生命当前类对象,没有初始化
  10.     //4.对象也要声明static
  11.     private static Order instance = null;
  12.     //3.声明public、static的返回当前对象的方法
  13.     public static Order OrdergetInstance(){
  14.         if(instance == null)
  15.             instance = new Order();
  16.         return instance;
  17.     }
  18. }
复制代码
main()方法

main()方法使用说明:
main()方法作为程序入口的例子:

IDEA在控制台给main()方法传参步骤:


代码块

代码块相关知识:
  1. /**
  2. * 类的成员之四,代码块(初始化块)
  3. *
  4. * 1.作用:用于初始化;类,对象
  5. * 2.代码块如果有修饰必须用static
  6. * 3.分类:静态代码块/非静态代码块
  7. *
  8. * 4.静态代码块
  9. *  >内部可以有输出语句
  10. *  >随着类的加载而执行,而且只执行一次
  11. *  >初始化类的信息
  12. *  >多个静态代码块按顺序执行
  13. *  >静态代码块执行优先于非静态代码块执行
  14. *  >静态代码块只能调用静态属性、静态方法,不能调用非静态的结构
  15. *
  16. * 5.非静态代码块
  17. *  >内部可以有输出语句
  18. *  >随着对象的创建而执行,每创建一个对象就执行一次
  19. *  >作用:可以在创建对象的时候,对对象的属性等进行初始化
  20. *  >如果一个类中定义了多个非静态代码块,则按照声明先后顺序执行
  21. *  >非静态代码块内可以调用静态属性、静态方法,或非静态的属性,非静态的方法
  22. */
  23. public class Bank {
  24.     public static void main(String args[]){
  25.         String n = Person.des;
  26.     }
  27. }
  28. class Person{
  29.     //属性
  30.     private String name;
  31.     private int age;
  32.     static String des = "hhh";
  33.     //构造器
  34.     public Person(){
  35.     }
  36.     public Person(String name,int age){
  37.         this.age=age;
  38.         this.name=name;
  39.     }
  40.     //非静态代码块
  41.     {
  42.         name ="无名";
  43.         System.out.println(222);
  44.         //调用静态方法
  45.         eat();
  46.         //调用非静态方法
  47.         walk();
  48.     }
  49.     //静态代码块
  50.     static {
  51.         System.out.println(111);
  52.         des = "www";
  53.         eat();
  54.     }
  55.     public static void eat(){
  56.         System.out.println("吃吃吃");
  57.     }
  58.     public void walk(){
  59.         System.out.println("肘,跟我进屋");
  60.     }
  61. }
复制代码
代码块使用场景:

对属性可以赋值的顺序:

final关键字

final的使用

final:最终的
1、final可以修饰的结构:类、方法、变量
2、final修饰一个类:此类不能被其他类所继承
比如:String类、System类、StringBuffer类
3、final修饰方法:表明此方法不能再被重写
比如Object中的getClass()方法
4、final修饰变量:此时"变量"就是一个常量
4.1final修饰属性:可以考虑赋值的位置有:显示初始化、代码块中初始化、构造器中初始化
修饰变量一定是要在类被加载之前被赋值
4.2final修饰局部变量:
尤其是使用final修饰形参时,表明此形参是一个常量。当我们调用此方法时,给常量形参赋一个实参。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4