本文作者:孤花自赏

Java知识点总结:Java学习不可不知的5个知识点

孤花自赏 6个月前 ( 04-27 ) 232 抢沙发
Java知识点总结:Java学习不可不知的5个知识点摘要: 学习Java知识要循序渐进,多练习,多实践,基础理论的学习不必可少。下面就是搞事堂总结出来的5大必学知识点,一起来看一下吧! 1....

学习Java知识要循序渐进,多练习,多实践,基础理论的学习不必可少。下面就是搞事堂总结出来的5大必学知识点,一起来看一下吧!

1.什么是线程

线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。


2.线程和进程有什么区别

简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。


3.如何在Java中实现线程

在语言层面有两种方式。java.lang.Thread 类的实例就是一个线程但是它需要调用java.lang.Runnable接口来执行,由于线程类本身就是调用的Runnable接口所以你可以继承java.lang.Thread类或者直接调用Runnable接口来重写run()方法实现线程。


4.Java内存模型是什么

Java内存模型规定和指引Java程序在不同的内存架构、CPU和操作系统间有确定性地行为。它在多线程的情况下尤其重要。Java内存模型对一个线程所做的变动能被其它线程可见提供了保护,它们之间是先行发生关系。这个关系定义了一些规则让程序员在并发编程时思路更清晰。比如,先行发生关系确保了:


线程内的代码能够按先后顺序执行,这被称为程序次序规则。


对于同一个锁,一个解锁操作一定要发生在时间上后发生的另一个锁定操作之前,也叫做管程锁定规则。前一个对volatile的写操作在后一个volatile的读操作之前,也叫volatile变量规则。一个线程内的任何操作必需在这个线程的start()调用之后,也叫作线程启动规则。一个线程的所有操作都会在线程终止之前,线程终止规则。一个对象的终结操作必需在这个对象构造完成之后,也叫对象终结规则。


5.Java中如何停止一个线程

Java提供了很丰富的API但没有为停止线程提供API。JDK 1.0本来有一些像stop(), suspend() 和 resume()的控制方法但是由于潜在的死锁威胁因此在后续的JDK版本中他们被弃用了,之后JavaAPI的设计者就没有提供一个兼容且线程安全的方法来停止一个线程。当run() 或者 call() 方法执行完的时候线程会自动结束,如果要手动结束一个线程,你可以用volatile 布尔变量来退出run()方法的循环或者是取消任务来中断线程。


当然,Java的内容非常的多,而且还具有很科学的阶梯性,不是从几个知识点的教学中就可以了解的。如果您真的想要学习Java,还需要更加系统性的学习。


如何获得积分?积分可通过签到、投稿,还可以购买获得,10元充换100积分,推荐开通VIP会员更实惠,全场2折!
【积分充值】 【开通VIP】

文章版权及转载声明

作者:孤花自赏本文地址:https://www.gstun.com/399.html发布于 6个月前 ( 04-27 )
文章转载或复制请以超链接形式并注明出处搞事堂

赞(0

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论

快捷回复:

评论列表 (暂无评论,232人围观)参与讨论

还没有评论,来说两句吧...