61阅读

请你用生活实例解释-好多新奇的小东西,实用且家居,帮你解决生活中的小麻烦

发布时间:2018-01-25 所属栏目:新奇东西

一 : 好多新奇的小东西,实用且家居,帮你解决生活中的小麻烦

是不是被这些新奇创意的家居小东西给吸引进来了,在生活中你有见过这些小东西吗?小编可是几乎都没见过。当今世界是科技发展突飞猛进的时代,很多产品的更新换代几乎超过了人们赚钱的速度,比如说苹果、vivo、oppe手机等,还没来得及攥够了钱买这个型号就已经过时了,而且他们的价格都令人望而却步。小编给大家几个意见,手机这些高科技的产品更新换代太过于频繁,与其一直想着这些想买却又买不起的东西,不如多看看这是实用家居的小东西,价格平平却创意满满,也很符合现代化的家居生活。下面就带大家见识一下,如果有喜欢的就及时把他带回家吧。

(www.61k.com)

客厅过道墙灯

大家来看一下这个灯是不是很有古典气息的感觉,它不止是一款一款等,更是一款精美的墙壁修饰物,可用于客厅、走廊等地方,自从有了它,不用再像以前一些拿着手电筒来采光了,这么精美实惠的墙灯,你还不心动吗?

欧式罗马挂钟

1

这款钟表看上去好像上海滩时代的挂钟,精美的刻度、完美的花边修饰,挂在墙上简直是增添了不少光彩。你的家中难道还是那种普通不能再普通的钟表吗?赶紧换换吧,会给您提升不少品味。

卡通儿童台灯

1

你的家中有宝宝吗?不知道你给宝宝准备的灯光是什么样的,难道是刺眼的白炽灯吗?太不应该了。别人家的妈妈都给孩子准备了这么一款可爱精美的宠物玩具小台灯,灯光不会很刺眼,不会耀到宝宝,还给家中增添了温馨感。

创意爬墙小人磁铁

1

你是忙碌的上班族吗,每天回家疲惫不堪钥匙随手一扔,第二天上班的时候急急忙忙找不到车钥匙,有没有被我说中呀。如果你是这样的状态,那么你就该准备这样一个精美创意的钥匙勾了,他不会占用你多大的地方,只需要在门口的一处墙上粘贴上即可,省了您不少精力。

小型多功能手动缝纫机

1 1

要么说科技发达的时代,就连缝纫机都有缩小版的啦,你还不会用缝纫机吗?没关系,这款小巧的手动缝纫机简单易操作,你还在担心驾驭不了吗。随身携带,随时缝缝补补。快给您的家人朋友也都配备一个吧。

硅胶折叠伸缩长颈漏洞

1 1

你是否经常出入厨房,厨房的点点滴滴都应该很清楚。其中,倒油、酱油等这些麻烦事怎么解决呀,总是不小心就洒到了地板上,不妨试试这个长颈漏斗,折叠的易收藏哦。小编的家中这种东西已经很常见了。

荣事达无叶风扇

1

乍一看你知道他是什么东西吧,不知道的就out了,这是一款无叶的风扇,但有类似空调,他比风扇高级又比空调实惠,易摆放,占地不大,制冷性也比较强,如果你的家中有这样一款风扇,真是赶在了时代的前沿了。

厨房用具转角置物架

1

你的厨房是不是已经被你折腾的脏乱不堪了,小编就想问问你是否还有你的站脚地,你需要这么一款厨房置物架帮你规整厨房,它不会占用厨房的面积,即使你的厨房很小,它只需要一个小小的角落就能安放,大大小小的东西摆放上去,厨房原来也能这么大。

多功能创意置物架

1

说完了厨房,你的客厅是不是也有类似的情况,每当有人去做客,还有客人的落脚地吗?这款置物架摆放在家中,既不会占用你的面积,也会摆放很多东西。它只需要一个墙角,吸附在墙上,小小的墙角也能发挥巨大的作用。

二 : 仿照所给例句,用下面的词展开联想,给它一个精彩的解释例:固执:你

仿照所给例句,用下面的词展开联想,给它一个精彩的解释

例:
固执:你是一堵墙,使人封闭自己,看不清外面的世界。
风筝:_______________________________________
:_______________________________________


固执:你是一堵墙,使人封闭自己,看不清外面的世界。

风筝:你是我飞向蓝天的梦想,放飞你,就是放飞心情。

友情:你是冬天里的一盆火,在人们最需要的时候,献上你的温暖。

三 : 实例讲解Hadoop用法

本节和大家一起学习一下Hadoop,通过它的实际应用来向大家展示它的功能,从而使读者更容易了解,希望通过本节的介绍大家对Hadoop有初步的了解。

Hadoop最佳实践

1.简介
Hadoop是Apache自由软件基金会资助的顶级项目,致力于提供基于map-reduce计算模型的高效、可靠、高扩展性分布式计算平台。

2.Map-Reduce应用场景
作为一种受限的分布式计算模型,Map-Reduce计算模型有其擅长的领域,也有其不擅长的方面:

条款1:map-reduce计算模型适用于批处理任务,即在可接受的时间内对整个数据集计算某个特定的查询的结果,该计算模型不适合需要实时反映数据变化状态的计算环境。

条款2:map-reduce计算模型是以“行”为处理单位的,无法回溯已处理过的“行”,故每行日志都必须是一个独立的语义单元,行与行之间不能有语义上的关联。

条款3:相对于传统的关系型数据库管理系统,Map-Reduce计算模型更适合于处理半结构化或无结构话的数据。

因为Map-Reduce计算模型是在处理的时候对数据进行解释的,这就意味着输入的Key和Value可以不是数据本身固有的属性,Key、Value的选择完全取决于分析数据的人。

条款4:Map-Reduce是一个线性可扩展模型,服务器越多,处理时间越短。

以下是同一个任务在不同机器数下获得的测试结果:

实例讲解Hadoop用法_reduce用法

3.任务调度优化
首先对一些术语进行一下说明。Job是一组客服端想要完成的工作,包括输入数据,map-reduce程序以及配置信息,Hadoop通过将Job划分为一些task来执行,task又分为maptask和reducetask。

如何调度Hadoop任务才能充分发挥集群中所有服务器的能力呢?

条款5:每个Job的输入文件不宜过大,也不宜过小。文件过大会造成reduce任务分布不均匀,导致reducetime的不可预知性,而大量的小文件则会严重影响Hadoop的性能。

Hadoop会将Job的输入文件分割成64M固定大小的split,每个split启动一个maptask处理,这个split中的每个record都经过用户定义的map函数处理生成中间结果。若输入文件小于64M,则此文件单独作
为一个split处理。故当输入文件中有大量的小文件时,那么管理这些小文件的开销以及maptask的创建开销会占据绝大多数的Job执行时间。

为了找到Hadoop合适的Job文件大小,我们在一个有50台退役机器组成的集群做了一组性能测试,结果如下表:

实例讲解Hadoop用法_reduce用法

我们把一个任务的计算时间分为两部分:reduceshuffletime和reducetime。

lreduceshuffletime是reduce任务把map输出的<key,value>对copy到本地的时间,即reduceshuffletime=map时间+<key,value>对网络传输时间。

lreducetime就是rudece处理这些<key,value>对的时间。

从上表我们可以得出结论:

l各个任务的reduceshuffletime是完全线性的(随着任务量增加,时间线性增加)。

l任务量在300G以内,reducetime基本线性增长,之后随着任务量增加,reducetime呈现随机性加大的趋势。在任务量达到550G后这种随机性更加明显,先后运行同样的任务时间可能会相差一个小时。可以推断,随着任务量增加,reduce任务分布不均匀的机率提高,导致了reducetime的不可预知性。

l上面两个时间的叠加影响下,在300G以内退役机器处理任务的时间是线性增加的。300G以上的任务需要分成若干个小任务串行运行,保证reduce处理在线性可控的区间内。本节关于Hadoop方面的知识没有介绍完毕,请关注下节介绍。

四 : handle实例用法代码中注释

Android 项目实例解析handle用法

1. 布局文件

Res/layout 下:

main.xml文件代码如下

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

<TextView

android:id="@+id/tvCount"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:textSize="20dp" />

<Button

android:id="@+id/btnStart"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="开始计数" />

<Button

android:id="@+id/btnStop"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="停止计数" />

<Button

android:id="@+id/btnShowToast"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="15秒后显示Toast信息框" />

</LinearLayout>

handle.xml文件代码如下

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

<TextView

android:id="@+id/tv"

handlemessage handle实例用法代码中注释

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:textSize="20dp" />

</LinearLayout>

2.程序代码

我的项目名称HandleTest 包名com.example.handletest。[www.61k.com]

MainActivity.java

package com.example.handletest;

import android.app.Activity;

import android.content.Context;

import android.content.Intent;

import android.os.Bundle;

import android.os.Handler;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.TextView;

import android.widget.Toast;

/**

* Handle用法 (定时操作的核心类)

*

* (1) to schedule messages and runnables to be executed as some point in the future

*

* (2) to enqueue an action to be performed on a different thread than your own.

*

* @author O_O 可以提交和处理一个Runnable对象。这个对象的run 方法可以立刻执行,也可以在指定时间之后执行

*

* 1、按照时间计划,在未来某时刻,处理一个消息或执行某个runnable实例。 *

* 2、把一个对另外线程对象的操作请求放入消息队列中,从而避免线程间冲突。 时间类消息通过如下方法使用:

*

* post(Runnable) postAtTime(Runnable, long) postDelayed(Runnable, long) sendEmptyMessage(int) sendMessage(Message) sendMessageAtTime(Message, long) andsendMessageDelayed(Message, long)

*

* post之类函数可以传输一个runnable对象给消息队列,并在到达消息队列后被调用。 sendmessage之类函数可以传送一个包含数据的message对象,该message对象可以被Handler类的handleMessage(Message) 方法所处理。

handlemessage handle实例用法代码中注释

*

* post之类函数和sendmessage之类的函数都可以指定消息的执行时机,是立即执行、稍后一段时间执行,还是在某个确定时刻执行。(www.61k.com] 这可以用来实现超时、消息或其他时间相关的操作。

*

* 当一个进程启动时,主线程独立执行一个消息队列,该队列管理着应用顶层的对象(如:activities、broadcast receivers等等)和所有创建的窗口。

*

*/

public class MainActivity extends Activity implements OnClickListener, Runnable {

private Handler handler;

private TextView tvCount;

private int count = 0;

/**

* 你可以创建自己的一个线程,并通过handler来与主线程进行通信。这可以通过在新的线程中调用主线程的handler的post和sendmessage操作来实现。

*/

class RunToast implements Runnable {

private Context context;

public RunToast(Context context) {

this.context = context;

}

@Override

public void run() {

Toast.makeText(context,

Toast.LENGTH_LONG).show();

} } "15秒后显示Toast提示信息", // 跳转 Intent newIntent = new Intent(context, HandlerTestActivity.class); newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(newIntent); @Override public void onClick(View view) { switch (view.getId()) { case R.id.btnStart: handler.postDelayed(this, 2000); break; case R.id.btnStop:

handlemessage handle实例用法代码中注释

handler.removeCallbacks(this);

break;

case R.id.btnShowToast:

handler.postAtTime(new RunToast(this) {

}, android.os.SystemClock.uptimeMillis() + 5 * 1000);

break;

}

}

@Override

public void run() {

// 只有创建这个控件的线程才能去更新该控件的内容。(www.61k.com)

tvCount.setText("Count:" + String.valueOf(++count));

61阅读提醒您本文地址:

// 要注意的是,不管使用哪个方法来执行Runnable对象,都只能运行一次。如果想循环执行,必须在执行完后再次调用post、postAtTime或postDelayed方法。

handler.postDelayed(this, 1000);

}

/*

* Bundle类是一个key-value对,“A mapping from String values to various Parcelable types.”

*

* 两个activity之间的通讯可以通过bundle类来实现,做法就是: *

* (1)新建一个bundle类

*

* Bundle mBundle = new Bundle();

*

* (2)bundle类中加入数据(key -value的形式,另一个activity里面取数据的时候,就要用到key,找出对应的value)

*

* mBundle.putString("Data", "data from TestBundle");

*

* (3)新建一个intent对象,并将该bundle加入这个intent对象

*

* Intent intent = new Intent();

*

* intent.setClass(TestBundle.this, Target.class);

*

* intent.putExtras(mBundle);

*/

@Override

public void onCreate(Bundle savedInstanceState) {

handlemessage handle实例用法代码中注释

}

} super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btnStart = (Button) findViewById(R.id.btnStart); Button btnStop = (Button) findViewById(R.id.btnStop); Button btnShowToast = (Button) findViewById(R.id.btnShowToast); tvCount = (TextView) findViewById(R.id.tvCount); btnStart.setOnClickListener(this); btnStop.setOnClickListener(this); btnShowToast.setOnClickListener(this); // mainActivity 有自己的Looper handler = new Handler();

HandlerTestActivity.java

package com.example.handletest;

import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.widget.TextView;

/**

*

* @author

*

* O_O 直接在UI线程中开启子线程来更新TextView显示的内容,运行程序我们会发现,如下错 误:

*

* android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.

*

* 翻译过来就是:只有创建这个控件的线程才能去更新该控件的内容。(www.61k.com] *

* 所有的UI线程要去负责View的创建并且维护它,例如更新冒个TextView的显示,都必须在主线程中去做,我们不能直接在UI线程中去创建子线程,要利用消息机制:handler

*/

public class HandlerTestActivity extends Activity {

handlemessage handle实例用法代码中注释

private TextView tv; private static final int UPDATE = 0; // private Handler handler = new Handler() { public void handleMessage(Message msg) { }; } // TODO 接收消息并且去更新UI线程上的控件内容 if (msg.what == UPDATE) { Bundle b = msg.getData(); tv.setText(b.getString("num")); // tv.setText(String.valueOf(msg.obj)); } super.handleMessage(msg); /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.handle); tv = (TextView) findViewById(R.id.tv); new Thread() { @Override public void run() {

// TODO 子线程中通过handler发送消息给handler接收,由handler去更新TextView的值

try {

for (int i = 0; i < 100; i++) {

Thread.sleep(500);

Message msg = new Message();

msg.what = UPDATE;

// bundle封装信息

Bundle b = new Bundle();

b.putString("num", "更新后的值:" + i);

msg.setData(b);

// 直接用obj属性

// msg.obj = "更新后的值:" + i;

handler.sendMessage(msg);

}

handlemessage handle实例用法代码中注释

}

} } catch (InterruptedException e) { e.printStackTrace(); } } }.start();

2. 注意了:

AndroidManifest.xml中配置activity

加上下面这两段:

<activity

android:name="com.example.handletest.MainActivity"

android:label="@string/app_name" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" /> </intent-filter>

</activity>

<activity

android:name="com.example.handletest.HandlerTestActivity" android:label="@string/app_name" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" /> </intent-filter>

</activity>

61阅读提醒您本文地址:

本文标题:请你用生活实例解释-好多新奇的小东西,实用且家居,帮你解决生活中的小麻烦
本文地址: http://www.61k.com/1137269.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1