1、基础知识-基础语法-2

接上篇《1、基本语法》


二、类的成员方法修饰符

1、方法修饰符的作用:控制对成员方法的访问。
2、八种方法的修饰符:public、protected、private、static、final、abstract、native、synchronized
public、protected、private、static、final在前文有说明过了,这里就不在赘述。

修饰符说明:

abstract

抽象方法、抽象类:abstract抽象方法,abstract和interface都可以用来抽象类,抽象类是单一的继承,interface可以实现多个。从语法层面看,两者没有什么区别,都可以用来抽象类;从设计层面看,其遵循ISP(Interface Segregation Priciple)
遵循OCP(open-close principle),对拓展开放,对修改关闭的原则。实现OCP:抽象、继承、接口、多态。

native

JNI(java native interface),使用java与本地编译好的代码进行交互。
JNI的书写步骤:
  编写带有native方法的java类;
  使用javac命令编译带有native方法的java类;
  使用javah ? jni java类名 , 生成扩展名为.h的头文件;
  使用C/C++(或者其他语言)实现本地方法;
  将编写的文件生成动态链接库

Synchronized

两种用法:synchronized方法,synchronized块
public static void main(String[] args) {
		int times = 1000;//1000次存取
		Thread [] thread = new Thread[times];
		for(int i=0; i<times; i++){
			thread[i] = new Thread(new Runnable() {
				@Override
				public void run() {
					SynchronizedTest.t.storeMoney(100);
					try {
						Thread.sleep(1000);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
					SynchronizedTest.t.getMoney(100);
				}
			});
			thread[i].start();
		}
		System.out.println("wait!");
		for(int i=0; i<times; i++){
			try {
				thread[i].join();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		System.out.println("final:" + SynchronizedTest.amount);
	}
结果会很奇怪:
wait!
final:1500
wait!
final:1300
wait!
final:1400
三次执行的结果都不一样。
优化详情。详细介绍了线程,以及synchronized的用法。




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值