Введение в Java (15) – статический

Введение в Java (15) – статический

Оглавление

Введение в Java (15) – статический

помещение

статический

Используйте ключевое слово static для определения «статических блоков кода».

Пример блока операторов/блока кода [реже используется]

Образец кода


помещение

 * Когда переменные-члены объявлены как переменные экземпляра:
      — Все объекты имеют этот атрибут, но значение этого атрибута будет меняться по мере изменения объекта.
 * Когда переменные-члены объявляются как статические переменные:
      — Все объекты имеют этот атрибут, а медианное значение Этот атрибут всех объектов один и тот же. Рекомендуется определить его как статическую переменную, чтобы сэкономить накладные расходы на память
 — статические переменные инициализируются при загрузке класса, а память выделяется в области метода. Нет необходимости создавать объект при доступе, для доступа напрямую используйте метод "имя класса. статическая переменная"
 
 * Когда метод определен как статический:
      - Метод описывает действие. Только когда действия всех согласованы, тогда это действие можно повысить. Для действий на уровне класса
 — переменные экземпляра и методы экземпляра не могут быть напрямую доступны в статических методах.
 — Большинство методов определены как методы экземпляра.
 — Большинство методов в «классах инструментов» — это статические методы, удобные для программирования и вызова.

статический

       - Статический означает статический.
       - Модифицированный метод является статическим методом.
       - Модифицированная переменная является статической переменной
       . - Следовательно, к статичным измененным элементам можно получить доступ с помощью метода «имя класса». Метод .. [Но не рекомендуется]
       — Все измененные элементы являются функциями уровня класса и не имеют ничего общего с конкретными объектами.

Используйте ключевое слово static для определения «статических блоков кода».

      * Формат синтаксиса:
           static {                оператор Java;            }       — блок статического кода выполняется при загрузке класса, а значение выполняется один раз. Нет необходимости вызывать его в основном методе.       - Вы можете написать несколько в одном классе и следовать нисходящему Сунь Сюю, чтобы выполнять их последовательно.       * Функция:            - Соответствует конкретным потребностям. например: проект требует, чтобы журнал завершения выполнения кода записывался во время/время загрузки класса.            — Java готовит для программистов особый момент, который называется: время загрузки классов.       — Обычно подготовительные работы завершаются в статическом блоке кода, а в первую очередь завершается инструмент подготовки данных. например: инициализировать пул соединений, проанализировать файл конфигурации XML...







Пример блока операторов/блока кода [реже используется]

     — Вы также можете написать несколько, выполняемых в порядке сверху вниз
      — выполняемых перед методом конструктора. Методы конструктора выполняются последовательно, а блоки кода экземпляра выполняются один раз.
      - Блок кода экземпляра также представляет собой специальную возможность, подготовленную языком Java для программистов, называемую: возможность инициализации объекта.

Образец кода


class People{//JVM结构见static.jpg
	String name;
	int age;
	//上面两个变量需要随对象改变,设置为实例变量
	static String id="中国公民";//身份
	//这个属性不需要改变,设置为静态变量,存储在方法区内存当中
	
	public People(String name,int age) {
		this.name=name;
		this.age=age;
	}
}

public class Static {
	static {
		System.out.println("这里是static定义的“静态代码块”;");
	}
	static {
		System.out.println("这里是static定义的“静态代码块”。");
	}
	static {
		System.out.println("-----------------------------------------");
	}
	
	public Static(){
		System.out.println("--------这里“无参构造方法”---------");
	}
	
	{
		System.out.println("这里“实例代码块”;");
	}
	{
		System.out.println("这里“实例代码块”。");
	}
	
	public static void main(String[] agrs) {
		Static s1=new Static();
		Static s2=new Static();
		System.out.println("------------------------------------------");
		
		People p1=new People("张三",24);
		System.out.println(p1.name+","+p1.age+","+People.id);//id静态变量可以直接用类调用
		People p2=new People("李四",36);
		System.out.println(p2.name+","+p2.age+","+People.id);
		p2=null;
		System.out.println(p2.id);//即便采用引用的方式调用,对象指向空,也不受影响出现空指针异常
		System.out.println("------------------------------------------");
	}

}

рекомендация

отblog.csdn.net/qq_61562251/article/details/135046691