蜂信物联FastBee平台https://gitee.com/beecue/fastbee
阿里资料开源项目https://gitee.com/vip204888
百度低代码前端框架https://gitee.com/baidu/amis
OpenHarmony开源项目https://gitcode.com/openharmony
仓颉编程语言开放项目https://gitcode.com/Cangjie
如果一个类中变量或方法有修饰字 protected,同一类,同一包可以使用。不同包的类要使用,必须是该类的子类可以存取变量或调用。
如果希望一个成员在当前包外可见,但仅仅是成员所在类的子类直接可见,就要使用 protected 修饰该成员。
1.3 private
private 访问修饰符是限制性最大的一种访问修饰符。
被声明为 private 的成员只能被此类中的其他成员访问,不能被类外看到。
继承体系结构中最高级别的类决不会被声明为 private 类。
1.4 defaulted
类是缺省的,该类具有包访问权限,只能被同一包中的其它类访问
2. static
用 static 修饰符修饰,可以是变量、方法或代码块。
类中的静态变量、方法或代码块属于类,而不属于某个特定的对象。
类的静态成员可以与类的名称一起使用,而无需创建类的对象。
静态变量或方法也称为类变量或类方法。
2.1 静态变量
public class TestDemo {
static int COUNT = 100;
}
public class Test {
public static void main(String[] args) {
System.out.println(TestDemo.COUNT);//可以直接通过类名进行调用,推荐使用
TestDemo ts = new TestDemo();
System.out.println(ts.COUNT);//也可以通过某一对象尽心调用
}
}
2.2 静态方法
与静态方法相关的几个要点:
– 类的静态方法只能访问其他的静态成员
– 静态方法没有 this
– 静态方法不能被覆盖为非静态方法
public class TestDemo {
static int COUNT = 100;
int i = 10;
public static void say() {
// System.out.println(i);//静态方法中只能访问静态修饰的属性和方法
System.out.println(COUNT);
}
// main方法本身就是一个静态方法,是一个特殊的静态方法
public static void main(String[] args) {
say();// 静态方法中可以访问静态方法
}
}
2.3 静态代码块
形式:static { ……}
如果需要通过计算来初始化静态变量,可以声明一个静态块。
静态块仅在该类被加载时执行一次。
public class TestDemo {
private static int COUNT = 100;
static {
System.out.println(COUNT);
}
public static void main(String[] args) {
System.out.println(COUNT);
}
}
java类属性和对象属性的初始化顺序:
- 首先找到类中的所有静态声明语句(不管位置在哪),把他们初始化为缺省值;
- 然后再按照书写顺序依次处理每一个static的东西;
- 把对象属性初始化为缺省值;
- 按照书写顺序依次处理每一个对象属性的初始化语句最后执行构造函数;
public class Test {
// 代码块
{
System.out.println("3");
}
{
System.out.println("4");
}
static {
System.out.println("1");
}
static {
System.out.println("2");
}
public Test() {
System.out.println("构造函数");
}
# 最后
关于面试刷题也是有方法可言的,建议最好是按照专题来进行,然后由基础到高级,由浅入深来,效果会更好。当然,这些内容我也全部整理在一份pdf文档内,分成了以下几大专题:
* Java基础部分
![](https://img-blog.csdnimg.cn/img_convert/2cabe79b630843fbaba6c43a57aa10a8.webp?x-oss-process=image/format,png)
* 算法与编程
![](https://img-blog.csdnimg.cn/img_convert/cd2254e50dcfe3aeb37b7549bd85ad05.webp?x-oss-process=image/format,png)
* 数据库部分
![](https://img-blog.csdnimg.cn/img_convert/71c91b0f529678cbdc71536b98716a04.webp?x-oss-process=image/format,png)
* 流行的框架与新技术(Spring+SpringCloud+SpringCloudAlibaba)
![](https://img-blog.csdnimg.cn/img_convert/06688477b3b4324ba562e0d754f4c51c.webp?x-oss-process=image/format,png)
这份面试文档当然不止这些内容,实际上像JVM、设计模式、ZK、MQ、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。
**作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。**
上像JVM、设计模式、ZK、MQ、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。
**作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。**