![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
文章平均质量分 61
Max_张红帅
所谓幸运,是机会来了,而你又做好了准备。
展开
-
Java基础--Java并发总结
Java并发总结无论使用哪种程序设计语言,就使用API层面上,并发无非三个方面:线程创建、线程同步、线程通信。针对不同的应用场景,API对这三种需求提供了不同的实现方式,现就这三个方面进行总结,总结的所有内容,在之前博文的『Java基础--并发编程基础』系列和『Java基础--并发实用工具』系列中都有详细涉及,详细的使用方式,请参考之前的系列博文,这里做总结是为了有一个大致的大局观。线程创原创 2016-04-25 15:42:38 · 669 阅读 · 0 评论 -
常用排序算法-JAVA实现
没有废话,上代码。import java.util.Arrays;public class Sort { public static void main(String[] args) { int[] sample = new int[] { 8, 9, 7, 10, 6, 2, 4, 5, 1, 0, 3 }; insertionSort(sample); sample原创 2016-08-26 16:20:52 · 656 阅读 · 0 评论 -
Java基础--并发实用工具(1)
1.简介(声明:简介内容摘自Java: The Complete Reference, Ninth Edition>中文版)从一开始,Java就对多线程提供了内置支持。例如,可以通过实现Runnable接口或者扩展Thread类来创建新的线程;可以通过使用synchronized关键字来获得同步支持;并且Object类库定义了wait()和notify()方法支持线程间通信。总之,这种对多原创 2016-04-17 01:37:37 · 491 阅读 · 0 评论 -
Java基础--并发编程基础(1)
1.多任务处理多任务处理分为两种不同的类型:基于进程的多任务处理和基于线程的多任务处理。进程:进程是运行的程序,是操作系统进行调度和资源分配的基本单元。进程有独立的内存空间,进程间的通信和进程间的上下文切换的开销比较大。线程:进程由线程组成,是比线程更小的单元,是CPU进行调度的基本单元。线程之间共享一个进程的内存空间,线程间通信和上下文切换的开销相对较小。虽然Java程序使用基于原创 2016-04-14 22:14:29 · 704 阅读 · 1 评论 -
Java基础--并发实用工具(5)
1.Fork/Join框架简介其实不难发现,我们之前用的所有并发编程实际上都真的是『并发』编程,而不是并行编程。先介绍以下并发和并行的区别:并发:在一段时间内,几个任务同时执行;并行:在一个时间点上,几个任务同时执行。由定义可知,如果CPU是单核心的想并发是不可能的,这也是Java多线程编程的一般执行方式:并发而非并行,而现在处理器已经步入多核时代,如果还只是之前的Java多线程编程方式,是不原创 2016-04-17 21:46:11 · 3119 阅读 · 0 评论 -
Java基础--并发实用工具(3)
1.执行器并发API提供了一种称为执行器(线程池)的特性,用于启动和控制线程的执行,因此,执行器为线程的管理提供了一种替代方案。执行器的核心是Executor接口。主要方法有:void execute(Runnable thread):用于启动一个线程;ExecutorService接口扩展了Executor接口,添加了用于帮助管理和控制线程执行的方法:void shutdown():用于原创 2016-04-17 15:46:21 · 418 阅读 · 0 评论 -
private static与public static的用法及区别(Java)
其实,理解这两者的区别并不难,因为(public、private)和static这两种修饰符的作用本就不同,所以要理解两个的区别,其实就是这两种修饰符效果累加起来之后的区别。static:静态修饰符,被static修饰的变量和方法类似于全局变量和全局方法,可以在不创建对象时调用,当然也可以在创建对象之后调用。常见的可以用于工具类的工具方法中等,譬如:Math类中的绝大多数方法都是静态方法,他们原创 2015-05-03 16:12:24 · 47972 阅读 · 7 评论 -
Java基础--并发编程基础(2)
1.线程同步为什需要线程同步?当多个线程访问互斥资源时,每次只能有一个线程进行访问,这个过程叫做线程同步。譬如:你的笔记本坏了,笔记本是互斥资源要么你在用,要么给店员维修:当店员维修的时候,你不应该使用,当你使用的时候,店员不应该维修,这个场景即线程同步。Java中实现线程同步有两种方式,一种是使用同步代码块,一种是使用同步方法。各有各的用处:如果是你自己写的话,使用同步方法直接定义就是O原创 2016-04-14 23:02:13 · 420 阅读 · 0 评论 -
Java基础--并发编程基础(3)
线程间通信为什么要进行线程间通信?有一个很经典的例子就是生产者-消费者案例(简化后):必须是生产者生产一个,消费者消费一个,没有生产不能消费,没有消费不能生产。生产者和消费者分别是两个不同的线程,那这两个线程在执行的时候必须相互通信才能按照要求执行下去:生产者生产前先看看消费者消费完了没?消费完了再生产,否则不生产,生产好了之后,告诉消费者你来消费;同样的,消费者消费前先看看你生产了没?生产了原创 2016-04-14 23:25:38 · 433 阅读 · 0 评论 -
Java基础--并发编程基础(4)
1.死锁线程同步的时候会对对象监视器所监视的操作上锁,也就是只有当前线程能够进来,其他线程是进不来的,除非你拿到了监视器。死锁:当线程A进入到了X对象的监视器内,线程B进入到了Y对下你个的监视器内,X对象监视器内部调用了Y对象监视器内部的操作,所以线程A想正常终结的话,必须等线程B交出监视器(终结或挂起(挂起不考虑));而巧的是Y对象监视器调用了X对象监视器内部的操作,B线程若是想正常终结原创 2016-04-14 23:37:52 · 497 阅读 · 0 评论 -
Java基础--并发实用工具(2)
1.同步器之CountDownLatch类的名称的中文翻译为:倒数闩(倒数锁存器)。操作线程时,有时候我们希望这个线程进行等待,直到一定数量的事件发生之后为止。为了处理这种情况,并发API提供了CountDownLatch类,CountDownLatch在创建时指定要等待的时间的数量,在释放锁存器(闩)之前,必须发生指定数量的事件。每发生一个事件,计数器递减,当计数器减为0时,锁存器打开,等待原创 2016-04-17 02:29:10 · 3366 阅读 · 0 评论 -
关于初学者学习Java的一些注意事项
首先你要明白的是学习任何一种程序设计语言都有感到厌倦的时候,即使一开始学习的时候雄心勃勃的要学好。学习本身就是一个很难坚持的过程,所以你首先要坚信,我坚持学下去了,就肯定会有所收获的。再者,就是关于学习Java的一些好的建议。我一开始学习Java的时候就在网上搜了好多类似学习Java的方法之类的问题,结果很显然,不同的人有不同的学习方式,然后,浏览了好多的也没什么收获,所以,学习方法还是要自己原创 2014-11-23 16:44:26 · 1289 阅读 · 0 评论 -
课程论文:java架构师成长规划
Java架构师成长规划摘要:全球步入信息时代后,软件方面的职业日渐丰富:从最基础的程序员到一种语言的架构师,从项目负责人到软件公司CEO。而作为软件工程专业的大学生,选择合适的职业是一件颇为重要的事情。笔者在通过网络和图书馆的调研来选职的过程中,仔细对比了各种职业的要求,并结合自身条件,选定java架构师作为未来要从事的职业。在分析该职业的历史、现状、发展前景和对从业者能力的要求后,制定出原创 2013-12-22 22:44:05 · 1446 阅读 · 2 评论 -
Java基础--并发实用工具(4)
Java可重入锁及Condition线程间通信java.util.concurrent.locks包对锁提供了支持,锁是一些对象,他们为使用synchronized控制对共享资源的访问提供了替代技术。大体而言,锁的工作原理如下:在访问共享资源之前,申请用于保护资源的锁;当资源访问完成,释放锁。当某个线程正在使用锁时,如果另一个线程尝试申请锁,那么后者将被挂起,直到锁释放为止。通过这种方式,可以原创 2016-04-17 20:16:52 · 425 阅读 · 0 评论