山东青岛安卓培训就业中心 专业Android软件工程师培训,手机软件开发人才就业实训中心0532-85025005

Java并发源码剖析(一)——AbstractQueuedSynchronizer独占模式

 

1、认识AQS

使用过Java中的锁对象,一定会对一个锁很熟悉—ReentrantLock。这是一个可重入的锁。大部分情况是作为一些情况替换synchronized这个关键字的方案。synchronized这个关键字是Java内部实现同步机制的,那么ReentrantLock实现的方式是什么?

它背后的大佬就是大名鼎鼎的AQS(AbstractQueuedSynchronizer)


AQS——简单来说,就是提供一个实现阻塞式锁和相关同步器的框架。它的内部是依赖一个FIFO阻塞队列实现以上功能的。

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 31

Java: 我和JavaScript是什么关系

 

摘要: 网站开发的实践从设计方面开始,包括客户端编程语言。大体上说,在网页设计中使用了三种语言:HTML,CSS和JavaScript。自从网站发明以来,HTML和CSS已经成为网页设计的基础,但是JavaScript被用于添加网站的动态视图。


某某:Java和JavaScript是什么关系?

Java(呵呵):我和JavaScript有关系吗 ?

 

 

 

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 23

求职说|Java成功就业指南

 

摘要: 一个合格的Java程序员到底需要具备哪些专业技能,面试之前准备哪些东西呢?东时教育整理给准备求职或者正在求职的菜鸟。本文陈列的这些内容既可以作为个人简历中的内容,也可以作为面试的时候跟面试官聊的东西,你可以把这些内容写到你的简历中,当然更需要的是你在面试的时候向面试官展示这些专业技能。相信此文对正在寻觅Java程序员(Java工程师)职位的freshman以及希望成为中高级Java开发者的junior都会有所帮助。


一个合格的Java程序员到底需要具备哪些专业技能,面试之前准备哪些东西呢?东时教育整理给准备求职或者正在求职的菜鸟。本文陈列的这些内容既可以作为个人简历中的内容,也可以作为面试的时候跟面试官聊的东西,你可以把这些内容写到你的简历中,当然更需要的是你在面试的时候向面试官展示这些专业技能。相信此文对正在寻觅Java程序员(Java工程师)职位的freshman以及希望成为中高级Java开发者的junior都会有所帮助。

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 13

吃透这些书,你也可以成为顶尖java程序员

 

作为程序员看书是必须要做的功课,但是关于编程的书籍实在太多了,有时候不知道看哪些书,下面我结合自己的学习经历给各位Java程序员们推荐基本好书,希望大家有所收获。 
 
《Effective Java》,这本书有中文版,作者是Joshua Bloch,他是谷歌的首席架构师,属于超级技术大牛级别了吧。这本书也是Java之父James Gosling博士推崇的一本书,从这本书的知名度 以及其作者的来头来看,这一定是一本值得一看的好书。java学习可以来这个群,首先是二二零,中间是一四二,最后是九零六,里面有大量的学习资料可以下载。

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 46

JAVA 正则表达式

 

一、 什么是正则表达式

 

正则表达式是由普通字符(如英文字母)以及特殊字符(也称为元字符)组成的文字模式。该模式对文本查找时需要匹配的一个或多个字符串描述,给出一个匹配模板。

 


 二、为什么要使用正则表达式

 


正则表达式可以大大简化文本识别工作,现已超出了某种语言或某个系统的局限,成为被人们广为使用的工具。  

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 11

软件开发中最顶级的 17 个平台和工具

 

当你在决定使用哪些软件或平台来完成日常工作时,会存在很多选择。所以,我决定写一个我们在开发部门常用的软件开发工具列表,希望能对其他所有人都有所帮助。

 


新的软件需要一些时间来适应,习惯和理解。我们都经历过一种情况——我们不是真的满意,但不得不重新开始使用另一个工具。承认吧:这真的不是什么棒棒哒的感觉!

 


如果你打算继续阅读这篇文章,很可能是因为你知道软件开发工具的重要性,以及它们将如何提高团队的效率和生产力。在这个列表中,你会发现我们在Apiumtech使用的伟大的编程工具。而且它们不光是编程工具,还是我们作为程序员每天都要使用的基本工具!

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 21

全栈必备 JavaScript基础

 

JavaScript 来了

喔家ArchiSelf

 

 

1995年,诞生了JavaScript语言,那一年,我刚刚从大学毕业。在今年RedMonk 推出的2017 年第一季度编程语言排行榜中,JavaScript 排第一,Java 第二,Python 反超 PHP 排第三,PHP 第四,C# 和 C++ 并列第五。RedMonk 排名的主要依旧是各种编程语言在 Stack Overflow 和 GitHub 上的表现,比如编程语言在 Stack Overflow 上的讨论数量,在 GitHub 上的代码量等。尽管有一定的片面性,还是说明了JavaScript 应用的广泛性。从全栈的角度看,Javascript 是必备的一种编程语言。 

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 17

基于对象和面向对象

 

OOP新玩法:基于对象


“基于对象”是面向对象编程新趋势,是走向动态化的一次变革。业界在多个领域已经感受到它的优点,并且开始广泛接受这个概念。

“基于对象”的特点

什么是“基于”对象呢?就是关注“对象之间”的关系,而不是关注对象和类的关系。“面向对象编程”(OOP)的概念已经诞生了很多年,在业界可谓深入人心。像著名的编程语言C++/JAVA/C#都是按照这个概念去设计的。但是面向对象编程概念,在实践中,也受到了大量的挑战,很多人认为面向对象编程有很多缺点,其中就不乏重量级的人物如Linux的作者。

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 14

Java Web 学习路线

 

实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了。

大三的时候,我萌生了放弃本专业的念头,断断续续学 Java Web 累计一年半左右,总算是学完了,找工作对你来说或许还有些距离,而我已经有了自己喜欢的工作,从一个自学狂人的角度,我只能给你比较实用但有限的建议:
如果 .Net 你是刚入门, 建议转学 JavaWeb 或 Android, 我对学习何种平台并无偏见,而是自学需要大量的参考资料, Java 的学习资料,无论是视频还是电子书都要远多于 .Net,这是个很实际的问题,你可以去百度一下(当年都是在电驴搜,现在已成死驴),对比便见分晓。

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 28

Java并发性和多线程介绍

 在过去单CPU时代,单任务在一个时间点只能执行单一程序。之后发展到多任务阶段,计算机能在同一时间点并行执行多任务或多进程。虽然并不是真正意义上的“同一时间点”,而是多个任务或进程共享一个CPU,并交由操作系统来完成多任务间对CPU的运行切换,以使得每个任务都有机会获得一定的时间片运行。 
随着多任务对软件开发者带来的新挑战,程序不在能假设独占所有的CPU时间、所有的内存和其他计算机资源。一个好的程序榜样是在其不再使用这些资源时对其进行释放,以使得其他程序能有机会使用这些资源。 
再后来发展到多线程技术,使得在一个程序内部能拥有多个线程并行执行。一个线程的执行可以被认为是一个CPU在执行该程序。当一个程序运行在多线程下,就好像有多个CPU在同时执行该程序。如果你想学习java可以来这个群,首先是二二零,中间是一四二,最后是九零六,里面有大量的学习资料可以下载。 
多线程比多任务更加有挑战。多线程是在同一个程序内部并行执行,因此会对相同的内存空间进行并发读写操作。这可能是在单线程程序中从来不会遇到的问题。其中的一些错误也未必会在单CPU机器上出现,因为两个线程从来不会得到真正的并行执行。然而,更现代的计算机伴随着多核CPU的出现,也就意味着不同的线程能被不同的CPU核得到真正意义的并行执行。 
如果一个线程在读一个内存时,另一个线程正向该内存进行写操作,那进行读操作的那个线程将获得什么结果呢?是写操作之前旧的值?还是写操作成功之后的新值?或是一半新一半旧的值?或者,如果是两个线程同时写同一个内存,在操作完成后将会是什么结果呢?是第一个线程写入的值?还是第二个线程写入的值?还是两个线程写入的一个混合值?因此如没有合适的预防措施,任何结果都是可能的。而且这种行为的发生甚至不能预测,所以结果也是不确定性的。 
Java的多线程和并发性 
Java是最先支持多线程的开发的语言之一,Java从一开始就支持了多线程能力,因此Java开发者能常遇到上面描述的问题场景。这也是我想为Java并发技术而写这篇系列的原因。作为对自己的笔记,和对其他Java开发的追随者都可获益的。 
该系列主要关注Java多线程,但有些在多线程中出现的问题会和多任务以及分布式系统中出现的存在类似,因此该系列会将多任务和分布式系统方面作为参考,所以叫法上称为“并发性”,而不是“多线程”。

Tags:

发布: 青软于老师 分类: 未分类 评论: 0 浏览: 36