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

40个Java多线程问题总结

 

前言

这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。

这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,因此可能有些问题讲的不对,能指正的希望大家不吝指教。

 

40个问题汇总

1、多线程有什么用?

一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓”知其然知其所以然”,”会用”只是”知其然”,”为什么用”才是”知其所以然”,只有达到”知其然知其所以然”的程度才可以说是把一个知识点运用自如。OK,下面说说我对这个问题的看法:

Tags:

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

编程基本功训练:流程图画法及练习

 对于“程序设计”的工作,许多初学者的理解就是“写代码”。同样,新手们苦恼的问题是,他们只会“写代码”。当接到一个新的任务,不少人总是在第一时间就爬到键盘上去敲代码。敲着敲着,就把自己绕糊涂了。头晕脑胀地坚持下来,程序能运行,阿弥托佛,赶紧撤。这样做出的程序,并不可靠。

  在程序设计中,最重要的不是写程序,而是设计。就像建筑、机械等行业的要画设计图、施工图,程序设计的思路也有必要用图的形式画出来。画图的过程就是思考的过程,由于其直观性,画图的过程本身又促进了思考。在软件工程中,已经发展出了很多种实用的图,为软件产品设计的质量提供保证。这部分练习帮助程序设计者掌握和实践的“程序流程图”。

Tags:

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

编码问题的一点小事

 最近和别人合作写一个C语言demo,他在windows7中文操作系统上使用nodepad++写了一段代码。然后我在centos英文版中使用sublime进行打开发现,所有的中文注释都变成了乱码。然后就想了一下导致乱码的原因。分析如下: 
       这一次的编码问题不是在纠结utf8,gbk以及unicode的关系(当然关于这方面的内容,我以前也写过一篇博客,在这里做了粗浅的整理),而是思考了一下我们编程时候,所采用的的默认编码方式是什么的问题。 
       无论你在写什么程序(c语言或者nodejs程序),或者就是简单编辑一下txt文件,你有没有想过这些文件以什么样的形式存储在硬盘上。 
       程序是由诸多的字符串组成,总是要存储的,无论是存在硬盘中还是内存中,总是要被编排成为0,1串。因此从可读的字符到0和1的过程是怎样转换而来的,这就是编码的范畴。  
       那么我们的程序默认采用了什么样的编码方式呢。这是与操作系统有关的,因此中文操作系统和英文操作系统一定是存在差异的,事实上以上面的情形为例,在中文的windows7操作系统中,默认采用的编码方式为gbk,然后在centos的英文版中默认的编码方式为utf8(通过locale命令查看)。 
       因此在windows7中创建C 语言程序,nodepad++会默认的使用gbk编码存储程序(即ANSI),然后我使用sublime进行打开的时候,默认是utf8。因此gbk编码的0,1数据流使用utf8进行解码,就会出现中文乱码。同时sublime并不支持gbk,因此怎么看都是乱码。同理在shell中编辑该文件的时候,也是乱码,因为centos英文系统默认utf8编码。 
       当然解决办法就是在nodepad++中可以指定其为utf8编码格式存储。 
       以前为什么很少出现乱码。主要原因是程序基本上都是英文写的,那么主流的编码基本都是兼容ascii码的,即英文字符的编码。也就是说英文的编码在各种编码方式之间基本是一致的。当然在同一个系统中,编码保持一致,也很少出现此问题。当然如果nodejs向C语言传输了一个utf8编码的字符串作为命令行的参数,而实际的C语言采用的却是gbk编码格式,则会导致错误。

Tags:

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

Java中HashMap和TreeMap的区别深入理解

 

首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。这就是我们平时说的键值对。

HashMap通过hashcode对其内容进行快速查找,而 TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)。

HashMap 非线程安全 TreeMap 非线程安全

Tags:

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

软件开发人员的编程障碍,你知道多少?

 

没有人满意Java开发人员这种已经“竭尽全力”改变世界的速度,每个人都希望代码像消防水管里的水一样能够源源不断地流出来,但没有人愿意提供给开发人员更好地完成工作的条件。正如那个想要我们昨天就完成工作的老板,他不愿意雇佣更多的人,不愿意购买速度更快的机器,也不愿意做任何其他可以让Java程序员专注于编程的事情,又想马儿跑,又不给马儿吃草。

 

 

 

 

下面就是现实世界中的15个编程障碍。

Tags:

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

自动驾驶开发如何起步

 

随着汽车进入自主世界的中心,开发商被赋予创造创新和无缝的解决方案以快速响应市场需求并与市场需求一起增长的任务。 这在车辆和数据中心两方面都要求一些重大的资源。 英特尔已从消费者出发构建了一个生态系统。 利用这些工具,您将能创造——并且重新创造——驾驶的体验。 
汽车基础 


自动驾驶级别

高度自动驾驶 (HAD) — 通过高级驾驶员辅助系统 (ADAS) 支持驾驶员。 这些系统包括导航、安全、安全监测、图像识别和处理,以及传感器数据——数据处理枢纽。

Tags:

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

我是如何用10天自学编程,改变一生的?

 

我是我,一个因兴趣入行的商学院毕业的程序员。最近有不少人,来问我,想学编程,但是又不知怎么开始。所以,我想把我8年前影响我一生的10天自学编程的经历,毫无保留的分享出来。

如果看到这标题,会让你觉得,读完一篇文章就能快速的掌握编程技术的话,这可能会让你失望,这里甚至没有一行代码。

我想分享的,是我最初自学编程的经历和心法。

1.决定

 

(图为2008年的白色苹果笔记本)

2009年初,一个潮湿、肮脏、背靠竹林的大学宿舍里,其中一张书桌,放着一台与环境格调不一致的纯白色的苹果Macbook电脑。她是我课余时间最好的朋友。

Tags:

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

iOS 开发中,怎样用好 Notifications?

 

前言

在 iOS 开发中,有这样一个场景:某件重要的事情必须立刻让用户知道,甚至不惜以打断用户当前操作为代价来强调这份重要性。这就是通知(Notifiations)。目前常用的框架为 UserNotifications,它主要用来在锁屏和应用界面通过弹窗来显示通知。另一个框架是 Notification Center ,以它实现的跨 object 通知以及原生的 KVO(Key-Value-Observing) 是 iOS 中观察者模式的主要实现手段。

Tags:

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

Java同步工具类——FutureTask

 

FutureTask也可以用作闭锁。(FutureTask实现了Future语义,表示一种抽象的可生成结果的计算。FutureTask表示的计算是通过Callable来实现的,相当于一种可生成结果的Runnable,并且可以处于以下3种状态:等待运行(Waiting to run),正在运行(Running)和运行完成(Completed)。”执行完成”表示计算的所有可能结束方式,包括正常结束、由于取消而结束和由于异常而结束等。当FutureTask进入完成状态后,它会停止在这个状态上。

Tags:

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

改变iOS app的icon(iOS10.3)

 

改变iOS app的icon

官方

iOS10.3新增了可以让开发者去更改app的icon,接下来看看怎么更改。
官方API给的东西很少,只是介绍了一个实例方法:
open func setAlternateIconName(_ alternateIconName: String?, completionHandler: ((Error?) -> Swift.Void)? = nil)

Tags:

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