面试准备+复习分享:
为了应付面试也刷了很多的面试题与资料,现在就分享给有需要的读者朋友,资料我只截取出来一部分哦
静态属性的调用:
类名.属性名
也可以使用:对象名.属性
一般推荐使用类名调用静态成员
静态属性和非静态属性的区别
public class StaticTest {
int count;
public static void main(String[] args) {
StaticTest t1 = new StaticTest();
StaticTest t2 = new StaticTest();
StaticTest t3 = new StaticTest();
t1.count++;
t2.count++;
t3.count++;
System.out.println(t1.count);
System.out.println(t2.count);
System.out.println(t3.count);
}
}
输出结果都是1,如果将count定义为static的,输出结果为3,为什么?
总结:
-
静态的属性保存在方法区中,每个对象都共享这一个静态属性。
-
非静态的属性是由每个对象都有一个独立的副本。
非静态属性
静态属性
开发过程中我们需要一些固定的数据,如:圆周率 3.1415926
public static final double PI = 3.1415926;
优点:
-
可读性高
-
提高数据的安全性
-
调用和维护方便
定义:
public static 返回值类型 方法名(参数){
}
调用:
类名.方法名(参数)
注意:
-
静态方法中可以直接调用当前类的其它静态属性和方法
-
静态方法中不能直接调用当前类的非静态方法属性和方法
-
非静态方法中可以直接调用当前类的静态和非静态的属性和方法
-
静态方法中不能出现this和super关键字
Java中的各种工具类都大量使用静态方法,如:Arrays、Math等
语法:
static{
代码块
}
作用:
对静态的成员进行初始化
特点:
-
静态代码块只执行一次
-
在类加载到内存后执行,是类中所有代码最先执行
-
在第一次使用类的使用调用
面试题:下面代码的执行结果
public class Test2 {
//静态代码块
static{
System.out.println(“这是静态代码块”);
}
//非静态代码块
{
System.out.println(“这是非静态代码块”);
}
//构造方法
public Test2(){
System.out.println(“这个构造方法”);
}
public static void main(String[] args) {
Test2 t1 = new Test2();
Test2 t2 = new Test2();
Test2 t3 = new Test2();
}
}
执行顺序:
-
静态代码块(只执行一次)
-
非静态代码块(每个对象执行一次)
-
构造方法(每个对象执行一次)
jdk1.5的特性,导入某个类的静态方法后,可以不通过类名直接调用
//静态导入
import static java.util.Arrays.sort;
public class Test3 {
public static void main(String[] args) {
int[] array = {3,5,7,8,2};
//直接调用
sort(array);
for(int n : array){
System.out.println(n);
}
}
}
==================================================================
设计模式是前人针对不同的应用需求总结一套解决方案,常见的设计模式有23种,也称为GOF23。
单例模式属于GOF23中的创建性模式,作用是:保证一个类只能创建一个实例
Ending
Tip:由于文章篇幅有限制,下面还有20个关于MySQL的问题,我都复盘整理成一份pdf文档了,后面的内容我就把剩下的问题的目录展示给大家看一下
如果觉得有帮助不妨【转发+点赞+关注】支持我,后续会为大家带来更多的技术类文章以及学习类文章!(阿里对MySQL底层实现以及索引实现问的很多)
吃透后这份pdf,你同样可以跟面试官侃侃而谈MySQL。其实像阿里p7岗位的需求也没那么难(但也不简单),扎实的Java基础+无短板知识面+对某几个开源技术有深度学习+阅读过源码+算法刷题,这一套下来p7岗差不多没什么问题,还是希望大家都能拿到高薪offer吧。
15311043524)]
吃透后这份pdf,你同样可以跟面试官侃侃而谈MySQL。其实像阿里p7岗位的需求也没那么难(但也不简单),扎实的Java基础+无短板知识面+对某几个开源技术有深度学习+阅读过源码+算法刷题,这一套下来p7岗差不多没什么问题,还是希望大家都能拿到高薪offer吧。