您身边的网站建设专家
成功案例

【建站服务】专业网站建设-网站设计-网站制作与网站开发-高端品牌企业宣传策划-阳春上往建站-域名申请

日期: 2022-09-21 03:15:51 浏览数:4


上往建站提供服务器空间服务商百度快照排名网站托管百度推广运营,致力于设计外包服务与源代码定制开发360推广搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。


专业网站建设-网站设计-网站制作与网站开发-高端品牌企业宣传策划-阳春上往建站

网站建设.png

  1. 关于修饰符

    1.分为“访问修饰符”和“非访问修饰符”。顾名思义,“访问修饰符”就是和访问权限有关得修饰符。

    2.访问修饰符中一些值得注意得地方:

    Private 访问修饰符的使用主要用来隐藏类的实现细节和保护类的数据;

    被声明为 public 的类、方法、构造方法和接口能够被任何其他类访问;

    protected 访问修饰符可以修饰类及其方法,但是接口及接口的成员变量和成员方法不能声明为 protected;

    3.关于static修饰符的理解

    怎么理解静态变量呢?简单来说静态变量就是一个类的公有属性。在这里可以打个拙劣的比方:假设“班里的学生”是一个类,班里的任何一个同学都相当于一个对象。那么所有学生的学费是一样的对吧?”学费“就相当于一个”静态变量“,其特征是它不属于任何一个”对象“(即学生)的专有属性,是大家”公有“的,若是变了,那就所有的同学的学费都会变。我们假设每个同学都有修改学费的权力,那么任何一个同学修改了学费(这个静态变量),所有同学的学费就都会变。


    另外:静态方法只能使用类的静态变量。

    Charlie Lee

       Charlie Lee

      101***4851@qq.com

    5年前 (2017-07-23)
  2.    啥也不想

      tri***lboy@163.com

    41

    transient

    当对象被序列化时(写入字节序列到目标文件)时,transient阻止实例中那些用此关键字声明的变量持久化;当对象被反序列化时(从源文件读取字节序列进行重构),这样的实例变量值不会被持久化和恢复。

    import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;//定义一个需要序列化的类class People implements Serializable{
        String name; //姓名
        transient Integer age; //年龄
        public People(String name,int age){
            this.name = name;
            this.age = age;
        }
    
        public String toString(){
            return "姓名 = "+name+" ,年龄 = "+age;
        }}public class TransientPeople {
        public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
            People a = new People("李雷",30);
            System.out.println(a); //打印对象的值
            ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("d://people.txt"));
            os.writeObject(a);//写入文件(序列化)
            os.close();
            ObjectInputStream is = new ObjectInputStream(new FileInputStream("d://people.txt"));
            a = (People)is.readObject();//将文件数据转换为对象(反序列化)
            System.out.println(a); // 年龄 数据未定义
            is.close();
        }}

    运行结果如下:

    姓名 = 李雷 ,年龄 = 30姓名 = 李雷 ,年龄 = null

    volatile

    volatile可以用在任何变量前面,但不能用于final变量前面,因为final型的变量是禁止修改的。

    使用的场景之一,单例模式中采用DCL双锁检测(double checked locking)机制,在多线程访问的情况下,可使用volatitle修改,保证多线程下的可见性。缺点是性能有损失,因此单线程情况下不必用此修饰符。

    class Singleton{
        private volatile static Singleton instance = null;
        private Singleton() {
        }
    
        public static Singleton getInstance() {
            if(instance==null) {
                synchronized (Singleton.class) {
                    if(instance==null)
                        instance = new Singleton();
                }
            }


atile


volatile可以用在任何变量前面,但不能用于final变量前面,因为final型的变量是禁止修改的。


使用的场景之一,单例模式中采用DCL双锁检测(double checked locking)机制,在多线程访问的情况下,可使用volatitle修改,保证多线程下的可见性。缺点是性能有损失,因此单线程情况下不必用此修饰符。


class Singleton{

    private volatile static Singleton instance = null;

    private Singleton() {

    }


    public static Singleton getInstance() {

        if(instance==null) {

            synchronized (Singleton.class) {

                if(instance==null)

                    instance = new Singleton();

            }

        }

        return instance;

    }

}

啥也不想

   啥也不想


  tri***lboy@163.com


5年前 (2017-09-05)

   xhm_hm


  504***020@qq.com


14

关于final变量:


 1、 final 修饰符通常和 static 修饰符一起使用来创建类常量。用final修饰的成员变量表示常量,值一旦给定就无法改变!

 2、 final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。final变量定义的时候,可以先声明,而不给初值,这中变量也称为final空白,无论什么情况,编译器都确保空白final在使用之前必须被初始化。但是,final空白在final关键字final的使用上提供了更大的灵活性,为此,一个类中的final数据成员就可以实现依对象而有所不同,却有保持其恒定不变的特征。

xhm_hm

   xhm_hm


  504***020@qq.com


5年前 (2017-09-16)

   happywith


  735***469@qq.com


   参考地址


30

final以及final static修饰的变量的初始化方式:


    //-----------------成员变量------------------//  

    //初始化方式一,在定义变量时直接赋值  

    private final int i = 3;  

  

    //初始化方式二,声明完变量后在构造方法中为其赋值  

    //如果采用用这种方式,那么每个构造方法中都要有j赋值的语句  

    private final int j;  

  

    public FinalTest() {  

        j = 3;  

    }  

  

    //如果取消该构造方法的注释,程序就会报错,因此它没有为j赋值  

    /*public FinalTest1(String str) { 

 

    }*/  

  

    //为了方便我们可以这样

专业网站建设-网站设计-网站制作与网站开发-高端品牌企业宣传策划-阳春上往建站


上往建站提供搭建网站域名注册官网备案服务网店详情页设计企业网店专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管网页美工排版,致力于域名申请竞价托管软文推广全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机网站推广百度竞价托管网站建设上网建站推广服务网络公司有哪些等业务,专业团队服务,效果好。

服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)


全国咨询热线:400-111-6878

地址:全国各地都有驻点商务

Copyright © 2021 通陆科技

网站建设上往建站