个人主页:个人主页
系列专栏:JAVASE基础
看完本节内容后,推荐去刷题巩固基础点击跳转刷题网站进行注册学习
目录
一、static静态关键字
static是什么,static修饰成员变量的用法
1.static是什么
2.static修饰的成员变量是什么? 有什么特点?
3.两种成员变量各自在什么情况下定义?
4.成员变量内存原理
static修饰成员方法的基本用法
1. 成员方法的分类:
2.static修饰成员方法的内存原理
3.static访问注意事项:
二、static应用知识
static应用知识:工具类
1.工具类是什么?
2.使用工具类的好处:
3.为什么工具类中的方法不用实例方法做?
4.工具类定义时的其他要求:
static应用知识:代码块
1.代码块概述
2.静态代码块
3.造代码块(了解,见的少)
static应用知识:单例设计模式
1.什么是设计模式(Design pattern)
2.单例模式
静态成员变量(有static修饰,属于类、加载一次,内存中只有一份),访问格式
实例成员变量(无static修饰,属于对象),访问格式:
之前我们定义的方法有的有static修饰,有的是没有的,有什么不同?
使用场景:
成员方法的分类和访问分别是什么样的?
静态成员方法(有static修饰,属于类和对象共享)访问格式:
实例成员方法(无static修饰,属于对象)的访问格式:
案例:
工具类:
package util;
import java.util.Random;
public class Code {
private Code() {
}
public static String verification(int n) {
Random random = new Random();
String code="";
for (int i = 0; i < n; i++) {
int type=random.nextInt(3);// 0 1 2
switch(type){
case 0://大写字母
char ch=(char) (random.nextInt(26)+65);
code+=ch;
break;
case 1://小写字母
char ch1=(char) (random.nextInt(26)+97);
code+=ch1;
break;
case 2://数字
code+= random.nextInt(10);
break;
}
}
return code;
}
}
调用工具类:
package pojo;
import util.Code;
public class base {
public static void main(String[] args) {
System.out.println(Code.verification(5));
}
}
public class base {
public static void main(String[] args) {
}
static {
System.out.println("-------------static-------------");
}
}
随着类的加载而加载:
public class base {
public static void main(String[] args) {
System.out.println("-------------main方法-------------");
}
static {
System.out.println("-------------static-------------");
}
}
饿汉单例模式
在用类获取对象的时候,对象已经提前为你创建好了。
设计步骤:
public class SingleInstance {
public static SingleInstance instance=new SingleInstance();
private SingleInstance() {
System.out.println("创建了一个对象");
}
}
懒汉单例模式。
在真正需要该对象的时候,才去创建一个对象(延迟加载对象)。
设计步骤:
public class SingleInstance {
private static SingleInstance instance;
public static SingleInstance getInstance(){
if (instance==null){
instance=new SingleInstance();
}
return instance;
}
}