CodeGym /Java 博客 /随机的 /旧级别 08
John Squirrels
第 41 级
San Francisco

旧级别 08

已在 随机的 群组中发布

全球劳动力市场

旧级别 08 - 1如果你住在一个小的、贫穷的或发展中国家,你可能会在某个时候遇到当地劳动力市场的局限性。

当地劳动力市场的局限性

1 工资低

即使您是一名高素质的专家,也可能根本没有雇主能够支付您在当地劳动力市场上应得的薪水。例如:教师、科学家。

2 不必要的大学学位

大学培养的律师和经济学家的数量超过劳动力市场需求的十倍。这些专家中有 90% 无法从事专业工作。这通常是教育质量低下的结果。

3 对你的专业没有要求

你可能是一位出色的科学家,但国家不再资助基础研究。在劳工登记处,您被建议重新获得资格。在这种情况下这样做是非常不明智的,因为有些国家需要你的知识和技能。当一位世界知名的科学家离开他家乡的教堂并安顿下来在纽约洗碗时——这是一场悲剧。当一位世界知名的科学家在他自己的国家洗碗而不是在纽约担任大教堂的负责人时——这是一个更大的悲剧。

4 很少的职业机会

您是一名证券交易所经纪人,您希望晋升为金融信贷基金的专注专家。您希望将来成为自己的投资基金会的负责人。在您的国家可能不需要像您这样的专家。

5 小型劳动力市场

在您所在的国家/地区,可能只有两家公司对像您这样的专家感兴趣。如果你为其中之一工作,你可能会被禁止与他们的竞争对手合作。你简单无处可去。全球化进程和电信技术的发展和廉价化导致了全球劳动力市场的出现。全球市场由愿意(并且能够)雇用国外雇主的公司组成。它还包括愿意(并且能够)在外国公司工作的雇主。

全球劳动力市场优势

1 工资低于发达国家,但高于发展中国家

如果您来自发展中国家,并且您是全球劳动力市场需求的专家,那么您的薪水在全球市场和本地市场上可能相差 5-10 倍。更重要的是,你可以把钱花在你的国家,投入到它的经济中。

2 经验。卓越的业务流程

你的工作为你提供了三样最重要的东西:经验、金钱和人脉。如果您习惯于只拿钱 –那是您的问题。如果你为世界领先的公司工作,你可以获得最宝贵的经验。他们欢迎全球化趋势,所以在那里找到一份工作比你想象的要容易。当您是一家公司的员工时,您就有机会看到所有有效和无效的内部业务流程。您需要做的就是观看和聆听。

3 巨大的职业机会

在一家大型国际公司工作将帮助您专业成长并开创事业。你可能会在世界各地建立良好的关系,这非常有用:获得高素质专家的声誉,一些国际公司可能会为你提供继续为他们工作的职业生涯。一个有才能的人,需要的只是一个机会;他会自己想出如何使用它。

4 出差

你经常会被邀请去国外出差。特别是如果您工作的公司在国外有几个分支机构。不要忽视这些机会:这是旅行的好机会,也是获得新知识和技能、与人交谈的好机会。请记住,您的视野越广,您获得的好处就越多。

5 一个搬到你喜欢的国家的机会

旧级别 08 - 2经常发生的情况是,当您以高素质专家的身份出名时,您会收到一份搬到(工作)雇主办公室的工作邀请。很方便。到那时,您可能已经出差到过那里,并且很清楚自己要去哪里。你在那里已经有朋友和熟人了。你会找到一份好工作和现在你很好的同事。这些可能是我所知道的最好的移民条件。

全球劳动力市场的需求

1 你的职业必须符合他们

并非所有职业都能满足全球市场的需求。但是很多人都这样做。而且这个名单不断增长。我可以长时间地命名它们:支持、开发、研究、设计,几乎所有与网络和计算机有关的东西。如果你的专业是20-30年前才出现的,那么它极有可能很容易全球化。

2 价格和质量

当一家外国公司看到它可以在贵国以更低的价格聘请到质量更高的专家时,就很难抗拒。您需要“更好更便宜”或“更便宜”。仅仅“便宜”并不能满足外国公司的要求,因为它冒着很大的风险在国外聘请专家。

3 英语

在 21 世纪,英语是一种国际语言。如果你想在全球市场工作并享受它的所有好处,但英语不是你的母语——学习它。你的英语水平越低,其他两个优势应该越强。

你已经达到了一个新的水平

8级

旧级别 08 - 3

1 Elly,收藏说明

旧级别 08 - 4- 嘿,阿米戈。今天我想跟大家说说收藏。在 Java 中,主要目的是存储一组其他元素的类称为集合/容器。您已经知道的此类类的示例是 ArrayList。- 在 Java 中,集合分为三个主要组:Set、List 和 Map。 - 那么它们之间有什么区别? - 我将从 Set 开始。想象一下一堆鞋子。这是一套。在集合中,您可以添加、查找或删除元素。但是那里的元素没有严格的顺序! - 解释太简短了…… -现在想象一下同一堆鞋子,这次是沿着墙排成一排。现在有订单了。每个元素都有它的编号。例如,您可以通过编号找到“7 号对”。这是一个列表您可以在列表的开头或中间添加元素,或将其删除,为此您只需要它的编号即可。 - 明白了。地图呢? - 想象一下同样的鞋子,但现在每双鞋上都有一个标签,例如 «Nick»、«Joe» 或 «Ann»。这是一个地图,它通常被称为“字典”。每个元素都有其唯一的名称,您可以通过该名称访问它。元素的唯一名称也称为键。Map 是一组键值对。密钥不一定是字符串。它可以是任何类型。Map ,类型是Integer,实际上是List(有一些差异)。 - 很清楚,但我想看更多的例子。 - Risha 会给你举个例子,我想再补充几句。- 所有的集合和容器在刚创建时什么都不存储。但是您可以在之后向它们添加元素。它们会动态改变它们的大小。 - 哦,现在很有趣。你怎么知道集合中有多少元素? - 为此,有方法size()。这些系列拥有您需要的一切。我想在几节课中你就会亲眼看到这些集合是多么的方便。 - 但愿如此。

1 Risha,所有集合和界面的列表

旧级别 08 - 5 - 嘿,阿米戈。 - 你好,Risha。 - Lila 告诉我你想要更多的收藏示例。我给你几个。我想向您展示一个集合和界面列表: 旧级别 08 - 6- 嗯,这么多。有四个列表、三个集合和四个地图。 - 是的,这些都是接口List、Set、Map的各种实现。 - 实现之间有什么区别? ——这就是我们今天要谈的。稍等一下。- 也许你已经有一些问题了。 - 我知道如何在屏幕上显示列表。以及如何显示Set和Map? - List 的元素有严格的顺序,因此可以简单地按编号显示。Set 和 Map 没有严格的元素顺序。实际上,当您添加或删除任何项目时,它们的元素顺序可能会发生变化。 - 哇,这很有趣! - 因此,发明了特殊对象(迭代器)来处理集合元素。使用它们,您可以遍历集合的所有元素,即使它们没有数字、只有名称 (Map) 或根本没有名称 (Set)。 - 例子: 旧级别 08 - 7- 哇!这一切意味着什么? ——其实很简单。首先,我们从集合中得到一个特殊的迭代器对象。它只有两种方法。 1 next()方法是返回集合的下一个元素。 2 hasNext()方法是检查是否还有next()未返回的元素。 - 是的。它变得更加清晰。让我告诉你我是如何理解的。- 因此,要获得这个神奇的迭代器对象,首先,您需要在集合中调用一个方法 iterator()。- 然后,当有未退回的物品时,我会在循环中一个一个地获取它们。我通过调用 next() 获取集合元素,并使用 hasNext() 检查迭代器中是否有元素。我对吗? - 是的,类似的东西。而现在最有趣的事情。- 在 Java 中,有迭代器用法的简短表示法。与whilefor类似,添加了另一个特殊运算符 « for each »。在代码中,此运算符由与 相同的关键字表示- for-each运算符仅用于集合和容器。隐藏地使用了一个迭代器。 - 让我向您展示使用迭代器的完整而简短的方法: 旧级别 08 - 8- 请注意:右表中既没有绿色也没有红色单词。事实上,3 行被 1 行取代: 旧级别 08 - 9- 它看起来很漂亮。我更喜欢这样! - 让我们看一下与上面相同的例子,只是简短的形式: 旧级别 08 - 10- 这是完全不同的故事! - 很高兴你喜欢。

3 Diego,收集任务

- 嘿,阿米戈。我想给你一些收集任务:
任务
1个 1. 一个植物HashSet
创建一个String类型元素的HashSet集合。将 10 串添加到集合中:西瓜、香蕉、樱桃、梨、甜瓜、黑莓、人参、草莓、鸢尾和土豆。在屏幕上显示集合的内容。每个条目都应该在一个新行上。观察如何改变添加元素的顺序。
2个 2. HashMap of 10 pairs
创建一个集合HashMap<String, String>,将10对字符串放入集合中:西瓜-浆果,香蕉-草,樱桃-浆果,梨-水果,甜瓜-蔬菜,黑莓-浆果,人参- 根,草莓 - 浆果,鸢尾 - 花,马铃薯 - 块茎。
在屏幕上显示集合的内容。每个条目都应该在一个新行上。

输出示例(仅显示一个字符串):
potato - tuber
3个 3. 猫的HashMap集合
有一个类 Cat,它有一个字段(name, String)。
创建一个集合HashMap<String, Cat>
添加 10 只猫,使用猫名作为键。
将结果显示到屏幕上。每个条目都应该在一个新行上。
4个 4. 在屏幕上显示键列表
有一个集合HashMap<String, String>,它已经有 10 个不同的字符串。
在屏幕上显示按键列表。每个条目都应该在一个新行上。
5个 5. 在屏幕上显示值列表
有一个集合HashMap<String, String>,它已经有 10 个不同的字符串。
在屏幕上显示值列表。每个条目都应该在一个新行上。
6个 6. HashMap 对象集合
有一个集合HashMap<String, Object>,它已经有 10 个不同的对象对。
在屏幕上显示集合的内容。每个条目都应该在一个新行上。

输出示例(仅显示一个字符串):
Sim - 5

4 Kim,日期类型介绍

旧级别 08 - 11- 嘿,阿米戈。我想告诉你一个有趣的类型——日期。这种类型使您能够存储日期和时间,以及测量时间间隔。 - 看起来很有希望。继续。 - 每个日期对象都存储时间信息。它以一种非常有趣的形式存储 - 自格林威治标准时间 1970 年 1 月 1 日起经过的毫秒数。 - 哇! - 是的。这个数字太大了,无法放入int中,您必须将其存储在long中。但是计算两个日期之间的差异非常容易:您只需用一个数字减去另一个数字即可知道精确到毫秒的差异。将来,当您遇到时区问题时,它会让您的生活更轻松。 - 最有趣的是每个 Date 对象都由其创建时间初始化。要检查当前时间,您只需创建一个对象。 - 以及如何使用它? - 以下是一些示例: 旧级别 08 - 12- 方法getTime()返回存储在对象 Date 中的毫秒数。- 方法after()检查调用此方法的日期是否晚于传递日期。- 方法getHours()getMinutes()getSeconds()返回调用它们的对象的小时数、分钟数和秒数。- 此外,在最后一个示例中,您看到可以操纵存储在对象Date中的日期/时间. 我们获取当前时间和日期,然后将小时、分钟和秒设置为零。同样,我们将月份设置为一月,将月中的日期设置为 1。现在,对象yearStartTime存储了 1 月 1 日的日期和时间,即 0 小时、0 分钟和 0 秒。- 然后我们再次获取当前日期currentTime,并以毫秒为单位计算两个日期之间的差异。我说的是msTimeDistance。- 然后将msTimeDistance除以一天中的毫秒数,得到从年初至今的总天数! - 哇!棒极了!

5 Elly,ArrayList 与 LinkedList

- 稍微调整一下你的想法怎么样?我希望它还没有被吹走。- 在上面的容器和集合表中,您已经看到同一个接口可以有多个实现。现在我告诉你为什么。ArrayListLinkedList之间有什么区别。- 问题是集合可以用不同的方式实现,没有单一的正确实现在一种方法中,一些操作很快,而其余操作很慢。在另一种方法中,情况恰恰相反。没有单一的完美解决方案。- 因此,决定对同一个集合进行一些实现。每个实现都针对特定的窄范围操作进行了优化。因此出现了不同的集合。让我们考虑两个类的示例 - ArrayListLinkedList旧级别 08 - 13- ArrayList在内部实现为常规数组。因此,当一个元素被插入到中间时,它后面的所有元素都必须移动一位,然后才能将新元素插入到一个空位中。但是,获取和编辑元素(get() 和 set())的操作在 ArrayList 中实现得非常快。因为他们所做的只是访问内部数组的适当元素。- LinkedList以不同的方式实现。它是作为链表实现的:一组单独的元素,每个元素存储对下一个和上一个元素的引用。要将元素插入此类列表的中间,方法 add() 只需更改对其未来邻居的引用。但是,要获取编号为130的元素,方法get()需要一致地遍历从0到130的所有对象。换句话说,这里的set和get非常慢。请看下表: 旧级别 08 - 14- 是的。现在越来越清楚了。是否有任何标准或规则,哪个集合是最好的? - 好吧,为简化起见,这里有以下规则:如果您要在集合中间插入(或删除)许多元素,那么您最好使用LinkedList。否则,使用ArrayList. - 我将在高层向您解释这些列表的内部结构。到目前为止,我们将学习如何使用它们。

6 Diego,任务:衡量两个列表的性能

- 是你。我开始感到无聊。你去哪儿了?这是任务。 - 他们有趣吗? - 为什么,当然!很有意思:
很有趣的任务
1个 1. 创建两个列表LinkedList & ArrayList。
创建两个列表:LinkedListArrayList
2个 2. 插入和删除一万次arrayList和linkedList的get()set()
方法 的插入、删除、调用各做一万次。
3个 3. 测量每个列表做一万次插入需要多长时间
测量每个列表做一万次插入需要多长时间。getTimeMsOfInsert()
方法应返回其执行时间(以毫秒为单位)。
4个 4. Measure time needed to do one thought of get of each list
Measure time needed to do one thousand of get() calls for each list getTimeMsOfGet()
方法应返回其执行时间(以毫秒为单位)。
5个 5.四种方法
实现4种方法。这些方法应该返回一个最适合执行指定操作的列表(以快速处理大量操作)。无需测量。

7 Elly:Set 和 Map,用它们可以做什么

- 你还不累吗?不,那我们继续。我想向您解释什么是SetMap。他们有什么操作。- Set是一堆非枚举对象。Set的主要特点是它只有唯一的对象,也就是说,它们都是不同的。这就是你可以用它做的: 旧级别 08 - 15- 就这些吗? - 其实,是。您还可以使用size()方法确定元素的数量。 -地图呢? -地图是一对。这是完全相同的集合,不是单个元素,而是键值对。唯一的限制是一对中的第一个对象,称为键,是唯一的映射不能包含具有相同键的两对。 - 这就是我们可以用Map做的: 旧级别 08 - 16- 这比 set 有趣得多。 - 是的,虽然 Map 不如列表流行,但用于许多任务。

8 Diego, Set & Map 任务

- 希望您已经了解什么是 Set 和 Map?下面是一些 Set 和 Map 任务。
采集任务
1个 1. 20 个以 «L» 开头的单词
创建一组字符串 ( Set<String> ),将 20 个以 «L» 开头的单词放入其中。
2个 2.删除所有大于10的数字
创建一组数字(Set<Integer>),将20个不同的数字放入其中。
从集合中删除所有大于 10 的数字。
3个 3. 相同的名字和姓氏
创建一个字典(Map<String, String>)并根据模型 «last name» - «first name» 添加十个条目。检查有多少人的名字或姓氏与指定的名字相同。
4个 4. 删除所有在夏天出生的人
创建一个字典(Map<String, Date>)并根据模型 «last mane» - «birth date» 添加十个条目。从地图上移除所有在夏季出生的人。
5个 5. 删除名字相同的人
创建一个字典 ( Map<String, String> ) 并根据模型 «last name» - «first name» 添加十个条目。删除具有相同名字的人。

9 教授,收藏讲座

旧级别 08 - 17- 呵呵。我们终于到了收藏品。从我还是学生的时候起,我仍然有一个精彩的演讲。当然,它有点尘土飞扬,但从根本上来说很棒。下面是我的笔记: Java Collections (Oracle Documentation) Collections in Java (Java T point) Java Collections Framework (tutorials point) Java Collections Tutorial

10 胡里奥

- 上帝啊!你又过劳了!我不是告诉过你不要工作那么多吗?让我演奏一些东西来帮助您放松:

11 松鼠船长

- 你好,士兵! - 早上好先生! - 我有一些好消息要告诉你。这是一个快速检查以加强您的技能。每天都这样做,你会很快提高你的技能。任务是专门为在 Intellij IDEA 中执行而设计的。
在 Intellij Idea 中完成的其他任务
1个 1. 一组猫1.在类 Solution
中 创建一个公共静态类 Cat。 2. 实现方法createCats(),它应该创建一猫并向其中添加三只猫。 3. 在main方法中,从Set cats中移除一只猫。 4. 实现方法printCats(),它应该在屏幕上显示集合中剩余的所有猫。每只猫都应该换行。


2个 2. 所有动物的集合1.在类 Solution 中
创建公共静态类 CatDog 。
2. 实现方法createCats(),它应该返回一组 4 只猫。
3. 实施方法createDogs(),它应该返回一组 3 只狗。
4. 实施方法join(),它应该返回所有动物的组合集,包括猫和狗。
5. 实施方法removeCats(),它应该从 set pets 中删除 set cats 中存在的所有猫。
6.实现方法printPets(),它应该在屏幕上显示其中存在的所有动物。每只动物都应该在一个新的行上。
3个 3. 名字和/或姓氏相同的人
1. 创建字典(Map<String, String>)并根据模型 «last name» - «first name» 添加 10 个人。
2. 在这10个人中,让有相同名字的人。
3.这10个人中,要有同姓的人。4. 将地图
内容显示到屏幕上。
4个 4. N 个数中的最小值
1. 从键盘上读出数N
2. 从键盘读取N 个整数并使用方法getIntegerList()将它们填充到一个列表中。3. 使用方法getMinimum()
查找列表元素中的最小数目。
5个 5.停止看听。现在大写
编写一个程序,应该从键盘读取一个字符串。
该程序应将文本中所有单词的首字母替换为大写。
将结果显示到屏幕上。

示例输入:
stop look listen
示例输出:
Stop Look Listen
6个 6. 全家人在一起
1. 创建一个Human 类,其中包含以下字段:String nameboolean sexint ageArrayList<Human> children
2.创建9个对象,并按照这样的方式进行填充,得到2个爷爷,2个奶奶,1个爸爸,1个妈妈,3个孩子。3. 在屏幕上显示所有Human对象。
7 7. 移动一个修饰符static
移动一个static 修饰符以便代码编译。
8个 8. 五个最大的数字
创建一个包含 20 个数字的数组。用从键盘读取的数字填充它。在屏幕上显示五个最大的数字。
9 9. 处理日期1. 实现isDateOdd(String date)
方法,如果从年初算起的天数是奇数,则返回true,否则返回false。2. 字符串日期以MAY 1 2013 JANUARY 1 2000 → true J​​ANUARY 2 2020 → false 格式传递



- 这些任务是针对果岭的。我添加了更复杂的奖励任务。仅限顶级枪支。
奖励任务
1个 1.月数。
程序应从键盘读取月份的名称并按以下方式在屏幕上显示其编号:« May is 5 month »
2个 2. 为程序添加新功能。
旧任务:程序确定哪个家庭(其姓氏)住在指定编号的房子里。
新任务:该程序应该适用于城市而不是门牌号。

示例输入:
Washington
the Smiths
New York
the Browns
London
the Johnsons

London

示例输出:
the Johnsons
3个 3.学习和练习算法。
任务:程序应从键盘读取 20 个单词并按字母顺序显示它们。
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION