Введение в 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("------------------------------------------");
}
}