1、基本语法

一、类的成员变量修饰符简介

1、成员变量修饰符的作用:用来控制对成员变量的访问。
2、七种成员变量修饰符:public、protected、private、static、final、transient、volatile

二、类的成员方法修饰符

1、方法修饰符的作用:控制对成员方法的访问。
2、八种方法的修饰符:public、protected、private、static、final、abstract、native、synchronize

修饰符说明:

private

私有变量、私有方法。只有类本身能够获取和引用。

protected

保护变量、保护方法。包内和子类都可以访问。

default(不加修饰符)

默认修饰符,同一个包内可以访问。

static

变量:没有加static修饰符的为实例变量,加了叫静态变量;静态变量在内存中只有一个,位于方法区内,被所有实例共享;可以通过类名进行访问,也可以通过实例进行访问;生命周期与类的生命周期同步。
方法:没加为实例方法,加了静态方法;静态方法不能访问实例方法和实例变量,可以通过类名直接访问。

final

1)final修饰类,其类不能被扩展,也就是说不能有子类;
2)final修饰的方法,不能被隐藏或者替换;
3)final修饰的变量最多赋值一次;更详细的说明可参考blog 点击参考资料;final变量是没有初始值,在Java中没有办法仅通过一个final来声明一个对象的不变性(immutability)

transient

序列化:把java对象转换为字节序列的过程称为序列化
反序列化:把字节恢复为java对象的过程称为反序列化
对象序列化主要的两种途径:
1、把对象的字节序列永久的保存到硬盘上,通常存放在同一个文件中;
2、在网络上传送对象的字节序列。
public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
		ObjectOutputStream out = 
				new ObjectOutputStream(new FileOutputStream("D:\\objectFile.obj"));
		//序列化对象
		Person person = new Person();
		person.setAge(20);
		person.setName("gaofushuai");
		person.setHeight("10m");
		System.out.println("age:" + person.getAge());
		out.writeObject("你好");
		out.writeObject(new Date());
		out.writeObject(person);
		out.close();
		
		/*
		 * 反序列化  按顺序
		 */
		ObjectInputStream in = new ObjectInputStream(new FileInputStream("D:\\objectFile.obj"));
		System.out.println((String)in.readObject());
		System.out.println((Date)in.readObject());
		Person p = (Person)in.readObject();
		System.out.println(p.toString());
		in.close();
	}

序列化的时候,临时的变量被设置的值是不会被保存到文件中的。

volatile

volatile变量具有synchronized可见性,但是不具备原子特性。
与锁相比,volatile是一种相当简单并且脆弱的同步机制。




















  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值